找回密码
 注册
Simdroid-非首页
查看: 720|回复: 9

【转帖】 用“~eui”命令实现在ansys中调用任何程序

[复制链接]
发表于 2003-10-29 09:36:17 | 显示全部楼层 |阅读模式 来自 北京
这个帖子在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?"
ice_river66 该用户已被删除
发表于 2003-10-29 09:57:52 | 显示全部楼层 来自 江苏南京
提示: 作者被禁止或删除 内容自动屏蔽
发表于 2003-10-29 13:23:04 | 显示全部楼层 来自 台湾
嗯....
謝謝edodo的提供哦~~
  
對於“~eui”的指令
在help裡面提供的滿少的~~
但是它的用途到是滿大的哦~~
 楼主| 发表于 2003-10-29 13:45:28 | 显示全部楼层 来自 北京

回复:

嘟嘟 wrote:
嗯....
謝謝edodo的提供哦~~
  
對於“~eui”的指令
在help裡面提供的滿少的~~
但是它的用途到是滿大的哦~~

哈哈哈!
好东西当然好兄弟们一起分享;)
peterzhang 该用户已被删除
发表于 2003-11-17 21:17:30 | 显示全部楼层 来自 上海交通大学
提示: 作者被禁止或删除 内容自动屏蔽
发表于 2004-4-2 01:47:15 | 显示全部楼层 来自 吉林长春

回复: 【转帖】 用“~eui”命令实现在ansys中调用任何程序

谢谢
发表于 2004-4-2 15:14:50 | 显示全部楼层 来自 台湾

回复: 【转帖】 用“~eui”命令实现在ansys中调用任何程序

大力支持啊............
实在是十分实用好文章...............
先收入收藏中了..........
感谢您无私的分享............
huxuejun 该用户已被删除
发表于 2006-6-26 19:55:25 | 显示全部楼层 来自 湖北武汉
提示: 作者被禁止或删除 内容自动屏蔽
发表于 2006-6-27 17:37:47 | 显示全部楼层 来自 四川自贡
不错,谢谢
发表于 2012-7-25 21:15:50 | 显示全部楼层 来自 北京
正好要搞ansys二次开发,学习学习
回复 不支持

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Simapps系列直播

Archiver|小黑屋|联系我们|仿真互动网 ( 京ICP备15048925号-7 )

GMT+8, 2024-9-22 19:34 , Processed in 0.047325 second(s), 14 queries , Gzip On, MemCache On.

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表