C#ATIA

↑タイトル詐欺 主にFusion360API 偶にCATIA V5 VBA(絶賛ネタ切れ中)※記載されている内容は個人の意見であり、所属する団体等を代表する意見では御座いません・・・・よ!

CATSettingsファイルをXMLファイルに変換する

忘れちゃうし毎回作っているような気がするので、書き残します。
CATSettingsファイルはバイナリファイルなので直接内容を読むことが出来ないのですが、
XMLファイルに変換する方法がHelpに記載されています。(逆もね)

面倒なのでバッチファイルを作っていたのですが、生憎紛失。
折角なのでD&Dで変換する.cmdを作りました.
(CATSettings_to_XML.cmd)

@echo off
setlocal enabledelayedexpansion

set "CATIA_BIN=C:\Program Files\Dassault Systemes\B31\win_b64\code\bin"
set "CATIA_CMD=%CATIA_BIN%\CATBatGenXMLSet.exe"
set "UNSUPPORTED=FrameConfig FrameGeneral DLNames CDMA_PSMapping"

echo.
echo ====================================================
echo   CATSettings to XML Converter
echo ====================================================
echo CATIA: %CATIA_CMD%
echo.

if not exist "%CATIA_CMD%" (
    echo [ERROR] CATBatGenXMLSet.exe not found.
    echo         %CATIA_CMD%
    pause
    exit /b 1
)

if "%~1"=="" (
    echo Usage: Drop .CATSettings files onto this script.
    pause
    exit /b 0
)

set COUNT=0
set SUCCESS=0
set SKIPPED=0
set FAILED=0

:loop
if "%~1"=="" goto done

set "F=%~1"
set "NAME=%~n1"
set "EXT=%~x1"
set "DIR=%~dp1"
if "!DIR:~-1!"=="\" set "DIR=!DIR:~0,-1!"

echo ---- !NAME!!EXT! ----

if /i not "!EXT!"==".CATSettings" (
    echo [SKIP] Not a target extension.
    set /a SKIPPED+=1
    set /a COUNT+=1
    shift & goto loop
)

set SKIP=0
for %%U in (%UNSUPPORTED%) do (
    if /i "!NAME!"=="%%U" (
        echo [SKIP] %%U is not supported for XML export.
        set SKIP=1
        set /a SKIPPED+=1
        set /a COUNT+=1
    )
)
if !SKIP!==1 ( shift & goto loop )

cd /d "%CATIA_BIN%"
"%CATIA_CMD%" "!DIR!" "!NAME!"

if exist "!DIR!\!NAME!.xml" (
    echo [OK] !NAME!.xml created.
    set /a SUCCESS+=1
) else (
    echo [FAILED] !NAME!.xml was not created.
    set /a FAILED+=1
)

set /a COUNT+=1
shift
goto loop

:done
echo.
echo ====================================================
echo  Total:!COUNT!  OK:!SUCCESS!  Skip:!SKIPPED!  Fail:!FAILED!
echo ====================================================
echo.
pause

CATIA_BINの所はインストール環境に合わせて書き換えて!