Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  SolidWorks
  API (VBA) - Material Name auslesen bzw. Evaluierter Wert

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
  
FMB
Autor Thema:  API (VBA) - Material Name auslesen bzw. Evaluierter Wert (5798 mal gelesen)
Kurty
Mitglied
Konstruktionsingenieur


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

Beiträge: 21
Registriert: 27.09.2010

erstellt am: 07. Mrz. 2011 14:32    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


1.JPG

 
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.


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

Beiträge: 492
Registriert: 14.02.2007

erstellt am: 07. Mrz. 2011 15:36    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 Kurty 10 Unities + Antwort hilfreich

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


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

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 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 Kurty 10 Unities + Antwort hilfreich

Dein Ansatz ist falsch!
Mit ModelDoc2.CustomInfo2 (BTWBy the way (So nebenbei bemerkt): 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


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

Beiträge: 21
Registriert: 27.09.2010

erstellt am: 07. Mrz. 2011 16:24    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

Zitat:
Original erstellt von u.clemens:
Das was du erhalten willst, erreichst du mit PartDoc.GetMaterialPropertyName2.

Ah, wunderbar danke.
Ich hab noch so meine Probleme mit der SW spezifischen Syntax.

Muß mich auch entschuldigen, für schlampige Bedienung der Suchfunktion - kaum geb ich in Google GetMaterialPropertyName2 ein, stoße ich auf 2 alte Beiträge im cad.de Forum wo genau das behandelt wurde 
http://ww3.cad.de/foren/ubb/Forum2/HTML/021067.shtml
http://ww3.cad.de/foren/ubb/Forum2/HTML/020655.shtml


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