Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  SolidWorks
  API - Transformation zwischen Koordinatensystemen

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
  
Innovationstag mit SolidCAM und Plogmann bei HEDELIUS in Meppen
Autor Thema:  API - Transformation zwischen Koordinatensystemen (1968 mal gelesen)
Thisoft
Mitglied
Konstrukteur


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

Beiträge: 178
Registriert: 10.04.2010

erstellt am: 11. Okt. 2012 16:06    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 an die API-Experten.

Ich stehe gerade ein wenig vor einem Rätsel
Dabei dachte ich, dass meine eigentliche Aufgabenstellung recht simpel wäre. Ich möchte per Makro eine neue Skizze anlegen und anschließend da ein Mittelpunktsrechteck einfügen. Das funktioniert auch wenn ich beim Einfügen des Rechtecks mit festen (aufgezeichneten) X-Y-Z-Werten arbeite. Zum Problem wird's wenn ich den Mittelpunkt auf den Nullpunkt eines Koordinatensystems legen und das Rechteck relativ dazu mit einer definierten Größe versehen will. Hier mal mein Code dazu:

Dim swXform As SldWorks.MathTransform = swModelDocExt.GetCoordinateSystemTransformByName("Referenz")
        If IsNothing(swXform) Then
            swApp.SendMsgToUser("Referenzkoordinatensystem nicht gefunden!")
            Exit Sub
        End If
        Part.SketchManager.InsertSketch(True)
        Dim vSkLines As Array = Nothing
        X1 = swXform.ArrayData(9) * 1000
        Y1 = swXform.ArrayData(10) * 1000
        Z1 = 0
        X2 = (swXform.ArrayData(9) * 1000) + (7.25)
        Y2 = (swXform.ArrayData(10) * 1000) + (7.25)
        Z2 = 0
        vSkLines = CType(Part.SketchManager.CreateCenterRectangle(X1, Y1, Z1, X2, Y2, Z2), Array)

So passiert da aber beim Einfügen des Rechtecks gar nichts. Kann ich auch irgendwie nachvollziehen, dass die X-Y-Z-Angaben so wahrscheinlich Müll sind. Ich vermute, dass ich diese Werte noch irgendwie transformieren muss aber wie und wohin - da stehe ich gerade mächtig auf dem Schlauch. Die Transformationsmatrix des gewünschten MP (Ursprung des CS "Referenz") habe ich ja, aber wohin muss ich die denn transformieren damit SWX damit in der neu erzeugten Skizze etwas anfangen kann?

Wäre schön, wenn mich da mal jemand auf den Trichter schubsen könnte

Danke und Gruß
Thilo

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

Thisoft
Mitglied
Konstrukteur


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

Beiträge: 178
Registriert: 10.04.2010

SWX 2018 Standard SP 3
Win10 Professional 64Bit
Intel Core i7 7700K
16 GB RAM
AMD FirePro W5000
=Beruf
SW 2018 Standard SP0
Win10 Professional 64Bit
Intel NUC Core i5-6260
12GB RAM
Intel Onboard
=Privat

erstellt am: 16. Okt. 2012 08:49    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 nochmal kurz nach oben schubsen...

Frage ich falsch, oder ist mein Ansinnen wirklich so exotisch

Naja, vielleicht findet sich ja noch jemand der sowas schon mal gemacht hat. Sonst muss ich mich halt selbst versuchen reinzufitzen...

Gruß Thilo

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: 16. Okt. 2012 11:02    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 Thisoft 10 Unities + Antwort hilfreich

Hallo Thilo,

hab so etwas zwar auch noch nicht gemacht, aber wenn ich das richtig verstehe beziehen sich deine XYZ-Werte des Rechtecks ja auf den Sketch. Der hat nun wiederrum in Bezug auf den Modellraum selbst eine Transformationsmatrix ( Sketch::ModelToSketchTransform ).

In der API gibt es im Index unter "Sketch, transform" auch ein Beispiel namens "Transform Sketch to Model Example (VBA)": When a sketch point is created, its x, y, and z location values are in relation to the sketch origin. Using the IMathUtility object, it is possible to display the sketch point’s coordinates in relation to the model origin.

Vielleicht hilft dir das dabei weiter die Vektorrechnung für die Transforms richtig hinzubekommen.

Ciao,
Stefan

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

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

Thisoft
Mitglied
Konstrukteur


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

Beiträge: 178
Registriert: 10.04.2010

erstellt am: 17. Okt. 2012 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

Hallo Stefan,

danke für den Tip mit "Sketch.ModelToSketchTransform".
Das sieht nach dem ersten Test so aus, als ob es genau das ist was ich gesucht habe.
Somit habe ich wieder ein Problem gelöst und kann 5 Neue angehen 

Danke und Gruß
Thilo

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