Autor
|
Thema: Achsensystem auslesen und Werte abspeichern (1666 mal gelesen)
|
Peter91 Mitglied
Beiträge: 39 Registriert: 12.10.2015 Catia V5-6R2014 Windows 7 VBA 7.1
|
erstellt am: 12. Okt. 2015 18:30 <-- editieren / zitieren --> Unities abgeben:
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
Beiträge: 11780 Registriert: 30.11.2006 CATIA V5R19
|
erstellt am: 12. Okt. 2015 18:47 <-- editieren / zitieren --> Unities abgeben: Nur für Peter91
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
Beiträge: 39 Registriert: 12.10.2015 Catia V5-6R2014 Windows 7 VBA 7.1
|
erstellt am: 12. Okt. 2015 19:38 <-- editieren / zitieren --> Unities abgeben:
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
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 / zitieren --> Unities abgeben: Nur für Peter91
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
Beiträge: 39 Registriert: 12.10.2015 Catia V5-6R2014 Windows 7 VBA 7.1
|
erstellt am: 12. Okt. 2015 21:05 <-- editieren / zitieren --> Unities abgeben:
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
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 / zitieren --> Unities abgeben: Nur für Peter91
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
Beiträge: 39 Registriert: 12.10.2015 Catia V5-6R2014 Windows 7 VBA 7.1
|
erstellt am: 14. Okt. 2015 18:47 <-- editieren / zitieren --> Unities abgeben:
|
Peter91 Mitglied
Beiträge: 39 Registriert: 12.10.2015 Catia V5-6R2014 Windows 7 VBA 7.1
|
erstellt am: 21. Okt. 2015 10:50 <-- editieren / zitieren --> Unities abgeben:
|
bgrittmann Moderator Konstrukteur
Beiträge: 11780 Registriert: 30.11.2006 CATIA V5R19
|
erstellt am: 21. Okt. 2015 11:44 <-- editieren / zitieren --> Unities abgeben: Nur für Peter91
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 |