图形净距离阵列
本帖最后由 孙玉坤 于 2017-10-15 20:32 编辑;角度阵列程序(Angle array routine),比AutoCAD的阵列容易得多。
(defun C:AAR ( / ss ang bp cnt dist d)
(PRINC "\n 角度阵列\(2005.8.5胡晓航\) ")
(cond
((setq ss (ssget))
(initget 1)
(setq bp (getpoint "\n基点: "))
(initget 1)
(setq ang
(getangle bp "\n阵列方向: "))
(initget 7)
(setq dist
(getdist "\n对象间距: "))
(initget 7)
(setq cnt (getint "\n对象个数: "))
(setq d 0.0)
(setvar "cmdecho" 0)
(command "_.undo" "_g"
"_.copy" ss "" "_m" bp)
(repeat (1- cnt)
(command
(polar bp ang (setq d (+ d dist)))))
(command "" "_.undo" "_e")
)
)
(princ)
)
这个代码只能做到阵列距离一效果,哪位大神帮忙改一下,如图形二所示,阵列的距离为两个图元间的净距离,加记忆功能。。。:lol:lol:lol万分感谢
(defun C:aa (/ A1 A2 ANG BP CNT D DIST SS)
(defun ax:GetBoundingBox (ent / ll ur)
(vla-getboundingbox (vlax-ename->vla-object ent) 'll 'ur)
(mapcar 'vlax-safearray->list (list ll ur))
)
(PRINC "\n 角度阵列\(2005.8.5胡晓航\) ")
(cond
((setq ss (car (entsel "\n选择对象:")))
(initget 1)
(setq bp (getpoint "\n基点: "))
(initget 1)
(setq ang
(getangle bp "\n阵列方向: ")
)
(initget 7)
(setq dist
(getdist "\n对象间距: ")
)
(initget 7)
(setq cnt (getint "\n对象个数: "))
(setvar "cmdecho" 0)
(setvar "osmode" 0)
(repeat (1- cnt)
(setq a1 (ax:GetBoundingBox ss))
(setq a2 (list (caadr a1) (cadar a1)))
(setq d (distance (car a1) a2))
(setq d (+ d dist))
(command "_.copy" ss "" bp (polar bp ang d))
(setq ss (entlast))
)
)
)
(setvar "osmode" 15359)
(princ)
)
;注意只考滤陈列间距二水平的效果 (defun c:tt ()
(setq ang (UangLE 1 "" "阵列方向<输入或鼠标直接量取>" ang nil))
(setq dist (Udist 1 "" "间隔<输入或鼠标直接量取>" dist nil))
(setq nn (Uint 7 "" "数量" nn))
(setvar "osmode" 0)
(while (setq ss (ssget))
(setq p1 (xyp-9pt ss 1)
p2 (xyp-9pt ss 3)
dd (distance p1 p2)
i1
)
(repeat (1- nn)
(setq p3 (polar p1 ang (* (+ dd dist) i))
i(1+ i)
)
(xyp-copyMove ss p1 p3)
)
)
(princ)
) 也许这个可以满足你的要求,定的规则是这样的:,可以是接受鼠标和键盘输入且有默认值;如果上次的输入是鼠标框选的,这次是按的空格,则默认为阵列距离;如果上次输入是键盘输入产,这次按了空格,则默认为净距离输入;自动记忆上次的输入值且是双项记忆(在有双项阵列的情况下),如下
无法达到阵列间距二的效果 楼主的想法有些情况更符合实际工作 琴剑江山_10184 发表于 2017-10-18 11:18
;注意只考滤陈列间距二水平的效果
非常感谢版主的热情帮助,效果刚刚刚的就是不能框选 可能在修改成多选那就完美啦 luyu9635 发表于 2017-10-18 21:52
也许这个可以满足你的要求,定的规则是这样的:,可以是接受鼠标和键盘输入且有默认值;如果上次的输入是鼠 ...
正式我想要的功能 ,万分感谢两位大师的 辛苦付出 孙玉坤 发表于 2017-10-18 22:19
正式我想要的功能 ,万分感谢两位大师的 辛苦付出
楼主 CAD批量插入tiff图片或者pdf参考底图 并阵列排版你会吗 好东西,正需要,顶顶顶 这个不错的,一直头疼的问题被解决了
页:
[1]
2