Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  CATIA V5 Programmierung
  Bei GetMeasurable andere Achse verwenden

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
Autor Thema:  Bei GetMeasurable andere Achse verwenden (1290 mal gelesen)
INLU
Mitglied
Konstrukteur Automotive


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

Beiträge: 71
Registriert: 01.03.2008

erstellt am: 27. Sep. 2008 14: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

Hallo V5 Gemeinde,

ich sitze hier vor einem Problem. Ist es möglich für die Funktion GetMeasurable eine andere Achse zu wählen als die Absolute.

Ich versuche mir die Koordinaten eines Flächenschwerpunktes von einer zuvor selektierten Achse auszugeben. Oder ist das eventuell auch mathematisch zu lösen.

mfg

INLU

[Diese Nachricht wurde von INLU am 28. Sep. 2008 editiert.]

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

HoBLila
Mitglied
Dipl.-Ing. (BA) praktische Informatik - Senior Entwickler CAx


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

Beiträge: 1118
Registriert: 29.05.2008

DELL PRECISION T3500
Intel(R) Xeon(R) CPU W3540 @ 2.93GHz
12285 MB RAM
NVIDIA Quadro FX 1800
Microsoft Windows 7 Enterprise Service Pack 1
CATIA V5 R19 SP09 HF69
VB6.5
CAA RADE CDC

erstellt am: 30. Sep. 2008 11:40    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 INLU 10 Unities + Antwort hilfreich

Ich glaube das geht nur mathematisch, sollte aber kein Problem darstellen.
GetMeasurable ist glaube ich immer absolut.

Also die Kooridnaten des gewählten Achsensystems holen und dann über Rotation und so errechnen.

------------------
Mit freundlichen Grüßen,
Henry Schneider
alias Lila

Es gibt einen ewigen Wettkampf zwischen der Natur und den Ingenieuren:
Die Ingenieure versuchen, immer idioten-sicherere Systeme zu bauen,
die Natur versucht, immer bessere Idioten zu bauen

Xing

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

INLU
Mitglied
Konstrukteur Automotive


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

Beiträge: 71
Registriert: 01.03.2008

erstellt am: 30. Sep. 2008 14: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 Henry,

vielen Dank für die Antwort.

Vielleicht gibt es ja noch eine andere Möglichkeit die Koordinaten eines Punkte ( selektierter Vertexpunkt) auszugeben.

Du kennst nicht zufällig eine Quelle, wo ich eine solche Formel beziehen könnte?

Mfg
  INLU

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

HoBLila
Mitglied
Dipl.-Ing. (BA) praktische Informatik - Senior Entwickler CAx


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

Beiträge: 1118
Registriert: 29.05.2008

DELL PRECISION T3500
Intel(R) Xeon(R) CPU W3540 @ 2.93GHz
12285 MB RAM
NVIDIA Quadro FX 1800
Microsoft Windows 7 Enterprise Service Pack 1
CATIA V5 R19 SP09 HF69
VB6.5
CAA RADE CDC

erstellt am: 30. Sep. 2008 14: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 Nur für INLU 10 Unities + Antwort hilfreich

*g*

Du wirst nicht glauben wie oft ich vor genau diesem Problem stehe...

Und ich muss Dir sagen, dass ich leider noch immer keine Lösung dafür gefunden habe, zumindest kann ich mich nicht erinnern.

Die Lösung, die ich glaube ich immer nutze ist an die gleiche Stelle einen realen Punkt zu setzen und diesen dann in's Measurable zu stecken...

Aber Ansich kannst du dann immer von deinem Vertex den Abstand zu den Ebenen (XY, XZ, ZX, ...) messen und daher auf deine Rotation schließen. Den Abstand zu messen ist dann ja egal zu welchem Bezugsachsensystem.

Bei der Rotation einen Tipp: Du musst ja über den Kosinus der jeweiligen Normalenvektoren der Ebenen gehen. Wenn du die Ebenen geschickt wählst ist der Kosinus immer zur 3. nicht verwendeten Achse.

Also wenn du aus einen Vertex mal ordentliche Koordinaten bekommst würde mich das auch mal interessieren.

------------------
Mit freundlichen Grüßen,
Henry Schneider
alias Lila

Es gibt einen ewigen Wettkampf zwischen der Natur und den Ingenieuren:
Die Ingenieure versuchen, immer idioten-sicherere Systeme zu bauen,
die Natur versucht, immer bessere Idioten zu bauen

Xing

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

ogard1
Mitglied
Verfahrenstechniker


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

Beiträge: 442
Registriert: 12.09.2004

R19 SP2

erstellt am: 30. Sep. 2008 15:43    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 INLU 10 Unities + Antwort hilfreich

Hallo,
schon mal versucht an Fläche ein Punkt oder Plane als Referenz zu definieren und die abzufragen, siehe CAA

This example retrieves in oRefAxis the reference Axis System for PointCoord feature.
Dim oRefAxis As CATIAReference
Set oRefAxis  = PointCoord.RefAxisSystem

Dim referenceObject As referenceObject
    Set referenceObject = "GetReference"
    Dim TheSPAWorkbench As Workbench
    Set TheSPAWorkbench = CATIA.ActiveDocument.GetWorkbench ( "SPAWorkbench" )
    Dim TheMeasurable As Measurable
    Set TheMeasurable = TheSPAWorkbench.GetMeasurable(referenceObject)


Vielleicht kannst du damit was anfangen

Gruß

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

INLU
Mitglied
Konstrukteur Automotive


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

Beiträge: 71
Registriert: 01.03.2008

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

Hallo ogard1,

