目前,我正在建造一座大致呈班纳纳形状的建筑。我仍处于早期设计阶段,因此门窗会定期移动。大楼的半径约为60米,所以我很开心地旋转门,使其保持在正确的平面上,尤其是当我这些天筋疲力尽时,我的大脑真的无法跟上。
此时,我启动“旋转”命令,然后选择垂直于圆墙的门或分隔墙,然后选择圆墙的中心点作为基点,然后选择参考点,重新选择中心点,然后选择门或墙的中间,这样我可以看到元素移动到的位置。
当我试图学习LISP时,我想我应该尝试一下启动rotate命令,然后自动启动参考变量,选择rotate基点作为第一个参考点。到目前为止我有
- (defun C:ref ()
- ;Reference Rotates with centre point & 1st ref the same
- *****
- (setq oldsnap (getvar "osmode"))
- ;Saving Snaps
- (setvar "osmode" 4)
- ;Set Centre of circle to osnap
- *****
- Get Points
- (setq cp (getpoint "\nCentre of Circle : "))
- ;Set centerpoint and first reference point
- (setvar "osmode" 32)
- Snaps on
- (setq rp (getpoint "\nReference point : "))
- ;Set Second reference point
- (setq np (getpoint "\nSelect new position : "))
- ;select new position
- ******
- ;Start of command functions
- (command "rotate" ( ) cp cp rp np)
- ;Start rotate command
- ******
- (setvar "osmode" oldsnap)
- ;Reset snaps
- ) ;End of function
我现在想知道如何选择我想要旋转的位,然后告诉roate命令我想要使用参考点。此外,我想添加一些代码,让我可以选择启动复制功能。有人能给我一些关于如何做这些事情的提示吗。此外,对代码的建设性批评也非常受欢迎。
这更像是一个学习练习,而不是我会经常使用的东西,所以写LISP的努力不会有回报(除了那些可爱的知识)
|