| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für SOLIDWORKS |
| |
| Hands-on 3D-Druck am 09.04.2024 in Hamm |
Autor
|
Thema: Dateieigenschaften mit Makro schreiben (3677 mal gelesen)
|
KB-Hamann Mitglied Konstrukteur für SG-Werkzeuge
Beiträge: 6 Registriert: 14.01.2019
|
erstellt am: 14. Jan. 2019 15:12 <-- editieren / zitieren --> Unities abgeben:
Hallo zusammen, nach 20Jahren SolidWorks hier nun mein erster Beitrag/Frage. Bis zur Version SW2017 habe ich Dateieigenschaften mit dem folgenden Code eingetragen: Dim boolstatus As Boolean Dim longstatus As Long, longwarnings As Long Dim dummySub main() Dim swApp As Object Set swApp = CreateObject("SldWorks.Application") swApp.Visible = True Set Model = swApp.ActiveDoc dummy = Model.AddCustomInfo("Status", "Text", "TestStatus") End Sub
Das scheint in SW2019 nicht mehr zu funktionieren. Kann da wohl jemand mit einen kleinen Tipp helfen? PS: das Beispiel ist nur ein kleiner Ausschnitt, der aber die noch nicht existierende Eigenschaft einträgt. Da das löschen der vorhandenen Einträge funktioniert, sollte dieses kleine Beispiel genügen. Der Code wurde 2001 aus einem Beispiel von Stefan Berlitz entnommen. Vielen Dank für Eure Mühe, Rainer
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
GDawg Ehrenmitglied V.I.P. h.c. Teamleiter FEM Simulation
Beiträge: 2622 Registriert: 12.07.2004 SolidWorks_2o2o SP3.o Win10_x64, Quadro_P2ooo. VisualStudio_2o19_Pro. FEM: Forge_NxT_HPC, ANSYS_WB. 3D-Printer: Ultimaker_2, Tinker_Gnome.
|
erstellt am: 14. Jan. 2019 15:31 <-- editieren / zitieren --> Unities abgeben: Nur für KB-Hamann
Hallo Rainer Funktioniert den dieser Code (der Code funktioniert in 2018sp3): Code:
Option Explicit Dim swApp As SldWorks.SldWorks Dim swModel As ModelDoc2 Dim swModelDocExt As ModelDocExtension Dim swCustProp As CustomPropertyManager Dim val As String Dim valout As String Dim bool As BooleanSub main() Set swApp = Application.SldWorks Set swModel = swApp.ActiveDoc Set swModelDocExt = swModel.Extension ' Get the custom property data Set swCustProp = swModelDocExt.CustomPropertyManager("") bool = swCustProp.Add3("FieldName", swCustomInfoText, "Test String", swCustomPropertyReplaceValue) bool = swCustProp.Get4("FieldName", False, val, valout) Debug.Print "Value: " & val Debug.Print "Evaluated value: " & valout Debug.Print "Up-to-date data: " & bool End Sub
------------------ 404 Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
KB-Hamann Mitglied Konstrukteur für SG-Werkzeuge
Beiträge: 6 Registriert: 14.01.2019
|
erstellt am: 14. Jan. 2019 15:50 <-- editieren / zitieren --> Unities abgeben:
Vielen Dank für die schnelle Hilfe, das bringt mich in jedem Fall weiter. Aktuell verfolgen wir hier eine Spur, die uns die Überarbeitung der alten Makros erspart. Über das Ergebnis werde ich informieren. Rainer Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
KB-Hamann Mitglied Konstrukteur für SG-Werkzeuge
Beiträge: 6 Registriert: 14.01.2019
|
erstellt am: 14. Jan. 2019 17:44 <-- editieren / zitieren --> Unities abgeben:
Hallo GDawg, der von mir verfolgte Weg war eine Sackgasse, mit deinem Code läuft das Rund. Bitte hilf mir doch noch einmal, denn das gleiche brauchen wir für Zeichnungen (.slddrw). Gruß Rainer Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
GDawg Ehrenmitglied V.I.P. h.c. Teamleiter FEM Simulation
Beiträge: 2622 Registriert: 12.07.2004 SolidWorks_2o2o SP3.o Win10_x64, Quadro_P2ooo. VisualStudio_2o19_Pro. FEM: Forge_NxT_HPC, ANSYS_WB. 3D-Printer: Ultimaker_2, Tinker_Gnome.
|
erstellt am: 16. Jan. 2019 09:09 <-- editieren / zitieren --> Unities abgeben: Nur für KB-Hamann
|
KB-Hamann Mitglied Konstrukteur für SG-Werkzeuge
Beiträge: 6 Registriert: 14.01.2019
|
erstellt am: 16. Jan. 2019 09:42 <-- editieren / zitieren --> Unities abgeben:
Ja, das funktioniert sogar sehr gut. Gerade habe ich die Zeile in meinem Code gefunden, die einen vorzeitigen Abbruch provozierte. Noch einmal vielen Dank dafür. Ich bin total überwältigt von diesem Forum, mit so einer schnellen Hilfe habe ich nicht gerechnet. Und das Beste: it works!!! Gruß Rainer Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
dwerbach Mitglied Feinwerkmechaniker
Beiträge: 2 Registriert: 06.05.2007 Intel Xeon CPU E5-2620, 2,1 GHz, 32 GB Ram, AMD FirePro W7000, Windows 7 Pro, Solidworks 2018 SP5
|
erstellt am: 08. Mrz. 2019 15:26 <-- editieren / zitieren --> Unities abgeben: Nur für KB-Hamann
Hallo zusammen, ich benutze auch schon seit Jahren ein Makro, um den Schriftkopf auf einer Zeichnung auszufüllen. Dieses habe ich vor langer Zeit aus diversen Makros zusammengebastelt. Seit dem Update von 2017 auf 2018 geht es nicht mehr. Vielleicht habe ich ja das selbe Problem wie du, Rainer. Kannst du mir bitte mal die Zeile hier posten, die bei dir die Probleme gemacht hat? Vielen Dank und viele Grüße Darius. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
KB-Hamann Mitglied Konstrukteur für SG-Werkzeuge
Beiträge: 6 Registriert: 14.01.2019
|
erstellt am: 08. Mrz. 2019 16:13 <-- editieren / zitieren --> Unities abgeben:
Hallo Darius, bei mir hat das wie oben schon geschrieben super funktioniert. Ich schreibe Dateieigenschaften in die Datei, diese werden dann im Schriftfeld-Block angezeigt. Hier noch mal im Einzelnen: Ich will die Dateieigenschaft "Status" als "Text" mit dem Wert "Teststatus" belegen. Zuerst mal die Eigenschaft löschen "Status" löschen > dummy = Model.DeleteCustomInfo("Status") Dann die Eigenschaft neu eintragen (im SW2017 - dummy = Model.AddCustomInfo("Status", "Text", "TestStatus") Jetzt: bool = swCustProp.Add3("Status", swCustomInfoText, "Teststatus", swCustomPropertyReplaceValue) bool = swCustProp.Get4("Status", False, val, valout) Debug.Print "Value: " & val Debug.Print "Evaluated value: " & valout Debug.Print "Up-to-date data: " & bool Das löschen der Eigenschaft und ein folgender Neueintrag ist sicherer als eine Eigenschaft zu ändern, die evtl. noch nicht vorhanden ist. Im besten Fall erscheint eine Fehlermeldung die gedeutet und behoben werden muß. Das löschen einer noch nicht vorhanden Eigenschaft geht ohne Fehlermeldung und der Neueintrag ist sicher. Hoffentlich hilft Dir das weiter. Leider kann ich nicht mehr dazu sagen, da die Version SW2019 schon wieder im Schrank verstaut ist und wir wieder mit SW2017 arbeiten werden. Viel Glück und starke Nerven, Rainer
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
dwerbach Mitglied Feinwerkmechaniker
Beiträge: 2 Registriert: 06.05.2007 Intel Xeon CPU E5-2620, 2,1 GHz, 32 GB Ram, AMD FirePro W7000, Windows 7 Pro, Solidworks 2018 SP5
|
erstellt am: 11. Mrz. 2019 05:23 <-- editieren / zitieren --> Unities abgeben: Nur für KB-Hamann
|
SLDW-FEM Mitglied Simulations-Ingenieur
Beiträge: 640 Registriert: 21.02.2005 Solidworks 2017+2019+20+22 SpaceClaim Windows 11 64bit HP-ZBook 32gbRAM NVIDIA
|
erstellt am: 12. Mrz. 2019 09:05 <-- editieren / zitieren --> Unities abgeben: Nur für KB-Hamann
Hallo KB-Hamann zur Zeit steigen viel auf swx2019-sp2 umd (bisher) zufrieden Du schreibst aber: Leider kann ich nicht mehr dazu sagen, da die Version SW2019 schon wieder im Schrank verstaut ist und wir wieder mit SW2017 arbeiten werden. Kannst Du bitte deine Probleme/KO-Kriterium besser beschreiben?
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
KB-Hamann Mitglied Konstrukteur für SG-Werkzeuge
Beiträge: 6 Registriert: 14.01.2019
|
erstellt am: 12. Mrz. 2019 09:45 <-- editieren / zitieren --> Unities abgeben:
Vor einigen Jahren habe ich noch Fehler / Bugs in der Software gemeldet und gemerkt das wohl niemand wirkliches Interesse daran hat. Dadurch hat sich eine Art der Frustration aufgebaut, die wir hier nur schwer überwinden konnten. Bewährt hat sich dann die Strategie alles hinzunehmen (zahlen und lächeln) und nicht weiter daran zu denken. Und: Es wirkt!!! Auch wenn es reichlich Gründe gegen diese Einstellung gibt, nutzen wir die Zeit lieber um Lösungen für unsere tägliche Konstruktionsarbeit zu finden. Trotzdem viel Spaß und Erfolg mit SWX2019
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |