Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  CATIA V5 Programmierung
  Achsensystem auslesen und Werte abspeichern

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:  Achsensystem auslesen und Werte abspeichern (1666 mal gelesen)
Peter91
Mitglied



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

Beiträge: 39
Registriert: 12.10.2015

Catia V5-6R2014
Windows 7
VBA 7.1

erstellt am: 12. Okt. 2015 18: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

Hallo zusammen!

Da ich mit der VBA Programmierung nicht so vertraut bin und sehr wenig Erfahrung auf diesem Gebiet habe, probiere ich es nun einmal hier.
Und zwar geht es darum in einem Produkt alle Parts nach einem Achsensystem mit dem Namen "Achsensystem_1" zu durchsuchen und die Koordinaten(X, Y, Z) vom Ursprung aus zu speichern.
Mit diesen Koordinaten soll später gerechnet werden und anschließend in ein leeres Textdokument .txt geschrieben werden.
Mit welchen Befehlen programmiere ich so etwas am besten? Arbeite mit Catia V5 R24.

Mit freundlichen Grüßen
Peter

[Diese Nachricht wurde von Peter91 am 12. Okt. 2015 editiert.]

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: 11780
Registriert: 30.11.2006

CATIA V5R19

erstellt am: 12. Okt. 2015 18: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 Peter91 10 Unities + Antwort hilfreich

Servus Peter
Willkommen im Forum.
Du schaust in der Doku (V5Automation.chm) nach Axisystems und die du darauf zugreift (ggf auch die Objektauflösung benutzen).
Dann das Achsensystem über Item und mit GetOrigin die Koordinaten auslesen.

Gruß
Bernd

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

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

Peter91
Mitglied



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

Beiträge: 39
Registriert: 12.10.2015

Catia V5-6R2014
Windows 7
VBA 7.1

erstellt am: 12. Okt. 2015 19:38    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

Vielen Dank Bernd. Habe mich ein wenig eingelesen aber ich weiß nicht wie das dann im Programm aussehen soll 

Also Achsensystem_1 suchen, Koordinaten auslesen, eine .txt Datei öffnen und die Koordinaten dort eintragen.

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

joehz
Moderator
Freiberuflicher Konstrukteur


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

Beiträge: 1057
Registriert: 25.11.2006

Win7 Pro 64 + Ubuntu + Irix6.5.20
Dell Precision M6600 i7-2960XM 2.7GHz 16GB
NVidia Quadro M5010
Catia V5R19
VB6Pro.SP6/VBA 6.5.1053

erstellt am: 12. Okt. 2015 20:08    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 Peter91 10 Unities + Antwort hilfreich

Hi Peter,
Achsensysteme werden durch Ursprung und Ausrichtung definiert.
Nachfolgenden Skript in ein VBA-Modul kopieren:
Code:

Option Explicit
Sub catmain()
  Dim oADP As Part
  Dim oAxDummy As Object
  Dim arrAxVectX(2)
  Dim arrAxVectY(2)
  Dim arrAxVectZ(2)
  Dim arrAxOrig(2)
  Dim i As Integer

  Set oADP = CATIA.ActiveDocument.Part

  For i = 1 To oADP.AxisSystems.Count
      Set oAxDummy = oADP.AxisSystems.Item(i)
      oAxDummy.GetOrigin arrAxOrig
      oAxDummy.GetXAxis arrAxVectX
      oAxDummy.GetYAxis arrAxVectY
      oAxDummy.GetZAxis arrAxVectZ

      Debug.Print "Origin:  " & vbTab & arrAxOrig(0) & vbTab & arrAxOrig(1) & vbTab & arrAxOrig(2)
      Debug.Print "x-vector: " & vbTab & arrAxVectX(0) & vbTab & arrAxVectX(1) & vbTab & arrAxVectX(2)
      Debug.Print "y-vector: " & vbTab & arrAxVectY(0) & vbTab & arrAxVectY(1) & vbTab & arrAxVectY(2)
      Debug.Print "z-vector: " & vbTab & arrAxVectZ(0) & vbTab & arrAxVectZ(1) & vbTab & arrAxVectZ(2)
  Next
End Sub



Das Skript setzt ein geladenes Catpart voraus. Sinnvoll wäre, wenn auch ein oder zwei Achsensysteme im Modell wären. :-b

Falls Du noch nicht mit dem VBA-Editor arbeitest:

Dann wird's aber Zeit! :-)

Enjoy,
Joe

------------------
Inoffizielle Catia Hilfeseite

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

Peter91
Mitglied



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

Beiträge: 39
Registriert: 12.10.2015

Catia V5-6R2014
Windows 7
VBA 7.1

erstellt am: 12. Okt. 2015 21:05    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

Vielen Dank für das Beispielprogramm Joe.
Ich möchte jedoch nur ein einziges Achsensystem auslesen, das den Namen "Achsensystem_1" hat und den x,y,z Wert automatisch in eine .txt Datei schreiben...
Kenne mich mit der VBA Programmierung noch nicht wirklich gut aus :-(

MfG

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

joehz
Moderator
Freiberuflicher Konstrukteur


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

Beiträge: 1057
Registriert: 25.11.2006

Win7 Pro 64 + Ubuntu + Irix6.5.20
Dell Precision M6600 i7-2960XM 2.7GHz 16GB
NVidia Quadro M5010
Catia V5R19
VB6Pro.SP6/VBA 6.5.1053

erstellt am: 12. Okt. 2015 21: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 Nur für Peter91 10 Unities + Antwort hilfreich

Hi Peter,
Zitat:

Da ich mit der VBA Programmierung nicht so vertraut


Das würde den Anschein erwecken, dass Du mit einem anderen System programmieren kannst.


Zum Thema:

Dann lass die 'For'-Schleife weg.
Statt

Code:

Set oAxDummy = oADP.AxisSystems.Item(i)


schreibe
Code:

Set oAxDummy = oADP.AxisSystems.Item("Achsensystem_1")

Wie Du unter VB eine Datei anlegst und beschreibst, kannst Du in der Online-Hilfe zu VBA finden.
Stichworte: 'Open', 'Close', 'FreeFile', 'Write', 'LineInput'.

Tschau,
Joe

------------------
Inoffizielle Catia Hilfeseite

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

Peter91
Mitglied



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

Beiträge: 39
Registriert: 12.10.2015

Catia V5-6R2014
Windows 7
VBA 7.1

erstellt am: 14. Okt. 2015 18: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

Vielen Dank, das hat mir schonmal sehr gut weitergeholfen :-)

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

Peter91
Mitglied



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

Beiträge: 39
Registriert: 12.10.2015

Catia V5-6R2014
Windows 7
VBA 7.1

erstellt am: 21. Okt. 2015 10: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

Ist es auch möglich das Achsensystem auszulesen wenn ich mich noch im Produkt befinde?

Falls ja, was müsste an dem obigen Skript verändert werden?


Gruß
Peter

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: 11780
Registriert: 30.11.2006

CATIA V5R19

erstellt am: 21. Okt. 2015 11:44    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 Peter91 10 Unities + Antwort hilfreich

Servus
Ich würde so vorgehen (mit dem vorherigen Code hat das nicht mehr viel zu tun):
- Alle Achsensysteme mit der Suche selektieren
- bei jedem Achsensystem über Measurable "GetAxisSystem" die Werte auslesen
AFAIR werden dann die Koordinaten/Ausrichtungen im Baugruppenkontext ausgegeben.
(siehe auch Forensuche und Doku)

Gruß
Bernd

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

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