Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  CATIA V5 Programmierung
  CATIA.StartCommand ohne Benutzer-Interaktion durchführen?

Antwort erstellen  Neues Thema erstellen
CAD.de Login | Logout | Profil | Profil bearbeiten | Registrieren | Voreinstellungen | Hilfe | Suchen

Anzeige:

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen nächster neuer Beitrag | nächster älterer Beitrag
Autor Thema:  CATIA.StartCommand ohne Benutzer-Interaktion durchführen? (5885 mal gelesen)
DiNo_68
Mitglied


Sehen Sie sich das Profil von DiNo_68 an!   Senden Sie eine Private Message an DiNo_68  Schreiben Sie einen Gästebucheintrag für DiNo_68

Beiträge: 7
Registriert: 17.11.2005

erstellt am: 17. Mrz. 2006 14:22    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo,

ich möchte aus CATScript einen Befehl über CATIA.StartCommand aufrufen (z.B. eine CAA-Applikation) - das funktioniert auch gut, abgesehen davon, dass das Skript weiter abgearbeitet wird, bevor der Befehl beendet ist...
Der aufgerufene Befehl öffnet in meinem Fall ein Eingabe-Fenster, um Parameter einzugeben.
Frage: Kann man den Befehl "im Batch" aufrufen, also dass keine Benutzer-Interaktion stattfindet und die Parameter stattdessen auch aus CATScript gesetzt werden?
Wäre dankbar für jeden Tip...

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Axel.Strasser
Ehrenmitglied V.I.P. h.c.
Selbstständig im Bereich PLM/CAx



Sehen Sie sich das Profil von Axel.Strasser an!   Senden Sie eine Private Message an Axel.Strasser  Schreiben Sie einen Gästebucheintrag für Axel.Strasser

Beiträge: 4107
Registriert: 12.03.2001

Früher war vieles gut, und das wäre es heute immer noch, wenn man die Finger davon gelassen hätte!

erstellt am: 17. Mrz. 2006 16:17    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für DiNo_68 10 Unities + Antwort hilfreich

Also ich habe so etwas mal mit einem vbs gemacht:

Code:
Option Explicit

Dim WshShell, fso, objEnv
Dim Command, MacroName, ScriptPath, Computername

Set fso = CreateObject("Scripting.FileSystemObject")
Set WshShell = Wscript.CreateObject("WScript.Shell")
Set objEnv = WshShell.Environment("Process")

ComputerName = objEnv("COMPUTERNAME")

ScriptPath = WScript.ScriptFullName
ScriptPath = Left(ScriptPath, InstrRev(ScriptPath, "\"))

ScriptPath = InputBox("Bitte Eingabe ScriptPath für Macro.CatScript", ComputerName, ScriptPath)
If ScriptPath = "" Then WScript.Quit

MacroName = ScriptPath & "Macro.CatScript"

Command = """D:\Dassault Systemes\B14\intel_a\code\bin\CNEXT.exe"" -env CATIA.V5R14.B14 " & _
"-direnv ""D:\Cat_setting\B14\CATEnv"" -macro """ & MacroName & """ -embedding"

WshShell.Run Command, 7, True

If fso.FileExists("C:\euc_temp\NonPickable.txt") Then
MacroName = ScriptPath & "Macro.CatScript"

Command = """D:\Dassault Systemes\B14\intel_a\code\bin\CNEXT.exe"" -env CATIA.V5R14.B14 " & _
"-direnv ""D:\Cat_setting\B14\CATEnv"" -macro """ & MacroName & """ -embedding"

WshShell.Run Command, 7, True

End If

msgbox "End Script.vbs"

wscript.quit


Meine Abfragen waren dann im Makro enthalten.

Axel

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

DiNo_68
Mitglied


Sehen Sie sich das Profil von DiNo_68 an!   Senden Sie eine Private Message an DiNo_68  Schreiben Sie einen Gästebucheintrag für DiNo_68

Beiträge: 7
Registriert: 17.11.2005

erstellt am: 20. Mrz. 2006 09:51    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo Axel,
das löst mein Problem nicht wirklich.
Wenn ich Deinen Code richtig verstehe, wird aus einem VBS heraus CATIA im Batch mit einem Makro gestartet.
Meine Problemstellung ist anders: Ich bin bereits in CATIA und möchte von dort heraus eine CAA-Anwendung starten.
Zum besseren Verständnis mache ich ein Beispiel:
Szenario: CATPart laden - Geometrie modifizieren - Geometrie im VDAFS-Format abspeichern (z.B. mit COM/FOX von T-Systems)
Variante 1 (schlechte Performance): Im Batch CATIA mit dem CATPart starten, über CATScript die Geometrie modifizieren, CATPart abspeichern. Dann im Batch COM/FOX ablaufen lassen (Parameter für COM/FOX werden über Options-Datei geladen). Problem: das startet wieder CATIA und muss erneut das CATPart laden. Für Batch-Bearbeitung vieler CATParts ein Performance-Problem, insbesondere bei großen Files (>50 MB...)
Variante 2 (bessere Performance, aber läuft leider so noch nicht): CATIA starten, über CATScript nacheinander alle CATParts laden, modifizieren und als VDAFS abspeichern. Vorteil: nur einmal CATIA starten und jedes CATPart auch nur einmal laden. Problem ist, dass ich COM/FOX aus CATIA aufrufen muss. Das geht über CATIA.StartCommand, aber da werden die Parameter über ein Menü vom Benutzer erfragt - das ist für einen Batchlauf nicht zielführend.
Deshalb die Frage, wie man die Benutzer-Interaktion an diser Stelle ausblenden kann.
Bin dankbar für alle Tips!
    DiNo_68

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

compimento
Mitglied


Sehen Sie sich das Profil von compimento an!   Senden Sie eine Private Message an compimento  Schreiben Sie einen Gästebucheintrag für compimento

Beiträge: 9
Registriert: 15.03.2007

erstellt am: 14. Dez. 2010 15:23    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für DiNo_68 10 Unities + Antwort hilfreich

hallo,

du musst den befehl mit einer loop realsieren. über die catia status bar wird geprüft wie lange Update All steht. Ist der Befehl zuende läuft dein Code weiter.

Bsp:

CATIA.StartCommand ("Update")
            If Err.Number <> 0 Then
                msgbox = "Update konnte auf dem Datensatz nicht  ausgeführt werden!"
            End If
                Err.Clear
                Do
                CATIA.SystemService.ExecuteProcessus ""
                Loop Until CATIA.StatusBar <> "Update All"
                On Error GoTo 0

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Anzeige.:

Anzeige: (Infos zum Werbeplatz >>)

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen

nächster neuerer Beitrag | nächster älterer Beitrag
Antwort erstellen


Diesen Beitrag mit Lesezeichen versehen ... | Nach anderen Beiträgen suchen | CAD.de-Newsletter

Administrative Optionen: Beitrag schliessen | Archivieren/Bewegen | Beitrag melden!

Fragen und Anregungen: Kritik-Forum | Neues aus der Community: Community-Forum

(c)2023 CAD.de | Impressum | Datenschutz