Hallo und Guten Morgen,
Gruppen sind eine wunderbare Sache wenn man einige Dinge versucht zu vermeiden. Eins ist das verschachteln von Gruppen.
Es ist schnell passiert und schon sind die Gruppen verschachtelt und nur mehr schwer zu kontrollieren.
Damit das nicht passiert hab ich mit eurer Hilfe dieses "Lisp" zusammengestellt.
Es funktioniert sehr gut bis auf eine Kleinigkeit.
Wenn ein oder mehrere Layer in der Zeichnung noch nicht vorhanden sind, dann kommt diese Meldung in der Befehlszeile:
---Unbekannter Befehl "GRUHIZU"---
Wenn aber mindestens je ein Layer pro vordefinierter Gruppe in der Zeichnung vorhanden ist dann läuft es ohne "Mucken" schön durch.
Was muß ich ändern damit es die Meldung in der Befehlszeile nicht mehr bring?
Bitte um Hilfe.
Hier das Lisp noch kurz erklärt:
--Es bestehen in der neuen Zeichnung bereits 5 leere Gruppen.
--Nun wird die Zeichnung nach Layern mit Namen "*Sockel*" usw. durchsucht und wenn vorhanden geprüft ob dieser Layer bereits in einer
Gruppe vorhanden ist. Wenn ja wird er von der Zuordnung ausgeschlossen.
So wird die Zeichnung nach den gewünschten Layern durchsucht und abgearbeitet.
--Am Ende schaut es so aus, dass alle gewünschten Layer in den vorgesehenen Gruppen vorhanden sind und keiner mit einer andern Gruppe verschachtelt ist.
Damit kann man die Gruppen viel leichter "unter Kontrolle" halten.
Danke!
lg. Martin
(defun C:gruhizu (/ ITEM OBJ MEMBERS AWS)
;prüft ob objecte bereits in Gruppen vorhanden sind, wenn ja schließt sie aus
(vl-load-com)
(vlax-for ITEM (vla-get-groups
(vla-get-activedocument (vlax-get-acad-object))
)
(if (> (vla-get-count ITEM) 0)
(vlax-for OBJ ITEM
(if (not (member OBJ MEMBERS))
(setq MEMBERS (cons OBJ MEMBERS))
)
)
)
)
(setq MEMBERS (mapcar 'vlax-vla-object->ename MEMBERS))
; Layer zu Gruppe
(command "_groupedit"
"N"
"Sockel"
"h"
(if (setq AWS (ssget "_x" '((0 . "*") (8 . "*Sockel*"))))
(progn
(mapcar '(lambda (X)
(if (ssmemb X AWS)
(ssdel X AWS)
)
)
MEMBERS
)
AWS
)
)
""
)
(princ)
; Layer zu Gruppe
(command "_groupedit"
"N"
"Täfelung"
"h"
(if (setq AWS (ssget "_x" '((0 . "*") (8 . "*Täfelung*"))))
(progn
(mapcar '(lambda (X)
(if (ssmemb X AWS)
(ssdel X AWS)
)
)
MEMBERS
)
AWS
)
)
""
)
(princ)
;Layer zu Gruppe
(command
"_groupedit"
"N"
"Abdeckplatte"
"h"
(if (setq AWS (ssget "_x" '((0 . "*") (8 . "*Abdeckplatte*"))))
(progn
(mapcar '(lambda (X)
(if (ssmemb X AWS)
(ssdel X AWS)
)
)
MEMBERS
)
AWS
)
)
""
)
(princ)
;Layer zu Gruppe
(command "_groupedit"
"N"
"Gesims"
"h"
(if (setq AWS (ssget "_x" '((0 . "*") (8 . "*Gesims*"))))
(progn
(mapcar '(lambda (X)
(if (ssmemb X AWS)
(ssdel X AWS)
)
)
MEMBERS
)
AWS
)
)
""
)
(princ)
;Layer zu Gruppe
(command "_groupedit"
"N"
"Wand"
"h"
(if (setq AWS (ssget "_x" '((0 . "*") (8 . "*Wand*"))))
(progn
(mapcar '(lambda (X)
(if (ssmemb X AWS)
(ssdel X AWS)
)
)
MEMBERS
)
AWS
)
)
""
)
(princ)
;Layer zu Gruppe
(command "_groupedit"
"N"
"Wand"
"h"
(if (setq AWS (ssget "_x" '((0 . "*") (8 . "*Install*"))))
(progn
(mapcar '(lambda (X)
(if (ssmemb X AWS)
(ssdel X AWS)
)
)
MEMBERS
)
AWS
)
)
""
)
(princ)
)
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP