| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für SOLIDWORKS |
| |
| Performance Tools für große Baugruppen & Zeichnungen |
Autor
|
Thema: Benutzerdefinierte Eigenschaften aus Modellen ins Excel auslesen und zurückschreiben (2854 mal gelesen)
|
Dorgar Mitglied
Beiträge: 5 Registriert: 23.03.2017 SolidWorks Premium 2017 SP5
|
erstellt am: 23. Mrz. 2017 15:36 <-- editieren / zitieren --> Unities abgeben:
Ich arbeite mit einem selbsterstellten Exceltool, das die Benutzerdefinierten Eigenschaften von Solidworks Kaufteilmodellen eines Verzeichnisses ausließt und mit der Kaufteildatenbank aus dem SAP vergleicht. Korrigierte Benutzerdefinierte Eigenschaften werden in die Modelle zurückgeschrieben. Das Auslesen und Zurückschreiben erfolgt mit Hilfe der Datei dsofile.dll von Microsoft. Das Auslesen und Zurückschreiben funktioniert seit der Solidworks Version 2015 nicht mehr, weil sich die Properties jetzt an anderer Stelle im Modell befinden, wie ich von unsere IT erfahren habe. Kann mir jemand sagen, wie ich an die Benutzerdefinierten Eigenschaften von Solidworks 2015 Modellen drankomme. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
dopplerm Ehrenmitglied V.I.P. h.c. Konstrukteur
Beiträge: 3592 Registriert: 11.02.2005 Win 10 SWX 2019 SP 5.0
|
erstellt am: 24. Mrz. 2017 09:07 <-- editieren / zitieren --> Unities abgeben: Nur für Dorgar
|
Dorgar Mitglied
Beiträge: 5 Registriert: 23.03.2017 SolidWorks Premium 2017 SP5
|
erstellt am: 24. Mrz. 2017 09:52 <-- editieren / zitieren --> Unities abgeben:
|
StefanBerlitz Guter-Geist-Moderator IT Admin (CAx)
Beiträge: 8756 Registriert: 02.03.2000 SunZu sagt: Analysiere die Vorteile, die du aus meinem Ratschlag ziehst. Dann gliedere deine Kräfte entsprechend und mache dir außergewöhnliche Taktiken zunutze.
|
erstellt am: 24. Mrz. 2017 11:10 <-- editieren / zitieren --> Unities abgeben: Nur für Dorgar
Hallo Dorgar, ich hab gerade bei Martin im Beitrag den Link korrigiert, ich befürchte aber, das ist nicht das, was du meinst. Um Dateieigenschaften durch ein externes Tool auszulesen/zu setzen benutzt du ab der SW2015 nicht mehr dsofile.dll, sondern den SolidWorks Document Manager. Infos dazu findest du in der passenden Hilfedatei oder online unter http://help.solidworks.com/2017/english/api/swdocmgrapi/gettingstarted-swdocmgrapi.html Hier ist auch beschrieben, was du machen musst, um an einen Entwicklerschlüssel zu kommen, das geht mittlerweile recht einfach und automatisiert. Darin gibt es die verschiedenen Calls, mit denen du Dateieigenschaften (auch konfigurationsspezifisch) lesen und schreiben kannst, z.B. ISwDocument.AddCustomProperty, ISwDocument.SetCustomProperty, ISwDocument.DeleteCustomProperty oder auch ISwDMDocument3.GetAllCustomPropertyNamesAndValues Ciao, Stefan ------------------ Inoffizielle deutsche SolidWorks Hilfeseite http://solidworks.cad.de Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Dorgar Mitglied
Beiträge: 5 Registriert: 23.03.2017 SolidWorks Premium 2017 SP5
|
erstellt am: 24. Mrz. 2017 12:35 <-- editieren / zitieren --> Unities abgeben:
|
dopplerm Ehrenmitglied V.I.P. h.c. Konstrukteur
Beiträge: 3592 Registriert: 11.02.2005 Win 10 SWX 2019 SP 5.0
|
erstellt am: 24. Mrz. 2017 14:04 <-- editieren / zitieren --> Unities abgeben: Nur für Dorgar
|
Nickel3011 Mitglied
Beiträge: 71 Registriert: 13.06.2014 Solid Works Premium 2017 x64-Edition SP 5.0 PC-Info: Windows 7; RAM 32Gb; NVIDIA Quadro M4000
|
erstellt am: 28. Mrz. 2017 08:17 <-- editieren / zitieren --> Unities abgeben: Nur für Dorgar
Hallo Leute, wir haben ein Makro zur Steuerung unserer Baugruppen im Einsatz, nun bin ich auch gerade dabei den Dateinamen aus den benutzerdefinierten Eigenschaften mit VBA auszulesen und diesen Wert in eine Excelzelle auszugeben, das funktioniert bescheiden. Ich bin leider ein totaler Laie was VBA angeht aber versuche mein Bestens . Nun die genaue Funktion die ich mir erhoffe. Im Makro auf den Button "Dateinamen anpassen" klicken somit werden der Dateiname von einer Baugruppe sowie von den darunter liegenden Dokumenten in die Spalte Dokumentnamen eingetragen. (Siehe Bild im Anhang) Einen kleinen Ansatz habe ich mal gestartet, denke aber dass hier noch irgendwas faul ist. Private Sub CommandButton2_Click() Set swApp = GetObject(, "SldWorks.Application") Set Model = swApp.ActiveDoc retval = ModelDoc2.GetCustomInfoValue(dateiname) Sheets("Eingabe").Range("C20").value = "retval" End Sub Vielen Dank schon mal für eure Hilfe [Diese Nachricht wurde von Nickel3011 am 28. Mrz. 2017 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
StefanBerlitz Guter-Geist-Moderator IT Admin (CAx)
Beiträge: 8756 Registriert: 02.03.2000 SunZu sagt: Analysiere die Vorteile, die du aus meinem Ratschlag ziehst. Dann gliedere deine Kräfte entsprechend und mache dir außergewöhnliche Taktiken zunutze.
|
erstellt am: 28. Mrz. 2017 09:20 <-- editieren / zitieren --> Unities abgeben: Nur für Dorgar
Hallo Nickel3011, Zitat: Original erstellt von Nickel3011: Nun die genaue Funktion die ich mir erhoffe. Im Makro auf den Button "Dateinamen anpassen" klicken somit werden der Dateiname von einer Baugruppe sowie von den darunter liegenden Dokumenten in die Spalte Dokumentnamen eingetragen. (Siehe Bild im Anhang)
Da bin ich mir schon gleich das erste mal nicht sicher: willst du dort den Dateinamen der Dokumente eintragen oder den Wert einer Dateieigenschaft namens "Dateiname" - das ist schon ein Unterschied. Dein Code unten lässt auf letzteres schließen, deine Ausdrucksweise eher auf das erste ... Zitat: Original erstellt von Nickel3011: Einen kleinen Ansatz habe ich mal gestartet, denke aber dass hier noch irgendwas faul ist.Private Sub CommandButton2_Click() Set swApp = GetObject(, "SldWorks.Application") Set Model = swApp.ActiveDoc retval = ModelDoc2.GetCustomInfoValue(dateiname) Sheets("Eingabe").Range("C20").value = "retval" End Sub
So wie ich das sehe kann es in der dritten Zeile mit dem Auslesen der Dateieigenschaft nicht klappen, da bekommst du vermutlich einen Fehler. Der Call ModelDoc2.GetCustomInfoValue benötigt laut API-Hilfe zwei Paramter, zunächst den Konfigurationsnamen, dann den Namen der Dateieigenschaft. Wenn du auf benutzerdefinierte Dateieigenschaften gehen willst setzt du den Konfigurationsnamen als "", sonst den Konfigurationsnamen. Dann nimmst du dort eine Variable namens dateiname, was hat die für einen Wert? Wenn das dann geht wird in deiner Zelle C20 retval drinstehen, nicht der Wert den du vorher ermittelt hast. Wenn du dort den Wert der Variablen retval drin stehen haben möchtest musst du die Hochkommas drumherum schon weglassen. Zitat: Original erstellt von Nickel3011: Ich bin leider ein totaler Laie was VBA angeht aber versuche mein Bestens
Ich würde an deiner Stelle dann am Anfang beginnen und erst mal ein bisschen VBA-Grundlagenwissen anhäufen. Da gibt es online schöne Kurse, auch auf Youtube, damit du nicht schon bei solchen einfachen Dingen wie oben Fehlermeldungen bekommst und nur noch Bahnhof verstehst. Ciao, Stefan PS: schau auch mal hier und hier rein PPS: ist nicht nett, den Thread von jemand anderem zu shanghaien ------------------ Inoffizielle deutsche SolidWorks Hilfeseite http://solidworks.cad.de Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Nickel3011 Mitglied
Beiträge: 71 Registriert: 13.06.2014 Solid Works Premium 2017 x64-Edition SP 5.0 PC-Info: Windows 7; RAM 32Gb; NVIDIA Quadro M4000
|
erstellt am: 28. Mrz. 2017 09:34 <-- editieren / zitieren --> Unities abgeben: Nur für Dorgar
Hallo Stefan, Danke für deine Antwort, Zeile wird jetzt befüllt . Werde mich mal in nächster Zeit öfter mit VBA beschäftigen, ist ein sehr interessantes Thema. Ich habe deinen Wink mit den Links verstanden, war aber nicht meine Absicht ein fertiges Programm zu erhalten sondern nur einen Schubser in die richtige Richtung Viele Grüße Nickel P.S. Wollte zum selben Thema keinen extra Thread eröffnen. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
| Konstrukteur (m/w/d) Maschinenbau | Menschen und Technologien zu verbinden, den Perfect Match für unsere Kunden zu gestalten, immer die richtigen Expert:innen für die jeweilige Herausforderung zu finden - das ist unser Anspruch bei FERCHAU und dafür suchen wir dich: als ambitionierte:n Kolleg:in, der:die wie wir Technologien auf die nächste Stufe bringen möchte. Wir realisieren spannende Projekte für namhafte Kunden in allen Technologiebereichen und für alle Branchen und übernehmen Verantwortung für komplexe Entwicklungsprojekte.... | Anzeige ansehen | Konstruktion, Visualisierung |
|
StefanBerlitz Guter-Geist-Moderator IT Admin (CAx)
Beiträge: 8756 Registriert: 02.03.2000 SunZu sagt: Analysiere die Vorteile, die du aus meinem Ratschlag ziehst. Dann gliedere deine Kräfte entsprechend und mache dir außergewöhnliche Taktiken zunutze.
|
erstellt am: 28. Mrz. 2017 09:46 <-- editieren / zitieren --> Unities abgeben: Nur für Dorgar
Zitat: Original erstellt von Nickel3011: Werde mich mal in nächster Zeit öfter mit VBA beschäftigen, ist ein sehr interessantes Thema. Ich habe deinen Wink mit den Links verstanden, war aber nicht meine Absicht ein fertiges Programm zu erhalten sondern nur einen Schubser in die richtige Richtung
Das ist prima, und Schubser geben hier eine Menge Leute sehr gerne. Automatisierung ist schon eine sehr spannende Sache und in meinen Augen auch in jedem Fall lohnenswert. Ciao, Stefan ------------------ Inoffizielle deutsche SolidWorks Hilfeseite http://solidworks.cad.de Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |