| |
 | CATIA V5 Grundkurs | Einsteiger - 5 Std. 15 Min 48 |
| |
 | KISTERS 3DViewStation: 3D-Visualisierung für After Sales, Service und Ersatzteile, eine Pressemitteilung
|
Autor
|
Thema: NC-Process: auf Parts im geladenen Produkt zugreifen (1717 mal gelesen)
|
CoolEagle Mitglied NC-Programmierer

 Beiträge: 45 Registriert: 14.11.2003
|
erstellt am: 04. Sep. 2008 23:13 <-- editieren / zitieren --> Unities abgeben:         
Hallo Leute, ich habe einen Process, in den ein Produkt mit mehreren CATParts geladen ist. Ein bestimmtes CATPart möchte ich sichtbar/unsichtbar schalten. Bisher bin ich so weit gekommen: ------------------------------------------------------------------------------- Set Selektion=CATIA.ActiveDocument.Selection Selektion.Search"(Name=*mach_mich_unsichtbar*'.'* & ('Product Structure'.Part + 'Assembly Design'.Part));all" Selektion.VisProperties.GetShow Sichtbarkeit If Sichtbarkeit = 0 Then Selektion.VisProperties.SetShow 1 Else Selektion.VisProperties.SetShow 0 End If Selektion.Clear ------------------------------------------------------------------------------- Im einfach geöffneten Process funktioniert das sehr gut. Nur wenn ich eine Operation geöffnet habe, z.B. ein Multi-AxisFlankContouring, und ich dann das Makro starte, springt Catia aus der Operation (ohne die Änderungen zu speichern!). Nun habe ich probiert irgendwie an eine Art Produktliste zu kommen, in der die Produkte und Parts aufgelistet sind, die im Process eingeladen sind, und so die Such-Methode zu umgehen. Aber hier trete ich auf der Stelle... Kann mir da jemand weiterhelfen?
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
V5Playaz Mitglied Dipl.-Ing (BA)
 
 Beiträge: 447 Registriert: 12.07.2005 DELL PRECISION 390 3,25 GB RAM WIN XP PRO SP2 CATIA V5 R16-19 Delmia V5 R19 VB6, VB2008 Adobe Acrobat 9 Pro Extended
|
erstellt am: 05. Sep. 2008 08:33 <-- editieren / zitieren --> Unities abgeben:          Nur für CoolEagle
Hallo, vielleicht hilft ja ein selection.clear bevor du dein selection.search machst. Es gibt im Makroeditor die möglichkeit, eine bestimmte Stelle im Strukturbaum zu selektieren und den zugehörigen Makrocode anzeigen zu lassen (Button: Objektauflösung einfügen...). Hoffe das hilft weiter, grüße Dominik Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CoolEagle Mitglied NC-Programmierer

 Beiträge: 45 Registriert: 14.11.2003
|
erstellt am: 08. Sep. 2008 19:40 <-- editieren / zitieren --> Unities abgeben:         
Hallo Dominik, leider stehe ich vor dem gleichen Problem. selection.clear hat keine Änderung gebracht. Die Auflösung im Editor nutzt eine Methode namens GetItem, die beim erneuten Makroaufruf nicht funtioniert. In der Dokumentation steht nur lapidar "diese Funktion sollte nicht verwendet werden". Trotzdem bin ich ein Stück weiter gekommen. Mit ------------------------------------------------------- Set processDocument1 = CATIA.ActiveDocument.PPRDocument Set product1 = processDocument1.Products.Item(1) Set product2 = product1.products.item(2) Set product3 = product2.products.item(2) Set Selektion = CATIA.ActiveDocument.Selection Selektion.Clear Selektion.Add(product3) Selektion.VisProperties.SetShow 0 ------------------------------------------------------- wähle ich jetzt ein bestimmtes Teil im Stukturbaum aus, um dieses unsichtbar zu machen. Mein Problem bleibt aber bestehen. Wenn ich dieses Makro im NC bei einer geöffneten Operation starte, wird die Operation geschlossen... Im nächsten Schritt habe ich probiert alles aus dem Makro auszukommentieren. Startet man ein Makro, wenn man in der NC-Umgebung eine Operation offen hat, wir diese Operation geschlossen. Es ist auch egal, ob man das Makro mit einem Button in einer Symbolleiste startet, oder per Tastenkombination. Hat jemand eine Idee wie man das umgehen kann? [Diese Nachricht wurde von CoolEagle am 08. Sep. 2008 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
V5Playaz Mitglied Dipl.-Ing (BA)
 
 Beiträge: 447 Registriert: 12.07.2005 DELL PRECISION 390 3,25 GB RAM WIN XP PRO SP2 CATIA V5 R16-19 Delmia V5 R19 VB6, VB2008 Adobe Acrobat 9 Pro Extended
|
erstellt am: 09. Sep. 2008 08:58 <-- editieren / zitieren --> Unities abgeben:          Nur für CoolEagle
Hallo, das Problem liegt bei CATIA, dass wenn du ein (Operations-)Fenster geöffnet hast, CATIA bei Makrostart immer zuerst das Fenster schliesst. Abhilfe gibt es nur über den externen Weg über VB als eigenständiges Programm (unabhängig von CATIA). grüße Dominik Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CoolEagle Mitglied NC-Programmierer

 Beiträge: 45 Registriert: 14.11.2003
|
erstellt am: 09. Sep. 2008 10:47 <-- editieren / zitieren --> Unities abgeben:         
|
V5Playaz Mitglied Dipl.-Ing (BA)
 
 Beiträge: 447 Registriert: 12.07.2005 DELL PRECISION 390 3,25 GB RAM WIN XP PRO SP2 CATIA V5 R16-19 Delmia V5 R19 VB6, VB2008 Adobe Acrobat 9 Pro Extended
|
erstellt am: 09. Sep. 2008 11:05 <-- editieren / zitieren --> Unities abgeben:          Nur für CoolEagle
Hallo Jan, ich meine Visual Basic 6 oder auch 2005. Damit kannst du eine eigenständige *.exe-Datei erzeugen. Wenn diese gestartet wird, wird ein von CATIA unabhängiger Windows-Prozess gestartet. Für ein CATIA-Makro hingegen wird kein eigenständiger Windows-Prozess gestartet. Was CATIA V5 angeht, entwickle ich unter anderem eigene Tools für V5 und arbeite auch im NC-Umfeld. grüße Dominik Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CoolEagle Mitglied NC-Programmierer

 Beiträge: 45 Registriert: 14.11.2003
|
erstellt am: 15. Sep. 2008 12:23 <-- editieren / zitieren --> Unities abgeben:         
Hallo Dominik, ich merke schon, das Private-Nachrichten-System von CAD.de funktioniert nicht so recht/ist zu unübersichlich... Ich habe bisher mitbekommen, dass es als Programmieroptionen CatScript, VBScript(.catvbs) und CATVBA gibt. Du meinst aber noch eine zusätzliche Variante, so dass ich mir z.B. das VisualStudio installiere und damit eine komplett seperate Anwendung programmiere. Du meinst nicht CATVBA, oder? Gruß, Jan Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
denyo_1 Ehrenmitglied V.I.P. h.c. Manager
     
 Beiträge: 2506 Registriert: 10.08.2005 HP Compaq 8710w, Intel Core Duo T7700, 2,40 Ghz, 3GB RAM, Windows XP Professionel @32bit, Quadro FX 1600M, CATIA V5 R19 SP3
|
erstellt am: 16. Sep. 2008 18:55 <-- editieren / zitieren --> Unities abgeben:          Nur für CoolEagle
Hallo Jan, nein er meint nicht CATVba denn das CAT steht ja im endeffekt wieder für CATIA und heißt das es ein Visual Basic Makro ist das in CATIA erstellt wurde (hier wird keine eigene Windows-Instanz erzeugt, es direkt von CATIA ausgeführt wird). kurzes Beispiel: Angenommen es läuft gerade ein CATVba Makro ab und du beendest über den Taskmanager CATIA (also den CATIA Prozess) so wird auch das Makro beendet weil das Makro direkt von CATIA ausgeführt wird (es hat also keinen eigenen Prozess im Taskmanager) Angenommen das selbe Programm wird in Visual Basic 2006 erstellt, als *.exe veröffentlicht und dann ausgeführt und du beendest während der Laufzeit den CATIA Prozess so läuft das Programm weiter (natürlich wirds ein Fehler geben aber das ist jetzt nur nebensächlich). Es gibt hier einen Prozess für CATIA und einen für dein Programm und beide sind unabhängig voneinander (sie brauchen sich nicht zwingend gegenseitig um zu existieren) Nimm dir zum Beispiel Visual Basic 2006 oder Visual Basic Express und erstelle dir ein Programm. Diese kannst du veröffentlichen und machst quasi daraus eine *.exe. Diese *.exe erzeugt eine eigene Windows-Instanz ist also ein komplett unabhängiges Programm das nur mit CATIA kommuniziert nicht aber von CATIA selbst ausgeführt wird. Bei solchen eigenständigen Programmen musst du dir halt eine Schnittstelle zu CATIA erzeugen (dies machst du indem du dir in deinem eigenem Programm ein CATIA-Objekt erzeugst.) Über diese Schnittstelle kannst du dann wieder alle Methoden und Klassen von CATIA nutzen. Ich hoffe ich habe dir ein wenig weiterhelfen können ------------------ MFG Daniel Die KATJA ist halt doch nur ne zickige Französin Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CoolEagle Mitglied NC-Programmierer

 Beiträge: 45 Registriert: 14.11.2003
|
erstellt am: 16. Sep. 2008 20:11 <-- editieren / zitieren --> Unities abgeben:         
Danke Daniel, damit ist meine Frage sehr schön ausführlich beantwortet. Und die Folgefrage hast du auch schon mit erschlagen (-> im eigenständigen Projekt ein Catia-Objekt erzeugen etc.) Dankeschön! Gruß, Jan Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |