(defun C:BLH (/ blwahl nr nblock_name nfakt nblock bln1 bln tbl_block) (block_auswahl) (block_hinzu) ) (defun block_auswahl () (while (= (setq blwahl (ssget "X" (list (cons 0 "INSERT")(cons 2 (getstring T "\nBlockname vorh.Block: "))))) nil) (print "Kein Block gewählt") ) );defun (defun block_hinzu () (if (and (setq nblock_name (getstring T "\nName des Blockes, der hinzugefügt werden soll: ")) (tblsearch "BLOCK" nblock_name) );and (progn (initget 7) (setq nfakt (getreal "\nFaktor des neuen Blockes (gleicher Faktor xyz): ")) (setq nr -1) (repeat (sslength blwahl) (setq block (entget (ssname blwahl (setq nr (1+ nr)))) ) (setq nblock (subst (cons 2 nblock_name)(assoc 2 block) block )) (setq nblock (subst (cons 41 nfakt)(assoc 41 nblock) nblock )) (setq nblock (subst (cons 42 nfakt)(assoc 42 nblock) nblock )) (setq nblock (subst (cons 43 nfakt)(assoc 43 nblock) nblock )) (entmake nblock) );repeat );progn dann (progn (initget "j n") (if (= (getkword "Blockname unbekannt - Blocknamen auflisten ? [Ja/Nein]:") "j") (progn (setq bln1 (list (cdr (assoc 2 (tblnext "block" T)))) ) (while (/= (setq tbl_block (tblnext "block")) nil) (if (/= (substr (cdr (assoc 2 tbl_block)) 1 1) "*") (progn (setq bln (cons (cdr (assoc 2 tbl_block)) bln1)) (setq bln1 bln) ) ) ) (reverse bln) (print bln) (block_hinzu) );progn (block_hinzu) );if );progn sonst ); if (princ) );defun (prompt "\nBlockhinzu geladen, Aufruf mit BLH")(princ)