(vl-load-com) (defun BREAK-PKT(L LISTE / LASTOBJEKT) (setq LASTOBJEKT(entlast)) (command "_break" L (car LISTE) (car LISTE)) (if (cdr LISTE) (progn (Break-PKT L (cdr LISTE)) (if (entnext LASTOBJEKT) (Break-PKT (entnext LASTOBJEKT) (cdr LISTE)) ) ) ) ) (defun BREAK-PKT0( L / PKTL LISTE INDEX) (if (setq PKTL (ssget "_x" '((0 . "POINT")))) (progn (setq INDEX -1) (repeat (sslength PKTL) (setq LISTE (cons (cdr(assoc 10 (entget(ssname PKTL (setq INDEX (1+ INDEX)))))) LISTE)) ) (if(setq LISTE(vl-remove-if-not '(lambda(X) (equal (distance (vlax-curve-getClosestPointTo (vlax-ename->vla-object L) X) X ) 0.0 0.001 ) ) LISTE ) ) (Break-PKT L LISTE) ) ) ) ) (defun c:BREAK-PKT( / L INDEX) (setvar "cmdecho" 0) (command "_ucs" "_w") (if (setq L (ssget '((0 . "LINE,*POLYLINE,ARC")))) (progn (setq INDEX -1) (repeat (sslength L) (BREAK-PKT0 (ssname L (setq INDEX (1+ INDEX)))) ) ) ) (setvar "cmdecho" 1) (princ) )