jevrem1 发表于 2022-7-5 19:57:56

坐标enti的转换

所需的lisp计算所有实体的坐标。公式为:
Ynew=(Yold+6529250*0.00008949)/1.00008949
Xnew=(Xold+4855500*0.00008949)/1.00008949

pBe 发表于 2022-7-5 20:01:22

为什么会这样?你说的是所有实体。一旦用户将所有坐标转换为所需值,该如何处理结果?

jevrem1 发表于 2022-7-5 20:06:56

这是从一个坐标系到另一个坐标系的转换。

eldon 发表于 2022-7-5 20:09:43

如果要转换整个图形,为什么不在x、y平面上移动所有内容,然后缩放约0,0。
 
如果有坐标的原始列表,我会使用电子表格来转换它们。
 
除非你想自己开始学习写lisp。

jevrem1 发表于 2022-7-5 20:10:48

在新的坐标系中,坐标差对所有坐标系来说都不相同
协调。中心点的坐标为6529250,4855500坐标差取决于与中心点的距离。
有必要在DWG中转换点、线、多段线、文本、块。。。全体同仁。

jevrem1 发表于 2022-7-5 20:15:48

我用这个代码试过了。我选择实体是不是错了。
 
(defun c:22()
(setq old (ssget))   
(setq new nil)                              
(repeat (setq i old)            
   (if (car (nth (setq i (1- i)) old)))   
   (progn
       (setq x (cadr (nth i old))                  
         y (caddr (nth i old))
         )
       (setq y (/ (+ y 584.3025825) 1.00008949))                        
       (setq x (/ (+ x 584.3025825) 1.00008949))                        
       (setq new (cons (list x y) new))
   )
   (setq new (cons (nth i old) new))   
   )
   )
(entdel old)                                       
(entmake new)                                 
)

pBe 发表于 2022-7-5 20:17:16

 
对不起,伙计,我不明白你说的那些是什么意思
 
 
 
删除选定实体并使用新坐标创建新实体?
那么您想将实体“移动”到其他位置?是这样吗?
 
让我困惑的是所有的实体,如果是这样的话,你只需要两个坐标,旧的中心点和计算的中心点,然后立刻移动所有的东西。
 
当你说转换时,你的意思是转换坐标?
 
张贴之前和之后的示例图,这将使我们更好地了解您想要实现的目标

jevrem1 发表于 2022-7-5 20:21:08

就是这样。我使用新坐标将实体移动到另一个位置。具有旧坐标的实体将被删除。它是KJ平面,高度不接触。
1岁。图纸
2-新。图纸

pBe 发表于 2022-7-5 20:23:31

 
同样,为什么不移动对象,而不是创建一个新对象并删除旧对象?我想我错过了什么。
什么是KJ平面?什么是不接触的?

jevrem1 发表于 2022-7-5 20:29:03

每个点的坐标差都不同。南部的价值较低,而北部的价值较高,即东西走向。命令移动变换实体是不公平的。在给定的公式中,有必要计算特定坐标系中的新坐标。
页: [1] 2
查看完整版本: 坐标enti的转换