Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  SolidWorks
  Koordinatentransformation

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
  
PLM TechnologieForum Bamberg
Autor Thema:  Koordinatentransformation (865 mal gelesen)
Jens S.
Mitglied
Dipl.-Ing.


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

Beiträge: 55
Registriert: 23.02.2005

erstellt am: 01. Mrz. 2005 11:39    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 Leute,

folgendes Problem:

Wenn ich einen definierten Punkt auf einer Fläche (Skizze) anklicke, und dessen Koordinaten über GetSelectionPoint() auslese, dann bekomme ich die Koordinaten bezogen auf das Skizzen-Koordinaten-System.

Konkrete Frage: Wie Schaffe ich es, die Punkt-Koordinaten bezogen auf das Ursprungs-Koordinaten-System auszulesen?

Das Problem ist nämlich folgendes, dass beim verwenden der Punkt-Koordinaten bzw. beim zurückschreiben der Werte diese dann auf das Ursprungs-Koordinaten-System angewendet werden und somit der Punkt bzw. die Koordinaten falsch gesetzt werden, da sie ja für das Skizzen-Koordinaten-System gelten!

Bin wie immer für jeden Tipp dankbar.

Gruß an Alle

JENS

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

Kalle
Mitglied
Student


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

Beiträge: 706
Registriert: 14.04.2002

erstellt am: 01. Mrz. 2005 11:50    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 Jens S. 10 Unities + Antwort hilfreich

Aheu Jens,

ein kurze Suche in der API Hilfe hat mir folgendes Beispiel gebracht:

Code:

Transform Sketch to Model Example (VB)
When a sketch point is created, its x, y, and z location values are in relation to the sketch origin. Using the MathUtility object, it is possible to display the sketch point’s coordinates in relation to the model origin. 

Obtain the MathUtility object from the current model document.

Select a sketch that contains the points whose coordinates are to be modified. 

Call Sketch::GetSketchPoints to fill a VARIANT array with all of the points in the sketch. 

Build a coordinate array by filling the cells of a length 3 array with the x, y, and z value of a sketch point from the VARIANT array. 

Create a new MathPoint from the MathUtility object, providing the coordinate array for the location of the MathPoint. 

Get the model-to-sketch transform for this sketch. Calling MathTransform::Inverse provides a MathTransform from the sketch coordinates to the model coordinates. The MathPoint is then moved into the model coordinates by calling MathPoint::MulitplyTransform(MathTransform).

Implementing this in code is fairly straightforward:

    Option Explicit

    Dim swApp As SldWorks.SldWorks
    Dim selMgr As SldWorks.SelectionMgr
    Dim Model As SldWorks.ModelDoc2
    Dim SketchPoints As Variant
    Dim SketchFeature As SldWorks.feature
    Dim PointCoords(2) As Double
    Dim MathUtil As SldWorks.MathUtility
    Dim MathTrans As SldWorks.MathTransform
    Dim MathP As SldWorks.MathPoint
    Dim ModelSketchTransform As Variant

Sub main()

    'Connect the program to SolidWorks
    Set swApp = CreateObject("SldWorks.Application")
    Set Model = swApp.ActiveDoc
    'Prepare the MathUtility
    Set MathUtil = swApp.GetMathUtility
    'Get the SelectionMgr
    Set selMgr = Model.SelectionManager

    'Get the sketch from the SelectionMgr
    Set SketchFeature = selMgr.GetSelectedObject5(1)
    Set SketchFeature = SketchFeature.GetSpecificFeature2
    'Get the sketch points
    SketchPoints = SketchFeature.GetSketchPoints
  
    'Build a coordinate array from the first point in the sketch
    PointCoords(0) = SketchPoints(0).x
    PointCoords(1) = SketchPoints(0).y
    PointCoords(2) = SketchPoints(0).z

    'Create the new MathPoint from the sketch point data.
    'MathP refers to the point location in the sketch coordinates
    Set MathP = MathUtil.CreatePoint(PointCoords)
  
    'Display the point coordinates in relation to the sketch origin
    SketchPoints = MathP.ArrayData
    MsgBox SketchPoints(0) & ", " & SketchPoints(1) & ", " & SketchPoints(2)

    'Get the model-to-sketch transform for this sketch
    Set MathTrans = SketchFeature.ModelToSketchTransform

    'Get the inversion of the transform
    Set MathTrans = MathTrans.Inverse

    'Multiply the point by the inverse transform
    'MathP now refers to the point location in the model coordinates
    Set MathP = MathP.MultiplyTransform(MathTrans)

    'Display the point coordinates in relation to the model origin
    SketchPoints = MathP.ArrayData
    MsgBox SketchPoints(0) & ", " & SketchPoints(1) & ", " & SketchPoints(2)

End Sub


Sollte wohl genau das machen, was Du brauchst.

Bis dann,
Kalle

------------------
-----------------------------------------
Es gibt immer mehr Lösungen als Probleme.

[Diese Nachricht wurde von Kalle am 01. Mrz. 2005 editiert.]

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

Jens S.
Mitglied
Dipl.-Ing.


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

Beiträge: 55
Registriert: 23.02.2005

erstellt am: 01. Mrz. 2005 12:18    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 Jungs,

... DANKE Kalle :-)

Das ging mal wieder fix!

Lg JENS

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