Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  Lisp
  ssget für Daten einer Applikation

Antwort erstellen  Neues Thema erstellen
CAD.de Login | Logout | Profil | Profil bearbeiten | Registrieren | Voreinstellungen | Hilfe | Suchen

Anzeige:

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen nächster neuer Beitrag | nächster älterer Beitrag
  
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



Sehen Sie sich das Profil von archi.archi an!   Senden Sie eine Private Message an archi.archi  Schreiben Sie einen Gästebucheintrag für archi.archi

Beiträge: 79
Registriert: 08.10.2010

Windows 10
AutoCAD 2023
Revit 2023

erstellt am: 10. Nov. 2022 15:21    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

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
良い精神




Sehen Sie sich das Profil von cadffm an!   Senden Sie eine Private Message an cadffm  Schreiben Sie einen Gästebucheintrag für cadffm

Beiträge: 21570
Registriert: 03.06.2002

Alles

erstellt am: 10. Nov. 2022 15:35    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für archi.archi 10 Unities + Antwort hilfreich

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



Sehen Sie sich das Profil von archi.archi an!   Senden Sie eine Private Message an archi.archi  Schreiben Sie einen Gästebucheintrag für archi.archi

Beiträge: 79
Registriert: 08.10.2010

Windows 10
AutoCAD 2023
Revit 2023

erstellt am: 10. Nov. 2022 16:01    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities


Zeichnung1.dwg

 
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
良い精神




Sehen Sie sich das Profil von cadffm an!   Senden Sie eine Private Message an cadffm  Schreiben Sie einen Gästebucheintrag für cadffm

Beiträge: 21570
Registriert: 03.06.2002

Alles

erstellt am: 10. Nov. 2022 17:40    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für archi.archi 10 Unities + Antwort hilfreich


uploadname221110.JPG

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



Sehen Sie sich das Profil von archi.archi an!   Senden Sie eine Private Message an archi.archi  Schreiben Sie einen Gästebucheintrag für archi.archi

Beiträge: 79
Registriert: 08.10.2010

Windows 10
AutoCAD 2023
Revit 2023

erstellt am: 10. Nov. 2022 19:40    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities


20221110_1.jpg

 
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
良い精神




Sehen Sie sich das Profil von cadffm an!   Senden Sie eine Private Message an cadffm  Schreiben Sie einen Gästebucheintrag für cadffm

Beiträge: 21570
Registriert: 03.06.2002

Alles

erstellt am: 10. Nov. 2022 21:41    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für archi.archi 10 Unities + Antwort hilfreich

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



Sehen Sie sich das Profil von archi.archi an!   Senden Sie eine Private Message an archi.archi  Schreiben Sie einen Gästebucheintrag für archi.archi

Beiträge: 79
Registriert: 08.10.2010

Windows 10
AutoCAD 2023
Revit 2023

erstellt am: 27. Mrz. 2023 11:15    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo Miteinander,

vor kurzem habe ich ein sehr mächtiges Python-Werkzeug entdeckt, mit dem sämtliche dwg-"Innereien" (Symbol Tables, Dictionaries, Database ...) schön übersichtlich analysiert und wohl auch manipuliert (?) werden können:

https://github.com/chuongmep/CadPythonShell

Funktioniert ähnlich wie z.B. RevitLookup.

https://github.com/chuongmep/CadPythonShell/raw/dev/Images/SnoopDB.png

Python - auch immer wieder schön!

Beste Grüße

Archi

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Anzeige.:

Anzeige: (Infos zum Werbeplatz >>)

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen

nächster neuerer Beitrag | nächster älterer Beitrag
Antwort erstellen


Diesen Beitrag mit Lesezeichen versehen ... | Nach anderen Beiträgen suchen | CAD.de-Newsletter

Administrative Optionen: Beitrag schliessen | Archivieren/Bewegen | Beitrag melden!

Fragen und Anregungen: Kritik-Forum | Neues aus der Community: Community-Forum

(c)2023 CAD.de | Impressum | Datenschutz