(defun c:varix ( / befehl fak index asatz edata ep art nurart objtypen) ;Mit dieser Funktion koennen mehrere Elemente gleichzeitig ;von einem Gemeinsamen Bezugspunkt aus --> Basispunkt ;des Blocks bzw Anfangspunkt der Linie ;vergroessert oder verkleinert bzw gedreht werden ;Bezugspunkt ist der Gruppencode 10 des Elements ;es kann nach Angabe eines Elementtyps nur dieser eine verändert werden, ;ansonsten werden alle gewählten Objekte geändert. (initget "D V") (setq befehl (getkword "\nBefehl: Drehen oder [Varia] : ")) (if (not befehl) (setq befehl "V")) (setq befehl (strcase befehl)) (initget "TEXT LINE INSERT") (setq objtypen (getkword "\nzu skalierende Objekttypen eingrenzen [text, line, insert]: ")) (if (not objtypen) (setq nurart NIL) (setq nurart (strcase objtypen))) (cond ((equal befehl "D") (progn (setq befehl "._ROTATE") (initget 1) (setq fak (getreal "\nDrehwinkel : ")) )) ((equal befehl "V") (progn (setq befehl "._SCALE") (initget 1) (setq fak (getreal "\nGroessenfaktor : ")) )) ) (setq index -1) (setq asatz (ssget)) (repeat (sslength asatz) (setq element (ssname asatz (setq index (1+ index)))) ; Datensatz (setq edata (entget element)) (setq ep (cdr (assoc 10 edata))) ; Ursprungspunkt (setq art (cdr (assoc 0 edata))) ; Elementart (if (or (= art nurart) (not nurart)) (command befehl element "" ep fak) ) ) (princ (strcat (itoa (setq index (1+ index))) " Objekte bearbeitet.")) (princ) ) (prompt "..geladen. Starten mit VARIX (c)A.Z. ...1, 2, 3 - los gehts!")