Autor
|
Thema: Update als Batch-Job (2182 mal gelesen)
|
Erich Mitglied Senior Consultant selbstständig
Beiträge: 198 Registriert: 03.10.2000 i7-9850H RAM 32,0 GB Nvidia Quadro T2000 Windows 7 Professional 64Bit
|
erstellt am: 01. Jun. 2012 21:04 <-- editieren / zitieren --> Unities abgeben:
Hallo ich möchte im Batch-Modus einen UPDATE auf ein Part ausführen. Hintergrund ist ein Excel-Sheet, der als Konstruktionstabelle, Werte von einem anderen Programm verändert bekommt. Das Script soll ferngesteuert im Netzwerk auf irgendeinem Rechner (mit Catia) gestartet werden können. Die BAT-Datei zum Aufruf sieht so aus: C:\Prg\V5R19\intel_a\code\bin\CNEXT.exe -batch -part F:\Beispiel.CATPart -macro F:\Update.CATscript Das Update.CATscript sieht so aus: Sub CATMain() Dim partDocument1 Set partDocument1 = CATIA.ActiveDocument Dim part1 Set part1 = partDocument1.Part part1.Update partDocument1.Save End Sub Wer weiss einen Weg dies lauffähig zu machen. Würde mich auf einen Hinweis freuen. Danke. ------------------ mfg Erich 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: 01. Jun. 2012 23:16 <-- editieren / zitieren --> Unities abgeben: Nur für Erich
Servus AFAIK kann man per Batch keinen Parameter an ein Makro übergeben (siehe auch hier) Eine allgemeine Beschreibung zum Aufruf von Makros per Batch findest du hier. Gruß Bernd ------------------ Warum einfach, wenn es auch kompliziert geht. 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: 02. Jun. 2012 08:17 <-- editieren / zitieren --> Unities abgeben: Nur für Erich
Servus Ich hab nochmal darüber nachgedacht. So solltest du deinen Batch-Aufruf ausführen können (ggf kannst du das Environment auch weglassen): Code: "C:\Programme\Dassault Systemes\B19\intel_a\code\bin\CATSTART.exe" -run CNEXT.exe -env MeinEnvironment.txt -direnv "C:\MeinEnvironmentPfad" -object "-batch C:\MainPart.CATPart -macro C:\MainMakro.CATScript"
Gruß Bernd ------------------ Warum einfach, wenn es auch kompliziert geht. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Erich Mitglied Senior Consultant selbstständig
Beiträge: 198 Registriert: 03.10.2000 i7-9850H RAM 32,0 GB Nvidia Quadro T2000 Windows 7 Professional 64Bit
|
erstellt am: 02. Jun. 2012 14:53 <-- editieren / zitieren --> Unities abgeben:
Hallo Bernd ich habe meine BAT überarbeitet bzw. getestet, mit folgendem Inhalt: C:\Prg\V5R19\intel_a\code\bin\CNEXT.exe -batch -macro "C:\Part-Update.CATscipt" Das Script sieht wie folgt aus: Language="VBSCRIPT" Sub CATMain() Dim documents1 As Documents Set documents1 = CATIA.Documents Dim partDocument1 As Document Set partDocument1 = documents1.Open("C:\BDT.CATPart") Dim part1 As Part Set part1 = partDocument1.Part Set partDocument1 = CATIA.ActiveDocument part1.Update partDocument1.Save End Sub Rufe ich dieses Makro interaktiv auf, funktioniert es wie gewünscht. Mit der BAT nicht. Kannst Du dies nachvollziehen? Bzw. was fehlt zum Batch-Aufruf bzw. Script! ------------------ mfg Erich 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: 02. Jun. 2012 18:07 <-- editieren / zitieren --> Unities abgeben: Nur für Erich
Servus Stimmen die Angaben der Pfade/Dateinamen (C:\Part-Update.CATsc ript)? Muss das Part überhaupt upgedatet werden? (ggf wird sonst auch keine Speichern ausgelöst, da sich das Teil nicht verändert hat, nicht aktualisiert wurde) Was ist wenn du das "-batch" weglässt? (nur zum sicher gehen, dass eine entsprechende Lizenz ausgewählt bzw gezogen wurde) 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 |
Erich Mitglied Senior Consultant selbstständig
Beiträge: 198 Registriert: 03.10.2000 i7-9850H RAM 32,0 GB Nvidia Quadro T2000 Windows 7 Professional 64Bit
|
erstellt am: 04. Jun. 2012 10:20 <-- editieren / zitieren --> Unities abgeben:
Hallo Bernd Dateinamen/Verzeichnis ist korrekt. Der Update ist immer notwendig, weil Veränderungen in der KT definiert wurden. Mir scheint das Problem hängt in Bezug auf die Lizenzen. Diverse Änderungen im -direnv bzw. -env ergaben entsprechende Fehler. Mir ist die Notwendigkeit der CATStart.exe in Deinem Aufruf inhaltlich nicht klar. Was benötigt CNEXT.exe beim Aufruf ohne CATStart? Bzw. was muß erweitert getan werden um im -Batch die Lizenz richtig zu verdrahten? ------------------ mfg Erich 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: 04. Jun. 2012 11:01 <-- editieren / zitieren --> Unities abgeben: Nur für Erich
Servus Unterschied zwischen CATStart und CNEXT sollte in einem meiner Links beschrieben sein (und beide Funktionieren) Startet CATIA wenn du das "-batch" weg lässt? (ggf die Zeile nach und nach zusammensetzen und testen) Wurde eine Lizenz gezogen nachdem du Catia zunächst manuell gestartet hast? Verwendest du das gleichen Enviroment wie bei manuellen Start? Gruß Bernd
------------------ Warum einfach, wenn es auch kompliziert geht. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
DanielFr. Moderator 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: 05. Jun. 2012 10:23 <-- editieren / zitieren --> Unities abgeben: Nur für Erich
Hallo zusammen , mal eine ganz andere Idee zum Thema: Warum steuerst du das Ganze nicht direkt aus der Excel-Datei heraus. Hier kannst du das SheetChange-Ereignis nutzen um Änderungen direkt an das Part weiterzugeben. Folgende prinzipielle Vorgehensweise ist dabei notwendig 1. Excel ist geöffnet und Daten des Arbeitsblattes (welches mit der DesignTable verknüpft ist) wurden geändert 2. CATIA wird instanziiert (d.h. es ist nicht sichtbar) (über das COM-Object)...Hier kannst du gleich Abfragen ob der MA der die Tabelle ändert auch CATIA installiert hat 3. Die notwendigen Lizenzen und Einstellungen werden gecheckt und ggf. gesetzt 4. Das Part wird upgedated 5. Das Part wird gespeichert und geschlossen 6. CATIA wird beendet Das Update könntest du hierbei z.B. durch das Ändern der Konfiguration (Zeile der DesignTable) erzwingen! HTH ------------------ MFG Daniel Systeminformation | Inoffizielle CATIA Hilfeseite | CATIA FAQ | Suche | TraceParts (Normteile...) | 3D Content Central (noch mehr Normteile...) Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |