| |
 | Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für CATIA & Co. |
| |
 | KISTERS 3DViewStation: Schutz sensibler 3D CAD Daten, egal von wo Sie arbeiten, eine Pressemitteilung
|
Autor
|
Thema: Koordinaten Punkt (6044 mal gelesen)
|
Chrisma Mitglied Ingenieur

 Beiträge: 85 Registriert: 29.03.2010
|
erstellt am: 10. Mai. 2010 11:02 <-- editieren / zitieren --> Unities abgeben:         
Servus alle zusammen, versuche gerade ein Makro zu schreiben um mir aus den Schnitten einer Ebene mit verschiedenen Linien den Schnitt mit dem größten X-Wert zu suchen. Bisher kann ich die Schnitte nur einer bestimmten Ebene selektieren. Nun möchte ich gerne die Koordinaten wissen. Dafür erzeuge ich einen Punkt auf dem jeweiligen Intersect (da man die Koordinaten eines Intersects ja anscheinend nicht auslesen kann) mit Referenz zu dem jeweiligen Intersect (Koordinaten (0,0,0)). Wie bekomme ich jetzt die globalen Koordinaten? 1. .getcoordinates funktioniert in catvba nicht 2. Abstandsmessung zur YZ-Ebene klappt bei mir auch nicht 3. über .getmeasureable gehts auch nicht "Dim ocoor As Measurable Set ocoor = Messung.GetMeasurable(Hilfspunkt) Dim Coordinates(2) ocoor.GetPoint Coordinates" VB sagt Compile Error: Function or marked as restricted, or the function uses an Automation type not supported in VB. Habe diese Funktion aber über den Objekt browser gefunden. verstehe es nicht. Wie kann ich sonst an ein Ergebnis kommen? Danke für die Hilfe ------------------ Hihihi, lol, hihihi  Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Starbirth Mitglied Konstrukteur
 
 Beiträge: 119 Registriert: 22.10.2009 Catia V5-6 R24 Windows 7 64bit Intel Xeon (4x3,5GHz) 32B Ram Nvidia Quatro K4200
|
erstellt am: 10. Mai. 2010 12:31 <-- editieren / zitieren --> Unities abgeben:          Nur für Chrisma
Hatte bereits ein ähnliches Problem. Meine Punktkoordinaten hab ich letztendlich so ausgelesen, dass ich zuerst den fraglichen Punkt kopiert und mit "Paste Special as Result" wieder eingefügt habe. Diesen Punkt ohne Historie konnte ich dann über das Measurable ausmessen. Den Hilfspunkt dann nach dem Messen wieder löschen und gut ist. Umständlich, aber scheinbar der einzige Weg solche Punkte doch zu vermessen. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
bgrittmann Moderator Konstrukteur
       
 Beiträge: 12054 Registriert: 30.11.2006 CATIA V5R19
|
erstellt am: 10. Mai. 2010 12:33 <-- editieren / zitieren --> Unities abgeben:          Nur für Chrisma
Servus AFAIR geht es wenn du deine "ocoor" als Objekt deklarierst (oder war es Variant?): Code: Dim ocoor As Object
Gruß Bernd ------------------ Warum einfach, wenn es auch kompliziert geht.
[Diese Nachricht wurde von bgrittmann am 10. Mai. 2010 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Chrisma Mitglied Ingenieur

 Beiträge: 85 Registriert: 29.03.2010
|
erstellt am: 10. Mai. 2010 13:28 <-- editieren / zitieren --> Unities abgeben:         
Servus, wenn ich es mit variant oder object mache, dann läuft es durch ohne das measureable anzumäkeln. Dann kann ich auch getcoordinates eingeben, obwhol es ja heißt, dass dieser Befehl in CATvba nicht funktioniert. Weder die MsgBox noch noch das Debug.Print gibt etwas aus.
Code:
Dim ocoor As Object Set ocoor = Messung.GetMeasurable(Hilfspunkt) Dim Coordinates(2) ocoor.GetPoint Coordinates MsgBox (ocoor) Debug.Print (ocoor.Value)
@starbirth so ähnlich hat es mir ein Kollege auch vorgeschlagen. Die frage ist nur, WIE lese ich es aus. Das erstellen einer Geometrie die ich auslesen kann ist nicht das Problem. ------------------ Hihihi, lol, hihihi  Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
bgrittmann Moderator Konstrukteur
       
 Beiträge: 12054 Registriert: 30.11.2006 CATIA V5R19
|
erstellt am: 10. Mai. 2010 13:41 <-- editieren / zitieren --> Unities abgeben:          Nur für Chrisma
|
Chrisma Mitglied Ingenieur

 Beiträge: 85 Registriert: 29.03.2010
|
erstellt am: 10. Mai. 2010 13:54 <-- editieren / zitieren --> Unities abgeben:         
Ohhh man  Danke ja, Juhuuuu! Wieder 5 Stunden meines Lebens verschwendet Mist, habe vergessen den Speicherplatz anzugeben, ist klar, dass das liebe Catia dann ein wenig verwirrt ist. Hier also der Ausschnitt nochmal. Gibt die Koordinaten eines Punktes als Array aus. Funktioniert auch mit Intersects. Das Gerücht, dass man Intersects nicht direkt auslesen kann stimmt also nicht. Achso, ist das in der Catia VB Hilfe dann ein Fehler, dass da steht: "Dim TheMeasurable As Measurable Set TheMeasurable = TheSPAWorkbench.GetMeasurable(referenceObject)" Oder muss man einfach wissen, dass Measurable einfach Object oder Variant oder was auch immer heißen kann? Danke schön!
Code:
'---- SPAWorkbench aktivieren Set Messung = CATIA.ActiveDocument.GetWorkbench("SPAWorkbench")'---- Den zu messenden Punkt einfügen Dim ocoor As Object Set ocoor = Messung.GetMeasurable(gesuchterPunkt) '----Array erzeugen und Punkt ausgeben Dim Coordinates(2) ocoor.GetPoint Coordinates MsgBox ("X=" & Coordinates(0) & " Y=" & Coordinates(1) & " Z=" & Coordinates(2)) MsgBox (ocoor) Debug.Print (ocoor.Value)
------------------ Hihihi, lol, hihihi  [Diese Nachricht wurde von Chrisma am 10. Mai. 2010 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |