背景介绍:部分开发程序案例直接在Ansys原生的 GRN 文件中进行二次开发,该方式对于多个项目的管理具有不便性,因而本文介绍一种更合理的UIDL程序部署,可针对不同项目进行独立部署。
文件结构案例:
# 目录结构Project Files menulist.ans # Ansys菜单栏设置,类似于 Include 头文件的功能 MY_MENU.GRN # 定义用户菜单栏内容 MY_FUNC.GRN # 定义用户菜单中关联的各个命令,类似于 callback MACS # 宏命令文件列表 MY_BLOCK.MAC # 宏命令文件1 TCLTK # TCLTK 命令文件列表 TCL_BLOCK.tcl # TCLTK 命令文件1以上文件的路径规划:
| 文件名 | 位置描述 | 位置举例 |
|---|---|---|
| menulist.ans | Ansys UIDL 目录 | %ANSYS222_DIR%\gui\en-us\UIDL |
| MY_MENU.GRN | Ansys UIDL 目录 | %ANSYS222_DIR%\gui\en-us\UIDL |
| MY_FUNC.GRN | Ansys UIDL 目录 | %ANSYS222_DIR%\gui\en-us\UIDL |
| *.MAC | Ansys 工作目录 | E:\scr\APDL\GUI\test |
| *.tcl | Ansys 工作目录 | E:\scr\APDL\GUI\test |
x:! 来自文件"menulist.ans"%ANSYS222_DIR%\gui\en-us\UIDL\UIMENU.GRN%ANSYS222_DIR%\gui\en-us\UIDL\UIFUNC1.GRN%ANSYS222_DIR%\gui\en-us\UIDL\UIFUNC2.GRN%ANSYS222_DIR%\gui\en-us\UIDL\MECHTOOL.AUI
:! 以下两行为用户自定义菜单栏设置%ANSYS222_DIR%\gui\en-us\UIDL\MY_MENU.GRN%ANSYS222_DIR%\gui\en-us\UIDL\MY_FUNC.GRN
xxxxxxxxxx:! 来自文件"MY_MENU.GRN":! ----------------------------------------:S 0, 0, 0:I 1, 465, 515:F MY_MENU.GRN:D Menu Control File:! ----------------------------------------:! ----------------------------------------:N Men_MyTest:S 193, 98, 87T Menu:T Menu:A MyTestMenu:D This is my test programFnc_SubMenu_VolumeFnc_SubMenu_LineSep_Fnc_SubMenu_MacsSep_Fnc_SubMenu_Tcltk:E END:! ----------------------------------------
xxxxxxxxxx:! 来自文件"MY_FUNC.GRN":! ----------------------------------------:S 0, 0, 0:I 12, 4035, 4360:F MY_FUNC.GRN:D Menu Control File:! ----------------------------------------:! ----------------------------------------:N Fnc_SubMenu_Volume:S 189, 142, 39Cmd:T Menu:C )! Fnc_SubMenu_Volume:A MyTest_Volume:D This is a test sub menu program1.Fnc_MyTest_BlockFnc_MyTest_Cylinder:E END:! ----------------------------------------:! ----------------------------------------:N Fnc_SubMenu_Line:S 177, 136, 33Cmd:T Menu:C )! Fnc_SubMenu_Line:A MyTest_Line:D This is a test sub menu program2.Fnc_MyTest_LineFnc_MyTest_Arc:E END:! ----------------------------------------:! ----------------------------------------:N Fnc_SubMenu_Macs:S 173, 147, 18, 0:T Menu:C )! Fnc_SubMenu_Macs:A My_Macs:D This is a test sub menu include some macs.Fnc_MyMacs_BLOCK:E END:! ----------------------------------------:! ----------------------------------------:N Fnc_SubMenu_Tcltk:S 208, 151, 49, 0:T Menu:C )! Fnc_SubMenu_Tcltk:A My_Tcltk:D This is a test sub menu include some Tcltk.Fnc_MyTk_BLOCKFnc_MyTk_HELIXFnc_MyTcl_BLOCK:E END:! ----------------------------------------:! ----------------------------------------:N Fnc_MyTest_Block:S 319, 304, 7Cmd:T Command:C )! Fnc_MyTest_Block:A MyTest_Block:D This is a test UIDL program1.:C )/PREP7:C )VDELE,ALL:C )ADELE,ALL:C )LDELE,ALL:C )KDELE,ALL:C )BLOCK,0,1,0,5,0,20,:C )VPLOT:C )/VIEW,1,1,1,1:C )/ANG,1:C )/AUTO,1:C )/REP,FAST Inp_P:E END:! ----------------------------------------:! ----------------------------------------:N Fnc_MyTest_Cylinder:S 331, 316, 7Cmd:T Command:C )! Fnc_MyTest_Cylinder:A MyTest_Cylinder:D This is a test UIDL program2.:C )/PREP7:C )VDELE,ALL:C )ADELE,ALL:C )LDELE,ALL:C )KDELE,ALL:C )CYLIND,10,5,0,3,0,180,:C )VPLOT:C )/VIEW,1,1,1,1:C )/ANG,1:C )/AUTO,1:C )/REP,FAST Inp_P:E END:! ----------------------------------------:! ----------------------------------------:N Fnc_MyTest_Line:S 341, 326, 7Cmd:T Command:C )! Fnc_MyTest_Line:A MyTest_Line:D This is a test UIDL program to create a Line.:C )/PREP7 :C )VDELE,ALL:C )ADELE,ALL:C )LDELE,ALL:C )KDELE,ALL:C )K,1001,0,0,0, :C )K,1002,100,0,0, :C )LSTR, 1001, 1002:C )LPLOT:C )/AUTO,1:C )/REP,FAST Inp_P:E END:! ----------------------------------------:! ----------------------------------------:N Fnc_MyTest_Arc:S 381, 366, 7Cmd:T Command:C )! Fnc_MyTest_Arc:A MyTest_Arc:D This is a test UIDL program to create a ArcLine.:C )/PREP7 :C )VDELE,ALL:C )ADELE,ALL:C )LDELE,ALL:C )KDELE,ALL:C )K,1001,0,0,0, :C )K,1002,100,0,0, :C )K,1003,50,20,0, :C )LARC, 1001, 1002, 1003 :C )LPLOT:C )/AUTO,1:C )/REP,FAST Inp_P:E END:! ----------------------------------------:! ----------------------------------------:N Fnc_MyMacs_BLOCK:S 161, 146, 7, 0:T Command:C )! Fnc_MyMacs_BLOCK:A MyMacs_BLOCK:D VLIST.:C )MY_BLOCK,0,1,0,5,0,10Inp_P:E END:! ----------------------------------------:! ----------------------------------------:N Fnc_MyTk_BLOCK:S 0, 0, 0:T Command:C )! Fnc_MyTk_BLOCK:A MyTk_BLOCK:D Test Tk:C ) ~eui,'source TK_BLOCK.tcl'Inp_P:E END:! ----------------------------------------:! ----------------------------------------:N Fnc_MyTk_HELIX:S 162, 147, 7, 0:T Command:C )! Fnc_MyTk_HELIX:A MyTk_HELIX:D Test Tk:C ) ~eui,'source TK_HELIX.tcl'Inp_P:E END:! ----------------------------------------:! ----------------------------------------:N Fnc_MyTcl_BLOCK:S 169, 154, 7, 0:T Command:C )! Fnc_MyTcl_BLOCK:A MyTcl_BLOCK:D Test Tcl:C ) ~eui,'source "TCL_BLOCK.tcl"'Inp_P:E END:! ----------------------------------------