| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für SOLIDWORKS |
| |
| SPS |
Autor
|
Thema: API: Gewicht auslesen ohne SolidWorks (2628 mal gelesen)
|
freak-tom Mitglied PDM-/CAD-Admin
Beiträge: 347 Registriert: 07.03.2006 Productstream Professional Pro 2011 / Jobserver / Replikator Productstream Professional Office 2011 Productstream Professional Pro 2010 / Jobserver / Replikator Productstream Professional Office 2010 Inventor Suite 2011 Solid Works 2011
|
erstellt am: 04. Jul. 2011 16:02 <-- editieren / zitieren --> Unities abgeben:
Hallo Zusammen, kann man per SolidWorks API irgendwie das Gewicht eines Teiles auslesen und in eine Datei schreiben ohne SolidWorks dafür zu öffnen? Also ähnlich wie Referenzen rausschreiben mit der Interop.SwDocumentMgr.dll? Gibt es hierfür vielleicht schon fertige Programme? MfG Thomas Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
GWS Ehrenmitglied V.I.P. h.c. Konstrukteur Sondermaschinenbau
Beiträge: 2401 Registriert: 23.07.2001 Nach drei Jahren Inventor wieder zurück zu SolidWorks: SWX 23 SP4, PDM Professionell.
|
erstellt am: 04. Jul. 2011 16:56 <-- editieren / zitieren --> Unities abgeben: Nur für freak-tom
Hallo Thomas! Und wenn du zu Laufzeiten von SWX eine Dokumenteneigenschaft mit dem Gewicht verknüpfst? (geht wunderbar als Voreinstellung im Template) Die könntest du vermutlich ohne größere Probleme wieder auslesen. Wenn dein Argument ist, dass du bereits einen größeren Teilebestand hast, würde ich dir vorschlagen, in den sauren Apfel zu beißen und diese Eigenschaft per Batchjob einmal nach zu rüsten. Das könnte weniger Aufwand sein, als das Gewicht erst im Bedarfsfalle rauszufummeln... Grüße Günter Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
freak-tom Mitglied PDM-/CAD-Admin
Beiträge: 347 Registriert: 07.03.2006 Productstream Professional Pro 2011 / Jobserver / Replikator Productstream Professional Office 2011 Productstream Professional Pro 2010 / Jobserver / Replikator Productstream Professional Office 2010 Inventor Suite 2011 Solid Works 2011
|
erstellt am: 04. Jul. 2011 19:27 <-- editieren / zitieren --> Unities abgeben:
Hallo Günter, das habe ich bereits drin, das kann ich auch auslesen allerdings habe ich an dieser Stelle keine Info um welche Gewichtseinheit es sich handelt da nur der Wert drin steht ohne Einheit. MfG Thomas Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
HenryV Mitglied Konstrukteur, Engineering
Beiträge: 813 Registriert: 18.05.2005 SolidWorks 2022 x64 SP5.0 Dell Precision 5820 Intel Xeon W-2125 4x4GHz NVIDIA Quadro P2000 5GB 32GB RAM 2x Dell U2412M, 24" TFT Windows 10 Enterprise x64 22H2 Microsoft 365 E5 Microsoft Visual Studio Enterprise 2022
|
erstellt am: 05. Jul. 2011 07:39 <-- editieren / zitieren --> Unities abgeben: Nur für freak-tom
Hallo Thomas Dafür gibt es den Befehl "GetMassProperties Method (ISwDMConfiguration)" Damit kriegst du die Infos, auch ohne dass du sie als Dokumenteigenschaft einstellst. Gruss Andreas ------------------ 21 ist nur die halbe Antwort. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Oberli Mike Ehrenmitglied V.I.P. h.c. Dipl. Maschinen Ing.
Beiträge: 3814 Registriert: 29.09.2004 SOLIDWORKS 2024 SP1.0 SOLIDWORKS 2023 SP5.0 SOLIDWORKS 2022 SP5.0 SOLIDWORKS 2021 SP5.1 SOLIDWORKS 2020 SP5 SOLIDWORKS 2019 SP5 (VM)
|
erstellt am: 05. Jul. 2011 07:44 <-- editieren / zitieren --> Unities abgeben: Nur für freak-tom
|
freak-tom Mitglied PDM-/CAD-Admin
Beiträge: 347 Registriert: 07.03.2006 Productstream Professional Pro 2011 / Jobserver / Replikator Productstream Professional Office 2011 Productstream Professional Pro 2010 / Jobserver / Replikator Productstream Professional Office 2010 Inventor Suite 2011 Solid Works 2011
|
erstellt am: 05. Jul. 2011 07:58 <-- editieren / zitieren --> Unities abgeben:
|
HenryV Mitglied Konstrukteur, Engineering
Beiträge: 813 Registriert: 18.05.2005 SolidWorks 2022 x64 SP5.0 Dell Precision 5820 Intel Xeon W-2125 4x4GHz NVIDIA Quadro P2000 5GB 32GB RAM 2x Dell U2412M, 24" TFT Windows 10 Enterprise x64 22H2 Microsoft 365 E5 Microsoft Visual Studio Enterprise 2022
|
erstellt am: 05. Jul. 2011 08:27 <-- editieren / zitieren --> Unities abgeben: Nur für freak-tom
Hallo Thomas Klar geht das. In der API Hilfe gibt es für den SwDocumentMgr das Beispiel "Get Configuration Information Example (VB.NET)". Da wir schon ziemlich viel herausgelesen. Wenn man den Code an folgender Stelle Code: For Each vCfgName In vCfgNameArr swCfg = swCfgMgr.GetConfigurationByName(vCfgName) Debug.Print(" " & vCfgName) Debug.Print(" Description = " & swCfg.Description) Debug.Print(" ParentCfgName = " & swCfg.GetParentConfigurationName) Debug.Print(" LastUpdateStamp = " & swCfg.GetLastUpdateStamp) Debug.Print(" Type as defined in swDmConfigurationType = " & swCfg.type) Debug.Print("") ProcessConfigCustomProperties(swCfg) Next
so ergänzetCode: Dim bRet As SwDmMassPropError Dim value As Double()For Each vCfgName In vCfgNameArr swCfg = swCfgMgr.GetConfigurationByName(vCfgName) value = CType(swCfg.GetMassProperties(bRet), Double()) Debug.Print(" " & vCfgName) Debug.Print(" Description = " & swCfg.Description) Debug.Print(" ParentCfgName = " & swCfg.GetParentConfigurationName) Debug.Print(" LastUpdateStamp = " & swCfg.GetLastUpdateStamp) Debug.Print(" Type as defined in swDmConfigurationType = " & swCfg.type) Debug.Print("Center of mass = " & value(0) & "m," & value(1) & "m," & value(2) & "m") Debug.Print("Volume = " & value(3) & "m^3") Debug.Print("Surface area = " & value(4) & "m^2") Debug.Print("Mass = " & value(5) & "kg") Debug.Print("momXX = " & value(6) & "kg") Debug.Print("momYY = " & value(7) & "kg") Debug.Print("momZZ = " & value(8) & "kg") Debug.Print("momXY = " & value(9) & "kg") Debug.Print("momZX = " & value(10) & "kg") Debug.Print("momYZ = " & value(11) & "kg") Debug.Print("Include hidden = " & value(12)) Debug.Print("") ProcessConfigCustomProperties(swCfg) Next
bekommt man auch noch den Rest raus. Gruss Andreas ------------------ 21 ist nur die halbe Antwort. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
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: 05. Jul. 2011 08:31 <-- editieren / zitieren --> Unities abgeben: Nur für freak-tom
Hallo zusammen, was spricht gegen SwDMConfiguration::GetMassProperties, ist Teil der SoldiWorks Document Manager API seit 2004. Da muss man aber Vorsicht walten lassen, denn es könnte sein, dass ein Anwender in SolidWorks die Option unter "Systemoptionen/Leistung/Masseneigenschaften beim Speichern des Dokuments aktualisieren" nicht gesetzt hat, dann können die Masseeigenschaften nicht aktuell sein; das würde man aber über die oben genannte Funktion als Fehlerflag zurückbekommen (swDmMassPropErrorNoData) [Edit]Boah, viiiiel zu langsam, ich sollte nicht den Beitrag schon anfangen zu schreiben und dann was anderes machen Zumindest der Hinweis auf die nicht aktuelle Masse ist neu [/Edit] 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 |
freak-tom Mitglied PDM-/CAD-Admin
Beiträge: 347 Registriert: 07.03.2006 Productstream Professional Pro 2011 / Jobserver / Replikator Productstream Professional Office 2011 Productstream Professional Pro 2010 / Jobserver / Replikator Productstream Professional Office 2010 Inventor Suite 2011 Solid Works 2011
|
erstellt am: 05. Jul. 2011 10:03 <-- editieren / zitieren --> Unities abgeben:
Hallo Zusammen, danke für die schnelle Hilfe werde ich gleich mal ausprobieren, nachdem ich herausgefunden habe wie ich das in ein Programm rein bringe :-) bin noch ziemlich unerfahren in diesem Punkt. MfG Thomas Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |