sj800918 发表于 2017-12-16 11:28

求定数等分复制图形

选择图形,指定第一点、第二点、输入间隔数量(默认为2),等距复制图形,指定两点也可以是两个图形内部空间的角点。谢谢!


xiang19751218 发表于 2017-12-16 18:26

(defun c:tes( / en xfx pt1 pt2 zljl sl)
(setvar 'cmdecho 0)
(setq en (car(entsel "\n选择对象:")))
(setq xfx (car(apply 'mapcar(cons '- (bwh en)))))
(setq pt1 (getpoint "\n指定第一点:"))
(setq pt2 (getpoint "\n指定第二点:"))
(setq zljl (- (distance pt1 pt2) (abs xfx) ) )
(setq sl (getint "输入间隔数<2>:") )
(if (not sl) (setq sl 2))
(command "-array" en "" "r" 1 sl (/ zljl (float sl)))
(setvar 'cmdecho 1)
(princ)
)


(defun bwh (en / p1 p2)
(vla-getboundingbox (vlax-ename->vla-object en) 'p1 'p2)
(setq p1 (vlax-safearray->list p1)
      p2 (vlax-safearray->list p2)
)
(list p1 p2)
)

sj800918 发表于 2017-12-18 08:55

xiang19751218 发表于 2017-12-16 18:26
(defun c:tes( / en xfx pt1 pt2 zljl sl)
(setvar 'cmdecho 0)
(setq en (car(entsel "\n选择对象:")) ...

非常好用,谢谢,能否麻烦给调个竖向可以用的呢!

xiang19751218 发表于 2017-12-18 10:50


yoyoho 发表于 2018-2-27 15:29

谢谢 xiang19751218 分享学习!!!!

水仙的错 发表于 2019-9-6 17:58

学习下,谢谢分享!

ccc230 发表于 2021-7-30 20:37

能不能改一下任意角度

ccc230 发表于 2021-7-30 20:38

xiang19751218 发表于 2017-12-18 10:50


能不能改一下任意角度

ZZXXQQ 发表于 2021-8-12 13:56

本帖最后由 ZZXXQQ 于 2021-8-17 00:04 编辑

ccc230 发表于 2021-7-30 20:37
能不能改一下任意角度
;两点间定数阵列
(defun c:cn ( / en xfx pt1 pt2 zljl sl)
(setvar "CMDECHO" 0)
(princ "\n选择对象: ")
(setq ss (ssget))
(setq pt1 (getpoint "\n指定第一点:"))
(setq pt2 (getpoint pt1 "\n指定第二点:"))
(setq ang (angle pt1 pt2))
(setq sl (1- (or (getint "输入个数<2>:") 2)))
(setq zljl (/ (distance pt1 pt2) s1))
(setq i zljl)
(repeat sl
(command "copy" ss "" pt1 (polar pt1 ang i))
(setq i (+ i zljl))
)
(setvar "CMDECHO" 1)
(princ)
)

ccc230 发表于 2021-8-14 17:23

本帖最后由 ccc230 于 2021-8-15 19:19 编辑

ZZXXQQ 发表于 2021-8-12 13:56
;两点间定数阵列
(defun c:cn ( / en xfx pt1 pt2 zljl sl)
(setvar "CMDECHO" 0)

改了以后出现错误
指定第一点:; 错误: 参数类型错误: point: nil

页: [1] 2
查看完整版本: 求定数等分复制图形