Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  SolidWorks
  API: body verschieben

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
  
Im Fokus: CAD Automation & CPQE
Autor Thema:  API: body verschieben (832 mal gelesen)
met
Mitglied
CAD-Admin / Konstrukteur


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

Beiträge: 138
Registriert: 23.07.2004

Solidworks 2023 SP5

erstellt am: 13. Dez. 2018 15:12    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

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


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

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

Hi met,

Das sollte über den Befehl "InsertMoveCopyBody2" gehen, siehe hier.

Gruß, Carsten

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

met
Mitglied
CAD-Admin / Konstrukteur


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

Beiträge: 138
Registriert: 23.07.2004

Solidworks 2023 SP5

erstellt am: 13. Dez. 2018 15:46    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

Hallo Carsten,

habe aber leider keine Winkel

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

Christian_W
Ehrenmitglied V.I.P. h.c.
Konstrukteur (Dipl-Ing)


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

Beiträge: 3189
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 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 met 10 Unities + Antwort hilfreich

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


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

Beiträge: 138
Registriert: 23.07.2004

Solidworks 2023 SP5

erstellt am: 13. Dez. 2018 18:10    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

Verschieben ist klar, aber wie kann ich die Drehung abbilden?

  <Rot xx="0" xy="1" xz="0" yx="-1" yy="0" yz="0" zx="0" zy="0" zz="1" />

Das sind 3 vektoren

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

Carsten1210
Mitglied
staatl. geprüfter Holztechniker


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

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

Hi,

Da musst du die Vektoren in die passenden Drehwinkel umrechnen und kannst die dem Befehl doch mitgeben?!

Gruß, Carsten

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

met
Mitglied
CAD-Admin / Konstrukteur


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

Beiträge: 138
Registriert: 23.07.2004

Solidworks 2023 SP5

erstellt am: 14. Dez. 2018 10:30    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

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)


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

Beiträge: 3189
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 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 met 10 Unities + Antwort hilfreich

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

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