Détection de la lanque dans une Macro VBA
3 participants
Page 1 sur 1
Détection de la lanque dans une Macro VBA
Bonjour,
Je souhaite détecter la langue dans les paramètre utilisateurs.
En effet les calques portent des nom différents sur un drawing crée dans un catia réglé en français (MesCalques.Item("Calque.2 (Détail))
et sur un autre réglé en Anglais (MesCalques.Item("Sheet.2 (Detail).
Une idée ?
Je souhaite détecter la langue dans les paramètre utilisateurs.
En effet les calques portent des nom différents sur un drawing crée dans un catia réglé en français (MesCalques.Item("Calque.2 (Détail))
et sur un autre réglé en Anglais (MesCalques.Item("Sheet.2 (Detail).
Une idée ?
Docserta- actif
- Messages : 47
Date d'inscription : 09/11/2011
Localisation : Rennes
Re: Détection de la lanque dans une Macro VBA
Bon ben voila la réponse de DS
Bonjour,
Il est malheureusement impossible d'accéder aux paramètres de langue en VBScript ou en VBA.
Les paramètres disponibles sont décrits dans les articles "Automation Infrastructure - Setting Controller Reference" et "Automation Infrastructure - Setting Repository Reference".
Veuillez s'il vous plaît vous référer à l'article "Automation Infrastructure - Administrating Settings with Automation" pour obtenir des explications techniques concernant l'administration des paramètres en Automation.
Je vous remercie pour votre compréhension et votre considération.
Cordialement,
Bonjour,
Il est malheureusement impossible d'accéder aux paramètres de langue en VBScript ou en VBA.
Les paramètres disponibles sont décrits dans les articles "Automation Infrastructure - Setting Controller Reference" et "Automation Infrastructure - Setting Repository Reference".
Veuillez s'il vous plaît vous référer à l'article "Automation Infrastructure - Administrating Settings with Automation" pour obtenir des explications techniques concernant l'administration des paramètres en Automation.
Je vous remercie pour votre compréhension et votre considération.
Cordialement,
Docserta- actif
- Messages : 47
Date d'inscription : 09/11/2011
Localisation : Rennes
Détection de la langue utilisateur
Bonjour,
Le sujet date un peu, mais j'ai longtemps galéré sur le sujet et j’ai fini par trouvé sur des forums allemands une bidouille pour récupérer la langue de l’interface utilisateur. L’info se trouve dans le fichier FrameGeneral.Catsetting qu’il d’abord convertir en xml pour pouvoir lire la valeur de la variable UserInterfaceLanguage.
A+
Le sujet date un peu, mais j'ai longtemps galéré sur le sujet et j’ai fini par trouvé sur des forums allemands une bidouille pour récupérer la langue de l’interface utilisateur. L’info se trouve dans le fichier FrameGeneral.Catsetting qu’il d’abord convertir en xml pour pouvoir lire la valeur de la variable UserInterfaceLanguage.
- Code:
Sub CATMain()
'*********************************************************************************************************
'Language CATvba
'Cette macro convertit le fichier FrameGeneral.catsetting en .xml et en extrait la valeur de la langue de l'interface utilisateur
'Source : http://catia2.cad.de/index.php/de/catia-faq/programmierung/319-catia-umgebungssprache-bestimmen
'Source : http://ww3.cad.de/foren/ubb/Forum137/HTML/000742.shtml#000011
'*********************************************************************************************************
shelltext = Chr(34) & CATIA.SystemService.Environ("CATDLLPATH") & _
"\CATBatGenXMLSet.exe" & Chr(34) & " " & Chr(34) & _
CATIA.SystemService.Environ("CATTEMP") & Chr(34) & " FrameGeneral"
Start = Shell(shelltext, vbHide)
FileTxt = txt_ReadAll(CATIA.SystemService.Environ("CATTEMP") & _
"\FrameGeneral.xml")
txt = LTrim2(FileTxt, InStr(FileTxt, "UserInterfaceLanguage"))
txt = Left(txt, InStr(txt, "</Attribute>") - 1)
If InStr(txt, "<Value>") = 0 Then
'ici code si pas de valeur trouvée
Exit Sub
End If
txt = LTrim2(txt, InStr(txt, "<Value>") + 6)
iLangCode = RTrim2(txt, Len(txt) - InStr(txt, "</Value>") + 1)
Select Case iLangCode
Case 0
sLanguage = "System Default"
Case 714
sLanguage = "English"
Case 598
sLanguage = "French"
Case 602
sLanguage = "German"
Case 706
sLanguage = "Italian"
Case 807
sLanguage = "Japanese"
Case 608
sLanguage = "Korean"
Case 1828
sLanguage = "Simplified Chinese"
End Select
MsgBox sLanguage
End Sub
Private Function txt_ReadAll(ByVal sFilename As String) As String
Dim F As Integer
Dim sInhalt As String
' Si le fichier existe
If Dir$(sFilename, vbNormal) <> "" Then
F = FreeFile
Open sFilename For Binary As #F
sInhalt = Space$(LOF(F))
Get #F, , sInhalt
Close #F
End If
txt_ReadAll = sInhalt
End Function
Private Function LTrim2(ByVal str As String, ByVal dig As Integer)
LTrim2 = Right(str, Len(str) - dig)
End Function
Private Function RTrim2(ByVal str As String, ByVal dig As Integer)
RTrim2 = Left(str, Len(str) - dig)
End Function
A+
lumpazepfel- Fédérateur
- Messages : 319
Date d'inscription : 02/11/2015
Localisation : Ensisheim
Re: Détection de la lanque dans une Macro VBA
Oh, mais c'est très intéressant ce script
surtout le CATBatGenXMLSet.exe qui est utilisé
d'après ce que je vois ici http://catiadoc.free.fr/online/basil_C2/basilXMLSettings.htm
il existe CATBatImpXMLSet.exe qui effectue l’opération inverse, cela pourrait ouvrir quelques possibilités de personnalisations qui étaient impossibles via les objets à disposition concernant les paramètres.
surtout le CATBatGenXMLSet.exe qui est utilisé
d'après ce que je vois ici http://catiadoc.free.fr/online/basil_C2/basilXMLSettings.htm
il existe CATBatImpXMLSet.exe qui effectue l’opération inverse, cela pourrait ouvrir quelques possibilités de personnalisations qui étaient impossibles via les objets à disposition concernant les paramètres.
Guss_- Admin
- Messages : 530
Date d'inscription : 08/01/2010
Re: Détection de la lanque dans une Macro VBA
du coup dans l'élant ça pourra en aider certain surement, j'ai créé un petit script Batch (.bat) qui génère les XML des fichier catsettings
il vous faudra juste modifier le chemin d'installation de de catia
pour moi, c'est C:\Dassault Systemes\B23\win_b64\code\bin
(si quelqu'un connait une variable système qui puisse fournir automatiquement ce chemin, ça pourrait être intéressant )
Le principe du script :
ça liste tout les noms des fichiers cattesttings à convertir dans un fichier liste.lst créé dans le repertoire temporaire utilisateur
ça converti chaque fichier en XML dans un répertoire .\convertion se trouvant là où est le fichier batch (.bat)
- Code:
dir /b %APPDATA%\DassaultSystemes\CATSettings\*.catsettings > %TMP%\liste.lst
mkdir convertion
for /f "delims=." %%I in (%TMP%\liste.lst) do "[b]C:\Dassault Systemes\B23\win_b64\code\bin[/b]\CATBatGenXMLSet.exe" .\convertion %%I
del %TMP%\liste.lst
il vous faudra juste modifier le chemin d'installation de de catia
pour moi, c'est C:\Dassault Systemes\B23\win_b64\code\bin
(si quelqu'un connait une variable système qui puisse fournir automatiquement ce chemin, ça pourrait être intéressant )
Le principe du script :
ça liste tout les noms des fichiers cattesttings à convertir dans un fichier liste.lst créé dans le repertoire temporaire utilisateur
ça converti chaque fichier en XML dans un répertoire .\convertion se trouvant là où est le fichier batch (.bat)
Guss_- Admin
- Messages : 530
Date d'inscription : 08/01/2010
Re: Détection de la lanque dans une Macro VBA
Bonjour Guss,
Si besoins ci dessous un petit batch qui converti l'ensemble des CATsettings en XML
Il faut adapter les différents chemins à ton installation:
La fonction inverse (import) est également possible voir lien:
http://catia-wiki.de/index.php?title=CATBatImpXMLSet
Si besoins ci dessous un petit batch qui converti l'ensemble des CATsettings en XML
Il faut adapter les différents chemins à ton installation:
- Code:
@echo off
rem ==== Chemin de l'instal. CATIA:
set CATIA=C:\Program Files\Dassault Systemes\B22\win_b64
rem ==== Chemin du fichier d'environnement sans l'extension .txt (!)
set ENVIRONMENT=\\eh.emea.tkse.group\dfs_l\catia_env\Catenv_R15-6_R2012\Cat_Env\CATIA.V5-6_R2012_X64_SMT_TKSE
rem ==== Chemin des CATSettings à exporter:
set SETTINGNAMES=G:\CATSettings_SMT_R22_X64
rem ==== Définition du mode: set M=-admin / set M=-user (Default)
rem set M=-user
echo.
echo Création des fichiers XML à partir %M% Settings
echo définis par l'environement:
if "%M%"=="-admin" ( find /i "CATReferenceSettingPath" "%ENVIRONMENT%.txt"
) else ( find /i "SettingPath" "%ENVIRONMENT%.txt" )
echo.
echo Tous les fichiers avec extension *.CATSettings
echo du répertoire : %SETTINGNAMES%
echo sont convertis XML sous %SETTINGNAMES%\xml
echo.
pause
set PATH=%CATIA%\code\bin;%PATH%
cd /d "%SETTINGNAMES%"
mkdir .\xml
for %%I in (*.CATSettings) do CATSTART -env "%ENVIRONMENT%" -run "CATBatGenXMLSet .\xml %%~nI %M%"
pause
La fonction inverse (import) est également possible voir lien:
http://catia-wiki.de/index.php?title=CATBatImpXMLSet
lumpazepfel- Fédérateur
- Messages : 319
Date d'inscription : 02/11/2015
Localisation : Ensisheim
Re: Détection de la lanque dans une Macro VBA
C'est à peut de choses près la même chose que mon script, à la différence que dans le mien je suppose que les catsettings sont dans le répertoire par défaut soit dans le répertoire utilisateur "\AppData\Roaming\DassaultSystemes\CATSettings"
Le tien permet de contrôler plus de paramètres
Le tien permet de contrôler plus de paramètres
Guss_- Admin
- Messages : 530
Date d'inscription : 08/01/2010
Sujets similaires
» Dessiner dans un Drawing par macro
» Macro Changement de la couleur d'un Part dans un Product suivant une recherche du nom dans un tableau excel
» pause dans une macro
» recupérer des mesures dans une macro
» Macro dans catia inertie
» Macro Changement de la couleur d'un Part dans un Product suivant une recherche du nom dans un tableau excel
» pause dans une macro
» recupérer des mesures dans une macro
» Macro dans catia inertie
Page 1 sur 1
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum