97 lines
2.7 KiB
Common Lisp
97 lines
2.7 KiB
Common Lisp
(Defun C:FILTER ()
|
|
(Setvar "Cmdecho" 0)
|
|
(Setq ENTITY nil LAYER nil COLOR nil FLTRLIST nil)
|
|
(Menu)
|
|
(Princ)
|
|
)
|
|
|
|
(Defun Menu ()
|
|
(Textscr)
|
|
(Repeat 6 (Terpri))
|
|
(Princ " FILTER MENUE\n")
|
|
(Terpri)
|
|
(Princ " A = Filter auf Objekttyp\n")
|
|
(Princ " B = Filter auf Layername\n")
|
|
(Princ " C = Filter auf Farbnummer\n")
|
|
(Princ " X = Gewaehlte Objekte bearbeiten\n")
|
|
(Princ " XX = Ende FILTER\n")
|
|
(Repeat 7 (Terpri))
|
|
(Initget "A B C X XX")
|
|
(Setq LETR (Getkword "\n=======>>Auswahlbuchstaben eingeben: "))
|
|
(Cond
|
|
((= LETR "A")
|
|
(Initget (strcat "LINE POINT CIRCLE ARC SOLID TEXT "
|
|
"SHAPE INSERT POLYLINE TRACE 3DFACE DIMENSION"))
|
|
(Setq ENTITY (Getkword "\nObjekttyp eingeben: "))
|
|
(Setq ENTITY (Cons 0 (Eval ENTITY)))
|
|
(Menu)
|
|
)
|
|
((= LETR "B")
|
|
(Setq LAYER (Strcase (Getstring "\nLayername eingeben: ")))
|
|
(Setq LAYER (Cons 8 (Eval LAYER)))
|
|
(Menu)
|
|
)
|
|
((= LETR "C")
|
|
(Setq COLOR (Getreal "\nFarbnummer eingeben: "))
|
|
(Setq COLOR (Cons 62 (Eval COLOR)))
|
|
(Menu)
|
|
)
|
|
((= LETR "XX") (Ender))
|
|
((= LETR "X") (Build))
|
|
((/= LETR nil) (Menu))
|
|
)
|
|
)
|
|
|
|
(Defun Ender ()
|
|
(Graphscr)
|
|
(Command)
|
|
)
|
|
|
|
(Defun Build ()
|
|
(If (/= ENTITY nil) (Setq FLTRLIST (List (Eval 'ENTITY))))
|
|
(If
|
|
(And LAYER FLTRLIST)
|
|
(Setq FLTRLIST (Cons LAYER FLTRLIST))
|
|
)
|
|
(If (And (= FLTRLIST nil) LAYER) (Setq FLTRLIST (List (Eval 'LAYER))))
|
|
(If
|
|
(And COLOR FLTRLIST)
|
|
(Setq FLTRLIST (Cons COLOR FLTRLIST))
|
|
)
|
|
(If (And COLOR (= FLTRLIST nil)) (Setq FLTRLIST (List (Eval 'COLOR))))
|
|
(Action)
|
|
)
|
|
|
|
(Defun Action ()
|
|
(Textscr)
|
|
(Repeat 6 (Terpri))
|
|
(Princ " Was soll mit den gewaehlten Objekten geschehen? \n")
|
|
(Terpri)
|
|
(Princ " A = Loeschen\n")
|
|
(Princ " B = Schieben\n")
|
|
(Princ " C = Kopieren\n")
|
|
(Princ " D = Layer aendern\n")
|
|
(Princ " E = Farbe aendern\n")
|
|
(Princ " F = Zaehlen\n")
|
|
(Princ " XX = Lediglich auswaehlen\n")
|
|
(Repeat 6 (Terpri))
|
|
(Initget "A B C D E F XX")
|
|
(Setq LETR (Getkword "\n=======>>Auswahlbuchstaben eingeben: "))
|
|
(If (= LETR "A") (Command "LOESCHEN" (Ssget "X" FLTRLIST)))
|
|
(If (= LETR "B") (Command "SCHIEBEN" (Ssget "X" FLTRLIST)))
|
|
(If (= LETR "C") (Command "KOPIEREN" (Ssget "X" FLTRLIST)))
|
|
(If (= LETR "D") (Command "AENDERN" (Ssget "X" FLTRLIST) "" "EI" "LA"))
|
|
(If (= LETR "E") (Command "AENDERN" (Ssget "X" FLTRLIST) "" "EI" "FA"))
|
|
(If
|
|
(= LETR "F")
|
|
(Progn
|
|
(Princ "\nEs wurden ")
|
|
(Princ (Sslength (Ssget "X" FLTRLIST)))
|
|
(Princ " Objekte ausgewaehlt.")
|
|
(Princ)
|
|
)
|
|
)
|
|
(If (= LETR "XX") (Ssget "X" FLTRLIST))
|
|
)
|
|
|