;************************************************************************************* ;Martin Sigloch ;Hüller Hille GmbH ;17. Oktober 2002 ;************************************************************************************* ; ;TPS_LGTOBLOCK.LSP ;Dieses Tool erstellt einen Auswahlsatz über eine Layergruppe und erzeugt daraus einen gleichnamigen Block (defun C:tps_lgtoblock () (setq lold (getvar "clayer")) (setq cmdold (getvar "cmdecho")) (setq eold (getvar "menuecho")) (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) und gibt somit die Länge der Zeichenkette zurück (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) (setvar "menuecho" eold) (setvar "cmdecho" cmdold) (command "._-layer" "_set" lold "") (princ) (quit) ) (defun stop () (prompt "\nDas gewählte Element ist bereits ein Block - bitte mittels LISTE überprüfen") (setvar "menuecho" eold) (setvar "cmdecho" cmdold) (command "._-layer" "_set" lold "") (princ) (quit) ) (setq obj (car (entsel "\nObjekt in gewuenschter Layergruppe anklicken"))) (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 )