蒹葭_Keirll 发表于 2013-1-14 18:19:53

我觉得qjchen的阵列可以很好地满足楼主的要求

hehoubin 发表于 2013-1-14 23:29:56

本帖最后由 hehoubin 于 2013-1-14 23:33 编辑


xiaodao520 发表于 2013-1-18 15:38:01

x_s_s_1 发表于 2013-1-14 12:04 static/image/common/back.gif
写了个复制的

如能做成对话框,加上复制距离为绝对距离与相对距离选择,那就更完美了。

xyp1964 发表于 2013-1-18 21:03:42

本帖最后由 xyp1964 于 2013-1-18 21:04 编辑







lyqiezi 发表于 2013-1-24 12:46:20

嘿嘿,这个我自己也写了一个,不过不精简

(defun c:dcfz(/ ss1 dst spt ept len1 ang1 nom1)
(princ "\n选择多重复制的对象:")
(setq ss1 (ssget))
(setq dst 0
        nom1 0)
(setq dst (getdist "\n复制的间距:(间距)|等分(0):<0>"))
(setq spt (getpoint "\n复制的起点:"))
(setq ept (getpoint "\n终点(方向):"))
(setq len1 (distance spt ept))
(setq ang1 (angle spt ept))
(setq os (getvar "osmode"));;存储osmode原来的值
(setvar "osmode" 0);;设置osmode为0
(if (or (= dst 0) (= dst nil))
    (progn
      (setq nom1 (1- (getint "\n复制的次数(含原物体):")))
      (setq dst (/ len1 nom1))
    )
    (progn
      (setq nom1 (getint "\n复制的次数|沿路径自动排列(0):<0>"))
      (if (or (= nom1 0) (= nom1 nil))
        (setq nom1 (fix (/ len1 dst)))
        (princ nom1)
      )
    )
)
(while (>= nom1 1)
    (setq mpt (polar spt ang1 (* dst nom1)))
    (command "copy" ss1 "" spt mpt)
    (setq nom1 (1- nom1))
)
(setvar "osmode" os)
(prin1)
)

有个判断是起点终点的长度,按长度确定复制的次数
页: 1 [2]
查看完整版本: 如何任意方向指定距离进行连续复制???