| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für SOLIDWORKS |
| |
| Wütschner Technologie-Tage, eine Veranstaltung am 17.10.2024
|
Autor
|
Thema: API Solidworks sldlfp benutzerdef Eigenschaften (2202 mal gelesen)
|
ThoMay Ehrenmitglied V.I.P. h.c. Konstrukteur
Beiträge: 5260 Registriert: 15.04.2007 SWX 2019 Windows 10 x64
|
erstellt am: 20. Apr. 2015 12:23 <-- editieren / zitieren --> Unities abgeben:
Hallo Gemeinde. Es stellt sich mir die Aufgabe bei den Bibliothesteile für Schweißkonstruktion die benutzerdefinierte Eigenschaft "Description" in Halbzeug umzubenennen. Per Hand mit öfnen und umbenennen recht langwierdig und mühsam. Hat jemand Lust mir die bei dieser Arbeit per Makro behilflich zu sein? Mein Programmierkenntnisse gehen gegen Null. Die verschiedenen Programme welche mit Excel arbeiten lassen sich auf Biliotheksfeature nicht anwenden. Schön wäre es, wenn diese Eigenschaften in dem Entsprechenden Ordner auf alle Dateien zugreifen würde und dort entsprechend ändern. ChangeCustemProperties läßt sich auch nicht einsetzen. Gruß ThoMay
------------------ Hast du Fragen? Brauchst du Schaut mal nach im Bereich Alle Foren => Wissenstransfer. oder Konstrukteure Online hier bei CAD.de Richtig fragen - Nettiquette - Konstruktionshilfen - Systeminfo - Unities - CAD Freeware - Forenübersicht - 3D Modelle - SolidWorks Videos Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Carsten1210 Mitglied staatl. geprüfter Holztechniker
Beiträge: 1358 Registriert: 24.07.2002 AutoCAD ACA 2019 Solidworks 2021 Sp5.1 Enterprise PDM 2021 Sp5 Pascam Woodworks Visual Studio 2017 Pro Windows 10 64Bit Dell T3620 Intel Core i7-7700K 16 GB Arbeitsspeicher 2x Dell Ultrasharp U2415 Dell M4800
|
erstellt am: 20. Apr. 2015 14:42 <-- editieren / zitieren --> Unities abgeben: Nur für ThoMay
Hi ThoMay, Hier mal was auf die schnelle (Ohne Fehlerabfang und Kommentare):
Code: Dim swApp As Object Dim ModelDoc As Object Sub main() Set swApp = Application.SldWorks Dim FileName As String Dim Errors As Long Errors = 0 Dim Warnings As Long Warnings = 0 Dim strOrdnerName As String Dim strName As String Dim intz As Integer strOrdnerName = "D:\09-01 Flach-Profile\" ''<== Hier Ordner angeben strName = Dir(strOrdnerName & "*.sldlfp") Do While strName <> "" FileName = strOrdnerName & strName If FileName = strOrdnerName Then Exit Do End If Set ModelDoc = swApp.OpenDoc6(FileName, 1, 0, "", Errors, Warnings) swApp.ActivateDoc2 strName, False, Errors Dim boolstatus As Boolean boolstatus = ModelDoc.DeleteCustomInfo("Description") boolstatus = ModelDoc.AddCustomInfo("Description", "Text", "Halbzeug") longstatus = ModelDoc.SaveAs3(FileName, 0, 2) Dim Titel As String Titel = ModelDoc.GetTitle swApp.CloseDoc Titel strName = Dir Loop End Sub
Gruß, Carsten Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
jörg.jwd Ehrenmitglied V.I.P. h.c. CAD-PDM Administrator
Beiträge: 3109 Registriert: 05.11.2003
|
erstellt am: 20. Apr. 2015 15:03 <-- editieren / zitieren --> Unities abgeben: Nur für ThoMay
Hallo ThoMay, kleiner allgemeiner Tipp: wenn ich nicht so richtig weiß wie anfangen lasse ich mir ein Makro aufzeichnen mit dem was SolidWorks mit meinem Makro nachher tun soll (zeichnet "fast" alles auf was ich manuell mache). Somit gibt's dann schon mal ein "Gerüst" als Start. ------------------ Grüße Jörg da ich weiß daß ich nichts weiß weiß ich immer noch mehr als die die nicht wissen daß sie nichts wissen (weiß nicht von wem) Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
ThoMay Ehrenmitglied V.I.P. h.c. Konstrukteur
Beiträge: 5260 Registriert: 15.04.2007 SWX 2019 Windows 10 x64
|
erstellt am: 20. Apr. 2015 18:36 <-- editieren / zitieren --> Unities abgeben:
|
ThoMay Ehrenmitglied V.I.P. h.c. Konstrukteur
Beiträge: 5260 Registriert: 15.04.2007 SWX 2019 Windows 10 x64
|
erstellt am: 20. Apr. 2015 19:46 <-- editieren / zitieren --> Unities abgeben:
|
Carsten1210 Mitglied staatl. geprüfter Holztechniker
Beiträge: 1358 Registriert: 24.07.2002 AutoCAD ACA 2019 Solidworks 2021 Sp5.1 Enterprise PDM 2021 Sp5 Pascam Woodworks Visual Studio 2017 Pro Windows 10 64Bit Dell T3620 Intel Core i7-7700K 16 GB Arbeitsspeicher 2x Dell Ultrasharp U2415 Dell M4800
|
erstellt am: 20. Apr. 2015 20:28 <-- editieren / zitieren --> Unities abgeben: Nur für ThoMay
|
ThoMay Ehrenmitglied V.I.P. h.c. Konstrukteur
Beiträge: 5260 Registriert: 15.04.2007 SWX 2019 Windows 10 x64
|
erstellt am: 20. Apr. 2015 20:35 <-- editieren / zitieren --> Unities abgeben:
|
Carsten1210 Mitglied staatl. geprüfter Holztechniker
Beiträge: 1358 Registriert: 24.07.2002 AutoCAD ACA 2019 Solidworks 2021 Sp5.1 Enterprise PDM 2021 Sp5 Pascam Woodworks Visual Studio 2017 Pro Windows 10 64Bit Dell T3620 Intel Core i7-7700K 16 GB Arbeitsspeicher 2x Dell Ultrasharp U2415 Dell M4800
|
erstellt am: 21. Apr. 2015 06:42 <-- editieren / zitieren --> Unities abgeben: Nur für ThoMay
Hi ThoMay, Hier noch mal der angepasste Code.
Code: Dim swApp As Object Dim ModelDoc As Object Sub main() Set swApp = Application.SldWorks Dim FileName As String Dim Errors As Long Errors = 0 Dim Warnings As Long Warnings = 0 Dim strOrdnerName As String Dim strName As String Dim intz As Integer strOrdnerName = "D:\09-01 Flach-Profile\" strName = Dir(strOrdnerName & "*.sldlfp") Do While strName <> "" FileName = strOrdnerName & strName If FileName = strOrdnerName Then Exit Do End If Set ModelDoc = swApp.OpenDoc6(FileName, 1, 0, "", Errors, Warnings) swApp.ActivateDoc2 strName, False, Errors Dim val As String Dim valout As String Dim boolstatus As Boolean Set swModelDocExt = ModelDoc.Extension Set swCustProp = swModelDocExt.CustomPropertyManager("") boolstatus = swCustProp.Get4("Description", False, val, valout) boolstatus = ModelDoc.DeleteCustomInfo("Description") boolstatus = ModelDoc.AddCustomInfo("Description", "Text", "Halbzeug " & val) boolstatus = swCustProp.Get4("Description", False, val, valout) longstatus = ModelDoc.SaveAs3(FileName, 0, 2) Debug.Print (strName & " ==> " & val & " ==> " & valout) Dim Titel As String Titel = ModelDoc.GetTitle swApp.CloseDoc Titel strName = Dir Loop End Sub
Bei der Zeile strOrdnerName = "D:\09-01 Flach-Profile\" hattest du aber deinen Pfad eingetragen, oder?! Bei läuft das ohne Fehler durch und ändert die Eigenschaft in "Halbzeug " & dem vorherigen Text. Mach mal eine Kopie von einem Ordner der Profile und lass das Makro drüber laufen. Gruß, Carsten Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
ThoMay Ehrenmitglied V.I.P. h.c. Konstrukteur
Beiträge: 5260 Registriert: 15.04.2007 SWX 2019 Windows 10 x64
|
erstellt am: 21. Apr. 2015 09:14 <-- editieren / zitieren --> Unities abgeben:
|
Carsten1210 Mitglied staatl. geprüfter Holztechniker
Beiträge: 1358 Registriert: 24.07.2002 AutoCAD ACA 2019 Solidworks 2021 Sp5.1 Enterprise PDM 2021 Sp5 Pascam Woodworks Visual Studio 2017 Pro Windows 10 64Bit Dell T3620 Intel Core i7-7700K 16 GB Arbeitsspeicher 2x Dell Ultrasharp U2415 Dell M4800
|
erstellt am: 21. Apr. 2015 09:19 <-- editieren / zitieren --> Unities abgeben: Nur für ThoMay
|
jörg.jwd Ehrenmitglied V.I.P. h.c. CAD-PDM Administrator
Beiträge: 3109 Registriert: 05.11.2003
|
erstellt am: 21. Apr. 2015 09:23 <-- editieren / zitieren --> Unities abgeben: Nur für ThoMay
Hallo ThoMay, ich würde auch nicht mit Laufwerksbuchstaben arbeiten sondern immer mit absolutem Pfad. ------------------ Grüße Jörg da ich weiß daß ich nichts weiß weiß ich immer noch mehr als die die nicht wissen daß sie nichts wissen (weiß nicht von wem) Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Christian_W Ehrenmitglied V.I.P. h.c. Konstrukteur (Dipl-Ing)
Beiträge: 3256 Registriert: 04.04.2001 CSWP 12/2015<P>SWX2021sp5 Win10/11 (SWX2016, SWX2012) proAlpha6.2e00/calinkV9 (Tactonworks) (Medusa7, NesCAD2010, solidEdge19)
|
erstellt am: 21. Apr. 2015 09:45 <-- editieren / zitieren --> Unities abgeben: Nur für ThoMay
Zitat: ... boolstatus = swCustProp.Get4("Description", False, val, valout) boolstatus = ModelDoc.DeleteCustomInfo("Description") boolstatus = ModelDoc.AddCustomInfo("Description", "Text", "Halbzeug " & val)
Hallo, du liest "Description", löscht "Description" und fügst dann wieder "Description" ein. Mich wundert es nicht, dass dann auch wieder "Description" drin ist ... ich würde probieren boolstatus = ModelDoc.AddCustomInfo("Halbzeug", "Text", val) allerdings würde ich "Description" drin lassen und wenn wirklich benötigt einfach "Halbzeug" hinzufügen. Gruß, Christian
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
ThoMay Ehrenmitglied V.I.P. h.c. Konstrukteur
Beiträge: 5260 Registriert: 15.04.2007 SWX 2019 Windows 10 x64
|
erstellt am: 21. Apr. 2015 11:59 <-- editieren / zitieren --> Unities abgeben:
|
Carsten1210 Mitglied staatl. geprüfter Holztechniker
Beiträge: 1358 Registriert: 24.07.2002 AutoCAD ACA 2019 Solidworks 2021 Sp5.1 Enterprise PDM 2021 Sp5 Pascam Woodworks Visual Studio 2017 Pro Windows 10 64Bit Dell T3620 Intel Core i7-7700K 16 GB Arbeitsspeicher 2x Dell Ultrasharp U2415 Dell M4800
|
erstellt am: 21. Apr. 2015 12:07 <-- editieren / zitieren --> Unities abgeben: Nur für ThoMay
Hi, Ich lösche den Eintrag bewusst da es öfter vorkommt das Solidworks sonst den Eintrag nicht ändert. Von daher dürfte es nichts ausmachen wenn ich die erst lese, lösche und danach neu erstelle. Damit ist auf jeden Fall sicher gestellt das der Eintrag geändert wurde. Gruß, Carsten Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Christian_W Ehrenmitglied V.I.P. h.c. Konstrukteur (Dipl-Ing)
Beiträge: 3256 Registriert: 04.04.2001 CSWP 12/2015<P>SWX2021sp5 Win10/11 (SWX2016, SWX2012) proAlpha6.2e00/calinkV9 (Tactonworks) (Medusa7, NesCAD2010, solidEdge19)
|
erstellt am: 21. Apr. 2015 13:01 <-- editieren / zitieren --> Unities abgeben: Nur für ThoMay
Zitat: ... Ich lösche den Eintrag bewusst da es öfter vorkommt das Solidworks sonst den Eintrag nicht ändert...
Mir war bisher nur aufgefallen, dass der Eintrag zwar per makro geändert wird, die Verwendung im Schriftfeld aber erst nach rebuild angezeigt wird. Das sieht dann auch erstmal so aus, als wäre nichts passiert ... meinst du das, oder wird er tatsächlich manchmal nicht geändert? Gruß, Christian
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Carsten1210 Mitglied staatl. geprüfter Holztechniker
Beiträge: 1358 Registriert: 24.07.2002 AutoCAD ACA 2019 Solidworks 2021 Sp5.1 Enterprise PDM 2021 Sp5 Pascam Woodworks Visual Studio 2017 Pro Windows 10 64Bit Dell T3620 Intel Core i7-7700K 16 GB Arbeitsspeicher 2x Dell Ultrasharp U2415 Dell M4800
|
erstellt am: 21. Apr. 2015 13:15 <-- editieren / zitieren --> Unities abgeben: Nur für ThoMay
|
jörg.jwd Ehrenmitglied V.I.P. h.c. CAD-PDM Administrator
Beiträge: 3109 Registriert: 05.11.2003
|
erstellt am: 21. Apr. 2015 13:39 <-- editieren / zitieren --> Unities abgeben: Nur für ThoMay
Zitat: Original erstellt von Christian_W:
Mir war bisher nur aufgefallen, dass der Eintrag zwar per makro geändert wird, die Verwendung im Schriftfeld aber erst nach rebuild angezeigt wird. Das sieht dann auch erstmal so aus, als wäre nichts passiert ... meinst du das, oder wird er tatsächlich manchmal nicht geändert? Gruß, Christian
Hallo Christian, häng doch einfach am Ende noch einen ForceRebuild3 dran, dann kommt die Änderung auch gleich im Schriftfeld.
------------------ Grüße Jörg da ich weiß daß ich nichts weiß weiß ich immer noch mehr als die die nicht wissen daß sie nichts wissen (weiß nicht von wem) Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
bk.sc Ehrenmitglied V.I.P. h.c. Konstrukteur Sondermaschinenbau
Beiträge: 2795 Registriert: 18.07.2012 -Solid Works 2019 SP5 -Pro Engineer WF 3
|
erstellt am: 21. Apr. 2015 13:47 <-- editieren / zitieren --> Unities abgeben: Nur für ThoMay
Hallo zusammen, Zitat: Das mit dem nicht ändern ist bei uns vorgekommen, aus dem Grund machen wir es mit dem löschen und neu anlegen. Wir haben es dann auch nicht weiter nachverfolgt.
Wir hatten die selbe Problematik auch das Eigenschaften nicht geändert wurden, daher löschen wird die Eigenschaften in der Regel auch und erstellen Sie neu, wenn wir Dokumente im Batch abarbeiten wollen. Gruß Bernd ------------------ --- Man muß nicht alles wissen, man muß nur wissen wo es steht --- Staatlich anerkannte Deutschniete Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Joshua63 Mitglied Maschinenbautechniker
Beiträge: 371 Registriert: 08.11.2006 W10 SP1 Intel i7 8700K Quatro P4000 32GB RAM SW 2021 SP4.1 SWX PDM Professional 2021
|
erstellt am: 25. Apr. 2015 12:29 <-- editieren / zitieren --> Unities abgeben: Nur für ThoMay
Hi, es gibt ein kleines Programm das die Eigenschaften aller Dateien in einem Verzeichnis (vielleicht mit Unterverz.) löscht oder neu ausfüllt. --> "ChangeCustomProperties" Die Eigenschaft muss aber vorhanden sein. Das hatte ich vor einigen jahren mal benutzt, hat gut funktioniert. Weiß aber nicht mehr wo ich es her habe, und habe es auch leider nicht mehr :-( gruß ------------------ Viele Wege führen zum Ziel .......... und ich will alle wissen ! Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
ThoMay Ehrenmitglied V.I.P. h.c. Konstrukteur
Beiträge: 5260 Registriert: 15.04.2007 SWX 2019 Windows 10 x64
|
erstellt am: 25. Apr. 2015 19:32 <-- editieren / zitieren --> Unities abgeben:
|
solas Mitglied
Beiträge: 461 Registriert: 11.02.2010 Kämpft mit BIM IFC
|
erstellt am: 27. Apr. 2015 12:02 <-- editieren / zitieren --> Unities abgeben: Nur für ThoMay
|