| |
| 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
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 / zitieren --> Unities abgeben:
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!
Beiträge: 1945 Registriert: 30.04.2007 Creo Elements Direct Modeling 17
|
erstellt am: 29. Jul. 2010 10:58 <-- editieren / zitieren --> Unities abgeben: Nur für Seminger
|
StefanBerlitz Guter-Geist-Moderator IT Admin (CAx)
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 / zitieren --> Unities abgeben: Nur für Seminger
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
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 / zitieren --> Unities abgeben: Nur für Seminger
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
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 / zitieren --> Unities abgeben:
@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
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 / zitieren --> Unities abgeben: Nur für Seminger
|
StefanBerlitz Guter-Geist-Moderator IT Admin (CAx)
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 / zitieren --> Unities abgeben: Nur für Seminger
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
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 / zitieren --> Unities abgeben:
@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
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 / zitieren --> Unities abgeben: Nur für Seminger
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
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 / zitieren --> Unities abgeben: Nur für Seminger
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
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 / zitieren --> Unities abgeben: Nur für Seminger
|
Seminger Mitglied Dipl.-Ing. (FH) Maschinenbau
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 / zitieren --> Unities abgeben:
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
Beiträge: 172 Registriert: 04.02.2007 Windows 7 SolidWorks 2016 MaxxDB 3.x
|
erstellt am: 30. Jul. 2010 21:07 <-- editieren / zitieren --> Unities abgeben: Nur für Seminger
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 |