- 积分
- 75
- 注册时间
- 2002-10-7
- 仿真币
-
- 最后登录
- 1970-1-1
|
这个帖子在http://gc.jngp.com/bbs/ 我以kenwo的id发过,在这儿贴应该不算转载。刚才因为帖子中含有“dogsh*t”等言辞被打到回收站两次,只好重发。
在ansys命令框输入如下命令
~eui,'exec {C:/Program Files/Microsoft Office/Office10/winword}'
则打开word,输入
~eui,'exec {C:/Program Files/Windows Media Player/mplayer2.exe}'
则打开媒体播放器,输入
~eui,'exec {C:/******.exe}'
则打开你自编的程序,输入
~eui,'exec {C:/cs/cs.exe}'
则打开cs呵呵
~eui是ansys与tcl/tk的接口
exec是一个tcl/tk命令
tcl/tk本身的功能不强,但是可以用c很容易地编写tcltk extension
即c——>tcl/tk——>ansys
“理论上”可以实现任何功能
至于有人说用upf,那是真正的**
据用过upf加入自定义非线性单元的老师讲
连正版用户都没有这方面的资料,很多东西都要自己猜
可能an***公司不鼓励二次开发吧
要是大家都diy了
怎么还会翘首盼望它的新版本添加了自己需要的新功能呢
要做有限元软件的二次开发最好用m***...
本人正在研究tcl/tk,望同好们多多交流
hhux 编辑于 2003-10-29 03:11
终于找到也用tcltk的朋友了,握个手先。:)
这是因为ansys默认的tcltk编译(确切地说是“解释”)环境和你自己装的tcltk环境略有不同所致,不信你把.tcl(.tk)的打开方式都使用ansys自带的wish试试。
1。tcltk在新版本介绍中推荐使用convertfrom:
如:
set a [encoding convertfrom euc-cn "我爱中国"]
puts $a
但这样有个别汉字无法正确显示,除非两个汉字之间都空一格。
2。不作处理。选择“UTF-8”保存(默认为ANSI)。效果同1。
3。网上有人指出用unicode,如:
button .b -text "\u592a\u9177"
pack .b
但这是一个理论上可行实际不可行的方法。谁会一个汉字一个汉字地去查unicode呢?
4。完美解决办法:
encoding system euc-cn
呵呵,简单吧?这可是我刚学tcltk时花了数天时间坚持不懈才尝试出来的哦。
pjwseu 编辑于 2003-10-07 16:26
1.其实我刚刚接触tcl/tk,尚需大侠指点。ansys6.1自带的tcltk是v83,使用wish83运行没有问题,与安装的wish82效果相同,但就是通过~eui运行才出问题的。而7.0下似乎不能使用~eui命令,不知7.1或8.0如何?
2.感谢你提供的几种策略!似乎也有点问题:
用button .b -text "\u592a\u9177" 在ansys下可以直接显示中文的,当然有其不切实际的地方;
而用encoding system euc-cn倒很简单,但在ansys下运行时,第一次调入不行(连对话框标题都不行),而第二次调入才行,这是什么原因?
3.提供tcl/tk代码如下:
encoding system euc-cn
destroy .tplvl
set pdhk [toplevel .tplvl]
wm title $pdhk "ANSYS中文对话框应用示例"
set Lab1 [label $pdhk.lab1 -text "想说爱你太麻烦"]
grid $Lab1 -row 0 -column 0
4.另:对话框的尺寸、字体大小如何调正啊?无论在ansys或是wish83都没有搞定!
(初学,问题幼稚,见谅!无非想通过例子学得快点)
三月雨 编辑于 2003-10-08 13:10
pjwseu
编辑
积分: 660
发帖: 309
于 2003-10-08 13:46
--------------------------------------------------------------------------------
1.ansys6.1底下是有wish的,路径是x:\ANSYS61\bin\intel\wish83.exe。正好我机子里同时装了6.0、6.1、7.0、7.1,试了一下,各个版本运行~eui都没问题。
2.很显然先要运行一次才行。正确的用法是把它放入一个单独的文件,在其他.tcl(.tk)文件之前运行。
3.你说的对话框指的是entry吧?举个例子:
label .label -text "参数1:"
entry .entry -width 20 -relief sunken -bd 2 -textvariable name
~~~~~~
pack .label .entry -side left
字体大小的例子:
button .a -text 是不是啊 -font {SIMHEI 30 italic}
~~~~~~~~~~
pack .a
pjwseu
编辑
积分: 660
发帖: 309
于 2003-10-09 14:09
--------------------------------------------------------------------------------
为什么用tcl/tk的人这么少?
这是ansys中可以很轻松地作出自定义界面的唯一工具,而且写起来很简单,号称linux下的VB(当然win下也可以用)。
忘掉UIDL吧。
希望多多探讨。
pjwseu
编辑
积分: 660
发帖: 309
于 2003-10-10 20:35
--------------------------------------------------------------------------------
6.0及其之前版本的界面都是用uidl,其...\uidl\目录下只有几个.grn文件。
6.1之后用tcl/tk完全重做,但...\uidl\目录下仍保留了.grn文件,多出几个对应的.eui文件。似乎是启动时把uidl菜单翻译成tcltk菜单。若想在菜单上添加中文项,修改.grn文件即可。仍需要少许UIDL知识。
用:C或者Cmd_命令与.tcl(.tk)文件关联。
修改完之后要存成utf-8格式,汉字才能正常显示。
我写的一个tcltk例子。
因为汉字较少,用的是unicode。
用的是ansys7.1。
把以下代码存为a.tcl拷到ansys的工作目录下,
在ansys的命令输入框内输入~eui,'source a.tcl'即可,
效果如图所示。
BTW,这个例子只是简单的界面,无实质内容。
destroy .aaa
set t [toplevel .aaa]
wm title $t "正版用户哦"
iwidgets::labeledframe $t.lw -labeltext "\u8bf7\u8f93\u5165" \
-labelpos n
set cs &t.lw childsite;
iwidgets::Entryfield $cs.a1 -labeltext "\u59d3\u540d:"
iwidgets::Spinint $cs.a2 -labeltext "\u5e74\u9f84:"
iwidgets::combobox $cs.a3 -labeltext "\u804c\u4e1a:" \
-editable false \
-listheight 25 \
-popupcursor hand2
$cs.a3 insert list end \u5de5\u4eba \u519c\u6c11
iwidgets::pushbutton $cs.a4 -text "\u786e\u8ba4\u540e\u70b9\u51fb\u53d1\u9001" \
-command "destroy $t"
pack $t.lw $cs.a1 $cs.a2 $cs.a3 $cs.a4 \
-padx 10 -pady 10 \
-side top -fill x
pjwseu 编辑于 2003-10-12 20:45
三月雨
编辑
积分: 949
发帖: 409
于 2003-10-12 23:05
--------------------------------------------------------------------------------
经过我无穷尽的搜索和查找,终于得到unicode码的简单转换方法,这可是我很辛苦得到啊!
1.在系统的输入法中安装有“全拼”和“区位”两种输入法;
2.打开一空白文本文件,将输入法设置成“区位”;
3.连续点击区位码的控制栏,使其变为“unicode”;
4.在输入法中设置成“全拼”,右击“全拼”二字,点击“设置”,将编码属性查询选择为“unicode”;
5.在文本中输入单个汉字即可看到unicode码。
当你的汉字不多时,确实是一种较好的方法!可以避免其它问题。
一、汉化Mainmenu
1、把x:\ANSYS80\v80\ANSYS\gui\en-us\以下的内容备份。
2、用文本编辑器(如Textpad、Ultraedit等)打开UIMENU.GRN,查找“Preprocessor”,在第5020行找到“:A Preprocessor”,改成“:A 前处理”。
3、“另存为”,在“编码”处取“UTF-8”,覆盖原文件。退出。
4、启动Ansys,即可看到MainMenu处“Preprocessor”已汉化成“前处理”字样。
二、在MainMenu上加中文项
1、看UIMENU.GRN的第16行到第32行,便知每个Menu块之间是用“!”来分隔,以“:E END”作为结束标记。在第16行插入这样几行:
:N Men_Myprogram
:S 0, 0, 0
:T Menu
:A 我的菜单
: D Nothing,just an example
Fnc_CMDOMEGA_DNPik
:E END
:!
就完成了菜单块“Men_Myprogram”的定义。
2、查找“finish”,在第6889行处发现“Fnc_FINISH”。在后面插入一行“Men_Myprogram”。存盘退出。重启ansys即可发现新增的中文菜单。
3、这里套用了原来就有的一个Fnc块“Fnc_CMDOMEGA_DNPik”,也可自己修改UIFUNC1.GRN或者UIFUNC2.GRN,定义自己的Fnc块。方法与Men块的修改类似。
三、其他
UIDL的资料在Ansys5.5的online help中就有,其实不用看help,仔细琢磨一下几个GRN的内容就知道了。不过UIDL已从6.1开始被逐步抛弃,代之以Tcl/Tk。据说Workbench可用Java进行二次开发,Hypermesh也可用Tcl/tk,Abaqus可用Python,看来Script语言是一种潮流。当然在计算方面,Fortran的地位是不可动摇的。
--------------------------------------------------------------------------------
"It's the year 2000. But where are the flying cars? I was promised flying cars! I don't see any flying cars! Why? Why? Why?" |
|