Einen Catia-Befehl absetzen
Alle Befehle die sich über "View/Commands
List..." aufrufen lassen, können mittels StartCommand "XYZ" direkt ausgeführt werden.
Auch wenn hierfür nicht zwangsläufig eine vorangegangene
Selektion erforderlich ist, so können bestimmte
Catia-Befehle so auf eine Selektion losgelassen werden.
Allerdings hat diese recht praktische Geschichte auch
einen Nachteil: Mitunter fährt das Script weiter ohne
auf das Ende des abgesetzten Befehls zu
warten.
|
Sub
CATMain()
CATIA.StartCommand ("isolate")
' hier z.B. alle selektierte Elemente
auf einmal isolieren
End Sub |
Catia Umgebungsvariablen auslesen
Mittels CATIA.SystemService.Environ("xxx")
lassen sich Catia Umgebungsvariablen auslesen.
|
Sub
CATMain()
MsgBox
CATIA.SystemService.Environ("CATInstallPath")
' Catia Installationsverzeichnis
MsgBox
CATIA.SystemService.Environ("CATUserSettingPath")
'
Installationspfad der User Settings
End Sub |
Weitere:
CATCache
CATDLNAMEPATH
CATEnvironment
CATEnvName
CATERRORLOG
CATFeatureCatalogPath
CATFontPath
CATGraphicPath |
CATKnowledgePath
CATReferenceSettingPath
CATReffilesPath
CATReport
CATSETPATH
CATStartupPath
CNEXTOUTPUT
CATTemp |
Catia Version, Release und
ServicePack
ermitteln
|
Sub
CATMain()
MsgBox
CATIA.SystemConfiguration.Version
MsgBox CATIA.SystemConfiguration.Release
MsgBox CATIA.SystemConfiguration.ServicePack
MsgBox CATIA.SystemConfiguration.ProductCount
// Anzahl installierter Produktpakete
End Sub |
Umgebungssprache
ermitteln
Leider gibt es keine
(einfache) Möglichkeit die aktuell eingestellte
Sprache augeben zu lassen. Wenn man jedoch mit "StartCommand"
einen Catia-Befehl absetzen möchte muss man
unbedingt wissen welche Sprache eingestellt ist. Da
es für mich ausreicht zu wissen ob Deutsch oder
Englisch verwendet wird, habe ich mir folgende
kleine Routine aufgesetzt:
|
Sub isEng()
' "call isEng" immer als erste
Anweisung im Script aufrufen !!!
' "Eng"
als public deklarieren und im Script nutzen. Pferdefuss:
' Wenn kein Dokument geöffnet, dann
wird Eng angenommen :-/
Eng = false
if InStr(CATIA.StatusBar,
"elect") >
0 then
Eng = true
elseif CATIA.StatusBar =
"" then
Eng = true
end if
End
Sub |
Alles beruht darauf,
dass im Falle einer Englischen Sprachumgebung in der
Statusbar entweder "Select an object or command"
oder "xyz selected" steht. In einer Deutschen
Sprachumgebung würde man hier "Ein Objekt oder
einen Befehl auswählen" oder "xyz ausgewählt"
finden. Dies funktioniert allerdings nur wenn
bereits ein Dokument geöffnet ist (was in den
allermeisten Fällen zutrifft) und zum Zeitpunkt der
Abfrage kein Anderer Befehl ausgeführt wird. Aus
letzterem Grund muss die Abfrage unbedingt gleich zu
Begin des Scripts ausgeführt werden! Da für mich
eine Deutsche Umgebung die Ausnahme ist nehme ich
Englisch an, wenn die Abfrage scheitert.