;Brechen von Linien entlang einer durch zwei Punkte definierten Grenzkante ; ;Vorsicht: ein fix eingestellter Punktfang kann in Lisp-Programmen zu ;Problemen führen. Er sollte daher vorübergehend ausgeschaltet werden. ; ;1995 by Dea (defun c:b2( / p1 p2 p3 p4 pliste anzahl zähler) (setq p1 (getpoint "1. Grenzpunkt wählen: ")) (setq p2 (getpoint "2. Grenzpunkt wählen: ")) (setq pliste (list p1 p2)) ;Punktliste für Zaun-Wahl (setq wahl (ssget "_F" pliste '((0 . "LINE")))) ;Alle geschnittenen Linien (setq anzahl (sslength wahl)) ;Anzahl der Elemente (setq zähler 0) ;Index der Wiederholung (repeat anzahl ;Wiederholen für alle Elemente (setq element (ssname wahl zähler)) ;Elementname einer Linie (setq p3 (cdr (assoc 10 (entget element)))) ;Anfangspunkt der Linie (setq p4 (cdr (assoc 11 (entget element)))) ;Endpunkt der Linie (setq schnitt (inters p1 p2 p3 p4)) ;Schnittpunkt Linie-Grenze (if (/= nil schnitt) ;Wenn nicht nur Punktberührung (command "bruch" element schnitt "@") ;Element brechen ) (setq zähler (+ zähler 1)) ;Index erhöhen ) ;Ende der Wiederholschleife (setq wahl nil) ;Auswahlsatz wieder freigeben )