Autor
|
Thema: Parallele als Einzelelemente in Skizze projizieren (1622 mal gelesen)
|
martin2 Mitglied Konstrukteur
Beiträge: 941 Registriert: 05.2002.27
|
erstellt am: 09. Mrz. 2018 11:58 <-- editieren / zitieren --> Unities abgeben:
Hallo, da der ursprüngliche Thread (http://ww3.cad.de/foren/ubb/Forum137/HTML/006477.shtml) leider nicht mehr vorhanden ist, starte ich den hier... Folgende Situation: (siehe auch Bild) a) Ich befinde mich innerhalb einer Skizze - z.B. "Skizze.2" b) Ich möchte eine Parallele - z.B. "Parallel.1" - in die Skizze mittels dem Befehl "3D-Elemente projizieren" projizieren. (gelbe Linien werden erzeugt) c) Ich möchte als Ergebnis aber nicht eine einzelne projizierte Gesamtkontur erhalten, sondern stattdessen die Parallele als einzelne Elemente projiziert haben. (so als ob man jede Linie und jeden Kreis der Parallelen einzeln anklickt. Hintergrund: Später soll es möglich sein, auch einzelne Elemente in der Skizze löschen zu können, ohne dabei wieder alles zu verlieren.) Ich habe hierfür das im Anhang ersichtliche Makro begonnen - jedoch sind da noch einige Probleme enthalten Die Probleme im einzelnen sind: a) Ich ermittle in welcher Skizze ich mich aktuell befinde - wie kann ich eine Fehlermeldung generieren, wenn ich mich aber in noch keiner Skizze befinde? b) Wie zerlege ich die zu projizierende Parallele in einzelne Elemente, die ich dann einzeln ansprechen und projizieren kann? (BReps?) c) Die Projektion selbst funktioniert zwar - erzeugt mir aber nach der ersten Projektion eine Fehlermeldung. Warum ist das so bzw. wie kann ich das abstellen? Vielen Dank schon mal im voraus! Martin
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
martin2 Mitglied Konstrukteur
Beiträge: 941 Registriert: 05.2002.27 Windows 11 / 64bit CATIA V5-6R2018 bis V5-6R2022
|
erstellt am: 09. Mrz. 2018 12:32 <-- editieren / zitieren --> Unities abgeben:
Hallo nochmal, das dritte Problem konnte ich mittlerweile lösen: 'Selektierte Elemente in die Skizze projizieren Dim GeometricElements_1 As GeometricElements Dim GeometricElement_1 As GeometricElement Dim factory2D_1 As Factory2D Set factory2D_1 = sketch_1.OpenEdition() For i = 1 To Sel_1.Count MsgBox i & ": " & Sel_1.Item(i).Value.Name 'Set GeometricElement_1 = factory2D_1.CreateProjection(Sel_1.Item(i).Value) Set GeometricElement_1 = factory2D_1.CreateProjection(oSelArray(i)) Next Gruß Martin
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
martin2 Mitglied Konstrukteur
Beiträge: 941 Registriert: 05.2002.27
|
erstellt am: 09. Mrz. 2018 13:45 <-- editieren / zitieren --> Unities abgeben:
Hallo nochmal, Problem Nr. 1 konnte ich auch noch lösen - anbei der aktuelle Stand. Bleibt immer noch die Frage, wie ich die Parallele in einzeln auswählbare Elemente zerlege. P.S. Die Errorhandler sind noch auskommentiert. Gruß Martin 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: 09. Mrz. 2018 18:36 <-- editieren / zitieren --> Unities abgeben: Nur für martin2
Servus Martin Ich würde es über die Suche nach den Kanten lösen: Code: Redim Filter(0) Filter(0) = "HybridShapeCurvePar"Status = oSel.SelectElement2(Filter, "Parallel-Feature wählen", False) if Status <> "Normal" then exit Sub end if 'nach Kanten suchen oSel.Search "Topology.CGMEdge,sel" 'jede Kante projezieren For i = 1 To oSel.Count2 Set GeometricElement_1 = factory2D_1.CreateProjection(oSel.Item2(i).Value) Next
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: 941 Registriert: 05.2002.27
|
erstellt am: 12. Mrz. 2018 07:44 <-- editieren / zitieren --> Unities abgeben:
|
bgrittmann Moderator Konstrukteur
Beiträge: 11780 Registriert: 30.11.2006 CATIA V5R19
|
erstellt am: 12. Mrz. 2018 08:14 <-- editieren / zitieren --> Unities abgeben: Nur für martin2
Servus Martin Ergänze mal ein: Set oSel = partDocument_1.Selection Falls du das Paralell-Feature nicht vom User selektieren lassen willst, kannst du dieses natürlich auch direkt per Code selektieren. 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: 941 Registriert: 05.2002.27
|
erstellt am: 12. Mrz. 2018 09:32 <-- editieren / zitieren --> Unities abgeben:
|
martin2 Mitglied Konstrukteur
Beiträge: 941 Registriert: 05.2002.27 Windows 11 / 64bit CATIA V5-6R2018 bis V5-6R2022
|
erstellt am: 12. Mrz. 2018 09:36 <-- editieren / zitieren --> Unities abgeben:
Hallo nochmal, da Du offensichtlich viel mit Makros zu tun hast - anbei ein kleines von mir einst erstelltes Makro, welches Du bei Deiner Arbeit evtl. gebrauchen kannst. Ich hoffe die Geschichte ist soweit selbsterklärend... Viel Spaß Martin Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |