3dwannab 发表于 2022-7-5 16:28:34

用相等的空间划分对象

你好
 
像这样的节目,我到处都在找。
 
我想要实现的。
 
选择一条直线或曲线。
拾取对象(主要是正方形、矩形或圆形)
拾取距离或输入对象选定对象的宽度。
然后,程序在直线或曲线上分割对象,就像附加的图像一样。
 
这是一个我认为很接近的程序。它来自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)
 
提前谢谢。

Lee Mac 发表于 2022-7-5 16:38:37

这会让你离得更近。

3dwannab 发表于 2022-7-5 16:44:34

谢谢我在搜索中发现了这一点。
 
什么都没有发生。
 
[列表=1]
[*]我选择了对象。
[*]拾取距离。
[*]未排列任何内容。
[/列表]
 
使用ACAD 2017。现在更新了我的信息。

ziele_o2k 发表于 2022-7-5 16:51:18

在这里你会发现我正在使用的工具

3dwannab 发表于 2022-7-5 16:57:32

 
谢谢我这辈子都没法用。您能告诉我您是如何达到我想要的间距的吗?

Grrr 发表于 2022-7-5 17:02:17

关于:
[列表]
[*]ssget'((0。“圆,线”))
[*]找到线的名称,并构造圆列表
[*]调用intersectwith方法并构建点列表
[*]偏移直线,投影点列表
[/列表]
或者类似的。。

3dwannab 发表于 2022-7-5 17:07:13

我最希望的就是有这样的技能。虽然这不是我想要的。

Lee Mac 发表于 2022-7-5 17:12:36

 
请注意,所有要隔开的副本/对象都应该已经存在-然后程序将它们彼此等距放置。

3dwannab 发表于 2022-7-5 17:18:53

 
我明白了,傻我。请参阅随附的问题。这似乎是一个很好的解决方案。快速简单,只要间隔有点奇怪,一旦我选择了选择终点。
 
如果这能像第一篇帖子那样将他们分开,那将节省大量时间。

Grrr 发表于 2022-7-5 17:28:31

 
让我想起Alan JT的间隔动作。
除此之外,我还记得一些例行公事,比如(defun C:spb…)但似乎找不到。我认为作者是。。你它实现了与Alan相同的grread结果。
页: [1] 2
查看完整版本: 用相等的空间划分对象