pBe 发表于 2022-7-6 05:58:25

命令变量:
 
(defun c:sample        (/ pd ent)
(setq pd (getvar 'PEDITACCEPT))
(setvar 'PEDITACCEPT 1)
(while (setq ent (ssget '((0 . "LWPOLYLINE"))))
(repeat (setq i (sslength ent))
    (setq en (ssname ent (setq i (1- i))))
    (repeat (- (cdr (assoc 90 (entget en))) 2)
              (command "_pedit" en "_E" "_N" "_B" "_G" "_X" "")
      (setq en (entlast))
      )
   )
   )
(setvar 'PEDITACCEPT pd)
)

troggarf 发表于 2022-7-6 06:02:08

我没有Alan发布此代码的链接。要么在这里,要么在沼泽地。。。
 
(defun c:BPV (/ _chop ss i e)
;; Break lwPolyline at each Vertex
;; Alan J. Thompson, 09.14.11

(vl-load-com)

(defun _chop (lst e)
   (if (vlax-curve-isClosed e)
   (cdr lst)
   (reverse (cdr (reverse (cdr lst))))
   )
)

(if (setq ss (ssget "_:L" '((0 . "LWPOLYLINE") (-4 . ">") (90 . 2))))
   (repeat (setq i (sslength ss))
   (foreach point (_chop (apply 'append
                                  (mapcar '(lambda (x)
                                             (if (eq (car x) 10)
                                             (list (trans (cdr x) 0 1))
                                             )
                                           )
                                          (entget (setq e (ssname ss (setq i (1- i)))))
                                  )
                           )
                           e
                  )
       (vl-cmdf "_.break" e "_F" "_non" point "_non" point)
       (setq e (entlast))
   )
   )
)
(princ)
)

notview 发表于 2022-7-6 06:07:19

大卫,
我得到了与pBe相同的输出。。一次只有一个物体破裂。
 
Stefan BMR,我认为这是我想要的最完美的Lisp程序。非常感谢。干杯

notview 发表于 2022-7-6 06:10:57

艾伦J.T.的作品很好。但是,多段线在同一对象多段线的顶点上重复传递,在执行BPV后,多段线的某些部分被删除或删除。
页: 1 [2]
查看完整版本: 在顶点处打断多段线