| |
 | CATIA V5 Grundkurs | Einsteiger - 5 Std. 15 Min 48 |
| |
 | KISTERS 3DViewStation: verbesserte Effizienz durch optimierte Bedienoberfläche, eine Pressemitteilung
|
Autor
|
Thema: Linie: Punkt - Richtung (1429 / mal gelesen)
|
martin2 Mitglied Konstrukteur
   
 Beiträge: 1014 Registriert: 05.2002.27 Windows 11 / 64bit CATIA V5-6R2020 bis V5-6R2024
|
erstellt am: 20. Sep. 2016 11:09 <-- editieren / zitieren --> Unities abgeben:         
Hallo, kann mir bitte jemand mitteilen, warum der folgende Code nicht funktioniert? Vielen Dank schon mal im voraus. 'Punkt erstellen Dim HybridShapeFactory1 As HybridShapeFactory Set HybridShapeFactory1 = CATIA.ActiveDocument.Part.HybridShapeFactory Dim Point1 As Point Set Point1 = HybridShapeFactory1.AddNewPointCoord(0, 0, 0) Point1.Compute HybridBody2.AppendHybridShape Point1 Point1.Name = "Nullpunkt" 'Ebene erstellen Dim OriginElements1 As OriginElements Set OriginElements1 = CATIA.ActiveDocument.Part.OriginElements Dim Plane1 As Plane Set Plane1 = HybridShapeFactory1.AddNewPlaneOffsetPt(OriginElements1.PlaneZX, Point1) Plane1.Compute HybridBody2.AppendHybridShape Plane1 Plane1.Name = "zx-Ebene" 'Linie erstellen Dim Line1 As Line Set Line1 = HybridShapeFactory1.AddNewLinePtDir(Point1, CATIA.ActiveDocument.Part.OriginElements.PlaneYZ, 0, 20, True) Line1.Compute HybridBody2.AppendHybridShape Line1 Line1.Name = "x-Line" Das Problem ist dabei offensichtlich die Zeile: Set Line1 = HybridShapeFactory1.AddNewLinePtDir(Point1, CATIA.ActiveDocument.Part.OriginElements.PlaneYZ, 0, 20, True) (Nur zur Info: Der Punkt und die Ebene werden einwandfrei erstellt - nur die Linie eben nicht...) Danke und Gruß Martin 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: 20. Sep. 2016 11:22 <-- editieren / zitieren --> Unities abgeben:          Nur für martin2
Servus Martin Gemäß der Doku benötigt AddNewLinePtDir den Punkt als Reference und die Richtung als Direction. Probier es mal so: Code:
'Referenzen bilden dim RefPoint as Reference Set RefPoint = CATIA.ActiveDocument.Part.CreateReferenceFromObject(Point1) dim RefDirection as Reference Set RefDirection = CATIA.ActiveDocument.Part.CreateReferenceFromObject(Plane1) 'Direction bilden Dim MyDirection As HybridShapeDirection Set MyDirection = hybridShapeFactory1.AddNewDirection(RefDirection) 'Linie erstellen Dim Line1 As Line Set Line1 = HybridShapeFactory1.AddNewLinePtDir(RefPoint, MyDirection, 0, 20, True) Line1.Compute HybridBody2.AppendHybridShape Line1 Line1.Name = "x-Line"
Das lässt sich auch gut mit dem Makrorekorder aufnehmen. Gruß Bernd ------------------ Warum einfach, wenn es auch kompliziert geht. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
martin2 Mitglied Konstrukteur
   
 Beiträge: 1014 Registriert: 05.2002.27
|
erstellt am: 20. Sep. 2016 11:35 <-- editieren / zitieren --> Unities abgeben:         
|
martin2 Mitglied Konstrukteur
   
 Beiträge: 1014 Registriert: 05.2002.27 Windows 11 / 64bit CATIA V5-6R2020 bis V5-6R2024
|
erstellt am: 20. Sep. 2016 14:06 <-- editieren / zitieren --> Unities abgeben:         
Hallo nochmal, noch eine weitere Frage - mit ähnlicher Problematik... Warum funktioniert hier der Code nicht: 'Äußerster Punkt "xmax" erstellen 'Referenzen bilden Dim RefBody As Reference Set RefBody = CATIA.ActiveDocument.Part.CreateReferenceFromObject(CATIA.ActiveDocument.Part) 'Dim RefLinie As Reference Set RefLinie = CATIA.ActiveDocument.Part.CreateReferenceFromObject(Line1) Dim xmax As HybridShapeExtremum Set xmax = HybridShapeFactory1.AddNewExtremum(RefBody, RefLinie, 1) Und als Zusatzfrage noch: Wie kann ich beim "Äußersten Punkt" die beiden optionalen Richtungen inkl. Min/Max (siehe Bild im Anhang) ebenfalls noch übergeben?
Danke und Gruß Martin 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: 20. Sep. 2016 14:28 <-- editieren / zitieren --> Unities abgeben:          Nur für martin2
Servus Vermutlich muss du die Reference aus dem Hautkörper bilden und nicht vom ganzen Part. Code: Set RefBody = CATIA.ActiveDocument.Part.CreateReferenceFromObject(CATIA.ActiveDocument.Part.Mainbody)
Die zusätzlichen Richtungen kannst du über die Eigenschaften Direction2 und Direction3 definieren (Makrorekorder und Doku) bzw Min/Max über ExtremumType2 und ExtremumType3. Gruß Bernd ------------------ Warum einfach, wenn es auch kompliziert geht. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
martin2 Mitglied Konstrukteur
   
 Beiträge: 1014 Registriert: 05.2002.27
|
erstellt am: 21. Sep. 2016 19:05 <-- editieren / zitieren --> Unities abgeben:         
Hallo nochmal, nur der Vollständigkeit halber - ich hab's hinbekommen. Es lag sowohl am RefBody als auch an der RefLinie. Das mit Direction 2 und 3 hab ich nach einer Makroaufzeichnung dann auch noch gecheckt. Danke! Martin Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |