此代码是连续复制 : 可以输入距离,也可以点两点确定距离,方向上是鼠标拖动个方向就确定(无须点两点确定)。按下空格就继续复制下去。 现有个问题是要在距离的问题上增加个默认上次连续复制的距离。也就是在输入距离这个时候我空格下就是默认的上次距离了(原,输入距离,和点两点确定距离还保留,当和上次距离不一样时就能用到了) 希望大家看看能解决不, 在实际画图中,这个使用的频率还是很高的。代码如下 (defun c:fz( / an dis p p1 p2 s sa ss)
(setq ss (ssget) p ""
p1 (getpoint "\n起点:")
p2 (getpoint "\n第二点:" p1)
an (angle p1 p2) dis (distance p1 p2)
)
(setq s (entlast) sa (ssadd))
(command "copy" ss "" p1 p2)
(setq s (entnext s))
(while s (ssadd s sa)(setq s (entnext s)))
(while (= p "" )
(setq p (getstring "\n空格键继续:")
p1 p2 p2 (polar p1 an dis)
ss sa
)
(setq s (entlast) sa (ssadd))
(if p
(command "copy" ss "" p1 p2)
)
(setq s (entnext s))
(while s (ssadd s sa)(setq s (entnext s)))
)
(princ)
)