SSPoly
Um mehr Auswahlmöglichkeiten zu erhalten verwenden Sie unten stehende LISP-Routine. Diese erlaubt Ihnen die Auswahl von Objekten entlang einer Polylinie, innerhalb einer Polylinie oder ausserhalb dieser.
Aufruf
Der Aufruf des Tools erfolgt mit "(sspoly)", "(sspolyf)", "(sspolyw)" oder aber "(sspolyc)".
- "sspoly" startet das Tool ganz normal.
- "sspolyf" betrachtet dabei die Polylinie als "Zaun". Alle von der Polylinie geschnittenen Elemente werden in die Auswahl aufgenommen.
- "sspolyw" betrachtet dabei die Polylinie als "Fenster". Alle Elemente, die zur Gänze innerhalb der Polylinie liegen werden in die Auswahl aufgenommen.
- "sspolyc" betrachtet dabei die Polylinie als "Kreuzen". Alle Elemente, die auf oder innerhalb der definierten Polylinie liegen werden in die Auswahl aufgenommen.
Um die Auswahl ausserhalb zu aktivieren, wählen Sie einfach alle Objekte aus und gehen Sie dann in den Deselktieren-Modus der Auswahl - derAufruf erfolgt über die Eingabe von "E" ("_R") - bei der Objektwahl und wählen Sie mittels sspoly die zu entfernenden Objekte aus.
Downloadlink: sspoly.lsp
;;; sspoly.lsp * ;;; (sspolyw) returns a selection set inside a polyline * ;;; (sspolyf) returns a selection set fenced by a polyline * ;;; (sspolyc) returns a selection set crossed by a polyline * (defun 2Dpt (pt) (list (car pt) (cadr pt)) ) (defun sspoly (/ apoly ptlist) (while (not apoly) (setq apoly (car (entsel "\nSelect polyline: "))) (if apoly (if (not (member (setq typ (cdr (assoc 0 (setq plist (entget apoly))))) '("LWPOLYLINE" "POLYLINE") ) ) (progn (setq apoly nil) (princ "\nNo polyline selected ") ) ) ) ) (cond ((= typ "LWPOLYLINE") (foreach n plist (if (= (car n) 10) (setq ptlist (cons (cdr n) ptlist)) ) ) ) ((= typ "POLYLINE") (while (/= typ "SEQEND") (setq typ (cdr (assoc 0 (setq plist (entget (setq apoly (entnext apoly)))))) ) (if (= typ "VERTEX") (setq ptlist (cons (2Dpt (cdr (assoc 10 plist))) ptlist)) ) ) ) ) ptlist ) (defun sspolyw () (ssget "_WP" (sspoly)) ) (defun sspolyf () (ssget "_F" (sspoly)) ) (defun sspolyc () (ssget "_CP" (sspoly)) )
Quelle: http://web.archive.org/web/20020722085849/http://intervision.hjem.wanadoo.dk/lisps/sspoly.lsp (Web-Archiv)
cad.de: http://ww3.cad.de/foren/ubb/Forum285/HTML/000377.shtml