| |
 | CATIA V5 Grundkurs | Einsteiger - 5 Std. 15 Min 48 |
| |
 | Mit der Kisters 3DViewStation komplexeste 3D CAD-Daten beherrschen, eine Pressemitteilung
|
Autor
|
Thema: Schleifen im Makro (762 mal gelesen)
|
Salemaer Mitglied Student

 Beiträge: 26 Registriert: 06.05.2003
|
erstellt am: 11. Aug. 2003 11:36 <-- editieren / zitieren --> Unities abgeben:         
Hallo CATIA Gemeinde, leider bin ich in der Programmierung nicht sonderlich bewandert und hänge bei einem recht arbeitsintensiven Problem fest. Zu einem Flugzeug, will ich das Gerüst aus Rohren konstruieren. Der Verlauf der Streben ist drch Punkte und Linien Parametrisiert und über eine Excel Tabelle steuerbar. Aus diesen Linien (besser gesagt, diese als Basis) will ich ein Rohrgestänge erstellen (ansteuerbar in der Dicke der Rohre). Dazu erzeuge ich eine Ebene senkrecht zu den Linie und zeichne eine Kreis auf dieser Eben, die Linie steht also senkrecht darauf. Lasse nun einen Loft auf die Projezierten Endflächen werfen. Wie muß ich das in einem Makro schreiben, ohne diese Aktion 200 durchführen zu müssen? Vielen Dank und einen schönen heißen Tag Salemaer
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
u01dz Mitglied

 Beiträge: 76 Registriert: 12.07.2003 V5R15GA
|
erstellt am: 11. Aug. 2003 17:59 <-- editieren / zitieren --> Unities abgeben:          Nur für Salemaer
Hi, Du kannst hierfür eine For-Next-, Do-While- oder Do-Until-Schleife verwenden. Ausführliche Beispiele findest Du im Buch "Effiziente Konstruktion mit Makros", S. 31 ff. ------------------ Tschüß, Dieter Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Stoffel Mitglied Student
 
 Beiträge: 322 Registriert: 09.10.2002 R6/V2010
|
erstellt am: 12. Aug. 2003 08:36 <-- editieren / zitieren --> Unities abgeben:          Nur für Salemaer
Mein Tipp wäre: Zeichne diese Aktion 1x per Makrorekorder auf. Dieses Makro musst du nun wahrscheinlich noch etwas verändern. Und dann baust du einfach noch eine Schleife drum herum. Z.B. for i = 1 to 200 Makro next i P.S. Vorsicht bei Collections in CATIA! Die starten nicht bei 0, wie es "normale" Programmierer gewohnt sind, sondern bei 1.... Fette Grüße Stoffel Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Salemaer Mitglied Student

 Beiträge: 26 Registriert: 06.05.2003
|
erstellt am: 19. Aug. 2003 15:27 <-- editieren / zitieren --> Unities abgeben:         
Hallo, danke für Eure Antworten, das mit den Schleifen war mir soweit auch bekannt. Mein Problem lag eher darin, daß jedesmal eine andere Linie angesprochen wird. Wenn ich ein Makro aufzeichne steht darin ja dann tu das und das mit Linie.01 ..... in der Schleife soll er nun mit allen Linien von 1 bis 100 dieses tun, wobei mein Problem sich darin ausdrück daß icn nicht weiß wie ich den Namensteil von **.01 in **.02 ändere. Kennt jemand dafür ne Lösung? Gruß Salemaer Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
gdir Mitglied
 
 Beiträge: 157 Registriert: 25.06.2003
|
erstellt am: 19. Aug. 2003 16:55 <-- editieren / zitieren --> Unities abgeben:          Nur für Salemaer
Hallo, erzeugst Du die Linien auch selbst im Skript? Falls ja, solltest Du irgendwo ein Linienobjekt in Deinem Skript finden. Der Name der Linie kann Dir dann egal sein. Falls Du die Linien nicht im Skript erzeugst, sondern sie schon vorher im Part vorgegeben sind, kannst Sie beispielsweise über Ihren Open Body (HybridBody) ansprechen. Du kannst bspw. alle HybridShapes eines Open Bodies über einen Index ansprechen. Viele Grüße Günther Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
barbara_ Mitglied

 Beiträge: 53 Registriert: 26.03.2003
|
erstellt am: 20. Aug. 2003 11:07 <-- editieren / zitieren --> Unities abgeben:          Nur für Salemaer
Hallo Salemander, falls Du bescheid weisst, dass alle Linien, die das Makro durchlaufen soll die Namen "Linie.xx" besitzt, dann kannst Du folgend das Problem umgehen: For i=1 To ... ... str = "Linie." & i set linie = part1.FindObjectByName(str) ... Next Ist zwar nicht sehr geschickt und die zwei Fälle mussen Überprüft werden : 1. "Linie.0x" 2. "Linie.xx" aber vielleicht hilft es Dir weiter. mfG Barbara Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |