|  |  | 
|  | Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für CATIA & Co. | 
|  |  | 
|  | KISTERS 3DViewStation: Germar Nikol - Der Visionär hinter der Erfolgsgeschichte, eine Pressemitteilung 
 | 
| Autor | Thema:  CATIA V5 Makro Aufzeichnung (10249 mal gelesen) | 
 | HarleKinX Mitglied
 Student
 
  
 
      Beiträge: 32Registriert: 20.02.2011
 Intel Core 2 Duo, 3Gb RamGraka:
 Win XP Pro SP3
 CATIA V5 R19 SP8
 |    erstellt am: 25. Feb. 2011 11:45  <-- editieren / zitieren -->    Unities abgeben:            
  Guten Tag, ich bin erst neu hier und find mich noch nicht ganz so zurecht, ich bitte das zu Berücksichtigen   Also ich muss an der Uni ein Beleg über Makroprogrammierung mache. Genau genommen, eine Gelenkverbindung über "Userform"-Plattformen laufen lassen, inkl. Berechnung und Konstruktion.  Ich habe ein neues part geöffnent -->Makroaufzeichnung gestartet -->ein einfachen Bolzen mit Fase gebaut-->Makroaufzeichnung gestoppt-->Quelltext gespeichert Diesen Quelltext habe ich auf einen einfachen Button als text gelegt. Jedoch wird nie ein Bauteil angezeigt, nach Drücken des Buttons. Ab und an bekomm ich eine Ebene oder sonstiges zu sehen, aber mehr nicht. Wo sind da die Problemzonen? Eigentlich ist es doch das einfachste. ein Bolzen mit Fase auf einen einfachen Button zu legen oder nicht?Kann mir vllt jmd helfen?
 Danke im vorraus. Mit freundlichen GrüßenHarle
 
 Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP | 
                        | StefanBerlitz Ehrenmitglied V.I.P. h.c.
 IT Admin (CAx)
 
 
  
 
      Beiträge: 8756Registriert: 02.03.2000
 |    erstellt am: 25. Feb. 2011 12:18  <-- editieren / zitieren -->    Unities abgeben:           Nur für HarleKinX   
  Hallo Harle, und herzlich willkommen auf CAD.de   Ich vermute es kommt ein wenig darauf an, wie der Makrorecorder die Sachen aufzeichnet. In SolidWorks, das ich als CAD nutze, steht unter anderem der Teilname bei solchen Dingen manchmal mit darin, so dass man die aufgezeichneten Makros erst mal anpassen muss, um sie allgemeingültig auf andere Dokumente anwenden zu können. Vielleicht ist das bei CATIA V5 ja auch der Fall. Am besten fragst du im passenden Forumsbereich zu CATIA V5 noch mal nach, ich würde das Brett CATIA V5 Programmierung vorschlagen. Ciao,Stefan
 
 ------------------Inoffizielle deutsche SolidWorks Hilfeseite    http://solidworks.cad.de
 Stefans SolidWorks Blog
 Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP | 
                        | HarleKinX Mitglied
 Student
 
  
 
      Beiträge: 32Registriert: 20.02.2011
 Intel Core 2 Duo, 3Gb RamGraka:
 Win XP Pro SP3
 CATIA V5 R19 SP8
 |    erstellt am: 25. Feb. 2011 12:21  <-- editieren / zitieren -->    Unities abgeben:            | 
                        | RSchulz Ehrenmitglied V.I.P. h.c.
 Head of CAD, Content & Collaboration / IT-Manager
 
 
  
 
      Beiträge: 5541Registriert: 12.04.2007
 @WorkLenovo P510
 Xeon E5-1630v4
 64GB DDR4
 Quadro P2000
 256GB PCIe SSD
 512GB SSD
 SmarTeam V5-6 R2016 Sp04
 CATIA V5-6 R2016 Sp05
 E3.Series V2019
 Altium Designer/Concord 19
 Win 10 Pro x64
 |    erstellt am: 25. Feb. 2011 12:23  <-- editieren / zitieren -->    Unities abgeben:           Nur für HarleKinX   
  Hallo Harle und herzlich willkommen, also vorab, du bist im falschen Forum gelandet. Für CATIA vba etc. gibt es ein eigenes Forum siehe "CATIA V5 Programmierung" . Zu deinem Anliegen kann ich nur sagen, dass es so wie du dir das vorstellst nicht geht.Die Makroaufzeichnung zeichnet nur bestimmte Dinge auf und nicht alles. Dassault hat hier absichtlich einiges beschnitten. Für viele Sachen reicht auch das VBA nicht mehr aus und man benötigt eine teure Lizenz für die CAA-Schnittstelle.
 Das was du da aufzeichnen wolltest, kann man auch nicht einfach per VBA abbilden, da man Features mit konkreter Parametrisierung nicht per VBA ansprechen kann. Demnach kannst du nicht einfach eine Skizze generieren und ein Feature z.B. Block daraus generieren. Für viele Dinge muss man im VBA Umwege gehen und z.B. mit Windowsmitteln Mausklicks/-bewegungen und Eingaben per Tastatur vorgaukeln. ------------------MFG
 Rick Schulz
 Nettiquette (CAD.de)  -  Was ist die Systeminfo?  -  Wie man Fragen richtig stellt.  -  Unities    Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP | 
                        | HarleKinX Mitglied
 Student
 
  
 
      Beiträge: 32Registriert: 20.02.2011
 Intel Core 2 Duo, 3Gb RamGraka:
 Win XP Pro SP3
 CATIA V5 R19 SP8
 |    erstellt am: 25. Feb. 2011 12:29  <-- editieren / zitieren -->    Unities abgeben:            
  Wir haben Makroprogrammierung an der Uni. Und wenn wir das ganz simpel runterrechnen, dann muss es gehen.Unser Professor, hat uns ein kleines Bauteil aufzeichnen lassen. Dann eine Userform erstellen lassen und den Quelltext in einem Button eingefügt.
 Das Bauteil wurde gebaut. Unser Beleg besteht nun darin mehrere bauteile zu konstruieren und über eine Userform halt ausrechnen und konstruieren zu
 lassen. Also das einfach die Bauteile dann aufgerufen werden. Die einzelnen Längen kann man ja mit Variabeln versehen. Es geht.
 Jedoch Funktioniert es grad bei mir nicht. Habe von einem Kommilitonen eine Grundstruktur bekommen, diese hat er @home gemacht. Liegt es vllt daran, dass
 diese Datei dann schwarz sein kann?
 Ansonsten weiß ich echt nicht weiter   Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP | 
                        | tbd Mitglied
 Teamleiter
 
    
 
      Beiträge: 825Registriert: 26.01.2006
 |    erstellt am: 25. Feb. 2011 12:30  <-- editieren / zitieren -->    Unities abgeben:           Nur für HarleKinX   | 
                        | bgrittmann Moderator
 Konstrukteur
 
         
 
      Beiträge: 12117Registriert: 30.11.2006
 CATIA V5R19 |    erstellt am: 25. Feb. 2011 12:38  <-- editieren / zitieren -->    Unities abgeben:           Nur für HarleKinX   
  Servus Fülle bitte deine Systemninfo aus. IMHO   ist die Makroaufzeichnung maximal dafür sinnvoll, eine grobe Struktur aufzuzeichnen. Der Code sollte immer nach gebessert und vereinfacht (und ganz wichtig: verstanden) werden. Kannst du dienen Code mal posten, oder erklären was du vorhast? GrußBernd
 ------------------Warum einfach, wenn es auch kompliziert geht.
 Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP | 
                        | HarleKinX Mitglied
 Student
 
  
 
      Beiträge: 32Registriert: 20.02.2011
 Intel Core 2 Duo, 3Gb RamGraka:
 Win XP Pro SP3
 CATIA V5 R19 SP8
 |    erstellt am: 25. Feb. 2011 12:44  <-- editieren / zitieren -->    Unities abgeben:            
  Hey, also Ziel ist es ein beleg anzufertigen, der durch verschiedene Angaben von Kräften etc. Eine Gelenkverbindung dimensioniert. Wo halt alle Sicherheiten passen. Das Produkt besteht aus den Teilen Bolzen, Gabel und Stange sowie Sekundärbauteile wie Unterlegscheibe und Buchse.
 Die Berechung ist fertig. Und diese entstanden Werte, kann man ja den Bauteilen zuweisen.Diese müssen wie du schon sagtest jedoch vorkonstruiert werden. Jedenfalls in unserem kurs haben wir noch nicht ohne Aufzeichnung Bauteile konstruiert. Also alles lief
 über eine Aufzeichnung. Bei den damaligen ersten Versuchen hat dies funktioniert. Nur irgendwie funktioniert das nicht mehr. Es wird das Bauteil nicht mehr angezeigt.
 Ich habe im VBA  mehrere Projekte offen, kann es vllt sein, das bei der Makroaufzeichnung ein falsches Projekt zugewiesen wurde und somit vllt Probleme bei der Verlinkung entstanden sind? Ist nur eine Vermutung. 
 Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP | 
                        | HarleKinX Mitglied
 Student
 
  
 
      Beiträge: 32Registriert: 20.02.2011
 Intel Core 2 Duo, 3Gb RamGraka:
 Win XP Pro SP3
 CATIA V5 R19 SP8
 |    erstellt am: 25. Feb. 2011 12:47  <-- editieren / zitieren -->    Unities abgeben:            | 
                        | bgrittmann Moderator
 Konstrukteur
 
         
 
      Beiträge: 12117Registriert: 30.11.2006
 CATIA V5R19 |    erstellt am: 25. Feb. 2011 12:52  <-- editieren / zitieren -->    Unities abgeben:           Nur für HarleKinX   
  Servus Müsst ihr unbedingt ein Makro für den Aufbau der Teile verwenden? Für mich hört sich das eher nach der Verwendung einer Konstruktionstabelle und weiteren Regeln an. Über eine Userform könnte man ggf noch die richtige "Baugröße" der Gelenkverbindung wählen (um auch ein Makro verwendet zu haben    ) GrußBernd
 
 ------------------Warum einfach, wenn es auch kompliziert geht.
 Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP | 
                        | HarleKinX Mitglied
 Student
 
  
 
      Beiträge: 32Registriert: 20.02.2011
 Intel Core 2 Duo, 3Gb RamGraka:
 Win XP Pro SP3
 CATIA V5 R19 SP8
 |    erstellt am: 25. Feb. 2011 12:55  <-- editieren / zitieren -->    Unities abgeben:            
 Ne sollen das über Makros machen. Müssen nicht unbedingt Aufzeichnungen nutzen. Wenn wir es voll drauf haben, könnten wir die Bauteile auch über VBA halt direkt konstruieren ^^ aber wer kann das schon, wenn man nicht die Erfahrung hat. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP | 
                        | HarleKinX Mitglied
 Student
 
  
 
      Beiträge: 32Registriert: 20.02.2011
 Intel Core 2 Duo, 3Gb RamGraka:
 Win XP Pro SP3
 CATIA V5 R19 SP8
 |    erstellt am: 25. Feb. 2011 13:29  <-- editieren / zitieren -->    Unities abgeben:            | 
                        | RSchulz Ehrenmitglied V.I.P. h.c.
 Head of CAD, Content & Collaboration / IT-Manager
 
 
  
 
      Beiträge: 5541Registriert: 12.04.2007
 @WorkLenovo P510
 Xeon E5-1630v4
 64GB DDR4
 Quadro P2000
 256GB PCIe SSD
 512GB SSD
 SmarTeam V5-6 R2016 Sp04
 CATIA V5-6 R2016 Sp05
 E3.Series V2019
 Altium Designer/Concord 19
 Win 10 Pro x64
 |    erstellt am: 25. Feb. 2011 13:36  <-- editieren / zitieren -->    Unities abgeben:           Nur für HarleKinX   
  Hallo nochmal, sorry ich kann dir nicht helfen, da sich das für mich nach einem ganz klar anderen Verfahren anhört und nicht nach reiner Makroprogrammierung oder ihr habt tatsächlich mit CAA gearbeitet, wobei ich selbst keinen direkten Bezug darauf habe, weil die Lizenz uns einfach zu teuer ist. Für mich hört sich das vielmehr nach Powercopy oder automatisieretes Konstruieren mit parametrisierten Templates an. Ich würde an deiner Stelle mal mit dem Prof oder anderen reden. Vll. ist da nur etwas falsch rüber gekommen. In meinen Augen ist das, was du da machen möchtest/sollst, mit normalem VBA nicht möglich. ------------------MFG
 Rick Schulz
 Nettiquette (CAD.de)  -  Was ist die Systeminfo?  -  Wie man Fragen richtig stellt.  -  Unities     Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP | 
                        | HarleKinX Mitglied
 Student
 
  
 
      Beiträge: 32Registriert: 20.02.2011
 Intel Core 2 Duo, 3Gb RamGraka:
 Win XP Pro SP3
 CATIA V5 R19 SP8
 |    erstellt am: 25. Feb. 2011 13:40  <-- editieren / zitieren -->    Unities abgeben:            
  Doch es ist möglich. Ich glaube wir reden aneinander vorbei. Die Gelenkverbindung ist ja nicht groß aufwendig.Zum Beispiel:  Starte ich eine Makroaufzeichnung und konstruiere mit einer Skizze und einem Block einen Bolzen.
 en
 Dieser Quelltext kann einem Button im VBA doch zugewiesen werden. So und Nun sollte jedesmal dieser Bolzen aufgerufen werden.
 Da im Quelltext auch der Kreisdurchmesser und Länge steht, kann man dies mit 2 einfachen Variablen versehen und nun im VBA
 auswählen.
 Das wär das einfachste Prinzip. Kann damit einer umgehen?? Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP | 
                        | RSchulz Ehrenmitglied V.I.P. h.c.
 Head of CAD, Content & Collaboration / IT-Manager
 
 
  
 
      Beiträge: 5541Registriert: 12.04.2007
 @WorkLenovo P510
 Xeon E5-1630v4
 64GB DDR4
 Quadro P2000
 256GB PCIe SSD
 512GB SSD
 SmarTeam V5-6 R2016 Sp04
 CATIA V5-6 R2016 Sp05
 E3.Series V2019
 Altium Designer/Concord 19
 Win 10 Pro x64
 |    erstellt am: 25. Feb. 2011 13:47  <-- editieren / zitieren -->    Unities abgeben:           Nur für HarleKinX   | 
                        | HarleKinX Mitglied
 Student
 
  
 
      Beiträge: 32Registriert: 20.02.2011
 Intel Core 2 Duo, 3Gb RamGraka:
 Win XP Pro SP3
 CATIA V5 R19 SP8
 |    erstellt am: 25. Feb. 2011 13:52  <-- editieren / zitieren -->    Unities abgeben:            | 
                        | HarleKinX Mitglied
 Student
 
  
 
      Beiträge: 32Registriert: 20.02.2011
 Intel Core 2 Duo, 3Gb RamGraka:
 Win XP Pro SP3
 CATIA V5 R19 SP8
 |    erstellt am: 25. Feb. 2011 15:12  <-- editieren / zitieren -->    Unities abgeben:            | 
                        | HoBLila Mitglied
 Dipl.-Ing. (BA) praktische Informatik - Senior Entwickler CAx
 
     
 
      Beiträge: 1118Registriert: 29.05.2008
 DELL PRECISION T3500Intel(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: 25. Feb. 2011 16:01  <-- editieren / zitieren -->    Unities abgeben:           Nur für HarleKinX   
  Hallo, also ich kann mit VBA und CAA dienen. :-DRick ist im VBA aber fitter als ich und von daher vertraue ich seinem Urteil.
 Ich glaube deine Fehlerbeschreibung ist einfach zu schwammig. Ich vermute mal dein Problem ist, dass kein VBA-Modul installiert ist, oder etwas in der Art und VBA daher auf deinem Rechner grundsätzlich nicht funktioniert. Daher würde ich Dich bitten noch einmal detailiert aufzuführen, was Du genau probierst und was passiert. Denn einen Klotz aufzuzeichen geht immer ohne Probleme, wie Rick es bereits beschrieben hat. Also Aufzeichnung starten, Klotz bauen (Skizze + Pad), Aufzeichnung beenden und dann über Alt+F8 ausführen. Also sag noch einmal genau an, was Fase ist.Im übrigen ist es ja scheinbar deine Belegarbeit und es wäre auch unfair, wenn wir die ganze Arbeit machen. :-)
 Dein Dozent wird Dir aber sicher alle Hilfsmittel an die Hand gegeben haben.
 ------------------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 | 
                        | RSchulz Ehrenmitglied V.I.P. h.c.
 Head of CAD, Content & Collaboration / IT-Manager
 
 
  
 
      Beiträge: 5541Registriert: 12.04.2007
 @WorkLenovo P510
 Xeon E5-1630v4
 64GB DDR4
 Quadro P2000
 256GB PCIe SSD
 512GB SSD
 SmarTeam V5-6 R2016 Sp04
 CATIA V5-6 R2016 Sp05
 E3.Series V2019
 Altium Designer/Concord 19
 Win 10 Pro x64
 |    erstellt am: 25. Feb. 2011 16:17  <-- editieren / zitieren -->    Unities abgeben:           Nur für HarleKinX   
  Danke Henry    Also nochmal Klartext, da ich doch immer versuche allen zu Helfen... Um ehrlich zu sein, habe ich nichts mehr geschrieben, da es mir etwas zu .... wurde. Du bist nicht mal in der Lage detailliert zu schreiben was du suchst.Geschweige denn eine Systeminfo Hardware + Software etc. anzugeben.Erst hast du geschrieben, dass du etwas aufgezeichnet hast und das nicht lief und wolltest wissen wie es geht. Nun willst du wissen, wie man über eine Userform programmiert, was eh mehr Fragen als Antworten aufwirft und dann stellst du mich noch da, als hätte ich keine Ahnung davon...
 Les dir bitte den Quatsch, den du da geschrieben hast noch mal durch und schreibe eine vernünftige Antwort. Sorry für den rauen Ton, aber manchmal regt mich zu erkennender fehlender Ergeiz einfach auf und um ehrlich zu sein, möchtest du etwas von uns und nicht umgekehrt.
 Was genau hast du vor? Möchtest du eine Form entwickeln, bei der man gewisse Parameter eintragen kann und dann per Button das Makro befüttert mit den Parametern ausführen soll? So würde ich die letzte Aussage zumindest deuten. Allerdings ist es mir zu blöd alles deuten zu müssen. ------------------MFG
 Rick Schulz
 Nettiquette (CAD.de)  -  Was ist die Systeminfo?  -  Wie man Fragen richtig stellt.  -  Unities    Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP | 
                        | HarleKinX Mitglied
 Student
 
  
 
      Beiträge: 32Registriert: 20.02.2011
 Intel Core 2 Duo, 3Gb RamGraka:
 Win XP Pro SP3
 CATIA V5 R19 SP8
 |    erstellt am: 27. Feb. 2011 20:16  <-- editieren / zitieren -->    Unities abgeben:            
  Hey ho, ich glaube durch die vielen unterschiedlichen Antworten ist bei einigen auch der PFaden verloren gegangen. Aufgabe des Beleges:Eine in VBA programmierte Belegarbeit, die zum einen Festigkeitsnachweise einer Gelenkverbindung mit variablen Parametern ausrechnet und demnach dann diese Gelenkverbindung (bestehend aus Bolzen, Gabel, Stange, Buchse oder Stift) konstruiert bzw dann als Product im CATIA V5 aufruft.
 Ich habe mit CATIA V5 R19. VBA Version 6.5. Hochschulrechner sind auf den modernsten Standard, kann aber jetzt nicht genau sagen welches System. Denke Core 2 Duo. Windows 7 als Betriebssystem und mindestens 2GB Ram würd ich annehmen. Ansonsten würd ich da auf alle Fälle noch mal nachschauen wenn Bedarf besteht. Die Berechnung und alles wurde über Userform gestaltet, siehe Bild 1. 
   Sobald die Sicherheiten gegeben sind, sollen die einzelnen Bauteile aufgerufen werden können und als gesamtes Product, siehe Bild 2   Als wir mit der Makroprogrammierung anfingen, haben wir auch ein einfaches Bauteil konstruiert und aufgezeichnet und es hat auch geklappt über einen Button auf der Userform aufzurufen. Nur irgendwie funktioniert es jetzt nicht mehr.
 Und deshalb verzweifle ich. Die Bauteile wurden alle schon aufgezeichnet etc und ich denke vllt das es ein simples Problem ist, welches ich nicht finde. Da ich aber nicht sinnlos Quelltexte durchschicken wollte, bat ich erstmal um Hilfe. Um dann natürlich die nötigen Informationen liefern zu können. Das Problem macht sich wie folgt bemerkbar. Nach der Berechnung, werden Ergebnisse angezeigt und das Konstruktionsfenster aufgerufen. Sobald nun der Bolzen-Button betätigt wird. Öffnet sich eine neue Part-Datei. In dieser Datei ist aber entweder kein Bauteil zu sehen, oder unter Umständen plötzlich nur Fasen mit einem "Ausrufezeichen" versehen.
 Ist es denn jetzt vllt verständlicher? oder braucht ihr noch ein paar Infos?? Danke   Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP | 
                        | bgrittmann Moderator
 Konstrukteur
 
         
 
      Beiträge: 12117Registriert: 30.11.2006
 CATIA V5R19 |    erstellt am: 27. Feb. 2011 20:31  <-- editieren / zitieren -->    Unities abgeben:           Nur für HarleKinX   
  Servus Bist du sicher dass das richtige Script durch den Button aufgerufen wird? Hast du mal das aufgezeichnete Makro mal versuch zu "lesen", mach das Script sinn? Sind die gleichen Anfangsbedingungen wie bei der Aufzeichnung des Scripts gegeben (zB Part geöffnet, ..)? Kannst du den Code zB für den Bolzen mal Posten? GrußBernd
 
 ------------------Warum einfach, wenn es auch kompliziert geht.
 Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP | 
                        | HarleKinX Mitglied
 Student
 
  
 
      Beiträge: 32Registriert: 20.02.2011
 Intel Core 2 Duo, 3Gb RamGraka:
 Win XP Pro SP3
 CATIA V5 R19 SP8
 |    erstellt am: 27. Feb. 2011 21:17  <-- editieren / zitieren -->    Unities abgeben:            
  Ob der Code Sinn macht, weiß ich nicht, das ist das Problem bei sowas Neuem, ich gehe damit um aber jedes einzelne Wort kann ich nicht entziffern. Hier mal die wichtigen Texte: ------------------------------------------------------------------------------------------------'========Button - Bolzen konstruieren
 Private Sub CommandButton5_Click()
 On Error Resume NextFor I = 1 To 10
 CATIA.ActiveDocument.Close
 Next
 Call Einspannsituation_lesen 'Parameter werden eingelesen If b_type = 1 Then NameBolzen = "Bolzen_ISO2340-B-" + Str(d1N) + "h11x" + Str(LN) + "x" + Str(LS1) + "-St"If b_type = 2 Then NameBolzen = "Bolzen_ISO2340-A-" + Str(d1N) + "h11x" + Str(LN) + "-St"
 Call Neues_PartCall Bolzen
 Call Fase_Bolzen
 If b_type = 1 Then Call Splintbohrung
 Speicherpfad = saveInBox.Text + "\" + NameBolzen + ".CATPart" Name = NameBolzen Call Name_PartCall Einpassen_Zentrieren
 Call Part_Speichern
 'Ein- / Ausblenden von Command-ButtonsIf b_type = 1 Then CommandButton15.Enabled = True
 If b_type = 2 Then CommandButton16.Enabled = True
 CommandButton5.Enabled = False
 End Sub---------------------------------------------------------------------------------------------
 Private Sub Bolzen() Dim partDocument1 As DocumentSet partDocument1 = CATIA.ActiveDocument
 Dim part1 As PartSet part1 = partDocument1.Part
 Dim hybridBodies1 As HybridBodies
 Set hybridBodies1 = part1.HybridBodies
 Dim hybridBody1 As HybridBody
 Set hybridBody1 = hybridBodies1.Item("Geometrisches Set.1")
 Dim sketches1 As Sketches
 Set sketches1 = hybridBody1.HybridSketches
 Dim originElements1 As OriginElements
 Set originElements1 = part1.OriginElements
 Dim reference1 As Reference
 Set reference1 = originElements1.PlaneYZ
 Dim sketch1 As Sketch
 Set sketch1 = sketches1.Add(reference1)
 Dim arrayOfVariantOfDouble1(8)
 arrayOfVariantOfDouble1(0) = 0#
 arrayOfVariantOfDouble1(1) = 0#
 arrayOfVariantOfDouble1(2) = 0#
 arrayOfVariantOfDouble1(3) = 0#
 arrayOfVariantOfDouble1(4) = 1#
 arrayOfVariantOfDouble1(5) = 0#
 arrayOfVariantOfDouble1(6) = 0#
 arrayOfVariantOfDouble1(7) = 0#
 arrayOfVariantOfDouble1(8) = 1#
 Set sketch1Variant = sketch1
 sketch1Variant.SetAbsoluteAxisData arrayOfVariantOfDouble1
 part1.InWorkObject = sketch1
 Dim factory2D1 As Factory2D
 Set factory2D1 = sketch1.OpenEdition()
 Dim geometricElements1 As GeometricElements
 Set geometricElements1 = sketch1.GeometricElements
 Dim axis2D1 As Axis2D
 Set axis2D1 = geometricElements1.Item("Absolute Achse")
 Dim line2D1 As Line2D
 Set line2D1 = axis2D1.GetItem("H-Richtung")
 Dim line2D2 As Line2D
 Set line2D2 = axis2D1.GetItem("V-Richtung")
 Dim circle2D1 As Circle2D
 Set circle2D1 = factory2D1.CreateClosedCircle(0#, 0#, d1N / 2)
 Dim point2D1 As Point2D
 Set point2D1 = axis2D1.GetItem("Ursprung")
 circle2D1.CenterPoint = point2D1
 Dim point2D2 As Point2D
 Set point2D2 = factory2D1.CreatePoint(d1N / 2, 0#)
 Dim constraints1 As Constraints
 Set constraints1 = sketch1.Constraints
 Dim reference2 As Reference
 Set reference2 = part1.CreateReferenceFromObject(circle2D1)
 Dim reference3 As Reference
 Set reference3 = part1.CreateReferenceFromObject(point2D2)
 Dim constraint1 As Constraint
 Set constraint1 = constraints1.AddBiEltCst(catCstTypeOn, reference2, reference3)
 constraint1.Mode = catCstModeDrivingDimension
 Dim reference4 As Reference
 Set reference4 = part1.CreateReferenceFromObject(point2D2)
 Dim reference5 As Reference
 Set reference5 = part1.CreateReferenceFromObject(line2D1)
 Dim constraint2 As Constraint
 Set constraint2 = constraints1.AddBiEltCst(catCstTypeOn, reference4, reference5)
 constraint2.Mode = catCstModeDrivingDimension
 Dim reference6 As Reference
 Set reference6 = part1.CreateReferenceFromObject(circle2D1)
 Dim constraint3 As Constraint
 Set constraint3 = constraints1.AddMonoEltCst(catCstTypeRadius, reference6)
 constraint3.Mode = catCstModeDrivingDimension
 Dim length1 As Length
 Set length1 = constraint3.Dimension
 length1.Value = d1N / 2 sketch1.CloseEditionpart1.InWorkObject = hybridBody1
 part1.Update
 Dim bodies1 As Bodies
 Set bodies1 = part1.Bodies
 Dim body1 As Body
 Set body1 = bodies1.Item("Hauptkörper")
 part1.InWorkObject = body1
 part1.InWorkObject = body1
 Dim shapeFactory1 As ShapeFactory
 Set shapeFactory1 = part1.ShapeFactory
 Dim pad1 As Pad
 Set pad1 = shapeFactory1.AddNewPad(sketch1, LN / 2)
 pad1.IsSymmetric = True
 Dim limit1 As Limit
 Set limit1 = pad1.FirstLimit
 Dim length2 As Length
 Set length2 = limit1.Dimension
 length2.Value = LN / 2 part1.Update End Sub -------------------------------------------------------------------------------Private Sub Fase_Bolzen()
 Dim partDocument1 As PartDocumentSet partDocument1 = CATIA.ActiveDocument
 Dim part1 As Part
 Set part1 = partDocument1.Part
 Dim shapeFactory1 As ShapeFactory
 Set shapeFactory1 = part1.ShapeFactory
 Dim reference1 As Reference
 Set reference1 = part1.CreateReferenceFromName("")
 Dim chamfer1 As Chamfer
 Set chamfer1 = shapeFactory1.AddNewChamfer(reference1, catTangencyChamfer, catLengthAngleChamfer, catNoReverseChamfer, 1#, 45#)
 Dim bodies1 As Bodies
 Set bodies1 = part1.Bodies
 Dim body1 As Body
 Set body1 = bodies1.Item("Hauptkörper")
 Dim shapes1 As Shapes
 Set shapes1 = body1.Shapes
 Dim pad1 As Pad
 Set pad1 = shapes1.Item("Block.1")
 Dim reference2 As Reference
 Set reference2 = part1.CreateReferenceFromBRepName("RSur
  Face  Brp  Pad.1;2);None  );Cf11  ));WithTemporaryBody;WithoutBuildError;WithSelectingFeatureSupport;MFBRepVersion_CXR15)", pad1) chamfer1.AddElementToChamfer reference2chamfer1.Mode = catLengthAngleChamfer
 chamfer1.Propagation = catTangencyChamfer
 chamfer1.Orientation = catNoReverseChamfer
 Dim reference3 As ReferenceSet reference3 = part1.CreateReferenceFromName("")
 Dim chamfer2 As Chamfer
 Set chamfer2 = shapeFactory1.AddNewChamfer(reference3, catTangencyChamfer, catLengthAngleChamfer, catNoReverseChamfer, 1#, 45#)
 Dim reference4 As Reference
 Set reference4 = part1.CreateReferenceFromBRepName("RSur
  Face  Brp  Pad.1;1);None  );Cf11  ));WithTemporaryBody;WithoutBuildError;WithSelectingFeatureSupport;MFBRepVersion_CXR15)", chamfer1) chamfer2.AddElementToChamfer reference4chamfer2.Mode = catLengthAngleChamfer
 chamfer2.Propagation = catTangencyChamfer
 chamfer2.Orientation = catNoReverseChamfer
 part1.Update End Sub ------------------------------------------------------------------ Private Sub Name_Part() Dim partDocument1 As PartDocumentSet partDocument1 = CATIA.ActiveDocument
 Dim product1 As ProductSet product1 = partDocument1.GetItem("Part1")
 product1.PartNumber = Name End Sub ------------------------------------------------------- Private Sub Neues_Part() On Error Resume NextCATIA.ActiveDocument.Close
 Dim Neu As Document
 Set Neu = CATIA.Documents.Add("Part")
 End Sub
 Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP | 
                        | bgrittmann Moderator
 Konstrukteur
 
         
 
      Beiträge: 12117Registriert: 30.11.2006
 CATIA V5R19 |    erstellt am: 27. Feb. 2011 22:39  <-- editieren / zitieren -->    Unities abgeben:           Nur für HarleKinX   
  Servus Beim groben überfliegen ist mir aufgefallen, dass du mit "on error resume next" die Fehlerbehandlung ausgeschaltet hast. AFAIK   bleibt diese Einstellung auch in andern Subs erhalten. Somit hast du keine Möglichkeit dir Fehlermeldung anzeigen zulassen und darauf zu reagieren. Lösche mal diese Zeile und schau dir mögliche Fehler und derer Ursache an (zB mit dem Wachfenster bzw. das Makro Schrittweise abarbeiten) GrußBernd
 
 ------------------Warum einfach, wenn es auch kompliziert geht.
 Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP | 
                        | HarleKinX Mitglied
 Student
 
  
 
      Beiträge: 32Registriert: 20.02.2011
 Intel Core 2 Duo, 3Gb RamGraka:
 Win XP Pro SP3
 CATIA V5 R19 SP8
 |    erstellt am: 28. Feb. 2011 10:13  <-- editieren / zitieren -->    Unities abgeben:            
  Hey, ich kann mir das nicht erklären.. Aber nun geht es doch.Ich habe einfach mal ON Error Resume next ausgeblendet --> funktionierte nicht.
 Dann habe ich es wieder eingeblendet --> plötzlich funktionierte alles wie es sollte und
 das obwohl ich nichts verändert habe und seit 2 Wochen dran sitze. Ich versteh es einfach nicht.
 Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP | 
                        | bgrittmann Moderator
 Konstrukteur
 
         
 
      Beiträge: 12117Registriert: 30.11.2006
 CATIA V5R19 |    erstellt am: 28. Feb. 2011 10:19  <-- editieren / zitieren -->    Unities abgeben:           Nur für HarleKinX   
  Servus Wenn es ohne "on error resume next" nicht funktioniert solltest du die Fehler untersuchen und beheben. Einfach darauf verlassen dass es jetzt läuft (ohne eine Erklärung zu haben) ist gefährlich. Was ist beim nächsten Start oder einem andern Rechner? Läuft es dann (speziell bei der Vorstellung des Skript gegenüber dem Prof)? GrußBernd
 ------------------Warum einfach, wenn es auch kompliziert geht.
 Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP | 
                        | HarleKinX Mitglied
 Student
 
  
 
      Beiträge: 32Registriert: 20.02.2011
 Intel Core 2 Duo, 3Gb RamGraka:
 Win XP Pro SP3
 CATIA V5 R19 SP8
 |    erstellt am: 28. Feb. 2011 10:46  <-- editieren / zitieren -->    Unities abgeben:            
  Also es geht auch ohne  "On Error Resume Next". Er hatte lediglich ActivDocument.Close angemeckert, weil es nichts zu Schließen gab. Hmmm habe vorher bei Tools-->Optionen-->Infrastruktur-->Teileinfrastruktur-->Teiledokumente--> Häkchen bei geometrisches Set erzeugen Danach hat es immer noch nicht funktioniert. Aber nach einem Neustart.  Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP | 
                        | bgrittmann Moderator
 Konstrukteur
 
         
 
      Beiträge: 12117Registriert: 30.11.2006
 CATIA V5R19 |    erstellt am: 28. Feb. 2011 10:58  <-- editieren / zitieren -->    Unities abgeben:           Nur für HarleKinX   
  Servus Also war die veränderte Ausgangssituation der Übeltäter. Was wirft aber folgende Fragen auf: - was passiert wenn diese Einstellung (des GeoSets) auf einem anderen Rechner nicht gestzt wurde? - wird das GeoSet überhaupt benötigt?  - was ist wenn jemand Englisch als Sprache in CATIA eingeteilt hat - was passiert wenn am Anfang mehr als 10 Dokumente geöffnet sind (im speziellen wenn eins schon Part1 heißt)? - .... IMHO   solltest du das Script durcharbeiten (und verstehen) um solche möglichen Probleme zu bereinigen. Das "Zusammenbasteln" eines Scripte geht oft recht schnell, doch das Testen und das Abfangen aller möglicher Fehler nimmt sehr viel Zeit in Anspruch. GrußBernd
 PS: Bitte Systeminfo ausfüllen. ------------------Warum einfach, wenn es auch kompliziert geht.
 Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP | 
                        | HarleKinX Mitglied
 Student
 
  
 
      Beiträge: 32Registriert: 20.02.2011
 Intel Core 2 Duo, 3Gb RamGraka:
 Win XP Pro SP3
 CATIA V5 R19 SP8
 |    erstellt am: 28. Feb. 2011 11:14  <-- editieren / zitieren -->    Unities abgeben:            
  Hey, also die Probleme gehen weiter. Wenn ich den Bolzen offen lassen und danach die Gabel und Stange aufrufe, kommt es zu Problemen bei den Fasen bzw Rundungen, da diese immer mit Fase.1 bezeichnet werden.
 Wenn ich bei den einzelnen Bauteilen vorher immer alle Dokumente Schließen lasse, kommen keine Probleme. Will ich sie aber offen lassen, hat er Probleme mit dem Bezugselement in diesen Zeilen Bsp: Stange FasenverundungSet length1 = parameters1.Item("Part1\Hauptkörper\Fase.1\Fasenband.1\Länge1")
 Kann ich das Problem auch anders lösen ohne die Dokumente Schließen zu müssen.?? Die Probleme wegen den offenen Parts, die mein Vorredner erwähnt hat wüsste ich auf anhieb nicht, wie ich dem Programm mitteilen kann, wie er alle offenen Schließen kann ausser in der Form einer Schleife. Habe diese erstmal auf 10 gesetzt.  Kann mir da vllt einer weiterhelfen?
 Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP | 
                        | bgrittmann Moderator
 Konstrukteur
 
         
 
      Beiträge: 12117Registriert: 30.11.2006
 CATIA V5R19 |    erstellt am: 28. Feb. 2011 20:12  <-- editieren / zitieren -->    Unities abgeben:           Nur für HarleKinX   
  Servus Die Anzahl der offenen Dokumente bekommst du über:Catia.documents.count
 Ob es sinnvoll ist über einer Schleife alle offenen Dokument zu schließen kann man streiten.
 Das Problem bei aufgezeichneten Makros ist immer, dass alle Features/Parameter mit Namen angesprochen werden.
 Deshalb fällt dein Makro auf die "Nase", da deine Stange ja nicht "Part1" heißt (Pfad des Parameters).
 IMHO
  wäre die einfachste/sauberste Lösung: ein Produkt mit allen Einzelteilen aufbauen und diese "Vorlage" beim Start öffnen. Die Geometrie könnte dann über Parameter in der Baugruppe gesteuert werden. Diese Parameter könnten dann mit deinem VBA-Makro angepasst werden. GrußBernd
 PS: Bitte Systeminfo ausfüllen.PS2: kleiner Hinweis für weitere Probleme: die Forensuche oder die Doku sind oft sehr hilfreich
 ------------------Warum einfach, wenn es auch kompliziert geht.
 Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP | 
                       
 | HarleKinX Mitglied
 Student
 
  
 
      Beiträge: 32Registriert: 20.02.2011
 Intel Core 2 Duo, 3Gb RamGraka:
 Win XP Pro SP3
 CATIA V5 R19 SP8
 |    erstellt am: 01. Mrz. 2011 09:18  <-- editieren / zitieren -->    Unities abgeben:            
  Ja die Idee wäre wirklich besser mit dem gesamten Product. Jedoch wäre dies jetzt zu Zeitaufwendig. Unser  Prof hatte uns ja den Weg über die Makroaufzeichnung gezeigt. Denke die Aufgabe ist somit auch erfüllt. Weiterhin weiß ich aber nicht wie ich die offenen Dokumente anders schließen kann. Aber im Moment ist es die einzige Möglichkeit das Programm ohne Fehler laufen zu lassen.Vllt hat ja jmd da eine bessere Idee ?
 Ansonsten bedanke ich mich für eure Mühen und Hilfe.
 Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |