Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  SolidWorks
  Werte in CustomPoperty schreiben

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 SOLIDWORKS
  
Im Fokus: CAD Automation & CPQE
Autor Thema:  Werte in CustomPoperty schreiben (1352 mal gelesen)
Hermann75
Mitglied
Konstrukteur


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

Beiträge: 124
Registriert: 04.05.2016

MS Windows 11 Pro; Intel Core i9-12900HX, 2.3GHz;
64GB Ram; 64bit; NVIDIA RTX A3000
SW 2021 SP5.1 Professional
SW-PDM 2021 Professional
HiCAD next 2008
Helios next 2008

erstellt am: 10. Jul. 2017 09:27    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 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



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

Beiträge: 82
Registriert: 15.06.2005

Nur so zum Test

erstellt am: 10. Jul. 2017 10:48    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 Hermann75 10 Unities + Antwort hilfreich

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



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

Beiträge: 2776
Registriert: 18.07.2012

-Solid Works 2019 SP5
-Pro Engineer WF 3

erstellt am: 10. Jul. 2017 10:56    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 Hermann75 10 Unities + Antwort hilfreich

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 Long

lRetVal = 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


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

Beiträge: 124
Registriert: 04.05.2016

MS Windows 11 Pro; Intel Core i9-12900HX, 2.3GHz;
64GB Ram; 64bit; NVIDIA RTX A3000
SW 2021 SP5.1 Professional
SW-PDM 2021 Professional
HiCAD next 2008
Helios next 2008

erstellt am: 11. Jul. 2017 11:20    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

Danke für die Hinweise. Das hilft mir doch schon ein rechtes Stück weiter.

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)2024 CAD.de | Impressum | Datenschutz