【求助】点关于点旋转后的坐标
本帖最后由 kucha007 于 2023-2-6 23:14 编辑http://bbs.mjtd.com/forum.php?mod=viewthread&tid=186343&page=1&extra=#pid927321
大家好,疑问见标题。
我之前写了一个旋转视口内视图的程序,想用到模型空间中,旋转UCS然后Plan。
但不知道怎么记录和恢复视口。目前想到的是记录视图中心点和视图高度,之后再还原。
但旋转ucs的时候中心点也在改变,就不知道怎么操作了。
论坛上搜到的资料尝试了一下都不太对
麻烦各位大佬赐教,如果有新思路就更好了。
(setq p1 (getpoint "\n→请选择旋转中心: "))
(setq p2 (getpoint p1 "\n→请选择X轴正方向: "))
(setq Ang (Angtos (Angle P1 p2) 0 15))
(setq vc (getvar "VIEWCTR");视图中心UCS
vs (getvar "VIEWSIZE");当前视图高度
)
;恢复视图
(command "_.ZOOM" "_C" vc vs)
本帖最后由 kucha007 于 2023-2-8 00:17 编辑
;自己解决了√
(Defun C:TT nil
(defun K:ROTATEPT (PT Center Ang)
(polar Center (+ (angle Center PT) Ang) (distance Center PT))
)
(setq p1 (getpoint "\n→请选择旋转中心: "))
(setq p2 (getpoint p1 "\n→请选择X轴正方向: "))
(setq Ang (Angle P1 p2))
(setq vc (getvar "VIEWCTR");视图中心UCS
vs (getvar "VIEWSIZE");当前视图高度
)
(command "point" vc )
(setq CS (trans (K:ROTATEPT vc p1 Ang) 1 0));WCS
(command "_.UCS" "_Z" (Angtos Ang 0 15))
(command "_.PLAN" "_C")
(while (> (getvar "CMDACTIVE") 0) (command PAUSE));等待前面的命令完成
(command "_.ZOOM" "_C" (trans CS 0 1) vs)
(command "point" (trans CS 0 1))
)
太高深了 看不懂
页:
[1]