Autolisp中的坐标系变换……

题设如下:以ZH(0,0)为坐标系原点,建立图示坐标系,然后中间有一堆程序(省略……),接着,坐标原点向右平移100到JD(100,0)并旋转一定的角度α,如图示建立以JD点为原点的坐标系,在心得坐标系中,JD点坐标为(0,0)……请问这两部分的代码该如何(一是定义ZH点为原点的坐标系,二是定义JD点原定的坐标系),比较急……

(setq a 30)  ;角度

(setq a (/ (* 30 pi) 180));转为弧度

(setq pt '(200 0 0)) ;ucs原点(注:相对WCS)

(setq x (list (sin a) (cos a) 0.)) ;X向量(注:相对WCS)

(setq y (list (cos a) (sin (- a)) 0.)) ;Y向量(注:相对WCS)

(entmake (list '(0 . "UCS")

'(100 . "AcDbSymbolTableRecord")

'(100 . "AcDbUCSTableRecord")

'(2 . "JD") ;新UCS名称

'(70 . 0)

(cons 10 pt) 

(cons 11 x)

(cons 12 y)

'(79 . 0)

'(146 . 0.0)

)

)

;;;;;;;;;;;;;;;;;val方式 (参考方法)

(setq origin (vlax-3d-point 4 5 3)
xAxisPnt (vlax-3d-point 5 5 3)
yAxisPnt (vlax-3d-point 4 6 4))

(setq acadObj (vlax-get-acad-object))

(setq doc (vla-get-ActiveDocument acadObj))
(setq UCSs (vla-get-UserCoordinateSystems doc))
(setq ucsObj (vla-Add UCSs origin xAxisPnt yAxisPnt "New_UCS"))  ;ucs名称:New_UCS 

;;;;;;;;;;;;;;;;;;;;;;;;;

command方式

(command "ucs""3" pt x y ) ;具体值自己输入命令操作一遍

追问

可以用Command的命令说下怎么平移吗

温馨提示:答案为网友推荐,仅供参考
相似回答