Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de
  CATIA V5 Programmierung
  Auslesen eines Achsensystems

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 CATIA & Co.
  
KISTERS 3DViewStation: Schnelligkeit und Präzision in dem neuen JT-Importer, eine Pressemitteilung
Autor Thema:  Auslesen eines Achsensystems (2468 mal gelesen)
JonasXY
Mitglied



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

Beiträge: 10
Registriert: 19.04.2011

erstellt am: 18. Jan. 2012 14:54    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

Servus Zusammen  ,

ich habe ein Problem mit dem Auslesen eines Achsensystems.
Trotz der Suchfunktion und einiger Beiträge mit ähnlichen Problemen, konnte ich für mein Problem leider noch keine Lösung finden.

Mein Problem besteht darin, dass ich von einem Achsensystem (nicht am Ursprung), die X-Achse bzw. YZ-Plane als Richtung für eine Linie brauch.
Allerdings habe ich keine Ahnung wie mich auf die Elemente eines Achsensystems beziehe.

Bin für jeden Tipp oder Link zu diesem Thema dankbar.

Mfg Jonas

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

bgrittmann
Moderator
Konstrukteur


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

Beiträge: 12054
Registriert: 30.11.2006

CATIA V5R19

erstellt am: 18. Jan. 2012 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 Nur für JonasXY 10 Unities + Antwort hilfreich

Servus
Du kannst über die Methode "XAxisDirection" direkt die Referenz der X-Richtung deines Achsensystems auslesen bzw. setzen:
Code:

Dim reference2 As Reference
Set reference2 = axisSystem1.XAxisDirection
Dim hybridShapeDirection1 As HybridShapeDirection
Set hybridShapeDirection1 = hybridShapeFactory1.AddNewDirection(reference2)
Dim hybridShapeLinePtDir1 As HybridShapeLinePtDir
Set hybridShapeLinePtDir1 = hybridShapeFactory1.AddNewLinePtDir(reference1, hybridShapeDirection1, 0.000000, 20.000000, False)

Gruß
Bernd

------------------
Warum einfach, wenn es auch kompliziert geht.

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

JonasXY
Mitglied



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

Beiträge: 10
Registriert: 19.04.2011

erstellt am: 19. Jan. 2012 08:36    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

Guten Morgen,

Danke erstmal für die schnelle Antwort.

Da es mir der Editor vorgeschlagen hat, hab ich das bereits vorher schon ausprobiert.
Ich habs eben nochmal probiert und dann kam bei Zeile 2

Dim reference2 As Reference
Set reference2 = axisSystem1.XAxisDirection
Dim hybridShapeDirection1 As HybridShapeDirection
Set hybridShapeDirection1 = hybridShapeFactory1.AddNewDirection(reference2)

folgende Fehlermeldung:

Run-Time error '5':
Invalid procedure call or argument

Ich kann leider mit der Fehlermeldung nichts anfangen! 

Eine weitere Frage wäre, ob es eine ähnliche Funktion für die Ebenen eines Achsensystems gibt? Denn hier schlägt mir der VBA-Editor nichts vor.

Mfg Jonas

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

bgrittmann
Moderator
Konstrukteur


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

Beiträge: 12054
Registriert: 30.11.2006

CATIA V5R19

erstellt am: 19. Jan. 2012 10: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 Nur für JonasXY 10 Unities + Antwort hilfreich

Servus
Ich gehe davon aus dass du deine Achsensystem der Objekt "Axissystem.1" zugewiesen hast. Schau mal in der V5Automation nach, ob diese Methode nur bei bestimmten Achsensystemen funktioniert.
IMHOIn my humble oppinion (Meiner Meinung nach) kommst du an die Ebenen eines Achsensystems nur über BRep-Zugriffe (ich persönlich würde die Finger davon lassen, ist eher komplex)

Gruß
Bernd

------------------
Warum einfach, wenn es auch kompliziert geht.

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

