Autor
|
Thema: Methode Planes Between als Makro?? (2517 mal gelesen)
|
studmija Mitglied Student
Beiträge: 49 Registriert: 22.11.2010 System: Microsoft Windows XP Professional x64 Edition Version 2003 Sevice Pack 2 Computer: Intel(R)Xeon(R)CPU 2,80GHz, 12 GB RAM Software: CATIA V5R19
|
erstellt am: 26. Nov. 2010 13:03 <-- editieren / zitieren --> Unities abgeben:
Servus! Habe direkt noch eine Frage. Ich möchte zwischen 2 parallelen Ebenen beliebig viele Ebenen erzeugen. Wie sieht die Methode "Planes between" als Quelltext aus? Kann man über Input-Fenster die Anzahl der zu erzeugenden Ebenen steuern? Gruß Micha Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Starbirth Mitglied Konstrukteur
Beiträge: 119 Registriert: 22.10.2009
|
erstellt am: 26. Nov. 2010 15:11 <-- editieren / zitieren --> Unities abgeben: Nur für studmija
Planes Between kann man soweit ich weiss nicht direkt ansprechen. Genau wie Poins and Planes Repitition. Ist aber auch gar nicht nötig. Sowas lässt sich mit anderen Funktionen gut nachbilden. Für die Planes: Du misst den Abstand deiner beiden Planes aus, teilst diesen durch die eingegebene Anzahl der "Zwischenplanes" und erzeugst dann in einer For-Schleife die ganzen Planes als PlaneOffset (also offset einer der beiden Eingabeplanes) wobei der Offsetwert dem errechneten Abstand zwischen den Planes*deinem Schleifenzähler entspricht. Zur Eingabe der Planeanzahl: Hängt hauptsächlich davon ab ob du dein Makro als CATScript oder CATVBA schreiben willst. Bei CATScript bist du auf einfache (aber zweckmäßige) Inputboxen limitiert. Wenn nur eine Angabe abgefragt werden soll geht das OK, bei mehreren wirds nervig. Im CATVBA könntest du ein kleines GUI mit mehreren Textfeldern aufbauen. Der User gibt hier die gewünschten Werte ein und du kannst diese später im Makro nach belieben abfragen nud weiter verwenden. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
studmija Mitglied Student
Beiträge: 49 Registriert: 22.11.2010 System: Microsoft Windows XP Professional x64 Edition Version 2003 Sevice Pack 2 Computer: Intel(R)Xeon(R)CPU 2,80GHz, 12 GB RAM Software: CATIA V5R19
|
erstellt am: 26. Nov. 2010 15:37 <-- editieren / zitieren --> Unities abgeben:
|
bgrittmann Moderator Konstrukteur
Beiträge: 11780 Registriert: 30.11.2006 CATIA V5R19
|
erstellt am: 26. Nov. 2010 15:48 <-- editieren / zitieren --> Unities abgeben: Nur für studmija
Servus Verwende mal den Makrorecorder um "Planes Between" aufzunehmen. Dann hast du schon mal ein grobes Gerüst für dein Makro (klar muss noch etwas aufgeräumt werden) Gruß Bernd ------------------ Warum einfach, wenn es auch kompliziert geht. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Starbirth Mitglied Konstrukteur
Beiträge: 119 Registriert: 22.10.2009
|
erstellt am: 26. Nov. 2010 16:12 <-- editieren / zitieren --> Unities abgeben: Nur für studmija
Dein Makro von Nebenan sah nicht nach absolutem Beginner aus Ich vermute du meinst den Abstand der beiden Planes? Den kannst du direkt im Makro messen und in eine Variable schreiben. Hier ein kurzer Beispielcode zum Messen:
Code: Dim WirdGemessen As Object 'As HybridShapePlane Set WirdGemessen = iGeoSet.HybridShapes.Item("Plane 1") 'Plane 1 liegt in GeoSet Objekt "iGeoSet" (muss vorher zugewiesen sein) Dim Ref_CurSurface As Reference Set Ref_CurSurface = ActivePart.CreateReferenceFromObject(WirdGemessen)Dim TheSPAWorkbench As Workbench Dim TheMeasurable As Measurable Dim Abstand As Double Set TheSPAWorkbench = ActiveDoc.GetWorkbench("SPAWorkbench") Set TheMeasurable = TheSPAWorkbench.GetMeasurable(Plane 2) 'Plane 2 muss als Objekt auch vorher zugewiesen sein Abstand = TheMeasurable.GetMinimumDistance(Ref_CurSurface) 'Abstand ist dann deine Variable die den Abstand der beiden Planes enthält
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
studmija Mitglied Student
Beiträge: 49 Registriert: 22.11.2010 System: Microsoft Windows XP Professional x64 Edition Version 2003 Sevice Pack 2 Computer: Intel(R)Xeon(R)CPU 2,80GHz, 12 GB RAM Software: CATIA V5R19
|
erstellt am: 30. Nov. 2010 10:17 <-- editieren / zitieren --> Unities abgeben:
Hi! Ja ich habe diesen Abstand gemeint! Das mit der Abstandermittlung hab ich verstanden & auch in meinem Makro umgesetzt. Danke Starbirth! Die Vorgehensweise ist jetzt klar für mich,allerdings kann ich nicht den Offset zw. den einzelnen Ebenen ermitteln (Wie muss die Funktion aussehen)und auch die For-Schleife bereitet mit Probleme. Ich weiß halt nicht wie der Quelltext aussehen soll!?? Habe hier im Forum & auch in meinen Büchern kein passendes Bsp gefunden. Die benötigten Variablen "Abstand" (gemessener Abstand) und "AnzPln" (Anzahl der Zwischenebenen) stehn ja schon mal! Hier mein bisheriges Makro(ab den Sternen weiß ich nicht genau was ich programmieren soll): ' VORAUSSETZUNG: GS "Ebenen" mit "den PARALLELEN Ebenen Plane.1 und Plane.2" Sub CATMain() ' 3D-Werkzeugkasten deklarieren ---------------------------------------------------------------------- Dim ActiveDoc Set ActiveDoc = CATIA.ActiveDocument Dim NewPart As Part Set NewPart = CATIA.ActiveDocument.Part Dim Wzk3D As HybridShapeFactory Set Wzk3D = NewPart.HybridShapeFactory ' Geometrisches Set "Ebenen" deklarieren ------------------------------------------------------------------ Dim GS As HybridBody Set GS = NewPart.HybridBodies.Item ("Ebenen") ' Geo deklarieren --------------------------------------------- Dim PLN1, PLN2 Set PLN1 = GS.HybridShapes.Item ("Plane.1") Set PLN2 = GS.HybridShapes.Item ("Plane.2") ' Referenzen deklarieren ---------------------------------------------------------------------- Dim Ref1, Ref2 As Reference Set Ref1 = NewPart.CreateReferenceFromObject (PLN1) Set Ref2 = NewPart.CreateReferenceFromObject (PLN2) ' Abstand zwischen den zwei Referenzebenen ermitteln ====================================================== ' Objekte für Messung deklarieren Dim TheSPAWorkbench As Workbench Dim TheMeasurable As Measurable Dim Abstand As Double Set TheSPAWorkbench = ActiveDoc.GetWorkbench("SPAWorkbench") Set TheMeasurable = TheSPAWorkbench.GetMeasurable(Ref1) Abstand = TheMeasurable.GetMinimumDistance(Ref2) ' "Abstand" ist eine Variable die den Abstand der beiden Planes enthält ' Benutzer Eingabe für Anzahl der Zwischenebenen ==================== ' Inputbox deklarieren ---------------------------------------- Dim EingAnzPln EingAnzPln = InputBox ("Bitte geben Sie die Anzahl der Zwischenebenen ein.", "Eingabe Anzahl der Zwischenebenen", Eingabe) ' "Anzahl der Zwischenebenen" als Parameter anlegen (damit im nachhinein die Anzahl geändert werden kann) -------------------------------------------
Dim Params As Parameters Set Params = NewPart.Parameters Dim AnzPln Set AnzPln = Params.CreateInteger ("Anzahl Zwischenebenen",EingAnzPln) '*********************************************************************
'Berechnung Offsetwert zw. den einzelnen Zwischenebenen ==================================================== Function AusgabeDivision As Double --> FEHLER !? AusgabeDivision = Abstand / AnzPln End Function ' FOR-Schleife: Erzeugung der Zwischenebenen ========================================================= Dim I As Integer For I=1 To AnzPln Function OffReal As Double ' soll den Offsetwert für die Ebenen berechnen OffReal = AusgabeDivision * I End Function ' NeueEbene deklarieren ---------------------------------------------------------------------- Dim NewPln As HybridShapePlaneOffset Set NewPln = Wzk3D.AddNewPlaneOffset (Ref1, OffReal, True) GS.AppendHybridShape NewPln Next NewPart.Update End Sub
________________ Bin für jeden Tip /Bsp. dankbar
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Starbirth Mitglied Konstrukteur
Beiträge: 119 Registriert: 22.10.2009
|
erstellt am: 30. Nov. 2010 10:53 <-- editieren / zitieren --> Unities abgeben: Nur für studmija
Das sieht doch schon mal ganz gut aus. Nimm die Division mal nicht als einzelne Function mit rein. Bei so kleinen Rechnungen ist das ähnlich wie die Sache mit den Kanonen und Spatzen... Versuch es mal damit:
Code: Dim AbstandEinzelplanes as Double AbstandPlanes=( Abstand / AnzPln )Dim I As Integer For I=1 To AnzPln Dim OffReal as Double OffReal = AbstandEinzelplanes * I ' NeueEbene deklarieren ---------------------------------------------------------------------- Dim NewPln As HybridShapePlaneOffset Set NewPln = Wzk3D.AddNewPlaneOffset (Ref1, OffReal, True) GS.AppendHybridShape NewPln Next
EDIT: Rechtschreibung EDIT2: Nachtrag Wenn du doch mit einer Function arbeiten willst, um es mal zu üben oder so, schau dir bitte vorher noch mal den Eintrag dazu in der VB Hilfe an. Du hast das Ganze ein wenig falsch implementiert. Functions kommen nicht mitten in den Code, sondern gleicberechtigt neben die Subs. Dort werden sie mit den benötigten Inputs deklariert und im Code auch mit den entsprechenden Inputs aufgerufen. [Diese Nachricht wurde von Starbirth am 30. Nov. 2010 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
studmija Mitglied Student
Beiträge: 49 Registriert: 22.11.2010 System: Microsoft Windows XP Professional x64 Edition Version 2003 Sevice Pack 2 Computer: Intel(R)Xeon(R)CPU 2,80GHz, 12 GB RAM Software: CATIA V5R19
|
erstellt am: 30. Nov. 2010 11:21 <-- editieren / zitieren --> Unities abgeben:
Danke gut aussehen ist ja das eine, funktionieren das andere Hab es mal mit deinem Vorschlag probiert, aber er meckert immer noch ...ich weiß nicht woran es liegt! bis zu den Sternen ist alles beim Alten... '*********************************************************************************************************************
'Berechnung Offsetwert zw. den einzelnen Zwischenebenen ==================================================== Dim AbstandEinzelplanes as Double AbstandEinzelplanes = ( Abstand / AnzPln ) ' ---> FEHLERMELDUNG!!! Das Objekt unterstützt die Eigenschaft oder Methode nicht. Dim I As Integer For I=1 To AnzPln Dim OffReal as Double OffReal = AbstandEinzelplanes * I ' NeueEbene deklarieren ---------------------------------------------------------------------- Dim NewPln As HybridShapePlaneOffset Set NewPln = Wzk3D.AddNewPlaneOffset (Ref1, OffReal, True) GS.AppendHybridShape NewPln Next NewPart.Update End Sub
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: 30. Nov. 2010 11:47 <-- editieren / zitieren --> Unities abgeben: Nur für studmija
|
studmija Mitglied Student
Beiträge: 49 Registriert: 22.11.2010 System: Microsoft Windows XP Professional x64 Edition Version 2003 Sevice Pack 2 Computer: Intel(R)Xeon(R)CPU 2,80GHz, 12 GB RAM Software: CATIA V5R19
|
erstellt am: 30. Nov. 2010 12:12 <-- editieren / zitieren --> Unities abgeben:
|
studmija Mitglied Student
Beiträge: 49 Registriert: 22.11.2010 System: Microsoft Windows XP Professional x64 Edition Version 2003 Sevice Pack 2 Computer: Intel(R)Xeon(R)CPU 2,80GHz, 12 GB RAM Software: CATIA V5R19
|
erstellt am: 02. Dez. 2010 11:12 <-- editieren / zitieren --> Unities abgeben:
Hallo! Ich bin jetzt ein Stückchen weiter gekommen, aber immer noch nicht am Ziel Habe nun Paramter für die gemessene Länge, Anzahl der Zwischenebenen und AbstandEinzelplanes eingefügt. Letzteres ermittel ich mit Hilfe einer Formel. Meine For-Schleife für die Erstellung der Zwischenebenen funktioniert jedoch noch nicht. Habe die Fehlerzeile kenntlich gemacht! Code: '*** VORAUSSETZUNG: GS "Ebenen" mit 2 PARALLELEN Ebenen "REF_PLN" und "LAST_PLN"Sub CATMain() '*** 3D-Werkzeugkasten deklarieren ----------------------------------------------------------------------------- Dim ActiveDoc Set ActiveDoc = CATIA.ActiveDocument Dim NewPart As Part Set NewPart = CATIA.ActiveDocument.Part Dim Wzk3D As HybridShapeFactory Set Wzk3D = NewPart.HybridShapeFactory '*** Geometrisches Set "Ebenen" deklarieren ------------------------------------------------------------------ Dim GS As HybridBody Set GS = NewPart.HybridBodies.Item ("Ebenen") '*** Geo deklarieren ------------------------------------------------------------------------------------------------ Dim PLN1, PLN2 Set PLN1 = GS.HybridShapes.Item ("REF_PLN") Set PLN2 = GS.HybridShapes.Item ("LAST_PLN") '********************************************************************************************************************** '********************************************************************************************************************** '*** Referenzen deklarieren --------------------------------------------------------------------------------------- Dim Ref1, Ref2 As Reference Set Ref1 = NewPart.CreateReferenceFromObject (PLN1) Set Ref2 = NewPart.CreateReferenceFromObject (PLN2) '*** Abstand zwischen den zwei Referenzebenen ermitteln *********************************************************************** '*** Objekte für Messung deklarieren
Dim TheSPAWorkbench As Workbench Dim TheMeasurable As Measurable Dim Abstand As Double Set TheSPAWorkbench = ActiveDoc.GetWorkbench("SPAWorkbench") Set TheMeasurable = TheSPAWorkbench.GetMeasurable(Ref1) Abstand = TheMeasurable.GetMinimumDistance(Ref2) ' "Abstand" ist eine Variable die den Abstand der beiden Planes enthält '*** Benutzer Eingabe für Anzahl der Zwischenebenen*********************************************************************** ' ***Inputbox deklarieren ------------------------------------------------------------------------------------------- Dim EingAnzPln EingAnzPln = InputBox ("Bitte geben Sie die Anzahl der Zwischenebenen ein.", "Eingabe Anzahl der Zwischenebenen", Eingabe) '***Berechnung Offsetwert zw. den einzelnen Zwischenebenen *****************************************************************
'*** Parameter für Abstandsberechnung deklarieren Dim Params As Parameters Set Params = NewPart.Parameters Dim AbstandRefPlanes, AbstandEinzelplanes As Double Dim AnzahlPlanes As Integer
Set AbstandReflPlanes = Params.CreateDimension ("AbstandRefPlanes", "Length",Abstand) Set AnzahlPlanes = Params.CreateInteger ("AnzahlPlanes", EingAnzPln) Set AbstandEinzelplanes = Params.CreateDimension ("AbstandEinzelplanes", "Length",123) '***Formel erstellen Dim Rels As Relations Set Rels = NewPart.Relations '***Formel zur Verknüpfung mit dem Parameter (AbstandEinzelplanes) Dim FName, FKom, FInhalt As CATBSTR FName = "AbstandEinzelplanes" FKom = "Berechnung AbstandEinzelplanes" FInhalt = "AbstandRefPlanes / AnzahlPlanes" Set Formel = Rels.CreateFormula (FName, FKom, AbstandEinzelplanes, FInhalt) '*** FOR-SCHLEIFE ************************************************************** Dim I As Integer For I=1 To AnzahlPlanes.Value Dim OffsetPln As Double OffsetPln = ("AbstandEinzelplanes * I") ' NeueEbene deklarieren ----------------------------------------------------------------------
Dim NewPln As HybridShapePlaneOffset Set NewPln = Wzk3D.AddNewPlaneOffset (Ref1,OffsetPln,True) ' HIER FEHLERMELDUNG!!!! GS.AppendHybridShape NewPln Next NewPart.Update End Sub
PS: Wenn ich für OffsetPln z.B. einen Wert eingebe, werden auf diesen Offsetwert "I"-viele Ebenen erstellt. D.h. iwie wird der "berechnete Wert" von OffsetPln nicht "erkannt".... habs auch schon mit OffsetPln.Value probiert. Korrekturvorschläge??? Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
studmija Mitglied Student
Beiträge: 49 Registriert: 22.11.2010 System: Microsoft Windows XP Professional x64 Edition Version 2003 Sevice Pack 2 Computer: Intel(R)Xeon(R)CPU 2,80GHz, 12 GB RAM Software: CATIA V5R19
|
erstellt am: 02. Dez. 2010 13:06 <-- editieren / zitieren --> Unities abgeben:
|
Starbirth Mitglied Konstrukteur
Beiträge: 119 Registriert: 22.10.2009
|
erstellt am: 02. Dez. 2010 14:41 <-- editieren / zitieren --> Unities abgeben: Nur für studmija
Darf man Fragen in welcher Umgebung du deinen Code schreibst? Der Visual Basic Editor meckert nämlich bei deinem Code schon vor dem Ausführen rum. In der Zeile:
Code: Set AnzahlPlanes = Params.CreateInteger("AnzahlPlanes", EingAnzPln)
wird von ihm ein Object erwartet. Darüber und darunter ebenso. Bedeutet in dem Fall nichts anderes als: Das Set ist zu viel. Du willst ne Variable zuweisen, dafür brauchst du Set nicht. Das dürfte unten auch zu deinem Fehler führen, du versuchst als Objekt zugewiesene, ähm..., Dinger durcheinander zu Teilen, zu multiplizieren nud hinterher als Zahl an die Funktion zu übergeben. dass es da hakt klingt realistisch.Des Weiteren wird weiter unten beim dimmen von FName und Co als CATBSTR rum gemeckert. Nehme ich das Weg, läufts ein paar Zeilen weiter unten nicht mehr. Schau da evtl. auch noch mal drauf, mit dem Thema kenne ich mich nicht aus. EDIT: War wohl zu spät. Aus Interesse: Lag ich mit meiner Vermutung richtig? [Diese Nachricht wurde von Starbirth am 02. Dez. 2010 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
studmija Mitglied Student
Beiträge: 49 Registriert: 22.11.2010 System: Microsoft Windows XP Professional x64 Edition Version 2003 Sevice Pack 2 Computer: Intel(R)Xeon(R)CPU 2,80GHz, 12 GB RAM Software: CATIA V5R19
|
erstellt am: 02. Dez. 2010 15:13 <-- editieren / zitieren --> Unities abgeben:
Ich Schreibe meine Makros bisher mit dem einfachen Makro-Editor. Sprache ist CATScript. Was meinst du mit Umgebung? Ich arbeite mit CATIA V5R19 64bit... Hier mein fertiges Makro Ich hab zwar jetzt mehr oder weniger 3 unnötige Parameter erzeugt, aber es funktioniert: Code:
'Makro: PLANES_BETWEEN.CATScript 'Version: 1.0 'Code: CATIA CATScript 'Zweck: Erzeugung der Zwischenebenen. 'Autor: Michael Janek 'Datum: 02.12.2010 '--------------------------------------------------------------------------------------------------------------------- CATIA.StatusBar = "PLANES_BETWEEN.CATScript, Version 1.0"'*** VORAUSSETZUNG: GS "Ebenen" mit 2 PARALLELEN Ebenen "REF_PLN" und "LAST_PLN" Sub CATMain() '*** 3D-Werkzeugkasten deklarieren ----------------------------------------------------------------------------- Dim ActiveDoc Set ActiveDoc = CATIA.ActiveDocument Dim NewPart As Part Set NewPart = CATIA.ActiveDocument.Part Dim Wzk3D As HybridShapeFactory Set Wzk3D = NewPart.HybridShapeFactory '*** Geometrisches Set "Planes" deklarieren ------------------------------------------------------------------ Dim GS As HybridBody Set GS = NewPart.HybridBodies.Item ("Planes") '*** Geo deklarieren ------------------------------------------------------------------------------------------------ Dim PLN1, PLN2 Set PLN1 = GS.HybridShapes.Item ("REF_PLN") Set PLN2 = GS.HybridShapes.Item ("LAST_PLN") '********************************************************************************************************************** '********************************************************************************************************************** '*** Referenzen deklarieren --------------------------------------------------------------------------------------- Dim Ref1, Ref2 As Reference Set Ref1 = NewPart.CreateReferenceFromObject (PLN1) Set Ref2 = NewPart.CreateReferenceFromObject (PLN2) '*** Abstand zwischen den zwei Referenzebenen ermitteln *********************************************************************** '*** Objekte für Messung deklarieren
Dim TheSPAWorkbench As Workbench Dim TheMeasurable As Measurable Dim Abstand As Double Set TheSPAWorkbench = ActiveDoc.GetWorkbench("SPAWorkbench") Set TheMeasurable = TheSPAWorkbench.GetMeasurable(Ref1) Abstand = TheMeasurable.GetMinimumDistance(Ref2) ' "Abstand" ist eine Variable die den Abstand der beiden Planes enthält '*** Benutzer Eingabe für Anzahl der Zwischenebenen ************************************************************************* ' ***Inputbox deklarieren ------------------------------------------------------------------------------------------- Dim EingAnzPln EingAnzPln = InputBox ("Bitte geben Sie die Anzahl der Zwischenebenen ein.", "Anzahl der Zwischenebenen", Eingabe) 'Geometrisches Set "Planes between" deklarieren -------------------------
Dim GS2 As HybridBody Set GS2 = GS.HybridBodies.Add GS2.Name = "Planes between" '***Berechnung Offsetwert zw. den einzelnen Zwischenebenen *****************************************************************
'*** Parameter für Abstandsberechnung deklarieren Dim Params As Parameters Set Params = NewPart.Parameters Dim AbstandRefPlanes, AbstandEinzelplanes As Double Dim AnzahlPlanes As Integer
Set AbstandReflPlanes = Params.CreateDimension ("AbstandRefPlanes", "Length",Abstand) Set AnzahlPlanes = Params.CreateInteger ("AnzahlPlanes", EingAnzPln) Set AbstandEinzelplanes = Params.CreateDimension ("AbstandEinzelplanes", "Length",123) '***Formel erstellen Dim Rels As Relations Set Rels = NewPart.Relations '***Formel zur Verknüpfung mit dem Parameter (AbstandEinzelplanes) Dim FName, FKom, FInhalt As CATBSTR FName = "AbstandEinzelplanes" FKom = "Berechnung AbstandEinzelplanes" FInhalt = "AbstandRefPlanes / (AnzahlPlanes+1)" Set Formel = Rels.CreateFormula (FName, FKom, AbstandEinzelplanes, FInhalt) '*** FOR-SCHLEIFE ************************************************************** Dim I As Integer For I=1 To AnzahlPlanes.Value Dim OffsetPln As Double OffsetPln = AbstandEinzelplanes.Value*I ' NeueEbene deklarieren ----------------------------------------------------------------------
Dim NewPln As HybridShapePlaneOffset Set NewPln = Wzk3D.AddNewPlaneOffset (Ref1,OffsetPln,True) ' HIER FEHLERMELDUNG!!!! GS2.AppendHybridShape NewPln Next NewPart.Update End Sub
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
studmija Mitglied Student
Beiträge: 49 Registriert: 22.11.2010 System: Microsoft Windows XP Professional x64 Edition Version 2003 Sevice Pack 2 Computer: Intel(R)Xeon(R)CPU 2,80GHz, 12 GB RAM Software: CATIA V5R19
|
erstellt am: 02. Dez. 2010 15:14 <-- editieren / zitieren --> Unities abgeben:
|
studmija Mitglied Student
Beiträge: 49 Registriert: 22.11.2010 System: Microsoft Windows XP Professional x64 Edition Version 2003 Sevice Pack 2 Computer: Intel(R)Xeon(R)CPU 2,80GHz, 12 GB RAM Software: CATIA V5R19
|
erstellt am: 06. Dez. 2010 09:11 <-- editieren / zitieren --> Unities abgeben:
Servus! Ich hab ein Problem mit meinem Makro. Und zwar kommt es vor, das ich bei der Erstellung der Zwischenebenen die falsche Orientierungsrichtung habe. Die Ebenen werden dann nicht wie gewünscht zwischen den Referenzebenen erzeugt! (siehe Bild) wie kann ich sicherstellen, das die Zwischenebenen auch IMMER zwischen den beiden Referenzebenen erzeugt werden???Gruß Micha Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Starbirth Mitglied Konstrukteur
Beiträge: 119 Registriert: 22.10.2009
|
erstellt am: 06. Dez. 2010 09:48 <-- editieren / zitieren --> Unities abgeben: Nur für studmija
Moin, du könntest, nachdem die erste Offseebene erzeugt wurde, den Abstand zwischen dieser und der Anderen Eingabeebene messen. Ist dieser kleiner als der ursprüngliche Abstand zwischen den beiden Eingabeebenen arbeitest du in die richtige Richtung. Sollte dieser allerdings größer sein, lösche die Offsetebene und springe in eine andere Schleife in der du die Offsets mit umgekehrter Normalenrichtung erzeugst. So solltest du die Planes, unabhängig von Normalenrichtungen, immer zwischen deinen beiden Referenzebenen liegen haben. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
studmija Mitglied Student
Beiträge: 49 Registriert: 22.11.2010 System: Microsoft Windows XP Professional x64 Edition Version 2003 Sevice Pack 2 Computer: Intel(R)Xeon(R)CPU 2,80GHz, 12 GB RAM Software: CATIA V5R19
|
erstellt am: 06. Dez. 2010 10:03 <-- editieren / zitieren --> Unities abgeben:
|
studmija Mitglied Student
Beiträge: 49 Registriert: 22.11.2010 System: Microsoft Windows XP Professional x64 Edition Version 2003 Sevice Pack 2 Computer: Intel(R)Xeon(R)CPU 2,80GHz, 12 GB RAM Software: CATIA V5R19
|
erstellt am: 06. Dez. 2010 13:23 <-- editieren / zitieren --> Unities abgeben:
Zur Info: Der obige Ansatz hat funktioniert! hier die kurzzusammenfassung von meinem Makro: -erzeuge die 1. Offsetplane - messe den "kontrollabstand" - If-Then-Else Verzweigung falls Prüfung positiv: For-Next Schleife mit I=2 ansonsten wird die 1. Offsetplane gelöscht und eine For-Next Schleife mit I=1 und der anderen Orientierungsrichtung bei der Ebenenerzeugung ausgeführt. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |