;************************************************************************************* ;Martin Sigloch ;17. Oktober 2002 ;************************************************************************************* ; ;LGTOBLOCK.LSP ;Dieses Tool erstellt einen Auswahlsatz über eine Layergruppe und erzeugt daraus einen gleichnamigen Block (defun C:lgtoblock () (setq lold (getvar "clayer")) (setq osold (getvar "osmode")) (setvar "menuecho" 0) (setvar "cmdecho" 0) (defun makeblock () (setq la (cdr (assoc 8 obj))) ;Gruppe 8 ist Layername (setq zeichen (- (strlen la) 5)) ;subtrahiert von der Gesamtzahl der Zeichen den Wert 5 (z.B -am_7) (setq lg (substr la 1 zeichen)) ;reduziert die Zeichenkette auf "zeichen". Das erste Zeichen ist der Start der Zeichenkette. (setq summla (strcat lg "*")) ;fügt zum Layergruppennamen * hinzu (setq bp (getpoint "\nBasispunkt angeben \n")) (setq as (ssget "X" (list (cons 8 summla)))) ;holt alle Objekte der Layergruppe (command "._-purge" "bl" lg "n") (command "._-block" lg bp as "") ;Block wird erzeugt (setvar "osmode" 0) (command "._-layer" "_set" (strcat lg "-am_0") "") ;Layergruppe wird gesetzt (command "._-insert" lg bp "1" "1" "0") ;Block wird eingefügt (prompt "\nBlock wurde erzeut und eingefügt \n") (setvar "osmode" osold) (command "._-layer" "_set" lold "") (princ) ) (defun stop () (prompt "\nDas gewählte Element ist bereits ein Block - bitte prüfen und explodieren") (command "._-layer" "_set" lold "") (princ) ) (setq obj (car (entsel "\nObjekt in gewuenschter Layergruppe anklicken\n"))) (setq obj (entget obj)) ;Objektdatengruppen suchen (setq objinsert (cdr (assoc 0 obj)));Gruppe 0 ist Objektbezeichnung (if (= objinsert "INSERT") (stop) (makeblock));Abfrage ob Objekt bereits ein Block ist )