JonasXY
Mitglied



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

Beiträge: 10
Registriert: 19.04.2011

erstellt am: 19. Jan. 2012 13: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

Servus Bernd,

was meinst du mit "bestimmten Achsensystemen"?

Mein Code sieht so aus:

*Achsensystem "AS_Ursprung" wurde ein paar Schritte vorher erzeugt und passt auch soweit!*
Dim X_Ausrichtung As Reference
Set X_Ausrichtung = AS_Ursprung.XAxisDirection

Dürfte eigentlich soweit auch mit deinem Tipp übereinstimmen.
Konnte leider nix weiter rausfinden. 


Das Thema mit den Planes ist somit vom Tisch. Da kann ich mir auch anders helfen 

Mfg Jonas

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

JonasXY
Mitglied



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

Beiträge: 10
Registriert: 19.04.2011

erstellt am: 23. Jan. 2012 12: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 Zusammen  ,

stehe leider immer noch bei diesem Problem:

Dim reference1 As Reference
Set reference1 = AxisSystem1.XAxisDirection

Fehlermeldung:
"invalid procedure call or argument" 

Hat niemand einen Tipp? 

Mfg Jonas

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

JonasXY
Mitglied



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

Beiträge: 10
Registriert: 19.04.2011

erstellt am: 25. Jan. 2012 12: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

Servus,

das Problem liegt darin, dass das Achsensystem mit Geometrieelementen (z. B. einer Linie) erzeugt werden muss.

Gibt man beim Erstellen des Achsensystems einfach nur den Ursprung ohne Richtungsangaben an, kann man diese auch nicht abrufen.
Dasselbe gilt natürlich bei toten Achsensystemen.
In diesem Fall kommt man nur über eine B-Rep-Referenz oder evtl. sonstigen Umwegen an die Achsen.

Mfg Jonas

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: 25. Jan. 2012 13: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 Nur für JonasXY 10 Unities + Antwort hilfreich

Man könnte die Problematik noch rein mathematisch lösen, so würde ich es z.B. machen.

Hier mal meine Methode, die die Werte eines Achsensystems zurück gibt:

Code:

Private Sub getAxisFormSystem(ByRef i_axisSysWork As MECMOD.AxisSystem _
                                , ByRef o_dAxisX() As Double _
                                , ByRef o_dAxisY() As Double _
                                , ByRef o_dAxisZ() As Double _
                                , ByRef o_dAxisOrign() As Double)

    Dim arrBuffer(2)    As Variant
    Dim iIterator      As Integer
    Dim objBuffer      As Object
   
    Set objBuffer = i_axisSysWork
   
    objBuffer.GetXAxis arrBuffer
   
    For iIterator = 0 To 2
   
        o_dAxisX(iIterator + 1) = arrBuffer(iIterator)
   
    Next iIterator
   
    objBuffer.GetYAxis arrBuffer
   
    For iIterator = 0 To 2
   
        o_dAxisY(iIterator + 1) = arrBuffer(iIterator)
   
    Next iIterator
   
    objBuffer.GetZAxis arrBuffer
   
    For iIterator = 0 To 2
   
        o_dAxisZ(iIterator + 1) = arrBuffer(iIterator)
   
    Next iIterator
   
    objBuffer.GetOrigin arrBuffer
   
    For iIterator = 0 To 2
   
        o_dAxisOrign(iIterator + 1) = arrBuffer(iIterator)
   
    Next iIterator

End Sub


Dann haste alle wichtigen Koordinaten, der Rest ist nur errechnen, wo Deine Linie hin soll, Punkte erzeugen und Linie zwischen die Punkte setzen.

Um das Ganze dann assoziativ zu haben, musste noch etwas grübeln, dafür ist die Aufgabenstellung zu ungenau, aber da kann man auch einiges Machen, wie das Achsensystem aktiv setzen.

------------------
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

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