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

[iSIGHT] 原创:我为iSIGHT做的新监控器图形界面

[复制链接]
发表于 2005-6-27 12:01:37 | 显示全部楼层 |阅读模式 来自 北京海淀
以后大家不用打开iSIGHT Monitor了,你可以直接用我的这个新的监控器界面。

本帖子中包含更多资源

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

×

评分

1

查看全部评分

 楼主| 发表于 2005-6-27 12:04:43 | 显示全部楼层 来自 北京海淀

Re:原创:我为iSIGHT做的新监控器图形界面

Simdroid开发平台
付上源代码文件。你可以打开看看其中的几个关键代码块:Initializaition, Procedure,和Task Process,就可以了解怎么作出这个界面来的了。

本帖子中包含更多资源

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

×
 楼主| 发表于 2005-6-27 12:05:23 | 显示全部楼层 来自 北京海淀

Re:原创:我为iSIGHT做的新监控器图形界面

Initialization Task1
        Tcl
                 package require BLT
            
                 global XVector YVector
                 global XName YName
                 global XNameList YNameList
                 global lineColor
                 global symbol
            
            
                 set XName "RunCounter"
                 set YName "ObjectiveAndPenalty"  
                 set lineColor "blue"
                 set symbol "cross"
                         #diamond
            
                 toplevel .test
                 wm title .test  "Graph --  $XName vs. $YName"
            
                 set XVector  { }
                 set YVector   { }
            
                 graph .test.g  -title "$XName vs. $YName"  -plotbackground white
            
             .test.g xaxis configure  -title $XName
             .test.g yaxis configure  -title $YName
            
             .test.g element create curve    -x $XVector -y $YVector -linewidth 2   -color $lineColor -label "$XName-$YName"
            .test.g element configure curve  -outlinewidth 2 -symbol $symbol
            
                .test.g grid configure   -hide 0 -linewidth 0
                .test.g legend configure  -background ""  -anchor ne -position plotarea  -borderwidth 0 -relief flat
            
            
                 #-----------------------
                  RefreshXYNameList
                 #-----------------------
            
                  combobox .test.comboX -labeltext {X Axis:}  -selectioncommand { InitGraph  }  -editable false -listheight 185 -popupcursor hand1
                  eval .test.comboX insert list 0 $XNameList
            
            
                  combobox .test.comboY -labeltext {Y Axis:}  -selectioncommand {  InitGraph    }  -editable false -listheight 185 -popupcursor hand1
                  eval .test.comboY insert list 0 $YNameList
                # ----------------------            
                  button .test.update -text "Clear " -command { ClearGraph }
            
              #--------------------
            
                 InitGraph
            
            #-----------------------                       
             pack .test.g -expand true -fill both      
                 pack .test.comboX -side left -fill x           
                 pack .test.comboY -side left -fill x
                 pack .test.update -side bottom -fill x
                #--------------     
             SetZoom .test.g
                 SetActiveLegend .test.g
        End Tcl
    End Initialization Task1
 楼主| 发表于 2005-6-27 12:05:43 | 显示全部楼层 来自 北京海淀

Re:原创:我为iSIGHT做的新监控器图形界面

Procedures Task1
        Tcl
                   proc RefreshXYNameList {} {

                   global XNameList YNameList

                           set X1  "RunCounter"
                           set X2 [api_GetTaskInputs [api_GetTaskName]]
                           set X3 [api_GetTaskOutputs [api_GetTaskName]]
                           set XNameList  [ concat $X1 $X2 $X3 ]

                           set Y1  "ObjectiveAndPenalty"
                           set Y2 [api_GetTaskInputs [api_GetTaskName]]
                           set Y3 [api_GetTaskOutputs [api_GetTaskName]]     
                           set YNameList   [ concat $Y1 $Y2 $Y3 ]
                   }
                    proc UpdateGraph {} {

                           global XName YName XVector YVector

                            if { $XName == "RunCounter" } {
                                 lappend XVector [api_GetRunCounter [api_GetTaskName] ]

                            } else {
                               set a [api_GetParameterValue Task1 $XName ]
                               lappend XVector $a
                            }

                            if { $YName == "ObjectiveAndPenalty"} {
                                 lappend YVector [api_GetObjectiveAndPenalty [api_GetTaskName] ]

                            } else {
                               set a [ api_GetParameterValue Task1 $YName]
                               lappend YVector $a
                            }

                            update idletasks                              

                            .test.g element configure  curve  -x $XVector -y $YVector     

                           update idletasks
                    }
                    proc ClearGraph {} {
                           global XName YName XVector YVector
                           set XVector {}
                           set YVector {}
                           update idletasks
                           .test.g element configure  curve  -x $XVector -y $YVector  
                           update idletasks
                    }
            proc InitGraph {} {
                    global XName YName
                 set XName [ .test.comboX get ]
                            set YName [ .test.comboY get ]

                            if {  $XName ==  "" } {                        
                    set XName "RunCounter"   
                 }

                if { $YName == "" } {
                    set YName "ObjectiveAndPenalty"      
                             }

                            .test.g xaxis configure  -title $XName
                .test.g yaxis configure  -title $YName

                .test.g  configure -title "$XName vs. $YName"  -plotbackground white
                            wm title .test   "Graph --  $XName vs. $YName"  
                           .test.g element configure  curve    -label "$XName-$YName"     
            }
        End Tcl
    End Procedures Task1

