| | |  | Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für SOLIDWORKS | | | |  | Neue Version testen: myCADtools 2026 SP1 Beta, ein Fachartikel
|
|
Autor
|
Thema: Werte in CustomPoperty schreiben (1830 / mal gelesen)
|
Hermann75 Mitglied Konstrukteur
 
 Beiträge: 134 Registriert: 04.05.2016 MS Windows 11 Pro; Intel i9-12900HX; HP ZBook Fury 16 G9 64GB Ram; 64bit; NVIDIA RTX A3000 SWX 2023 SP5 Professional SWX PDM 2023 Professional CAMWorks 2023 (SWX) HiCAD next 2008 Helios next 2008
|
erstellt am: 10. Jul. 2017 09:27 <-- editieren / zitieren --> Unities abgeben:         
Hallo zusammen Mittels Makro möchte ich Werte in die Benutzerdefinierten Eigenschaften schreiben. Da meine VBA-Kenntnisse in Sachen-SolidWorks beinahe Null sind, wäre ich um ein Codeschnippsel froh. Hintergrund: ------------ Mein Makro wird manuell gestartet und durchläuft eine Baugruppe. Dabei soll bei jedem Teil 7 Eigenschaften ausgelesen werden und als Eigenschaft "Sortierfeld1" und Sortierfeld2" zurück gegeben werden. Das Auslesen der Variablen mache ich so: Set swCustProp = swModelDocExt.CustomPropertyManager("") bool = swCustProp.Get4("Dimension1", False, Dim1, valout) bool = swCustProp.Get4("Dimension2", False, Dim2, valout) bool = swCustProp.Get4("Dimension3", False, Dim3, valout) bool = swCustProp.Get4("Artikelgruppe", False, ArtGr, valout) bool = swCustProp.Get4("Lieferant", False, Lief, valout) bool = swCustProp.Get4("Material", False, Mat, valout) bool = swCustProp.Get4("Halbzeug", False, Halb, valout) Das wird dann so zusammen gesetzt Sort1 = Left("000000000000", 12 - Len(Dim1)) & Dim1 & Left("000000000000", 12 - Len(Dim2)) & Dim2 & Left("000000000000", 12 - Len(Dim3)) & Dim3 Sort2 = Left("EEEE", 4 - Len(ArtGr)) & ArtGr & " | " & Lief & " | " & Mat & " | " & Halb ------------ Nun soll eine Eigenschaft "Sortierfeld1" erstellt werden mit dem Inhalt "Sort1" und eine Eigenschaft "Sortierfeld2" mit dem Inhalt "Sort2" Falls es diese Eigenschaften schon gibt, sollen sie überschrieben werden. Nicht schreibgeschützte Teile sollen nun gespeichert werden. Vielen Dank für eure Mithilfe. Gruss, Hermann
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
TestMitglied Mitglied

 Beiträge: 82 Registriert: 15.06.2005 Nur so zum Test
|
erstellt am: 10. Jul. 2017 10:48 <-- editieren / zitieren --> Unities abgeben:          Nur für Hermann75
Hallo Hermann, mein Tipp:
Code: bool = swModel.AddCustomInfo3("", "Sortierfeld1", 30, Sort1) bool = swModel.AddCustomInfo3("", "Sortierfeld2", 30, Sort2)
verwenden. EC-Jens hat mich an dieser Stelle: http://ww3.cad.de/foren/ubb/Forum2/HTML/027907.shtml#000012 darauf hingewiesen, dass ein ForcedRebuild gut wäre, wenn es die Eigenschaft schon gibt. Alternativ erst die Eigenschaft löschen vor dem schreiben...
Code: bool = swModel.DeleteCustomInfo2("", "Sortierfeld1") bool = swModel.DeleteCustomInfo2("", "Sortierfeld2") bool = swModel.AddCustomInfo3("", "Sortierfeld1", 30, Sort1) bool = swModel.AddCustomInfo3("", "Sortierfeld2", 30, Sort2) '...und zur Sicherheit der ForcedRebuild damit das dirtyflag auch wirklich gesetzt wird... swModel.ForceRebuild3 (False)
------------------
 Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
bk.sc Ehrenmitglied V.I.P. h.c. Konstrukteur Sondermaschinenbau

 Beiträge: 2809 Registriert: 18.07.2012 -Solid Works 2019 SP5 -Pro Engineer WF 3
|
erstellt am: 10. Jul. 2017 10:56 <-- editieren / zitieren --> Unities abgeben:          Nur für Hermann75
Hallo Hermann, mit der Add3 Method (ICustomPropertyManager) kannst du die Eigenschaften anlegen und gleichzeitig befüllen, mit dem letzten Paramter kannst du auch das Verhalten bei bereits vorhanden sein der Eigenschaft vorgeben.
Code:
Dim lRetVal As LonglRetVal = swCusProp.Add3("Sorttierfeld1", swCustomInfoType_e.swCustomInfoText, Sort1, swCustomPropertyAddOption_e.swCustomPropertyDeleteAndAdd)
Gruß Bernd ------------------ --- Man muß nicht alles wissen, man muß nur wissen wo es steht --- Staatlich anerkannte Deutschniete  [Diese Nachricht wurde von bk.sc am 10. Jul. 2017 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |

| |
Hermann75 Mitglied Konstrukteur
 
 Beiträge: 134 Registriert: 04.05.2016 MS Windows 11 Pro; Intel i9-12900HX; HP ZBook Fury 16 G9 64GB Ram; 64bit; NVIDIA RTX A3000 SWX 2023 SP5 Professional SWX PDM 2023 Professional CAMWorks 2023 (SWX) HiCAD next 2008 Helios next 2008
|
erstellt am: 11. Jul. 2017 11:20 <-- editieren / zitieren --> Unities abgeben:         
|
| Anzeige.:
Anzeige: (Infos zum Werbeplatz >>)
 |