Autor
|
Thema: Kante extrahieren (2583 mal gelesen)
|
Zwenne12 Mitglied Werkzeugkonstrukteur
Beiträge: 26 Registriert: 23.08.2004
|
erstellt am: 13. Jun. 2005 12:17 <-- editieren / zitieren --> Unities abgeben:
Hallo Leute, um ein Streifenlayout für Folgeverbundwerkzeuge zu erstellen, möchte ich mit der Funktion "Extract" festlegen in welcher Folge ein bestimmtes Profil geschnitten werden soll. Dazu habe ich alle Schnitte in einem Sketch erstellt, diesen dann gepattert und danach in der entsprechenden Folge eine Kante des gewünschten Schnittes selektiert und extrahiert. Jetzt möchte ich das mit einem Makro automatisieren: Language="VBSCRIPT" Sub CATMain() Dim part1 As Part
Set part1 = CATIA.ActiveDocument.Part '-----------------Selektieren der Kante Dim Selektion(0) Dim Eingabe As CATBSTR Dim UserSel As Selection Set UserSel = CATIA.ActiveDocument.Selection Selektion(0) = "Edge" Eingabe = UserSel.SelectElement(Selektion, "Kante selektieren!", false) '-----------------Extrahieren Dim Kanten As AnyObject Dim Ref As Reference Dim hybridShapeExtract1 As HybridShapeExtract Dim Ableitung As HybridShapeFactory Set Kanten = UserSel.Item(1).Reference Set Ref = part1.CreateReferenceFromObject (Kanten) Set Ableitung = part1.HybridShapeFactory Set hybridShapeExtract1 = Ableitung.AddNewExtract(Ref) hybridShapeExtract1.PropagationType = 1 hybridShapeExtract1.ComplementaryExtract = False hybridShapeExtract1.IsFederated = False part1.update End Sub
Ich bekomme jedoch immer folgende Fehlermeldung: siehe Anhang Die gelben Linien sind übrigens der gepatterte Sketch und die pinken Profile sind die Extracts.
Ich hoffe ihr könnt mir helfen den Fehler zu finden. Gruß Sven Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Steffen Hohmann Mitglied
Beiträge: 446 Registriert: 06.03.2002
|
erstellt am: 13. Jun. 2005 13:23 <-- editieren / zitieren --> Unities abgeben: Nur für Zwenne12
Hallo Sven, zwei Fehler sind im Makro: 1. Das Objekt "Kanten" ist doch bereits eine Referenz. Warum dann nochmal mit Set Ref = part1.CreateReferenceFromObject (Kanten) ??? Hier reicht es bereits so: Set hybridShapeExtract1 = Ableitung.AddNewExtract(Kanten) 2. Nach dem Erzeugen des Extractes darf man nicht vergessen, dieses Objekt einem "Open Body" zuzuweisen:
Dim oOpenBody As HybridBody set oOpenBody = part1.HybridBodies.Item(1) oOpenBody.AppendHybridShape hybridShapeExtract1 Dann funktioniert es auch.
Gruß Steffen Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Zwenne12 Mitglied Werkzeugkonstrukteur
Beiträge: 26 Registriert: 23.08.2004
|
erstellt am: 13. Jun. 2005 13:56 <-- editieren / zitieren --> Unities abgeben:
|
Steffen Hohmann Mitglied
Beiträge: 446 Registriert: 06.03.2002
|
erstellt am: 13. Jun. 2005 14:01 <-- editieren / zitieren --> Unities abgeben: Nur für Zwenne12
|
Zwenne12 Mitglied Werkzeugkonstrukteur
Beiträge: 26 Registriert: 23.08.2004
|
erstellt am: 13. Jun. 2005 14:53 <-- editieren / zitieren --> Unities abgeben:
Hallo, Hab da noch ne Frage. Wie kann ich nun die Farbe ändern? Mit Dim Farbe As VisPropertySet Set Farbe = UserSel.VisProperties Farbe.SetRealColor 255,0,255,0 geht es nicht. Oder muss ich für UserSel etwas anderes eintragen? Danke Sven
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Steffen Hohmann Mitglied
Beiträge: 446 Registriert: 06.03.2002
|
erstellt am: 13. Jun. 2005 15:04 <-- editieren / zitieren --> Unities abgeben: Nur für Zwenne12
Hallo Sven, die Frage ist, was beinhaltet UserSel zu diesem Zeitpunkt und wessen Farbe soll geändert werden? Die vom Extract? Dann muß das Extract auch der Selection zugewiesen werden. UserSel.Clear UserSel.Add hybridShapeExtract1 UserSel.VisProperties.SetRealColor 255,0,255,0 Gruß Steffen Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Zwenne12 Mitglied Werkzeugkonstrukteur
Beiträge: 26 Registriert: 23.08.2004
|
erstellt am: 14. Jun. 2005 07:32 <-- editieren / zitieren --> Unities abgeben:
|
sven180581 Mitglied
Beiträge: 19 Registriert: 23.01.2013
|
erstellt am: 12. Feb. 2013 08:20 <-- editieren / zitieren --> Unities abgeben: Nur für Zwenne12
Servus beieinander, habe das Makro hier gefunden und gedacht super das passt genau wie ich es brauch. Leider bleibt es bei mir immer an der Stelle hängen. Eingabe = UserSel.SelectElement(Selektion, "Kante selektieren!", false) Ich brauch das Makro auch damit ich eine Kante auswählen kann und es daraus dann auch wie hier des Extract macht. Leider finde ich den Fehler nicht. Abei ein Bild. Möchte die rote Kante selektieren und dann soll er mir von dem Kurvenverlauf des kleinen Feldes ein Extract erzeugen. Die Kante ist hierbei im Baum nicht einzeln anwählbar sondern existiert nur wie makiert als Solid.2 Was muss ich denn da im Makro anpassen..? Vielen Dank vorab Gruß [Diese Nachricht wurde von sven180581 am 18. Feb. 2013 editiert.] [Diese Nachricht wurde von sven180581 am 18. Feb. 2013 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
sven180581 Mitglied
Beiträge: 19 Registriert: 23.01.2013
|
erstellt am: 12. Feb. 2013 09:59 <-- editieren / zitieren --> Unities abgeben: Nur für Zwenne12
Habe es jetzt mal so probiert. Jetzt kann ich die benötigte Kante auswählen direkt aus dem Bauteil. Sub CATMain() 'Deklaration----------------------------------------------- Set Selection1 = CATIA.ActiveDocument.Selection Dim ElementTyp(0) ElementTyp(0) = "AnyObject" 'alsAnyObject geändert, um im Bauteil direkt die nötige Kante zu wählen Selection1.Clear Do ' Do...LOPP-Schleife Auswahl = Selection1.SelectElement2(ElementTyp, "Wähle eine Plane aus...", False) ' Aufforderung Catia-Fenster unten links If Auswahl = "Normal" Then ' wenn Auswahl erfolgt dann... Set Element = Selection1.Item(1) MsgBox Element.Value.Name & " wurde ausgewählt.", 1, "Auswahl" Fertig = True Else Box = MsgBox("Die Selektion wurde abgebrochen" + Chr(10) + _ "Das Makro wurde beendet!", 48, "Benutzerabbruch") Exit Sub End If Loop Until Fertig = True ' verbleibe in Do...LOPP-Schleife bis was ausgewählt wurde
End Sub 'Aber wie binde ich hier jetzt das Extract ein?????????????????? Bitte um Hilfe Gruß
Sven
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |