Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  SolidWorks
  API - evaluierten Wert auslesen

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
  
Hands-on 3D-Druck am 06.06.2024 in Langenau
Autor Thema:  API - evaluierten Wert auslesen (3984 mal gelesen)
Seminger
Mitglied
Dipl.-Ing. (FH) Maschinenbau


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

Beiträge: 290
Registriert: 30.10.2009

SolidWorks Professional 2016 x64
Cimatron 14.0
PTC Creo Elements
Simufact.forming
Magma 5.4
---------------------------------------
Dell Precision T5810
Intel Xeon (R) 3,70 GHz
16 GB Ram
NVidia Quadro M4000
Windows 7 Professional 64Bit

erstellt am: 29. Jul. 2010 10:01    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

Guten Morgen zusammen!

Ich habe mir das Schriftfeld-Tool von Stefan nach unseren Bedürfnissen angepasst und möchte jetzt noch das Material eines Parts auslesen.
Habe dazu eine Textbox (txtSfMaterial) und folgende Prozedur eingefügt:

--------------------------------------------------------------------------------
Sub Material()

    Dim swApp As Object
    Dim Model As Object
       
    Set swApp = CreateObject("SldWorks.Application")
    swApp.Visible = True
    Set Model = swApp.activedoc
   
    If Model Is swDocPART Then
   
    Dim retval
         
    retval = Model.getCustomInfoValue("Material")
   
    txtSfMaterial.Text = retval
   
    End If
   
End Sub
--------------------------------------------------------------------------------

Eine Fehlermeldung kriege ich nicht, allerdings wird meine Textbox auch nicht mit dem zugewiesenen Material ausgefüllt.
Habe mir diese Prozedur aus verschiedenen Forumsbeiträgen zusammengereimt. Ich hoffe, es ist nicht die ganz große Katastrophe...!

Könnte mir evtl. jemand beratend zur Seite stehen?

Besten Dank!
Mfg, Sebastian

------------------
Einem Eisberg, der nur die Spitze zeigt, fehlt Selbstvertrauen...

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Press play on tape
Ehrenmitglied
Konstrukteur und sonst nix!


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

Beiträge: 1945
Registriert: 30.04.2007

Creo Elements Direct Modeling 17

erstellt am: 29. Jul. 2010 10:58    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 Seminger 10 Unities + Antwort hilfreich

willst Du das Material aus einer Dateieigenschaft auslesen, also händisch befüllt oder aus dem Materialfeld im Featurbaum?

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

StefanBerlitz
Guter-Geist-Moderator
IT Admin (CAx)



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

Beiträge: 8756
Registriert: 02.03.2000

SunZu sagt:
Analysiere die Vorteile, die
du aus meinem Ratschlag ziehst.
Dann gliedere deine Kräfte
entsprechend und mache dir
außergewöhnliche Taktiken zunutze.

erstellt am: 29. Jul. 2010 11:03    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 Seminger 10 Unities + Antwort hilfreich


20655_dateiegenschaft-material.png

 
Hallo Sebastian,

hast du denn deinem Modell auch die Dateieigenschaft "Material" verpasst und diese mit dem SolidWorks Material verheiratet?

Und wie hast du deine Routine in den Gesamtzusammenhang eingebunden, eine Schriftfeldausfüllprogramm wird ja gewöhnlich in einer Zeichnung genutzt, deine Routine geht aber davon aus, dass das Modell aktiv ist und ändert sonst nichts an dem Textfeld ...

Ciao,
Stefan

------------------
Inoffizielle deutsche SolidWorks Hilfeseite    http://solidworks.cad.de
Stefans SolidWorks Blog

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

GDawg
Ehrenmitglied V.I.P. h.c.
Teamleiter FEM Simulation



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

Beiträge: 2622
Registriert: 12.07.2004

SolidWorks_2o2o SP3.o
Win10_x64, Quadro_P2ooo.
VisualStudio_2o19_Pro.
FEM: Forge_NxT_HPC, ANSYS_WB.
3D-Printer: Ultimaker_2, Tinker_Gnome.

erstellt am: 29. Jul. 2010 11:04    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 Seminger 10 Unities + Antwort hilfreich

So sollte es gehen:

Code:

Sub Material()

    Dim swApp As Object
    Dim swModel As Object
     
    Set swApp = CreateObject("SldWorks.Application")
    swApp.Visible = True
    Set swModel = swApp.ActiveDoc
   
    Dim typ As Integer
    typ = swModel.GetType() 'Prüfen, ob ein Teil geöffnet ist
    If typ <> swDocPART Then
        'ende
        Else
            Dim MatValue As String
            MatValue = swModel.GetCustomInfoValue("", "Material") ' Konfigurations-String einfach leer lassen
            txtSfMaterial.Text = MatValue
    End If
End Sub


------------------
 
http://www.worldcommunitygrid.org

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Seminger
Mitglied
Dipl.-Ing. (FH) Maschinenbau


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

Beiträge: 290
Registriert: 30.10.2009

SolidWorks Professional 2016 x64
Cimatron 14.0
PTC Creo Elements
Simufact.forming
Magma 5.4
---------------------------------------
Dell Precision T5810
Intel Xeon (R) 3,70 GHz
16 GB Ram
NVidia Quadro M4000
Windows 7 Professional 64Bit

erstellt am: 29. Jul. 2010 11:15    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

@pressplayontape und stefan:
Es geht nur um das Auslesen der Dateieigenschaft "Material", die ich vorher im Featurebaum über 'Material bearbeiten' zugewiesen habe.
In der Schriftfeld-Tool-Umgebung will ich also das Material nur sehen, nicht ändern.

@GDawg:
Danke. Aber auch damit bleibt das Feld leer.

------------------
Einem Eisberg, der nur die Spitze zeigt, fehlt Selbstvertrauen...

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

GDawg
Ehrenmitglied V.I.P. h.c.
Teamleiter FEM Simulation



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

Beiträge: 2622
Registriert: 12.07.2004

SolidWorks_2o2o SP3.o
Win10_x64, Quadro_P2ooo.
VisualStudio_2o19_Pro.
FEM: Forge_NxT_HPC, ANSYS_WB.
3D-Printer: Ultimaker_2, Tinker_Gnome.

erstellt am: 29. Jul. 2010 11: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 Nur für Seminger 10 Unities + Antwort hilfreich

Zitat:
Original erstellt von Seminger:
Danke. Aber auch damit bleibt das Feld leer.

Versuche es mal so:
FORMULARNAME.FORMULARFELD.text=MatValue
FORMULARNAME.txtSfMaterial.text=MatValue

------------------
 
http://www.worldcommunitygrid.org

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

StefanBerlitz
Guter-Geist-Moderator
IT Admin (CAx)



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

Beiträge: 8756
Registriert: 02.03.2000

SunZu sagt:
Analysiere die Vorteile, die
du aus meinem Ratschlag ziehst.
Dann gliedere deine Kräfte
entsprechend und mache dir
außergewöhnliche Taktiken zunutze.

erstellt am: 29. Jul. 2010 11:25    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 Seminger 10 Unities + Antwort hilfreich

Hallo Sebastian,

ah so, in deiner Funktion fragst du eine Dateieigenschaft namens "Material" ab, nicht das Material des Parts. Das geht aber auch, schu mal in der API nach dem Beispiel "Get Material Example (VBA)", der Schlüsselbefehl ist IPartDoc::GetMaterialPropertyName2

Ciao,
Stefan

------------------
Inoffizielle deutsche SolidWorks Hilfeseite    http://solidworks.cad.de
Stefans SolidWorks Blog

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Seminger
Mitglied
Dipl.-Ing. (FH) Maschinenbau


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

Beiträge: 290
Registriert: 30.10.2009

SolidWorks Professional 2016 x64
Cimatron 14.0
PTC Creo Elements
Simufact.forming
Magma 5.4
---------------------------------------
Dell Precision T5810
Intel Xeon (R) 3,70 GHz
16 GB Ram
NVidia Quadro M4000
Windows 7 Professional 64Bit

erstellt am: 29. Jul. 2010 11:53    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

@GDawg: Leider auch nicht.

@Stefan:
Wenn ich im Featurebaum ein Material zugewiesen habe, ist das doch das Material des Parts, oder nicht?
Und das hätte ich gern im Tool sichtbar.
Wenn ich über Datei -> Eigenschaften gehe steht dort:

Eigenschaftsname: Material
Wert/Textausdruck: "SW-Material@Teil1.sldprt"
Evaluierter Wert: 1.0038

Und die 1.0038 möchte ich auslesen.

------------------
Einem Eisberg, der nur die Spitze zeigt, fehlt Selbstvertrauen...

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

GDawg
Ehrenmitglied V.I.P. h.c.
Teamleiter FEM Simulation



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

Beiträge: 2622
Registriert: 12.07.2004

SolidWorks_2o2o SP3.o
Win10_x64, Quadro_P2ooo.
VisualStudio_2o19_Pro.
FEM: Forge_NxT_HPC, ANSYS_WB.
3D-Printer: Ultimaker_2, Tinker_Gnome.

erstellt am: 29. Jul. 2010 13:03    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 Seminger 10 Unities + Antwort hilfreich

Kannst Du mal das Makro hochladen?
Oder wenigsten den Teil (inklusive Formular), wo das Material in das Formular eingefüllt werden muss?

Weiter Möglichkeit, was Stefan sagt:

Code:

    Set swApp = CreateObject("SldWorks.Application")
    Set swModel = swApp.ActiveDoc
    Dim swPart As SldWorks.PartDoc
    Dim mat As String
    Dim sMatDB As String
    mat = swModel .GetMaterialPropertyName2("", sMatDB)
    Debug.Print "  Material = " & mat & " (" & sMatDB & ")"

------------------
 
http://www.worldcommunitygrid.org

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

GDawg
Ehrenmitglied V.I.P. h.c.
Teamleiter FEM Simulation



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

Beiträge: 2622
Registriert: 12.07.2004

SolidWorks_2o2o SP3.o
Win10_x64, Quadro_P2ooo.
VisualStudio_2o19_Pro.
FEM: Forge_NxT_HPC, ANSYS_WB.
3D-Printer: Ultimaker_2, Tinker_Gnome.

erstellt am: 29. Jul. 2010 13:26    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 Seminger 10 Unities + Antwort hilfreich

Zitat:
Original erstellt von Seminger:
Eine Fehlermeldung kriege ich nicht

Bist Du schon mal im Debug-Modus (F8) Dein Makro durchgegangen?
Kannst Du im Debug-Modus den Materialwert in den lokalen Variablen (Ansicht, Lokalfenster) sehen?
Wenn ich mir Dein erstes Makro so ansehe, kommst Du nie in die IF-Schleife rein. Daher kein (Fehler-)Meldung.

------------------
 
http://www.worldcommunitygrid.org

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Joshua63
Mitglied
Maschinenbautechniker


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

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: 29. Jul. 2010 13:35    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 Seminger 10 Unities + Antwort hilfreich

hi,

ich nutze auch Stefans Makro und lese den "Evaluierten Wert" mit

txtSfWEB_Material = Model.GetCustomInfoValue("", "WEB_Material_DIN_Typ")

aus.

geht ohne Probleme.........

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Seminger
Mitglied
Dipl.-Ing. (FH) Maschinenbau


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

Beiträge: 290
Registriert: 30.10.2009

SolidWorks Professional 2016 x64
Cimatron 14.0
PTC Creo Elements
Simufact.forming
Magma 5.4
---------------------------------------
Dell Precision T5810
Intel Xeon (R) 3,70 GHz
16 GB Ram
NVidia Quadro M4000
Windows 7 Professional 64Bit

erstellt am: 29. Jul. 2010 14:08    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

Mahlzeit!

Es läuft....
So ähnlich wie Joshua63 es macht, hatte ich es auch erst.
Hatte aber in der Klammer ("Material") stehen und nicht ("", Material").
Dann kann ich mir die extra Prozedur ja sparen...

Trotzdem Danke an Euch alle für die Vorschläge und Mühe! 
Schönen Tag noch!

Mfg, Sebastian

------------------
Einem Eisberg, der nur die Spitze zeigt, fehlt Selbstvertrauen...

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

RvdH1
Mitglied
Maschinenbautechniker


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

Beiträge: 172
Registriert: 04.02.2007

Windows 7
SolidWorks 2016
MaxxDB 3.x

erstellt am: 30. Jul. 2010 21:07    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 Seminger 10 Unities + Antwort hilfreich


Material_auslesen.zip

 
Hallo Sebastian,
ich bin gerade dabei mich in das Thema Makros einzuarbeiten und nutze jeden Beitrag etwas neues zu lernen.
Ich habe mal ein wenig rumkopiert(geklaut) und dabei etwas gelernt.
Es hat bei mir geklappt, auch wenn ich noch nicht weiß wozu ich es gebrauchen kann.
1.Dateieigenschaften nach Stefans Anweisung geändert
2. GDawg Makro etwas abgeändert

MfG
Ralf

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