作为HyperMesh用户,你是否遇到过这些问题:启动弹出hm_framework错误窗口,软件启动后界面布局乱了、自定义的快捷键失效、甚至毫无征兆地弹出未知错误,重启也解决不了问题?
其实这些问题,大多和HyperMesh的核心配置文件息息相关。今天就带大家吃透command.tcl、hmmenu.set、hmsettings.tcl、hwsettings.tcl这4个关键文件,还会教你用批处理脚本一键修复软件异常!
HyperMesh的个性化配置、操作记录、界面布局等,都分散存储在这4个文件中,理解它们的作用,就能精准定位问题。
command.tcl本质是命令历史文件,只要你在HyperMesh中执行任何操作(比如创建网格、设置参数),对应的TCL命令都会被实时记录到这个文件里。
HM_COMMANFILE_DIR环境变量修改存储路径;这个文件专门存储HyperMesh的各类功能偏好设置,涵盖:
HM_MENUSET_DIR环境变量指定路径;HW_CONFIG_PATH环境变量;专门管理HyperMesh独立版的界面和操作偏好,比如:
~/.altair;HM_SETTINGS_DIR环境变量路径(即使文件不存在也停止搜索),再找默认路径;和hmsettings.tcl功能类似,但针对HyperWorks Desktop套件(包含HyperMesh、HyperView等),存储的内容一致:
hmsettings.tcl(Windows「我的文档」/Linux~/.altair);HW_SETTINGS_DIR环境变量路径,再找默认路径;当HyperMesh出现“界面乱码、操作无响应、未知错误弹窗”等不明确问题时,大概率是配置文件损坏。不用手动一个个删,用下面的批处理脚本(.bat)就能一键清理!
HW_Cleanup.bat) @ECHO off
REM 脚本用途:一键清理HyperWorks/HyperMesh配置文件,解决软件异常
REM 适配系统:Windows XP/2003/Vista/7/10+
REM 注意:执行前请关闭所有HyperWorks相关软件
set /p do_action=该操作将删除所有HyperWorks偏好配置文件,是否继续? [y/n]: || do_action=nothing
IF "%do_action%"=="n" goto:end_2
echo 开始清理 "%USERPROFILE%" 目录下的配置文件
set location="%USERPROFILE%"
call:start_loop
:: 清理HM_COMMANDFILE_DIR指定路径
setHmCmdFileDir=%HM_COMMANDFILE_DIR%
ifnot "%HmCmdFileDir%"=="" (
echo 检测到HM_COMMANDFILE_DIR已设置,清理 "%HM_COMMANDFILE_DIR%"
setlocation="%HM_COMMANDFILE_DIR%"
call:start_loop
)
:: 清理HM_MENUSET_DIR指定路径
setHmMenusetDir=%HM_MENUSET_DIR%
ifnot "%HmMenusetDir%"=="" (
echo 检测到HM_MENUSET_DIR已设置,清理 "%HM_MENUSET_DIR%"
setlocation="%HM_MENUSET_DIR%"
call:start_loop
)
:: 清理HM_SETTINGS_DIR指定路径
setHmSettingsDir=%HM_SETTINGS_DIR%
ifnot "%HmSettingsDir%"=="" (
echo 检测到HM_SETTINGS_DIR已设置,清理 "%HM_SETTINGS_DIR%"
setlocation="%HM_SETTINGS_DIR%"
call:start_loop
)
:: 清理HW_SETTINGS_DIR指定路径
setHwSettingsDir=%HW_SETTINGS_DIR%
ifnot "%HwSettingsDir%"=="" (
echo 检测到HW_SETTINGS_DIR已设置,清理 "%HW_SETTINGS_DIR%"
setlocation="%HW_SETTINGS_DIR%"
call:start_loop
)
:: 清理HW_CONFIG_PATH指定路径
setHwConfigPath=%HW_CONFIG_PATH%
ifnot "%HwConfigPath%"=="" (
echo 检测到HW_CONFIG_PATH已设置,清理 "%HW_CONFIG_PATH%"
setlocation="%HW_CONFIG_PATH%"
call:start_loop
)
goto:eof
:start_loop
IF "%do_action%"=="nothing" gotoend_2
IF "%do_action%"=="y" gotocontinue
IF "%do_action%"=="n" gotoend_2
goto:eof
:continue
:: 检测Windows系统版本
ver | findstr /i "5\.1\." > nul
IF %ERRORLEVEL% EQU 0 gotover_XP
ver | findstr /i "5\.2\." > nul
IF %ERRORLEVEL% EQU 0 gotover_2003
ver | findstr /i "6\.0\." > nul
IF %ERRORLEVEL% EQU 0 gotover_Vista
ver | findstr /i "6\.1\." > nul
IF %ERRORLEVEL% EQU 0 gotover_Win7
ver | findstr /i "6\.3\." > nul
IF %ERRORLEVEL% EQU 0 gotover_Win7
ver | findstr /i "10\.0\." > nul
IF %ERRORLEVEL% EQU 0 gotover_Win7
gotowarn_and_exit
:ver_Win7
:ver_Vista
:ver_2003
:ver_XP
echo 正在清理 %location% 下的配置文件...
:: 删除Acusim相关文件
rmdir /q /s "%location%"\.assitant 2>nul
:: 删除HyperMesh核心配置文件
del /q /f /s "%location%\Documents"\hmmenu.set 2>nul
del /q /f /s "%location%\Documents"\command*.tcl 2>nul
del /q /f /s "%location%\Documents"\command*.cmf 2>nul
del /q /f /s "%location%\Documents"\hmsettings.tcl 2>nul
rmdir /q /s "%location%"\AltairLibraries 2>nul
:: 删除HyperWorksDesktop配置文件
del /q /f /s "%location%\Documents"\hwsettings.xml 2>nul
del /q /f /s "%location%\Documents"\hwsettings.xml.bk 2>nul
:: 删除HyperStudy相关文件
rmdir /q /s "%location%"\hst_dss 2>nul
for /f "delims=" %%ain ('dir %location% /ad /b /s ^| find /i "v11.0"') do (rmdir /q /s "%%a" 2>nul)
for /f "delims=" %%ain ('dir %location% /ad /b /s ^| find /i "v12.0"') do (rmdir /q /s "%%a" 2>nul)
rmdir /q /s "%APPDATA%"\Altair 2>nul
:: 删除Solver配置文件
del /q /f /s "%location%"\.hwsolv_gui.cfg 2>nul
:: 删除HyperXtrude/HyperCrash临时文件
rmdir /q /s "%TMP%"\.altair 2>nul
del /q /f /s "%TMP%"\.hypercrash.pref 2>nul
del /q /f /s "%TMP%"\hypercrash.log 2>nul
:: 删除HyperWorksEnterprise文件
for /f "delims=" %%ain ('dir %location% /ad /b /s ^| find /i "hweDefault"') do (rmdir /q /s "%%a" 2>nul)
:: 通用清理
rmdir /q /s "%location%"\.altair 2>nul
rmdir /q /s "%location%"\.Altair 2>nul
rmdir /q /s "%LOCALAPPDATA%"\Altair 2>nul
rmdir /q /s "%LOCALAPPDATA%"\.Altair 2>nul
rmdir /q /s "%LOCALAPPDATA%"\.altair 2>nul
echo 配置文件清理完成!重启HyperMesh即可恢复默认设置。
echo.
:end_2
goto:end
:warn_and_exit
echo 警告:无法识别当前Windows系统版本,清理操作终止!
:end
pause HW_Cleanup.bat(注意编码为ANSI);y确认清理,等待执行完成即可。command.tcl/hmmenu.set/hmsettings.tcl/hwsettings.tcl);command.tcl记操作、hmmenu.set存校验/面板设置、hmsettings.tcl/hwsettings.tcl管界面布局;下次再遇到HyperMesh“不听话”,不用再重装软件啦,先查配置文件、再跑清理脚本,90%的问题都能解决!