用相等的空间划分对象
你好像这样的节目,我到处都在找。
我想要实现的。
选择一条直线或曲线。
拾取对象(主要是正方形、矩形或圆形)
拾取距离或输入对象选定对象的宽度。
然后,程序在直线或曲线上分割对象,就像附加的图像一样。
这是一个我认为很接近的程序。它来自LeeMac,但不确定如何编辑它以满足上述需求。
(defun c:test ( / _circle p1 p2 no di an sp i ucsz )
(defun _circle ( center radius )
(entmakex (list (cons 0 "CIRCLE") (cons 10 center) (cons 40 radius) (cons 210 ucsz)))
)
(setq ucsz (trans '(0. 0. 1.) 1 0 t))
(if
(and
(setq p1 (getpoint "\nSpecify First Point: "))
(setq p2 (getpoint "\nSpecify Second Point: " p1))
(progn
(initget 6)
(setq no (getint "\nSpecify Number of Circles: "))
)
(setq di (getdist "\nSpecify Diameter of Circles: "))
)
(progn
(setq p1 (trans p1 1 ucsz) p2 (trans p2 1 ucsz)
an (angle p1 p2) di (/ di 2.)
p1 (polar p1 an di)p2 (polar p2 an (- di))
)
(if (= 1 no)
(setq sp (/ (distance p1 p2) 2.) i 0)
(setq sp (/ (distance p1 p2) (1- no)) i -1)
)
(repeat no (_circle (polar p1 an (* (setq i (1+ i)) sp)) di))
)
)
(princ)
提前谢谢。
这会让你离得更近。 谢谢我在搜索中发现了这一点。
什么都没有发生。
[列表=1]
[*]我选择了对象。
[*]拾取距离。
[*]未排列任何内容。
[/列表]
使用ACAD 2017。现在更新了我的信息。 在这里你会发现我正在使用的工具
谢谢我这辈子都没法用。您能告诉我您是如何达到我想要的间距的吗? 关于:
[列表]
[*]ssget'((0。“圆,线”))
[*]找到线的名称,并构造圆列表
[*]调用intersectwith方法并构建点列表
[*]偏移直线,投影点列表
[/列表]
或者类似的。。 我最希望的就是有这样的技能。虽然这不是我想要的。
请注意,所有要隔开的副本/对象都应该已经存在-然后程序将它们彼此等距放置。
我明白了,傻我。请参阅随附的问题。这似乎是一个很好的解决方案。快速简单,只要间隔有点奇怪,一旦我选择了选择终点。
如果这能像第一篇帖子那样将他们分开,那将节省大量时间。
让我想起Alan JT的间隔动作。
除此之外,我还记得一些例行公事,比如(defun C:spb…)但似乎找不到。我认为作者是。。你它实现了与Alan相同的grread结果。
页:
[1]
2