ich glaube das diese Funktion nur bei einem Punkt funktioniert, der über Koordinaten erzeugt wurde.

zitat CAA :" Returns or Sets the reference Axis System for PointCoord feature "

Ich habe aber einen Vertex-punkt, also einen Punkt, den ich von einer Flächenkante selektiert habe.

@ Henry

Die Koordinaten bekomme ich aus einem selektierten Vertex-punkt. Leider aber nur zur Absoluten Achse.

Code:

inputobjecttype(0) = ("Vertex")
usersel1 = Selection.SelectElement2(inputobjecttype, "Flächenpunkt selektieren", False)
Set punkt1 = Selection.Item(1).Value
Set TheSPAWorkbench = CATIA.ActiveDocument.GetWorkbench("SPAWorkbench")
Set TheMeasurable = TheSPAWorkbench.GetMeasurable(punkt1)
Msgbox("X=" & punkt1(0) & Chr(13) & "Y=" & punkt1(1) & Chr(13) & "Z=" & punkt1(2))


Gruß
   INLU

[Diese Nachricht wurde von INLU am 01. Okt. 2008 editiert.]

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

tomtom1972
Mitglied
dipl ing maschinenbau


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

Beiträge: 605
Registriert: 22.03.2005

NVidia Quadro K4000
Intel Xeon E5-1620, 64GB RAM
Windows10 64bit
R30 <= CATIA V5 > =R19

erstellt am: 02. Okt. 2008 07:45    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 INLU 10 Unities + Antwort hilfreich

Hallo zusammen,

Das alles ist nur ein bischen Vektorrechung und funktioniert immer nach dem gleichen Prinzip. Unten ein Beispiel für Achsensysteme (d.h. hier wird mit zwölfspaltigen Vektoren gerechnet, also Arrays mit Index 0 bis 11, siehe auch Onlinedoku).
Der Code ist ein Auszug zum Umrechen der Transformation (Verschiebung, Rotaion) von Parts / Products innerhalb einer Struktur, d.h. von ganz unten ausgehend (dem Part) werden die Transformationsvektoren uber alle Strukturebenen bis zum Root umgerechnet. Das funtioniert (natürlich angepasst) für das hier vorliegende Problem (ausgehend vom Measurable) analog.


Code:
Public Function Func_Transform(oProdForTrans)
  Dim a(11)
  Dim b(11)
  Dim res(11)
  oProdForTrans.Position.GetComponents a
  Set oProdForTrans_Parent = oProdForTrans.Parent.Parent
  If oRoot.Product.Name <> oProdForTrans_Parent.Name Then
      Do
        oProdForTrans_Parent.Position.GetComponents b
        SUB_Matrix a, b, res
        Set oProdForTrans_Parent = oProdForTrans_Parent.Parent.Parent
        For i = 0 To 11
            a(i) = res(i)
        Next
      Loop Until oRoot.Product.Name = oProdForTrans_Parent.Name
  End If
  Func_Transform = a
End Function

Sub SUB_Matrix(a, b, res)
  res(0) = a(0) * b(0) + a(1) * b(3) + a(2) * b(6)
  res(3) = a(3) * b(0) + a(4) * b(3) + a(5) * b(6)
  res(6) = a(6) * b(0) + a(7) * b(3) + a(8) * b(6)
  res(1) = a(0) * b(1) + a(1) * b(4) + a(2) * b(7)
  res(4) = a(3) * b(1) + a(4) * b(4) + a(5) * b(7)
  res(7) = a(6) * b(1) + a(7) * b(4) + a(8) * b(7)
  res(2) = a(0) * b(2) + a(1) * b(5) + a(2) * b(8)
  res(5) = a(3) * b(2) + a(4) * b(5) + a(5) * b(8)
  res(8) = a(6) * b(2) + a(7) * b(5) + a(8) * b(8)
  res(9) = a(9) * b(0) + a(10) * b(3) + a(11) * b(6) + b(9)
  res(10) = a(9) * b(1) + a(10) * b(4) + a(11) * b(7) + b(10)
  res(11) = a(9) * b(2) + a(10) * b(5) + a(11) * b(8) + b(11)
End Sub


wobei oProdForTrans ein .....Products.Item(n) (also eineInstanz) innerhalb der Struktur und oRoot das Catia.ActiveDocument

Ich hoffe das hilft irgendwem weiter.
Gruß TomTom

------------------
tomtom1972

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

INLU
Mitglied
Konstrukteur Automotive


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

Beiträge: 71
Registriert: 01.03.2008

erstellt am: 08. Okt. 2008 12:34    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 TomTom,

danke für die Antwort. Leider weiß ich nicht, wie man das für meinen Fall anwenden muss. Ich meine in deinem Code erkannt zu haben, das du  die Koordinaten der Verschiebung des Parts umrechnest. Aber in deinem fall auch nur zum absoluten Nullpunkt, oder?

Kann mir jemand aufs Pferd helfen?

Mfg
   INLU

[Diese Nachricht wurde von INLU am 08. Okt. 2008 editiert.]

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

INLU
Mitglied
Konstrukteur Automotive


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

Beiträge: 71
Registriert: 01.03.2008

erstellt am: 03. Dez. 2008 11:16    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 Zusammen,

Ich habe das Problem jetzt so gelöst, das ich die Achse und den Messpunkt selektieren lasse. Danach erzeuge ich mir ein Part und eine Transformation des Punktes zur Absoluten Achse. Der Punkt muss ein AddNewPointDatum sein, da ich Ihn sonst nicht mit GetMeasurable nicht messen kann (Keine Ahnung warum ).

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)2023 CAD.de | Impressum | Datenschutz