| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte |
| |
| PNY bietet das umfangreichste Ökosystem von B2B als auch B2C-Lösungen für IT-Akteure auf dem Markt, eine Pressemitteilung
|
Autor
|
Thema: Mit Isolieren Gruppen nach der Reihe anzeigen (1131 / mal gelesen)
|
MARTINLE Mitglied Tischler
Beiträge: 485 Registriert: 18.10.2007 AUTOCAD 2016, MS Windows7, 64-bit
|
erstellt am: 25. Mai. 2016 06:10 <-- editieren / zitieren --> Unities abgeben:
Guten Morgen! Ich hab wieder mal ein Problem. Ich versuche mit Objekte isolieren und Objekte isolieren beenden sechs Gruppen die in der Zeichnung vorhanden sind nach der Reihe anzuzeigen. Wenn aber eine oder mehrere vorhandene Gruppen keine Objekte enthalten wird nach (command "unisolateobjects") die Meldung "Keine Objekte zum Aufheben der Isolierung verfügbar." angezeigt und ab dann funktioniert das isolieren nicht mehr. Kann mir da jemand weiterhelfen? Ideal wäre auch, wenn es wie bei alert eine Meldung ausgeben würde wenn keine Objekte in dieser Gruppe enthalten sind. Auf jeden Fall soll das Lisp bis zum Ende also alle sechs Gruppen durchlaufen. Danke und liebe Grüße Martin (defun C:Isolategroup (/) (command "_IsolateObjects" "gr" "wand" "") (alert "Anzeige Gruppe Wand") (command "unisolateobjects") (command "_IsolateObjects" "gr" "Sockel" "") (alert "Anzeige Gruppe Sockel") (command "unisolateobjects") (command "_IsolateObjects" "gr" "Täfelung" "") (alert "Anzeige Gruppe Täfelung") (command "unisolateobjects") (command "_IsolateObjects" "gr" "Abdeckung" "") (alert "Anzeige Gruppe Abdeckung") (command "unisolateobjects") (command "_IsolateObjects" "gr" "Gesims" "") (alert "Anzeige Gruppe Gesims") (command "unisolateobjects") (command "_IsolateObjects" "gr" "Decke" "") (alert "Anzeige Gruppe Decke") (command "unisolateobjects") ) (princ) Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
cadffm Moderator 良い精神
Beiträge: 22275 Registriert: 03.06.2002 Alles
|
erstellt am: 25. Mai. 2016 07:32 <-- editieren / zitieren --> Unities abgeben: Nur für MARTINLE
Erst lässt du dir die Zeilen geben zum "leere Gruppen erstellen" und nun hängt es wieder an IF und SSGET oder dem Zugriff auf GruppenInfos? Schau dir doch bitte noch einmal IF und SSGET an, wenn du am englischen scheiterst: R14 hatte noch eine deutsche Lisp-Hilfe, die findest du im Lisp Forum beim suchen nach BUCH. "Ordentliche" Wege um aufbGruppenInfos zuzugreifen gibt es im Forum zB hier: http://forum.cad.de/foren/ubb/Forum145/HTML/003673.shtml (und Links beachten) Falls es noch immer undokumentiert ist: Wie die Objektwahl kann auch ssget auf Gruppen zugreifen, zusammen mit IF solltest du es doch auch selbst hinbekommen? ------------------ CAD on demand GmbH - Beratung und Programmierung rund um AutoCAD
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
MARTINLE Mitglied Tischler
Beiträge: 485 Registriert: 18.10.2007 AUTOCAD 2016, MS Windows7, 64-bit
|
erstellt am: 25. Mai. 2016 07:46 <-- editieren / zitieren --> Unities abgeben:
|
jupa Ehrenmitglied V.I.P. h.c. Ruheständler
Beiträge: 6052 Registriert: 16.09.2004 WINDOWS Vista Ultimate SP2 (64bit), NVIDIA Geforce 9600M GT, AutoCAD 2013.
|
erstellt am: 25. Mai. 2016 08:09 <-- editieren / zitieren --> Unities abgeben: Nur für MARTINLE
Hallo, ich kann Dein (Haupt-)Problem bei mir nicht nachstellen. Habe alle Elemente einer Gruppe mal gelöscht. Wenn der Code an dieser Gruppe angelangt ist, kommt zwar die irritierende Alert-Anzeige "Anzeige Gruppe xxx", obwohl alle Objekte der Zeichnung weiterhin angezeigt werden (ist ja nichts zum Isolieren da), aber nach der Ausgabe "Keine Objekte zum Aufheben der Isolierung verfügbar" läuft der Code anstandslos weiter zur nächsten Gruppe. Eine Fehlermeldung und Abbruch erhalte ich nur, wenn eine Gruppenname gar nicht existiert. Kannst Du das erst noch mal prüfen - oder ich habe Dich mißverstanden(?). Jürgen ------------------ Bildung kommt nicht vom Lesen, sondern vom Nachdenken über das Gelesene. (Carl Hilty) [Diese Nachricht wurde von jupa am 25. Mai. 2016 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
MARTINLE Mitglied Tischler
Beiträge: 485 Registriert: 18.10.2007 AUTOCAD 2016, MS Windows7, 64-bit
|
erstellt am: 25. Mai. 2016 08:21 <-- editieren / zitieren --> Unities abgeben:
Mensch Jürgen! Danke, dass du es getestet hast. Nach nochmaligen prüfen hab ich bei mir festgestellt, dass ich einen anderen Gruppenname in der Zeichnung verwendet habe. Jetzt läuft es wie geschmiert. Vielen Dank für deine Hilfe. lg. Martin Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
jupa Ehrenmitglied V.I.P. h.c. Ruheständler
Beiträge: 6052 Registriert: 16.09.2004 WINDOWS Vista Ultimate SP2 (64bit), NVIDIA Geforce 9600M GT, AutoCAD 2013.
|
erstellt am: 25. Mai. 2016 15:13 <-- editieren / zitieren --> Unities abgeben: Nur für MARTINLE
Zitat: Original erstellt von MARTINLE:
Ideal wäre auch, ...
Bin auch kein Programmierer, aber die folgenden (nur auf Funktionalität hingepfriemelten) Zeilen sollten nun der gewünschten Idealvorstellung entsprechen. In der ersten Programmzeile mußt Du noch alle gewünschten (gültigen!) Gruppennamen ergänzen (ich hab nur drei hingeschrieben). Für eine elgantere Lösung muß ich mich erst mal einlesen ... Code: (defun C:Isolategroup (/ gruppenliste ss) (setq gruppenliste '("Wand" "Sockel" "Täfelung")) (foreach X gruppenliste (command "_point" "0,0") (command "_erase" "_L" "") (command "_select" "_G" X "") (setq ss (ssget "_P")) (if ss (progn (command "_isolateobjects" "gr" X "") (alert (strcat "Anzeige Gruppe " X)) (command "_unisolateobjects") ) (alert (strcat "Gruppe " X " ist leer")) ) ) (princ) ) HTH Jürgen ------------------ Bildung kommt nicht vom Lesen, sondern vom Nachdenken über das Gelesene. (Carl Hilty) Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
MARTINLE Mitglied Tischler
Beiträge: 485 Registriert: 18.10.2007 AUTOCAD 2016, MS Windows7, 64-bit
|
erstellt am: 25. Mai. 2016 15:30 <-- editieren / zitieren --> Unities abgeben:
|