Files

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))
)