| | | Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für SOLIDWORKS | | | | FMB |
Autor
|
Thema: API (VBA) - Material Name auslesen bzw. Evaluierter Wert (5798 mal gelesen)
|
Kurty Mitglied Konstruktionsingenieur
Beiträge: 21 Registriert: 27.09.2010
|
erstellt am: 07. Mrz. 2011 14:32 <-- editieren / zitieren --> Unities abgeben:
Hallo, ich hab da mal wieder eine Frage zum API/VBA programieren. Ich versuche die Eigenschaft Material aus den SW Eigenschaften auszulesen. Was ich immer bekomme ist die Eingabe der Propertys "SW-Material@@Default@Part1.SLDPRT" wo ich gerne den von SW evaluierten Wert z.B. Alloy Steel auslesen würde. In den Benutzerdefinierten Eigenschaften heißt die Eigenschaft material / Text / "SW-Material@@Default@Part1.SLDPRT" / Alloy Steel Folgend das gesamte Program bisher, das gut funktioniert, bis auf eben den Fehler, das ich gerne den evaluierten Wert und nicht die "eingabe" hätte. Code:
Public swApp As SldWorks.SldWorks Public swModel As SldWorks.ModelDoc2 Dim configuration As String Sub main() UserForm1.Show End Sub ---------------------------------- Sub UserForm_Initialize() Set swApp = Application.SldWorks Set swModel = swApp.ActiveDoc Set swConfigurationMgr = swModel.ConfigurationManager Set swconfiguration = swConfigurationMgr.ActiveConfiguration configuration = swconfiguration.Name TextBox1.Text = swModel.CustomInfo2(configuration, "material") TextBox2.Text = swModel.CustomInfo2(configuration, "matspec") TextBox3.Text = swModel.CustomInfo2(configuration, "surface") TextBox4.Text = swModel.CustomInfo2(configuration, "surfacespec") End Sub ---------------------- Sub CommandButton1_Click() swModel.CustomInfo2(configuration, "matspec") = TextBox2.Text swModel.CustomInfo2(configuration, "surface") = TextBox3.Text swModel.CustomInfo2(configuration, "surfacespec") = TextBox4.Text UserForm1.Hide End Sub
Siehe auch angehängtes Bild Im vorraus schonmal danke, Christoph Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
MWN Mitglied Dipl.-Ing.
Beiträge: 492 Registriert: 14.02.2007
|
erstellt am: 07. Mrz. 2011 15:36 <-- editieren / zitieren --> Unities abgeben: Nur für Kurty
Hi Christoph, da gibt es eine ganz gute Seite in der SolidWorks API Help, nennt sich: Get Custom Properties for Configuration Example (VBA). Soweit ich mich noch erinnern kann, musst du den CustomPropertyManager nehmen und gelangst dort über Get2 an die evaluierten Werte. Grüße und HTH Tobias ------------------ Besucht mich doch mal in meiner Tischlerei "...Kommunikation ist nur so gut wie ihr Ergebnis..." - frei nach Richard Bandler / John Grinder "...Wenn du das tust, was du schon immer tust, wirst du auch nur das erhalten, was du schon immer erhalten hast..." Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
u.clemens Mitglied Konstrukteur
Beiträge: 964 Registriert: 04.07.2000 engineer's law o cheap o fast o good check only two !
|
erstellt am: 07. Mrz. 2011 15:48 <-- editieren / zitieren --> Unities abgeben: Nur für Kurty
Dein Ansatz ist falsch! Mit ModelDoc2.CustomInfo2 (BTW : das ist obsolete) erhälst du den Wert der betreffenden Dateieigenschaft - und der ist nun mal der Link zum Material, aber nicht der Materialname selbst! Das was du erhalten willst, erreichst du mit PartDoc.GetMaterialPropertyName2. ------------------ mfg uc Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Kurty Mitglied Konstruktionsingenieur
Beiträge: 21 Registriert: 27.09.2010
|
erstellt am: 07. Mrz. 2011 16:24 <-- editieren / zitieren --> Unities abgeben:
|
| Anzeige.:
Anzeige: (Infos zum Werbeplatz >>)
|