Autor
|
Thema: Split Richtung ändern (4415 mal gelesen)
|
sawah Mitglied
Beiträge: 65 Registriert: 07.06.2011 XP, CATIA V5 R19
|
erstellt am: 12. Okt. 2011 09:12 <-- editieren / zitieren --> Unities abgeben:
Hallo zusammen, ich habe eine Frage und zwar wie kann ich die Richtung eines Splits ändern. ich habe zwei Splits auf eine Fläche erstellt, die Geometrie wird um eine Achse gedreht. nach der Drehung nehmen die Splits die Falsche Richtung. ich habe es mit Makroaufnahme probiert und einfach auf Other side geklickt, klappt aber nicht, wir ein neues erstellt. kann mir bitte jemand weiter helfen? Gruß Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
HoBLila Mitglied Dipl.-Ing. (BA) praktische Informatik - Senior Entwickler CAx
Beiträge: 1118 Registriert: 29.05.2008 DELL PRECISION T3500 Intel(R) Xeon(R) CPU W3540 @ 2.93GHz 12285 MB RAM NVIDIA Quadro FX 1800 Microsoft Windows 7 Enterprise Service Pack 1 CATIA V5 R19 SP09 HF69 VB6.5 CAA RADE CDC
|
erstellt am: 12. Okt. 2011 09:50 <-- editieren / zitieren --> Unities abgeben: Nur für sawah
Hallo sawah, die Doku sagt dazu: Property SplittingSide( ) As CatSplitSide Returns or sets the splitting side . The splitting side is the side of the splitting element kept after the split. A positive side refers to the same orientation than the splitting element normal vector. Example: The following example returns in sptSide the splitting side of the split shape mySplit, and then sets it to catPositiveSide:
Code:
Set sptSide = mySplit.SplittingSide mySplit.SplittingSide = catPositiveSide
und CatSplitSide (Enumeration) enum CatSplitSide { catPositiveSide, catNegativeSide } Split side. The split operation parameter for specifying on which side of the splitting element material in splitted element should be removed. Values: catPositiveSide Material in the splitted element should be removed in the direction indicated by the splitting element normal vector. This vector is oriented towards the outside of the material when a face is selected. catNegativeSide Material in the splitted element should be removed in the direction opposite to the one indicated by the splitting element normal vector ------------------ Mit freundlichen Grüßen, Henry Schneider alias Lila Es gibt einen ewigen Wettkampf zwischen der Natur und den Ingenieuren: Die Ingenieure versuchen, immer idioten-sicherere Systeme zu bauen, die Natur versucht, immer bessere Idioten zu bauen Xing Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
sawah Mitglied
Beiträge: 65 Registriert: 07.06.2011 XP, CATIA V5 R19
|
erstellt am: 12. Okt. 2011 10:52 <-- editieren / zitieren --> Unities abgeben:
Hallo Henry, erstmal danke, so wie ich das verstanden habe: Code:
Set sptSide = part1.HybridBodies.Item("Geometrical Set.4").HybridShapes.Item("Split_7").SplittingSidesptSide.SplittingSide = catPositiveSide Set sptSide1 = part1.HybridBodies.Item("Geometrical Set.4").HybridShapes.Item("Split_8").SplittingSide sptSide1.SplittingSide = catNegativeSide
was mache ich falsch??? Gruß Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
HoBLila Mitglied Dipl.-Ing. (BA) praktische Informatik - Senior Entwickler CAx
Beiträge: 1118 Registriert: 29.05.2008 DELL PRECISION T3500 Intel(R) Xeon(R) CPU W3540 @ 2.93GHz 12285 MB RAM NVIDIA Quadro FX 1800 Microsoft Windows 7 Enterprise Service Pack 1 CATIA V5 R19 SP09 HF69 VB6.5 CAA RADE CDC
|
erstellt am: 12. Okt. 2011 13:04 <-- editieren / zitieren --> Unities abgeben: Nur für sawah
Was kommt denn für ne Fehlermeldung? Ohne kann ich nur raten. Wichtig wäre auch die dazugehörige Zeile. ------------------ Mit freundlichen Grüßen, Henry Schneider alias Lila Es gibt einen ewigen Wettkampf zwischen der Natur und den Ingenieuren: Die Ingenieure versuchen, immer idioten-sicherere Systeme zu bauen, die Natur versucht, immer bessere Idioten zu bauen Xing Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
sawah Mitglied
Beiträge: 65 Registriert: 07.06.2011 XP, CATIA V5 R19
|
erstellt am: 12. Okt. 2011 13:06 <-- editieren / zitieren --> Unities abgeben:
|
HoBLila Mitglied Dipl.-Ing. (BA) praktische Informatik - Senior Entwickler CAx
Beiträge: 1118 Registriert: 29.05.2008 DELL PRECISION T3500 Intel(R) Xeon(R) CPU W3540 @ 2.93GHz 12285 MB RAM NVIDIA Quadro FX 1800 Microsoft Windows 7 Enterprise Service Pack 1 CATIA V5 R19 SP09 HF69 VB6.5 CAA RADE CDC
|
erstellt am: 12. Okt. 2011 13:33 <-- editieren / zitieren --> Unities abgeben: Nur für sawah
Dann kann ich jetzt auch nur Mutmaßen: Ist das richtige Part in der Variable part1? Gibt es das Geometrical Set.4? Gibt es Split_7? Ist Split_7 vorher auf catNegativeSide? Macht Du hinterher ein Update? Wird das Makro überhaupt aufgerufen? Edit: sptSide.SplittingSide = catPositiveSide müsste sptSide = catPositiveSide sein, aber dafür sollte es ne Fehlermeldung geben. Edit2: Ach alles murks, mach einfach mySplit.SplittingSide = catPositiveSide und hol Dir vorher ordentliche Objekte, die möglichst auch deklariert sind. ------------------ Mit freundlichen Grüßen, Henry Schneider alias Lila Es gibt einen ewigen Wettkampf zwischen der Natur und den Ingenieuren: Die Ingenieure versuchen, immer idioten-sicherere Systeme zu bauen, die Natur versucht, immer bessere Idioten zu bauen Xing [Diese Nachricht wurde von HoBLila am 12. Okt. 2011 editiert.] [Diese Nachricht wurde von HoBLila am 12. Okt. 2011 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
sawah Mitglied
Beiträge: 65 Registriert: 07.06.2011 XP, CATIA V5 R19
|
erstellt am: 12. Okt. 2011 14:56 <-- editieren / zitieren --> Unities abgeben:
Hallo, part1 stimmt,Geometrical Set.4 stimmt und Split_7 gibt s auch. Zitat: Ist Split_7 vorher auf catNegativeSide?
ja steht auf 0. Update wurde vor- und nachher gemacht. Zitat: Wird das Makro überhaupt aufgerufen?
mache ich erstmal ohne Makro. mySplit.SplittingSide = catPositiveSide habe ich auch gemacht, geht trotzdem nicht. Gruß
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
sawah Mitglied
Beiträge: 65 Registriert: 07.06.2011 XP, CATIA V5 R19
|
erstellt am: 12. Okt. 2011 15:51 <-- editieren / zitieren --> Unities abgeben:
Hallo, ich habe es jetzt mit Selection versucht, zwar wird Split_7 selektiert aber wird nicht geändert.
Code:
Dim selection4 As Object Set selection4 = partDocument1.Selection selection4.Search "(Name=*Split_7*),all" Set sptSide = selection4.SplittingSide sptSide = catNegativeSide
Gruß 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: 12. Okt. 2011 17:01 <-- editieren / zitieren --> Unities abgeben: Nur für sawah
Servus IMHO ihr redet von unterschiedlichen Spli-Funktionen. Im GSD sollte es so funktionieren (ungetetet): Code: Set split = part1.HybridBodies.Item("Geometrical Set.4").HybridShapes.Item("Split_7")split.Orientation = 1
Bitte nochmal in der Doku nachschauen welcher Wert was bedeutet (1 oder -1). Ggf auch vorher den gestzen ert auslesen und dann umschalten.Gruß Bernd ------------------ Warum einfach, wenn es auch kompliziert geht. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
sawah Mitglied
Beiträge: 65 Registriert: 07.06.2011 XP, CATIA V5 R19
|
erstellt am: 13. Okt. 2011 10:01 <-- editieren / zitieren --> Unities abgeben:
|
Tamo Mitglied Maschinenbautechniker
Beiträge: 53 Registriert: 20.10.2009
|
erstellt am: 08. Feb. 2012 13:16 <-- editieren / zitieren --> Unities abgeben: Nur für sawah
Hallo Zusammen möchte auch die Richtung meiner Splits über eine Reaction ändern können. Ist dies auch möglich wenn man keine HybridBodies verwendet? Kann ich das über meinen Parameter ändern? Was mache ich falsch? Bin nihct so der programmiertyp Set sptSide = part01_mounted_1.1.Bodies.Item("part01_mounted_1.1").Bodies.Item("Split_119").SplittingSide sptSide.SplittingSide = catPositiveSide Set sptSide1 = part01_mounted_1.1.Bodies.Item("part01_mounted_1.1").Bodies.Item("Split_119").SplittingSide sptSide1.SplittingSide = catNegativeSide End sub
[Diese Nachricht wurde von Tamo am 08. Feb. 2012 editiert.]
[Diese Nachricht wurde von Tamo am 08. Feb. 2012 editiert.] [Diese Nachricht wurde von Tamo am 08. Feb. 2012 editiert.] 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: 08. Feb. 2012 14:46 <-- editieren / zitieren --> Unities abgeben: Nur für sawah
|
Tamo Mitglied Maschinenbautechniker
Beiträge: 53 Registriert: 20.10.2009
|
erstellt am: 08. Feb. 2012 15:14 <-- editieren / zitieren --> Unities abgeben: Nur für sawah
|
bgrittmann Moderator Konstrukteur
Beiträge: 11780 Registriert: 30.11.2006 CATIA V5R19
|
erstellt am: 08. Feb. 2012 18:40 <-- editieren / zitieren --> Unities abgeben: Nur für sawah
Servus Klick mal im Fenster der Reaktion "Aktion bearbeiten" -> "Objektauflösung" -> dein Split im Bau selektieren. Dann brauchst du nur noch deinen Code ergänzen. (Anbei ein Beispiel Vorsicht mit anderen Namen) zB: Code: Dim partDocument1 As Document Set partDocument1 = CATIA.ActiveDocument Dim part1 As Part Set part1 = partDocument1.Part Dim bodies1 As Bodies Set bodies1 = part1.Bodies Dim body1 As Body Set body1 = bodies1.Item("Körper.2") Dim shapes1 As Shapes Set shapes1 = body1.Shapes Dim split1 As Shape Set split1 = shapes1.Item("Trennen.1") split1.SplittingSide = catNegativeSideEnd sub
Grß Bernd ------------------ Warum einfach, wenn es auch kompliziert geht. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Tamo Mitglied Maschinenbautechniker
Beiträge: 53 Registriert: 20.10.2009
|
erstellt am: 09. Feb. 2012 08:36 <-- editieren / zitieren --> Unities abgeben: Nur für sawah
Hi, super das funktioniert schonmal! Aber wie schaffe ich es das er die Operation wieder rückgängig macht??
Denn in der Reaction darf ich den Split nur einmal ansprechen, wenn ich eine zweite Reaction erstelle und dort anstelle catNegativeSide catPositiveeSide schreibe macht er gar ncihts mehr. Muß ich dann die Reaction über eine Rule steuern?? Gruß 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. Feb. 2012 22:59 <-- editieren / zitieren --> Unities abgeben: Nur für sawah
Servus Du brauchst wohl eine Abfrage (If...then...) die abhängig vom Wert des Parameters die Richtung des Splits umschaltet. Gruß Bernd ------------------ Warum einfach, wenn es auch kompliziert geht. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Tamo Mitglied Maschinenbautechniker
Beiträge: 53 Registriert: 20.10.2009
|
erstellt am: 10. Feb. 2012 08:40 <-- editieren / zitieren --> Unities abgeben: Nur für sawah
So, ichhabe es jetzt mit 2 Scripts gelöst die ich über die Regel steuere. Hier das Beispiel für meine (im thread weiter oben gezeigten) Strukturbaum. Das Beispiel zeigt eine Seite, für die andere Seite ist dann das zweite VbScript notwendig. Da werden dann nur noch die Ausrichtugnen der Splits geändert. Dim partDocument1 As Document Set partDocument1 = CATIA.ActiveDocument Dim part1 As Part Set part1 = partDocument1.Part Dim bodies1 As Bodies Set bodies1 = part1.Bodies Dim body1 As Body Set body1 = bodies1.Item("Part01_mounted_1.1") Dim shapes1 As Shapes Set shapes1 = body1.Shapes Dim split1 As Shape Set split1 = shapes1.Item("Split.119") split1.SplittingSide = catPositivSide Dim part2 As Part Set part2 = partDocument1.Part Dim bodies2 As Bodies Set bodies2 = part2.Bodies Dim body2 As Body Set body2 = bodies2.Item("Part01_mounted_1.2") Dim shapes2 As Shapes Set shapes2 = body2.Shapes Dim split2 As Shape Set split2 = shapes2.Item("Split.120") split2.SplittingSide = catPositivSide Dim part3 As Part Set part3 = partDocument1.Part Dim bodies3 As Bodies Set bodies3 = part3.Bodies Dim body3 As Body Set body3 = bodies3.Item("Part01_mounted_1.3") Dim shapes3 As Shapes Set shapes3 = body3.Shapes Dim split3 As Shape Set split3 = shapes3.Item("Split.123") split3.SplittingSide = catNegativeSide Dim part4 As Part Set part4 = partDocument1.Part Dim bodies4 As Bodies Set bodies4 = part4.Bodies Dim body4 As Body Set body4 = bodies4.Item("Part01_mounted_1.4") Dim shapes4 As Shapes Set shapes4 = body4.Shapes Dim split4 As Shape Set split4 = shapes4.Item("Split.121") split4.SplittingSide = catNegativeSide End Sub Gruß
[Diese Nachricht wurde von Tamo am 10. Feb. 2012 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Tamo Mitglied Maschinenbautechniker
Beiträge: 53 Registriert: 20.10.2009 Win7 Catia V5 R18/19
|
erstellt am: 07. Mrz. 2012 08:52 <-- editieren / zitieren --> Unities abgeben: Nur für sawah
Hallo, der unten stehende code macht mir Probleme. Er hat Probleme mit dem Split 188, er sagt "The method item failed". Das heißt ja soviel das das Objekt nicht deklariert ist. Aber eigentlcih dachte ich ich hätte es deklariert. Könnt ihr mir da nochmal einen tipp geben?? Danke! Gruß Set body1 = bodies1.Item("Part01_mounted") Dim hybridBodies1 As HybridBodies Set hybridBodies1 = body1.HybridBodies Dim hybridBody1 As HybridBody Set hybridBody1 = hybridBodies1.Item("Seam_mounted") Dim hybridShapes1 As HybridShapes Set hybridShapes1 = hybridBody1.HybridShapes Dim hybridShapeSplit1 As HybridShape Set hybridShapeSplit1 = hybridShapes1.Item("Split.188") hybridShapeSplit1.Orientation = 1
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Lusilnie Mitglied
Beiträge: 1486 Registriert: 13.07.2005
|
erstellt am: 07. Mrz. 2012 23:34 <-- editieren / zitieren --> Unities abgeben: Nur für sawah
Hallo Tamo, wenn ich Deinen Code mit Deinem Bild vergleiche, fehlt da eine "Ebene": Code: Set body1 = bodies1.Item("Part01_mounted") Dim hybridBodies1 As HybridBodies Set hybridBodies1 = body1.HybridBodies Dim hybridBody1 As HybridBody Set hybridBody1 = hybridBodies1.Item("Seam_mounted") Dim hybridBodies2 As HybridBodies Set hybridBodies2 = hybridBody1.HybridBodies Dim hybridBody2 As HybridBody Set hybridBody2 = hybridBodies2.Item("Inner_Seam_mounted") Dim hybridShapes1 As HybridShapes Set hybridShapes1 = hybridBody2.HybridShapes Dim hybridShapeSplit1 As HybridShape Set hybridShapeSplit1 = hybridShapes1.Item("Split.188") hybridShapeSplit1.Orientation = 1
Dann sollte es funktionieren! mfg, Lusilnie
------------------ Alle Aussagen zu DassaultSystemes-Produkten sind sehr optimistisch, selbst diese!!! frei nach größeren Geistern Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Tamo Mitglied Maschinenbautechniker
Beiträge: 53 Registriert: 20.10.2009 Win7 Catia V5 R18/19
|
erstellt am: 08. Mrz. 2012 09:44 <-- editieren / zitieren --> Unities abgeben: Nur für sawah
|
Tamo Mitglied Maschinenbautechniker
Beiträge: 53 Registriert: 20.10.2009
|
erstellt am: 27. Mrz. 2012 08:23 <-- editieren / zitieren --> Unities abgeben: Nur für sawah
Hi, habe wieder mal ein Problem mit untenstehendem Code. Es sagt mit "Object erfodrderlie:Bodies27". Leider weiß ichnciht wo der Fehler liegt. Danke für eure Hilfe! Set body25 = bodies25.Item("Part_04_mounted") Dim hybridBodies25 As HybridBodies Set hybridBodies25 = body25.HybridBodies Dim hybridBody25 As HybridBody Set hybridBody25 = hybridBodies25.Item("Seam_mounted") Dim hybridBodies26 As HybridBodies Set hybridBodies26 = hybridBody25.HybridBodies Dim hybridBody26 As HybridBody Set hybridBody26 = hybridBodies26.Item("Inner_Seam_mounted") Dim hybridShapes25 As HybridShapes Set hybridShapes25 = hybridBody26.HybridShapes Dim hybridShapeSplit25 As HybridShape Set hybridShapeSplit25 = hybridShapes25.Item("Split_Part_04_Inner_Seam_mounted_1.1(HIDE IF LEFT SIDE SELECTED!)") hybridShapeSplit25.Orientation = 1 Set body27 = bodies27.Item("Part_04_mounted") Dim hybridBodies27 As HybridBodies Set hybridBodies27 = body27.HybridBodies Dim hybridBody27 As HybridBody Set hybridBody27 = hybridBodies27.Item("Seam_mounted") Dim hybridBodies28 As HybridBodies Set hybridBodies28 = hybridBody27.HybridBodies Dim hybridBody28 As HybridBody Set hybridBody28 = hybridBodies28.Item("Inner_Seam_mounted") Dim hybridShapes27 As HybridShapes Set hybridShapes27 = hybridBody28.HybridShapes Dim hybridShapeSplit27 As HybridShape Set hybridShapeSplit27 = hybridShapes27.Item("Split_Part_04_Inner_Seam_mounted_1.2") hybridShapeSplit27.Orientation = 1 Set body29 = bodies29.Item("Part_04_mounted") Dim hybridBodies29 As HybridBodies Set hybridBodies29 = body29.HybridBodies Dim hybridBody29 As HybridBody Set hybridBody29 = hybridBodies29.Item("Seam_mounted") Dim hybridBodies30 As HybridBodies Set hybridBodies30 = hybridBody29.HybridBodies Dim hybridBody30 As HybridBody Set hybridBody30 = hybridBodies30.Item("Inner_Seam_mounted") Dim hybridShapes29 As HybridShapes Set hybridShapes29 = hybridBody30.HybridShapes Dim hybridShapeSplit29 As HybridShape Set hybridShapeSplit29 = hybridShapes29.Item("Split_Part_04_Inner_Seam_mounted_1.3") hybridShapeSplit29.Orientation = -1 Set body31 = bodies31.Item("Part_04_mounted") Dim hybridBodies31 As HybridBodies Set hybridBodies31 = body31.HybridBodies Dim hybridBody31 As HybridBody Set hybridBody31 = hybridBodies31.Item("Seam_mounted") Dim hybridBodies32 As HybridBodies Set hybridBodies32 = hybridBody31.HybridBodies Dim hybridBody32 As HybridBody Set hybridBody32 = hybridBodies32.Item("Inner_Seam_mounted") Dim hybridShapes31 As HybridShapes Set hybridShapes31 = hybridBody32.HybridShapes Dim hybridShapeSplit31 As HybridShape Set hybridShapeSplit31 = hybridShapes31.Item("Split_Part_04_Inner_Seam_mounted_1.4") hybridShapeSplit31.Orientation = -1 [Diese Nachricht wurde von Tamo am 27. Mrz. 2012 editiert.] 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: 27. Mrz. 2012 08:33 <-- editieren / zitieren --> Unities abgeben: Nur für sawah
Servus Wo ist der der Variable "Bodies27" ein Objekt zugewiesen. Wahrscheinlich sollte auch Set body27 = bodies25.Item("Part_04_mounted")gehen. Gruß Bernd PS: Du solltest mal versuchen deinen Code zu verstehen (die Body-Collection gibt es AFAIK nur einmal im Part) ------------------ Warum einfach, wenn es auch kompliziert geht. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |