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

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

[复制链接]
发表于 2005-6-1 13:30:59 | 显示全部楼层 |阅读模式 来自 北京海淀
要进行iSIGHT二次开发,我们可用高层的MDOL宏/API, 和底层的TCL/TK通用编程语言。

----------------
iSIGHT是一个混合语言编程的杰作,其架构原理是这样的:

1、iSIGHT 任务管理器界面和流程以TCL/TK为主;不要小看TCL/TK语言,它跨平台、内存占用小、图形界面功能也丝毫不差,象FLUENT, GAMBIT, NUMECA, ANSYS,ICEMCFD,CFX,Icepack等大型软件中全部或部分地使用了这种语言编写。

2.iSIGHT 文本解析器以Perl作为语言进行字符匹配和处理,但是你不需要定制这个部分。

3. iSIGHT 算法实现为C/FORTRAN

4 iSIGHT.NET分布调用模块以Java作为 语言,RMI作为调用通讯协议,你不需要定制它。

5. 在顶层,iSIGHT有MDOL宏和API;通常我们使用MDOL、API就可以操作iSIGHT中的对象了;在需要进行更多定制的地方,可在iSIGHT的MDOL脚本的任何地方嵌入TCL/TK语言块,进行更底层的操作。

(现在进行TCL/TK开发可以借助一些图形开发工具,比如用Visual TCL做编程工具,将它的代码稍做改动(主要是global变量申明和顶层图形对象变成isight) 即可嵌入到isight MDOL脚本的 Initialization块中了. 用google搜一下VTCL,Visual TCL,免费下载的)

----------------
下面付上TCL教程(共四个小文件):

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×

评分

2

查看全部评分

 楼主| 发表于 2005-6-1 13:31:55 | 显示全部楼层 来自 北京海淀

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

Simdroid开发平台
TCL教程

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
 楼主| 发表于 2005-6-1 13:33:04 | 显示全部楼层 来自 北京海淀

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

TCL教程

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
 楼主| 发表于 2005-6-1 13:33:39 | 显示全部楼层 来自 北京海淀

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

TCL教程   .

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
 楼主| 发表于 2005-6-1 13:35:17 | 显示全部楼层 来自 北京海淀

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

下面是API教程

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
 楼主| 发表于 2005-6-1 13:42:19 | 显示全部楼层 来自 北京海淀

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

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

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
 楼主| 发表于 2005-6-1 13:44:31 | 显示全部楼层 来自 北京海淀

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

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

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
 楼主| 发表于 2005-6-1 13:47:58 | 显示全部楼层 来自 北京海淀

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

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

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
 楼主| 发表于 2005-6-1 13:54:33 | 显示全部楼层 来自 北京海淀

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

这是timer程序的源代码(你可以打开附件的.desc文件查看)

---写一个tick()函数计时:-----
Procedures Task1
Tcl
  proc tick {} {
      global seconds hundredths stopped
      if $stopped return
      after 50 tick
      set hundredths [expr $hundredths+5]
      if {$hundredths >= 100} {
       set hundredths 0
       set seconds [expr $seconds+1]
      }
      .test.counter config -text [format "%d.%02d" $seconds $hundredths]
  }
End Tcl
End Procedures Task1

---再在初始化isight是生成图形界面的按钮和label,并且把按钮动作与tick()函数关联:

Initialization Task1
Tcl

# timer --
  # This script generates a counter with start and stop buttons.
  #
  # RCS: @(#) $Id: timer,v 1.2 1998/09/14 18:23:30 stanton Exp $

toplevel .test
wm title .test "Timer"

  global seconds
  global hundredths
  global stopped

  set seconds 0
  set hundredths 0
  set stopped 1
  
  
  
  label .test.counter -text 0.00 -relief raised -width 10
  button .test.start -text Start -command {
   if $stopped {
    set stopped 0
    tick
   }
  }
  button .test.stop -text Stop -command {set stopped 1}
  pack .test.counter -side bottom -fill both
  pack .test.start -side left -fill both -expand yes
  pack .test.stop -side right -fill both -expand yes
  bind .test <Control-c> {destroy .test}
  bind .test <Control-q> {destroy .test}
  focus .test

End Tcl
End Initialization Task1

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
 楼主| 发表于 2005-6-1 14:03:01 | 显示全部楼层 来自 北京海淀

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

MDOL教程

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
 楼主| 发表于 2005-6-1 14:05:52 | 显示全部楼层 来自 北京海淀

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

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

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
 楼主| 发表于 2005-6-1 14:14:54 | 显示全部楼层 来自 北京海淀

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

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

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
 楼主| 发表于 2005-6-1 14:21:51 | 显示全部楼层 来自 北京海淀

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

我下面再奉献一个我的模板,你可以用来把用VTCL做的代码导入到iSIGHT中:

----函数方法放到iSIGHT的Procedures MDOL块中去申明:
    Procedures Task1
        Tcl
            proc tick {} {
          global temp
         
  }
        End Tcl
    End Procedures Task1

----图形界面的构造放到Initialization MDOL块中去申明。注意,
iSIGHT的窗口是顶层窗口,对象名称为 .  
而我要建立的新窗口标题为"Template",对象名为.test (必须在iSIGHT的根窗口.下创建),然后用wm (Window Manager)显示。

    Initialization Task1
        Tcl
        
            #----You must add this two lines for vTCL and iSIGHT compatibility-----------
              set argc 0
              set argv 0
            #---------------
        global temp
        set temp 1
        
        
         toplevel .test     
         wm title .test  "Template"  

        End Tcl
    End Initialization Task1

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
 楼主| 发表于 2005-6-1 16:04:11 | 显示全部楼层 来自 北京海淀

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

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

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
发表于 2005-6-1 16:48:05 | 显示全部楼层 来自 陕西西安

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

佩服isight,使用了这么多编程语言

使用人员即使是简单的了解也头晕了,除了我这种笨蛋

我现在最欣赏ABAQUS/CAE的处理方法,用python编写宽平台界面,而且具备“宏”功能,核心算发采用c++编写。
CRV2005 该用户已被删除
发表于 2005-6-2 13:46:37 | 显示全部楼层 来自 北京丰台
提示: 作者被禁止或删除 内容自动屏蔽
loverice6 该用户已被删除
发表于 2005-6-6 10:54:46 | 显示全部楼层 来自 北京朝阳
提示: 作者被禁止或删除 内容自动屏蔽
发表于 2005-11-15 10:43:25 | 显示全部楼层 来自 江苏南京

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

强。。。
发表于 2005-12-13 10:28:32 | 显示全部楼层 来自 辽宁大连

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

好厉害啊
佩服
顶一下
发表于 2006-1-18 10:46:29 | 显示全部楼层 来自 大连理工大学

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

内容好丰富,学习一下
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-4-27 15:24 , Processed in 0.056046 second(s), 14 queries , Gzip On, MemCache On.

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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