大家好,
CAD导师新手。我来这里是想找一个lisp例程,从一个点到最后一个复制点的不同距离进行多个复制。
我在一个旧帖子上找到了李的Lisp程序程序,但我遇到了麻烦。我正在使用AutoCAD 2018。
- (defun c:copyrel ( / b i l o p q s )
- (if
- (and
- (setq s (ssget "_:L"))
- (setq p (getpoint "\nSpecify Base Point: "))
- (setq b (vlax-3D-point (trans p 1 0)))
- )
- (progn
- (repeat (setq i (sslength s))
- (setq l (cons (vlax-ename->vla-object (ssname s (setq i (1- i)))) l))
- )
- (while (setq q (acet-ss-drag-move s p "\nSpecify Second Point: " 0 0))
- (setq s (ssadd))
- (foreach x l
- (vla-move (setq o (vla-copy x)) b (vlax-3D-point (trans q 1 0)))
- (ssadd (vlax-vla-object->ename o) s)
- )
- (setq p q)
- )
- )
- )
- (princ)
- )
- (vl-load-com)
- (princ)
所以它似乎一直持续到第二份。我的问题是我无法控制第二份的方向。此外,距离对于其复制到的方向也不正确。
我试图用它来快速绘制柱网。我打开了正交模式。我的第一个副本是水平的,第二个也是水平的,所有的视觉提示都显示为它将被水平复制,就像另一个副本一样。但是,其结果是向下复制对象。甚至没有达到正确的距离。例如,我输入了20'-8“,它在Y轴上复制了7''。
这正是我想要的,所以如果有人能帮我解决这个问题,那就太棒了!! |