samifox 发表于 2022-7-5 23:06:30

 
那么,getpoint为我翻译了这一点?你怎么解释角的形式?

Lee Mac 发表于 2022-7-5 23:10:50

 
否,getpoint返回用户指定的相对于UCS的点-
重复变换此UCS点,就像它是WCS到UCS一样。
 
关于点的视旋转:
 
例如,UCS旋转23度(任意值)。现在,假设您已使用程序拾取相对于旋转UCS的点(1 1)。
 
因此,getpoint函数将该点作为(1 1)返回。
 
然后,程序将x值增加10个单位,使点变为(11 1)。
 
现在,使用trans重新定义点,提供点(11 1),就像它是要相对于活动UCS平移的WCS坐标一样。
 
在旋转23度的UCS中,WCS点(11 1)成为UCS点(10.5163-3.37754 0.0)-然后在此坐标处构造点对象。
 
在下一次迭代中,程序将再次将点的x值增加10个单位,但是,由于您重新定义了变量“p”的值,该变量现在保持该值(20.5163-3.37754 0.0)。
 
同样,提供该明显UCS坐标时,将其视为要转换为UCS的WCS点,返回该点(17.5656-11.1254 0.0)。
 
此过程重复5次,形成您所看到的曲线图案。
 
出现这种模式的原因是,在每次迭代中,不是通过水平向量(10 0)平移点,而是通过UCS x轴相对于WCS x轴的角度之后的向量进行平移,从而导致点平移遵循圆形路径。

samifox 发表于 2022-7-5 23:14:16

你好
 
为了研究坐标系,我打开了一个案例研究。希望从大师那里获得挑战(从基础到进步)。
 
我的第一个基本挑战是采用一个新的ucs,并在WCS原点和ucs原点之间画一条线。
 
在我的代码中,我将UCS 0,0,0坐标转换为WCS,但它绘制了一条不符合预期的线。为什么?
 
 
救命啊!
 

;draw a line from Ucs origin to the WCS origin
(defun cs1(/ WCS UCS)

;get WCSorign
(setq WCS (trans '(0.0 0.0 0.0)1 0))
;get UCS origin
(setq UCS '(0.0 0.0 0.0))
;draw line
(command "_.line" "_non" WCS UCS "")

)

 
谢谢
谢伊

samifox 发表于 2022-7-5 23:21:02

但我在ucs和wcs不相等的地方进行了测试

hanhphuc 发表于 2022-7-5 23:22:33

我真的不明白“画一条不符合预期的线”
没有画?
你们能展示图片吗?

samifox 发表于 2022-7-5 23:27:10


 
你好
 
这些线是画出来的,但不是画在哪里
 
查看视觉效果

Lee Mac 发表于 2022-7-5 23:30:37

命令使用UCS点-您正在将UCS原点转换为WCS;使用(trans’(0.0 0.0 0.0)0 1)
 
或者:
(defun cs2 nil
   (entmake
       (list
          '(0 . "LINE")
          '(10 0.0 0.0 0.0) ;; WCS origin
         (cons 11 (trans '(0.0 0.0 0.0) 1 0)) ;; UCS origin
       )
   )
)

samifox 发表于 2022-7-5 23:31:35

 
嗨,李
 
我只是想办法
 
就像说:
 
“从WCS转换(0.0 0.0 0.0)到当前UCS”
 
(trans’(0.0 0.0 0.0)0 1)

samifox 发表于 2022-7-5 23:36:31

你好我可以说autolisp根本不尊重ucs,而命令无论如何都尊重ucs吗,?
页: 1 [2]
查看完整版本: (trans)解释