David D 发表于 2022-7-5 16:34:54

在每个选项周围画圆圈

我听说过一种lisp,在分解所有多段线后,它会在图形中的每个圆弧周围放置一个圆。有人知道我在哪里可以找到那个剧本吗?

David D 发表于 2022-7-5 16:55:17

实际上,我应该说,我想高亮显示图形的一部分,并在高亮显示区域中的所有圆弧周围放置圆圈。

Tharwat 发表于 2022-7-5 17:28:11

你好
 
[列表]
[*]选择对象。
[*]为每个对象创建边界框。
[*]获取该边界框的中点。
[*]从中点绘制圆,半径与BB的中点到左/右点的距离相同。
[/列表]
快乐的编码。

David Bethel 发表于 2022-7-5 17:39:15

WCS圆弧的边界圆实体的一个简单示例:
 

(defun c:bboxarc (/ ss i en ed ce ra sa ea ia p1 p2 cl mp cr)
(and (princ "\nSelect ARCs To Add Bounding CISRLE To : ")
      (setq ss (ssget (list (cons 0 "ARC")(list 210 0 0 1))))
      (setq i 0)
      (while (setq en (ssname ss i))
             (setq ed (entget en)
                   ce (cdr (assoc 10 ed))
                   ra (cdr (assoc 40 ed))
                   sa (cdr (assoc 50 ed))
                   ea (cdr (assoc 51 ed))
                   ia (if (> sa ea)
                        (+ (- (* 2 pi) sa) ea)
                        (- ea sa))
                   p1 (polar ce sa ra)
                   p2 (polar ce ea ra)
                   cl (distance p1 p2)
                   mp (polar p1 (angle p1 p2) (* cl 0.5))
                   cr (rem (+ i 1) 255))
             (if (>= ia pi)
               (entmake (list (cons 0 "CIRCLE")(cons 8 "TEMP")
                              (cons 10 ce)(cons 40 ra)(cons 62 cr)))
               (entmake (list (cons 0 "CIRCLE")(cons 8 "TEMP")
                              (cons 10 mp)(cons 40 (* cl 0.5))(cons 62 cr))))
             (setq i (1+ i))))
(prin1))

 
 
-大卫
页: [1]
查看完整版本: 在每个选项周围画圆圈