Autor
|
Thema: Linie senkrecht zur ebene (1063 / mal gelesen)
|
WMA HSU Mitglied WMA
Beiträge: 22 Registriert: 31.03.2020
|
erstellt am: 02. Apr. 2020 17:46 <-- editieren / zitieren --> Unities abgeben:
Hallo zusammen, Ich habe ein Verständnisproblem bei folgender Aufgabe: Ich will eine Linie erzeugen, indem man auf einen Bohrungsrand klickt. Das Programm erzeugt aus dem Mittelpunkt des Kreises (der Bohrungsrand) und aus der Fläche, in der der Kreis liegt, eine Linie. Dabei kopiere ich hauptsächlich das Vorgehen des Makro-Recorders. Leider habe ich das Problem, dass die Linien alle in die selbe Richtung zeigen und nicht "in die Bohrung" hinein. Hier der Code:
Code:
Dim hybridShapePlane1Curve1 As HybridShapePlane1Curve hybridShapePlane1Curve1 = hybridShapeFactory1.AddNewPlane1Curve(reference1) Dim reference2 As Reference reference2 = part1.CreateReferenceFromObject(hybridShapePlane1Curve1) Dim refOrigin As Reference refOrigin = part1.CreateReferenceFromObject(hybridShapePointCenter1) part1.Update() Dim hybridShapeLineNormal1 As HybridShapeLineNormal hybridShapeLineNormal1 = hybridShapeFactory1.AddNewLineNormal(reference2, refOrigin, 0, NormteilLaengeInt(index), False) body1.InsertHybridShape(hybridShapeLineNormal1) part1.Update()
Ich vermute, dass ich bei "AddNewLineNormal(reference2, refOrigin, 0, NormteilLaengeInt(index), False)" einen Logikfehler habe. Könnt Ihr mir weiterhelfen? 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: 02. Apr. 2020 18:11 <-- editieren / zitieren --> Unities abgeben: Nur für WMA HSU
Servus Wie sieht denn die falsche Linie aus? Erwartet AddNewLineNormal nicht eine Reference einer Fläche? ggf musst du AddNewLinePtDir verwenden (Direction aus deiner Kurve erstellen) Gruß Bernd ------------------ Warum einfach, wenn es auch kompliziert geht. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
WMA HSU Mitglied WMA
Beiträge: 22 Registriert: 31.03.2020
|
erstellt am: 02. Apr. 2020 18:34 <-- editieren / zitieren --> Unities abgeben:
Hallo Bernd, Vielen Dank, dass du so zuverlässig antwortest. Ich habe die beiden Zustände einmal als Bild angehängt. Die Fläche hole ich mir wie folgt:
Code:
Dim hybridShapePlane1Curve1 As HybridShapePlane1Curve hybridShapePlane1Curve1 = hybridShapeFactory1.AddNewPlane1Curve(reference1) Dim reference2 As Reference reference2 = part1.CreateReferenceFromObject(hybridShapePlane1Curve1)
reference1 verweist dabei auf den ausgewählten Kreis. 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: 02. Apr. 2020 18:47 <-- editieren / zitieren --> Unities abgeben: Nur für WMA HSU
Servus Die Richtung von Ebenen/Flächen sind etwas "sonderbar". Vermutlich musst du die Linie erstellen, einen Weg finde um zu prüfen ob diese richtig herum ist und falls nicht diese invertieren (Orientation). Gruß Bernd Kleiner Tipp: gewöhne dir gleich an einen sauberen Code zu erstellen (alle Dims nach vorne, sprechende Objektnamen, Namenskonventionen, Fehlerbehandlung, ...) ------------------ Warum einfach, wenn es auch kompliziert geht. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
WMA HSU Mitglied WMA
Beiträge: 22 Registriert: 31.03.2020
|
erstellt am: 06. Apr. 2020 15:59 <-- editieren / zitieren --> Unities abgeben:
Hallo Bernd, Ich habe mir überlegt, dass ich die Distanzen zwischen dem Kreismittelpunkt und der Kamera sowie dem Endpunkt der Linie (Teil der Bohrungsachse) und der Kamera vergleiche. Ist der Endpunkt dichter, muss ich die Linie invertieren. Die Koordinaten der Kamera zu lesen ist relativ einfach, ich weiß aber nicht, wie ich den Endpunkt der Linie herausbekomme. Fällt dir ein unkomplizierter Weg ein? Vielen Dank für deine Zeit, Jörn 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: 06. Apr. 2020 16:03 <-- editieren / zitieren --> Unities abgeben: Nur für WMA HSU
Servus Jörn Du könntest mit einer Messung (GetPointsOnCurve) die Koordinaten bestimmen und dann selbst den Abstand berechnen. Gruß Bernd ------------------ Warum einfach, wenn es auch kompliziert geht. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |