SimWe仿真论坛---(论坛实行邀请码注册)'s Archiver

ylai 发表于 2005-6-1 13:30

专题:iSIGHT界面和内部流程二次开发

要进行iSIGHT二次开发,我们可用高层的MDOL宏/API, 和底层的TCL/TK通用编程语言。
I{o QsAQ#}8U0M.O
JRt$YD ----------------
oIi3YYq2L j!d iSIGHT是一个混合语言编程的杰作,其架构原理是这样的:6J |O!OmY(m0v
3M dR6Mg,YM,Q
1、iSIGHT 任务管理器界面和流程以TCL/TK为主;不要小看TCL/TK语言,它跨平台、内存占用小、图形界面功能也丝毫不差,象FLUENT, GAMBIT, NUMECA, ANSYS,ICEMCFD,CFX,Icepack等大型软件中全部或部分地使用了这种语言编写。
N zyh'o:bS:}
x-to KD.E 2.iSIGHT 文本解析器以Perl作为语言进行字符匹配和处理,但是你不需要定制这个部分。
p-c7` GES:~_~ .F s*J?WN&{
3. iSIGHT 算法实现为C/FORTRANcDnT'S4D

(\\GY[ 4 iSIGHT.NET分布调用模块以Java作为 语言,RMI作为调用通讯协议,你不需要定制它。
W Q XI.X4H"k7\ t
Ay L`Y c 5. 在顶层,iSIGHT有MDOL宏和API;通常我们使用MDOL、API就可以操作iSIGHT中的对象了;在需要进行更多定制的地方,可在iSIGHT的MDOL脚本的任何地方嵌入TCL/TK语言块,进行更底层的操作。I8L4M!N!S
"sp+P"Ka&Wjs
(现在进行TCL/TK开发可以借助一些图形开发工具,比如用Visual TCL做编程工具,将它的代码稍做改动(主要是global变量申明和顶层图形对象变成isight) 即可嵌入到isight MDOL脚本的 Initialization块中了. 用google搜一下VTCL,Visual TCL,免费下载的)
"RmEXES4Egv qf_#|%nO6O x
----------------;NP)s*lx]4iB4A
下面付上TCL教程(共四个小文件):

ylai 发表于 2005-6-1 13:31

Re:专题:iSIGHT界面和内部流程二次开发

TCL教程

ylai 发表于 2005-6-1 13:33

Re:专题:iSIGHT界面和内部流程二次开发

TCL教程

ylai 发表于 2005-6-1 13:33

Re:专题:iSIGHT界面和内部流程二次开发

TCL教程   .

ylai 发表于 2005-6-1 13:35

Re:专题:iSIGHT界面和内部流程二次开发

下面是API教程

ylai 发表于 2005-6-1 13:42

Re:专题:iSIGHT界面和内部流程二次开发

下面是一个多目标优化的弹簧质量系统 图形界面的例子,你可以学习如何编写自己的动态界面:

ylai 发表于 2005-6-1 13:44

Re:专题:iSIGHT界面和内部流程二次开发

下面是这个多目标优化的弹簧质量系统 图形界面例子的程序代码和ppt说明“:

ylai 发表于 2005-6-1 13:47

Re:专题:iSIGHT界面和内部流程二次开发

下面是我自己编的小程序:时钟(timer)

ylai 发表于 2005-6-1 13:54

Re:专题:iSIGHT界面和内部流程二次开发

这是timer程序的源代码(你可以打开附件的.desc文件查看)
g%C:B%G'],N[9{ n2L
_9['yXVA#j"H pa ---写一个tick()函数计时:----- M"qWa,y%h
Procedures Task1"KX/DOs6@6f
Tcl
-V4\8P7Ta6W   proc tick {} {#s9g2|.Hj2VB?
      global seconds hundredths stopped!Ho7|#UM%H]"I
      if $stopped return
v:Qz R*| S       after 50 tick1D0nT#g"E o:R\
      set hundredths [expr $hundredths+5]
K^If+?"|I!@       if {$hundredths >= 100} {P5RFI1lq
       set hundredths 0
)F ~)a.j$|[Rze        set seconds [expr $seconds+1]r ?g`&v r
      }
'mV2b%lWE%i+mp       .test.counter config -text [format "%d.%02d" $seconds $hundredths]
k-] n;l [uHYE   }
.pB+fRCe#r5]2w End Tcl
rP Lyu;} End Procedures Task1#A+iyo3}\ Je
zzXL{Jc
---再在初始化isight是生成图形界面的按钮和label,并且把按钮动作与tick()函数关联:C6x(g&eE%c,y
kmhmr9U,h Rf
Initialization Task1}(Q] `&S@ K
Tcl4PG;R(Q"[W1o:aL

A2xE2\-mk'}t0k'N # timer --t&iE0qSf
  # This script generates a counter with start and stop buttons.
id.V nJ#A   #
;Md"~F+eq D2wo   # RCS: @(#) $Id: timer,v 1.2 1998/09/14 18:23:30 stanton Exp $
7i9{)sMS;V
H)E(t pd toplevel .testy])y i1HDi
wm title .test "Timer"Y9Y$dl1qi:P f

k9L2b g4V5j/ixR   global seconds b Y%D s1Xv
  global hundredths
W&K,Y+KcP N   global stopped
&Tx j(F)^ c,~.j0N)xj)p r
  set seconds 0b"GE3ft
  set hundredths 0
/m8]y+nF   set stopped 1
@;l;i:g1@{f   
9sy|9C XO   6k a9Pa \J5K]%s
  .p_7G(v i
  label .test.counter -text 0.00 -relief raised -width 10 k'o*H4e s/p%TA2o.u
  button .test.start -text Start -command {
[D+K+UL O V}!Gl"{"V    if $stopped {
mpy!u \.~Kmb     set stopped 0
!I)Kj(Xc3vl,E1DY     tick
3OEc6R$k/e7F    }
o@9Jp9U4H   }
6O.^R(J?   button .test.stop -text Stop -command {set stopped 1}
*X3C1L;~&q1P J!s   pack .test.counter -side bottom -fill bothJ4o6LX n9r _2l5}
  pack .test.start -side left -fill both -expand yes
w/d:WNPa!d   pack .test.stop -side right -fill both -expand yes
W ]MJ/v7r7Gl   bind .test <Control-c> {destroy .test} { \~"W/ymoz
  bind .test <Control-q> {destroy .test} Rx M9JJwRq S.XIH
  focus .test
%gI}8C.e*|(f hA n`M8u?c
End Tcl
Z1@W:M x N1cn y End Initialization Task1

ylai 发表于 2005-6-1 14:03

Re:专题:iSIGHT界面和内部流程二次开发

MDOL教程

ylai 发表于 2005-6-1 14:05

Re:专题:iSIGHT界面和内部流程二次开发

在下面是一个鼠标画图的程序:

ylai 发表于 2005-6-1 14:14

Re:专题:iSIGHT界面和内部流程二次开发

在下面是鼠标画图程序的代码,我推荐用Visual TCL做编程工具,它的代码稍做改动(主要是global变量申明和顶层图形对象变成isight) 即可嵌入到isight MDOL脚本的 Initialization块中了。(复杂界面的编写可以借助可视化IDE开发工具:VTCL: 用google搜一下,免费下载的)

ylai 发表于 2005-6-1 14:21

Re:专题:iSIGHT界面和内部流程二次开发

我下面再奉献一个我的模板,你可以用来把用VTCL做的代码导入到iSIGHT中:
/jkmnx Kh7i in:L$m`-H&{,pt
----函数方法放到iSIGHT的Procedures MDOL块中去申明:
Gwp7^ VAy(]*Eq     Procedures Task1n*`oX X@
        Tcl
&LHb8U*|             proc tick {} {
%y)mBzu b           global temp
9NS!{ H/\          
'b'?8qZ"B;j   }
x:c%l}?-L0^(Iz%T         End Tcl
Sw#F:B;}.?#N\:U"Q     End Procedures Task1 g'S {;dvz:QE

S9ijx`qE ?(s.@ ----图形界面的构造放到Initialization MDOL块中去申明。注意,X |tndPH
iSIGHT的窗口是顶层窗口,对象名称为 .  -A ~C4PWo
而我要建立的新窗口标题为"Template",对象名为.test (必须在iSIGHT的根窗口.下创建),然后用wm (Window Manager)显示。
e;m&O0v|"D{
j U B,ab"Z     Initialization Task1^;biL8ja$mq
        Tcl
5PNV~ Jm6vz-|         X4w {swzy QH-J
            #----You must add this two lines for vTCL and iSIGHT compatibility-----------Y ho"H+a
              set argc 0
l`3x8Q)D2{gUE               set argv 0#U}.[ p,^&M,Jo^,k9[
            #---------------]6h(] A8gQt Obcg
        global temp
9\:L_u:}X\&^         set temp 1wZ G8NH*X!pY%c7P
        
0aS8s/OD|E%g0E[         
k2ZU+L w$U j;t          toplevel .test     
1]8N F8n]7g          wm title .test  "Template"  
I]q8V9lmfz}R G
lt,`u!~m/y8J,| ?         End Tcl`E z9_ed1Y,X
    End Initialization Task1

ylai 发表于 2005-6-1 16:04

Re:专题:iSIGHT界面和内部流程二次开发

TCL主要用作逻辑编程,TK是它的图形工具包之一,教程如下

lxuejin 发表于 2005-6-1 16:48

Re:专题:iSIGHT界面和内部流程二次开发

佩服isight,使用了这么多编程语言;QG(s.z6E9I
,wy@"lQ9Z o#o4D
使用人员即使是简单的了解也头晕了,除了我这种笨蛋
2A$emz"l[&w:Zm%w 5g D%~p |V'R
我现在最欣赏ABAQUS/CAE的处理方法,用python编写宽平台界面,而且具备“宏”功能,核心算发采用c++编写。

CRV2005 发表于 2005-6-2 13:46

Re:专题:iSIGHT界面和内部流程二次开发

TCL、python是不是都是Unix上移植过来的,书店看见过介绍的书。

loverice6 发表于 2005-6-6 10:54

Re:专题:iSIGHT界面和内部流程二次开发

python功能很强大阿
yI,Q E/BA$gM!g TCL感觉速度上不去啊,是不是不适合处理图形界面?3c?.|NE n _%B m B[

@ FP'w)Tsq2} 用什么语言不重要,用户主要拿来用,所以真正的二次开发可能还不多吧,懂算法的人不多,有了好软件用好了,特别懂算法人自己找测试例算,用自己的程序比较方便省事B g&S]7]-JU)K5s8TQ
假如加入自己的程序,需要设置各个参数,比如收敛条件什么的,还要思考类似C++的消息在自己的程序与isight之间传递参数,然后设置接口,好复杂啊,还不如用C++直接编个界面好了

flyknight 发表于 2005-11-15 10:43

Re:专题:iSIGHT界面和内部流程二次开发

强。。。

lja003 发表于 2005-12-13 10:28

Re:专题:iSIGHT界面和内部流程二次开发

好厉害啊4pj4`]cF[q
佩服zR/A}/z*Bc
顶一下

burning 发表于 2006-1-18 10:46

Re:专题:iSIGHT界面和内部流程二次开发

内容好丰富,学习一下

hbxiong7632 发表于 2007-5-16 10:38

好东西啊,做了不少工作

juanhferrero 发表于 2007-5-16 21:57

厉害,谢谢

trueblue 发表于 2007-5-20 15:19

好东西呀,很想再多学学这些东西-F x\%z\s
可惜没什么项目可以做
J E*hK-?]t u 不知道这些对于公司有什么用呢
E [({%|'|[U 使用不太广泛呀,Fj'Dh*O J{mI
可能我寡闻了 :(

li_ang0821 发表于 2007-8-22 21:48

版主我现在也要做界面,需要能在我开发的这个界面里输入优化的内容,选择优化方法等,最后能够执行,不知道能不能给我点这个方面的经验啊

mazhavmars 发表于 2007-8-24 11:32

版主我现在也要做界面,需要能在我开发的这个界面里输入优化的内容,选择优化方法等,最后能够执行,不知道能不能给我点这个方面的经验啊

idisid 发表于 2007-8-26 23:14

好东西,记下了

xyluo 发表于 2007-9-12 11:00

厉害,高手!

lcy989898 发表于 2007-9-15 00:33

谢谢,楼主真好

飞跑的蜗牛 发表于 2007-9-19 10:21

牛人啊!!!

sunco 发表于 2007-10-27 08:54

ding yi xia xian

xyluo135 发表于 2007-11-8 12:31

太强了。我正在学习中,谢谢了!

pharaohking 发表于 2008-5-25 12:55

it is very usefull!! thank you !

lslnuaa 发表于 2008-6-10 15:43

牛啊~~佩服

coieau 发表于 2010-2-12 16:32

3Q`~~~~~~~~~~~~~~~~~~

sun1188 发表于 2010-3-4 23:53

支持下,谢过

realsaya 发表于 2010-3-8 20:56

内容丰富啊,楼主厉害,学习一下

idealfly 发表于 2010-3-13 10:39

好东西,学习一下,感谢楼主。

kxp1314 发表于 2010-4-20 14:17

谢谢 楼主 ~~~

透明的紫 发表于 2010-5-11 12:36

谢谢!!!!!!好东西啊!!!

花打狂风雨不止 发表于 2010-5-11 15:29

很厉害!学习

页: [1] 2

Powered by Discuz! Archiver 7.0.0  © 2001-2009 Comsenz Inc.