| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte |
Autor
|
Thema: ssget für Daten einer Applikation (630 mal gelesen)
|
archi.archi Mitglied
Beiträge: 79 Registriert: 08.10.2010 Windows 10 AutoCAD 2023 Revit 2023
|
erstellt am: 10. Nov. 2022 15:21 <-- editieren / zitieren --> Unities abgeben:
Hallo Miteinander, das Filtern von Objekten mit Daten einer Applikation funktioniert leider nicht. Die Applikation schreibt die Daten als ACAD_XDICTIONARY: Objekt wählen: ((-1 . <Objektname: 2373f938f50> ) (0 . "LINE") (5 . "3425") (102 . "{ACAD_XDICTIONARY") (360 . <Objektname: 2373f938f60> ) (102 . "}") (330 . <Objektname: 2373f94cb70> ) (100 . "AcDbEntity") (67 . 0) (410 . "Model") (8 . "0") (100 . "AcDbLine") (10 -235.411 619.888 0.0) (11 152.503 628.73 0.0) (210 0.0 0.0 1.0)) Ein ssget-Aufruf: Befehl: (setq ele_list (ssget "X" '((0 . "LINE")(410 . "Model")(102 . "{ACAD_XDICTIONARY")))) ergibt leider nil Wie können also alle Linien im Modell mit Applikations-Daten (102 . "{ACAD_XDICTIONARY") gefiltert werden? Beste Grüße archi Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
cadffm Moderator 良い精神
Beiträge: 21570 Registriert: 03.06.2002 Alles
|
erstellt am: 10. Nov. 2022 15:35 <-- editieren / zitieren --> Unities abgeben: Nur für archi.archi
DAS (setq ele_list (ssget "X" '((0 . "LINE")(410 . "Model")(102 . "{ACAD_XDICTIONARY")))) würde dir ja alle möglichen Linien finden, nicht nur die Linien welche auf (360 . <Objektname: 2373f938f60> ) verweisen. Aber: Es geht ohnehin nicht. über ssget, dafür musst du einen anderen Weg gehen. Entweder du findest dort <Objektname: 2373f938f60> eine Liste von Entites um die es geht, oder aber du musst alle Linien auswählen und überprüfen ob auf <Objektname: 2373f938f60> verwiesen wird. Einen direkten Filter dazu kann man nicht erstellen. Q: Ist das wirklich die vollständige Entitylist oder fehlen da die erweiterten Daten - über die man dann filtern könnte? (assoc -3 (entget (car(nentsel)) '("*"))) Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
archi.archi Mitglied
Beiträge: 79 Registriert: 08.10.2010 Windows 10 AutoCAD 2023 Revit 2023
|
erstellt am: 10. Nov. 2022 16:01 <-- editieren / zitieren --> Unities abgeben:
Hallo cadffm, genau alle Linien (Blöcke, ...) mit Applikationsdaten möchte ich auswählen. Aber (setq ele_list (ssget "X" '((0 . "LINE")(410 . "Model")(102 . "{ACAD_XDICTIONARY")))) wählt nicht alle Linien mit ACAD_XDICTIONARY, sondern führt zu einem leeren Auswahlsatz. Warum? Als Anlage ein dwg-Beispiel: (setq ele_list (ssget "X" '((102 . "{ACAD_XDICTIONARY")))) wählt nur die Polylinie und den 3D-Volumenkörper, nicht aber die Linie und den Block. Beste Grüße archi
[Diese Nachricht wurde von archi.archi am 10. Nov. 2022 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
cadffm Moderator 良い精神
Beiträge: 21570 Registriert: 03.06.2002 Alles
|
erstellt am: 10. Nov. 2022 17:40 <-- editieren / zitieren --> Unities abgeben: Nur für archi.archi
>>"genau alle Linien (Blöcke, ...) mit Applikationsdaten möchte ich auswählen."Schon klar. >>"sondern führt zu einem leeren Auswahlsatz. Warum?" Dazu bestätigte ich ja bereits das ssget die nicht kann. >>"(setq ele_list (ssget "X" '((102 . "{ACAD_XDICTIONARY")))) wählt nur die Polylinie und den 3D-Volumenkörper," Wow, das wußte ich nicht. Wieder etwas "Unnützes" gelernt, DANKE! Da '(102 . "{ACAD_XDICTIONARY")' als Filter ja recht schlecht ist: Muss ja NICHTS mit deiner Applikation zutun haben, kann ja auch von allem anderen kommen. Daher ist mir das mit Polylinien und 3D-VK nie aufgefallen. cool
Es bleibst dabei: Entweder alle Objekte des gewünschten Typ auswählen und prüfen ob die Eigenschaften dem entsprechen was du suchst, oder du gehst die Dictionarys durch und sammelst die Handle ein von den "liNearObjectDict" dictionarys. - OFFtopic bitte achte auf die Dateinamen der Uploads "Zeichnung1.dwg" => die Chance diese wieder zu überschreiben ist sehr hoch und man versteht dann in den älteren Themen nur noch Bahnhof (weil die Datei dann nicht mehr zur Konversation passt) Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
archi.archi Mitglied
Beiträge: 79 Registriert: 08.10.2010 Windows 10 AutoCAD 2023 Revit 2023
|
erstellt am: 10. Nov. 2022 19:40 <-- editieren / zitieren --> Unities abgeben:
Hallo cadffm, soweit ist jetzt alles geklärt. Da den Objekten über einen Applikations-Befehl die ACAD_XDICTIONARY-Daten (leer) kurz vor meiner geplanten Manipulation (Excel Ex- und Import) zugewiesen werden, ist eigentlich sichergestellt, dass alle Objekte auch leere ACAD_XDICTIONARY-Daten enthalten. Also keine Probleme mit der Auswertung der "liNearObjectDict" dictionarys. Was ist an (102 . "{ACAD_XDICTIONARY") so besonders, dass es mit ssget nicht bei allen Objekten funktioniert? Kann man evtl. auch auf "liNearObjectDict" dictionarys zugreifen, die nicht an Objekten dranhängen, sondern in der Zeichnungs-Datenbank irgendwie abgelegte sind (Definitionen wie die "Komponenten" lt. Anlage)? Danke für den Tip mit den Dateinamen. Beste Grüße archi
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
cadffm Moderator 良い精神
Beiträge: 21570 Registriert: 03.06.2002 Alles
|
erstellt am: 10. Nov. 2022 21:41 <-- editieren / zitieren --> Unities abgeben: Nur für archi.archi
Nur kurzes Feedback: Was daran besonders ist: SSGET kann man nicht für alle Gruppencodes nutzen, da geht es nicht um besonders oder normal. Besonders ist für mich aber dieser MIR neue Fall "bei einem Objekttyp geht es, beim anderen nicht" Daher mein WOW. Und dictionarys kannst du alle auslesen. liNEAR-Irgendwas Daten: Da kann ich keine pauschale Antwort geben, da benötige ich selbst ein konkretes Beispiel um nachzusehen. Kleinste"leerste" DWG mit Screenshot von den dargestellten Daten um die es dir geht. Also wie dein letzter Screenshot zB., passend zur Beispiel DWG, einfach damit klar ist wonach man suchen muss. Falls ich Zeit dafür finde poste ich mehr dazu.
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
archi.archi Mitglied
Beiträge: 79 Registriert: 08.10.2010 Windows 10 AutoCAD 2023 Revit 2023
|
erstellt am: 27. Mrz. 2023 11:15 <-- editieren / zitieren --> Unities abgeben:
|