[ 本帖最后由 FreddyMusic 于 2006-8-28 16:21 编辑 ]
 楼主| 发表于 2005-6-27 12:07:49 | 显示全部楼层 来自 北京海淀

Re:原创:我为iSIGHT做的新监控器图形界面

TaskProcess Task1
        Control: [
            Calculation0
            PostProcess    #注意:它是一个TCL Script, 其中调用了 Procedures中的方法:UpdateGraph,用于在每一次Calculation0仿真完毕之后 更新图形界面。
        ]
    End TaskProcess Task1
头像被屏蔽
发表于 2005-6-27 12:20:04 | 显示全部楼层 来自 北京海淀

Re:原创:我为iSIGHT做的新监控器图形界面

ylai辛苦,严重鼓励!
发表于 2005-6-27 15:51:52 | 显示全部楼层 来自 北京交通大学

Re:原创:我为iSIGHT做的新监控器图形界面

强啊,顶一个!
 楼主| 发表于 2005-6-28 13:49:46 | 显示全部楼层 来自 北京海淀

Re:原创:我为iSIGHT做的新监控器图形界面

下一步,再搞一个三维RSM后处理器出来;
其实,集成界面和后处理图都没有什么难的,一定制就出来了。
所以,漂亮的界面主要是给初学者一个台阶而已,不是iSIHGT和其他同行业产品的最大区别。
发表于 2005-6-28 21:08:44 | 显示全部楼层 来自 浙江杭州

Re:原创:我为iSIGHT做的新监控器图形界面

关注,现在iSIGHT正确个三维的RSM后处理器!!
 楼主| 发表于 2005-6-29 15:34:21 | 显示全部楼层 来自 北京海淀

Re:原创:我为iSIGHT做的新监控器图形界面

1、mashimarol,此话诧矣,3D RSM又有何难?用TCL开发,见附图。hoho
2、更进一步,  iSIGHT独一无二的功能是: 能直接把数据传到Splus专业级统计软件中进行绘图,各种复杂后处理图形清晰呈现。

本帖子中包含更多资源

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

×
发表于 2005-6-29 21:53:20 | 显示全部楼层 来自 浙江杭州

Re:原创:我为iSIGHT做的新监控器图形界面

呵呵,受教了:)
我刚接触iSIGHT,对tcl还不了解;(
发表于 2005-7-1 10:47:57 | 显示全部楼层 来自 广西北海

Re:原创:我为iSIGHT做的新监控器图形界面

qiangding
发表于 2005-7-7 19:55:57 | 显示全部楼层 来自 江苏南京

Re:原创:我为iSIGHT做的新监控器图形界面

狂顶!
发表于 2006-4-6 09:03:55 | 显示全部楼层 来自 武汉大学

Re:原创:我为iSIGHT做的新监控器图形界面

太强了,让新手无所适从。呵呵。向你们学习。
发表于 2006-4-6 22:01:26 | 显示全部楼层 来自 江苏南京

Re:原创:我为iSIGHT做的新监控器图形界面

强!

漂亮的界面确实很好。但有的时候需要直接把数据取出来再用tecplot等软件画图,写论文需要啊,isight Solution Monitor截下来的图不符合期刊要求,Monitor好像没有直接保存图中曲线相关的数据的功能,ylai给想想办法吧。

我现在用的很笨的办法,选中某个图后,将其保存为.cfg文件,然后再用文本工具打开,从中拷贝出相关曲线的数据,比较繁琐啊。
发表于 2006-4-7 16:42:38 | 显示全部楼层 来自 浙江杭州

Re:原创:我为iSIGHT做的新监控器图形界面

代码传上来呀
谢谢了
发表于 2006-12-26 20:28:29 | 显示全部楼层 来自 陕西西安
这才是真正的牛人!谢谢分享!我做流体计算的,楼主有相关东东吗?
zhz19750824 该用户已被删除
发表于 2006-12-29 21:38:45 | 显示全部楼层 来自 湖南湘潭
提示: 作者被禁止或删除 内容自动屏蔽
发表于 2009-4-22 20:34:39 | 显示全部楼层 来自 浙江杭州
仰慕中。。。完全不懂
回复 不支持

使用道具 举报

发表于 2010-9-5 21:23:54 | 显示全部楼层 来自 陕西西安
真的很牛啊
回复 不支持

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-7-7 13:45 , Processed in 0.058359 second(s), 19 queries , Gzip On, MemCache On.

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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