wal_dab 发表于 2022-7-5 17:19:55

连接线或多边形线

夏威夷群岛
如何连接圆心的直线和多边形直线,请参阅附件中的图片。
非常感谢

Lee Mac 发表于 2022-7-5 17:31:11

请尝试以下操作:

(defun c:cc ( / cn1 cn2 en1 en2 ent gr1 gr2 rd1 rd2 )
   (while
       (progn (setvar 'errno 0) (setq ent (car (entsel "\nSelect circle: ")))
         (cond
               (   (= 7 (getvar 'errno))
                   (princ "\nMissed, try again.")
               )
               (   (null ent) nil)
               (   (/= "CIRCLE" (cdr (assoc 0 (setq en1 (entget ent)))))
                   (princ "\nSelected object is not a circle.")
               )
               (   (setq cn1 (cdr (assoc 10 en1))
                         rd1 (cdr (assoc 40 en1))
                   )
                   (while
                     (progn
                           (setq gr1 (grread t 13 2)
                                 gr2 (cadr gr1)
                                 gr1 (cargr1)
                           )
                           (cond
                               (   (= 5 gr1)
                                 (redraw)
                                 (grdraw (polar cn1 (angle cn1 gr2) rd1) gr2 1 1)
                                 t
                               )
                               (   (= 3 gr1)
                                 (cond
                                       (   (not (setq ent (car (nentselp gr2))))
                                           (princ "\nMissed, try again.")
                                       )
                                       (   (/= "CIRCLE" (cdr (assoc 0 (setq en2 (entget ent)))))
                                           (princ "\nSelected object is not a circle.")
                                       )
                                       (   (setq cn2 (cdr (assoc 10 en2))
                                                 rd2 (cdr (assoc 40 en2))
                                           )
                                           (entmakex
                                             (list
                                                '(0 . "LINE")
                                                   (cons 10 (polar cn1 (angle cn1 cn2) rd1))
                                                   (cons 11 (polar cn2 (angle cn2 cn1) rd2))
                                             )
                                           )
                                           (redraw)
                                           (setq cn1 cn2 rd1 rd2)
                                       )
                                 )
                               )
                           )
                     )
                   )
               )
         )
       )
   )
   (redraw) (princ)
)

jscgvnc 发表于 2022-7-5 17:39:43

李,
 
 
这太棒了。非常感谢。
 
 
可以修改为从圆心连接到直线或线段的中心吗?

Lee Mac 发表于 2022-7-5 17:47:09

 
不客气!
 
 
连接到“线段”是什么意思你能贴张照片吗?

jscgvnc 发表于 2022-7-5 17:51:06

李,
 
 
我指的是多段线线段的中心。假设你有一条有三条线的多段线,连接到其中一条线段的中心。
 
 
我不确定这是否是官方的命名惯例。抱歉给你带来了困惑。

wal_dab 发表于 2022-7-5 18:00:19

非常感谢李

alanjt 发表于 2022-7-5 18:09:19

不要在圆处打断所有这些线(线不再与显示的长度匹配),只需使用带擦除的块来覆盖相交线。

BIGAL 发表于 2022-7-5 18:13:33

AlanJt好主意,因为线条仍然是真实长度。

alanjt 发表于 2022-7-5 18:25:58

非常感谢。
我只是不喜欢为了表现而修改数据。
我宁愿想出一个替代的解决方案。
页: [1]
查看完整版本: 连接线或多边形线