| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für SOLIDWORKS |
| |
| SOLIDWORKS PDM Professional im Einsatz bei Wölfle, ein Anwenderbericht
|
Autor
|
Thema: API: body verschieben (879 / mal gelesen)
|
met Mitglied CAD-Admin / Konstrukteur
Beiträge: 141 Registriert: 23.07.2004 Solidworks 2023 SP5
|
erstellt am: 13. Dez. 2018 15:12 <-- editieren / zitieren --> Unities abgeben:
Hallo, hat jemand evtl. ein Beispiel, wie ich importierte bodies per Transvormationsmatrix verschieben kann? Ich habe folgende Werte für die Verschiebung und Rotation: <Versch x="-68.6440444647092" y="-138.882247134467" z="0" /> <Rot xx="0" xy="1" xz="0" yx="-1" yy="0" yz="0" zx="0" zy="0" zz="1" /> Danke im Voraus Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Carsten1210 Mitglied staatl. geprüfter Holztechniker
Beiträge: 1358 Registriert: 24.07.2002 AutoCAD ACA 2019 Solidworks 2021 Sp5.1 Enterprise PDM 2021 Sp5 Pascam Woodworks Visual Studio 2017 Pro Windows 10 64Bit Dell T3620 Intel Core i7-7700K 16 GB Arbeitsspeicher 2x Dell Ultrasharp U2415 Dell M4800
|
erstellt am: 13. Dez. 2018 15:42 <-- editieren / zitieren --> Unities abgeben: Nur für met
|
met Mitglied CAD-Admin / Konstrukteur
Beiträge: 141 Registriert: 23.07.2004 Solidworks 2023 SP5
|
erstellt am: 13. Dez. 2018 15:46 <-- editieren / zitieren --> Unities abgeben:
|
Christian_W Ehrenmitglied V.I.P. h.c. Konstrukteur (Dipl-Ing)
Beiträge: 3256 Registriert: 04.04.2001 CSWP 12/2015<P>SWX2021sp5 Win10/11 (SWX2016, SWX2012) proAlpha6.2e00/calinkV9 (Tactonworks) (Medusa7, NesCAD2010, solidEdge19)
|
erstellt am: 13. Dez. 2018 17:57 <-- editieren / zitieren --> Unities abgeben: Nur für met
Hallo Met, sind doch in dem Beispiel auch nicht ?? erst Körper wählen:
Code: status = swBody.Select2(True, swSelData)
(oder das Feature mit dem der Körper importiert wurde) und dann Code: Set swFeat = swFeatMgr.InsertMoveCopyBody2(0.1, 0.2, 0.3, 0#, 0#, 0#, 0#, 0#, 0#, 0#, False, 1)
sind doch auch lauter Nullen für die Winkel, oder? Gruß, Christian
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
met Mitglied CAD-Admin / Konstrukteur
Beiträge: 141 Registriert: 23.07.2004 Solidworks 2023 SP5
|
erstellt am: 13. Dez. 2018 18:10 <-- editieren / zitieren --> Unities abgeben:
|
Carsten1210 Mitglied staatl. geprüfter Holztechniker
Beiträge: 1358 Registriert: 24.07.2002 AutoCAD ACA 2019 Solidworks 2021 Sp5.1 Enterprise PDM 2021 Sp5 Pascam Woodworks Visual Studio 2017 Pro Windows 10 64Bit Dell T3620 Intel Core i7-7700K 16 GB Arbeitsspeicher 2x Dell Ultrasharp U2415 Dell M4800
|
erstellt am: 14. Dez. 2018 08:47 <-- editieren / zitieren --> Unities abgeben: Nur für met
|
met Mitglied CAD-Admin / Konstrukteur
Beiträge: 141 Registriert: 23.07.2004 Solidworks 2023 SP5
|
erstellt am: 14. Dez. 2018 10:30 <-- editieren / zitieren --> Unities abgeben:
Hi, hab es jetzt mit aktBody.ApplyTransform(transArr) gemacht
Code:
Dim xmlPos As Xml.XmlElement = aktTrans.Item("Pos") Dim xmlRot As Xml.XmlElement = aktTrans.Item("Rot") Dim arr(15) As Double ' Unit rotation matrix arr(0) = Xml.XmlConvert.ToDouble(xmlRot.Attributes("xx").Value) arr(1) = Xml.XmlConvert.ToDouble(xmlRot.Attributes("xy").Value) arr(2) = Xml.XmlConvert.ToDouble(xmlRot.Attributes("xz").Value) arr(3) = Xml.XmlConvert.ToDouble(xmlRot.Attributes("yx").Value) arr(4) = Xml.XmlConvert.ToDouble(xmlRot.Attributes("yy").Value) arr(5) = Xml.XmlConvert.ToDouble(xmlRot.Attributes("yz").Value) arr(6) = Xml.XmlConvert.ToDouble(xmlRot.Attributes("zx").Value) arr(7) = Xml.XmlConvert.ToDouble(xmlRot.Attributes("zy").Value) arr(8) = Xml.XmlConvert.ToDouble(xmlRot.Attributes("zz").Value) ' !!!! durch 1000, da Maße in Meter !!!! arr(9) = Xml.XmlConvert.ToDouble(xmlPos.Attributes("x").Value) / 1000 arr(10) = Xml.XmlConvert.ToDouble(xmlPos.Attributes("y").Value) / 1000 arr(11) = Xml.XmlConvert.ToDouble(xmlPos.Attributes("z").Value) / 1000 ' Unit scaling arr(12) = 1.0# ' Not used, so pad with zeros arr(13) = 0# : arr(14) = 0# : arr(15) = 0# Dim transArr As MathTransform = _swMathUtil.CreateTransform(arr) akt_x_t.ClearSelection2(True) Dim arrB As New List(Of Body2) For Each aktBody As Body2 In CType(akt_x_t, PartDoc).GetBodies(swBodyType_e.swSolidBody) aktBody.ApplyTransform(transArr) Next akt_x_t.EditRebuild3()
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Christian_W Ehrenmitglied V.I.P. h.c. Konstrukteur (Dipl-Ing)
Beiträge: 3256 Registriert: 04.04.2001 CSWP 12/2015<P>SWX2021sp5 Win10/11 (SWX2016, SWX2012) proAlpha6.2e00/calinkV9 (Tactonworks) (Medusa7, NesCAD2010, solidEdge19)
|
erstellt am: 14. Dez. 2018 11:33 <-- editieren / zitieren --> Unities abgeben: Nur für met
Zitat: ... habe aber leider keine Winkel
Tut mir leid, das hatte ich falsch verstanden ... "habe keine Winkel" != "alle Winkel sind 0" - wird ich mir merken ... danke für dein Lösungsposting ... Gruß, Christian
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |