栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > .Net

Hypermesh二次开发的学习----创建简单的GUI

.Net 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Hypermesh二次开发的学习----创建简单的GUI

文章目录
  • HyperWorks GUI Toolkit
  • 几个控件函数
  • 一个简单的例子

HyperWorks GUI Toolkit

HyperWorks的二次开发是基于tcltk语言,其中tk语言主要是进行GUI的开发。除了tk语言,HyperWorks也提供了HWTK GUI Toolkit控件包用于GUI的开发,下面简单介绍几个HWTK GUI Toolkit控件包中较为常用的控件函数,并编写一个简单的脚本实例。

几个控件函数

hwtk::button 创建一个按钮,按下时执行命令

hwtk::entry 创建一个可编辑的文本

hwtk::combobox 创建一个下拉选择列表

hwtk::label 显示文本字符串或者图像

一个简单的例子

利用上面几个控件函数编写了一个简单GUI,如下图,主要是实现Hypermesh前处理批量创建材料、属性和属性的赋予。选择要操作的部件,通过下拉菜单选择单元属性,输入材料,如果是壳单元则输入厚度,螺栓单元则输入半径。这样便提高了在属性方面的操作效率。

#创建窗口,定义尺寸
destroy .createprop
set win .createprop
toplevel $win -width 120m -height 60m
#置顶窗口
wm attribute $win -topmost 1

#创建“Select comps”按钮
set Select_Comp [hwtk::button $win.scb -text "Select comps" -command {set compname [SelectProp]}]
#创建显示部件名字的文本框
set Display_Name [hwtk::entry $win.dne -state [string tolower onlyread] -textvariable compname -width 20]

#创建“Select prop”文本框
set Prop_Name [label $win.pnl -text "Select prop"]
#创建单元属性的下拉菜单,选择不同的选项会显示不同的InputData文本框,在Inputpropdata函数中实现
set Proplist [list PSHELL PSOLID PBARL]
set Select_Prop [hwtk::combobox $win.spc -values $Proplist -textvariable proptype -selcommand   {Inputpropdata $proptype $win}]

#创建“Input Mat”文本框
set Input_Mat [label $win.iml -text "Input Mat"]
set Mat_Name [hwtk::entry $win.mne -textvariable matname]

#初始化输入数据
set inputdata 0
#创建 “Create”按钮
set Create_Button [hwtk::button $win.cbb -text "Create" -command {Create_Prop $matname $proptype $compname $matname $inputdata}]

#栅格摆放布局
grid $Select_Comp -row 0 -column 1 -padx 2m -pady 1m
grid $Display_Name -row 1 -column 1 -padx 2m -pady 1m

grid $Prop_Name -row 0 -column 3 -padx 2m -pady 1m
grid $Select_Prop -row 1 -column 3 -padx 2m -pady 1m

grid $Input_Mat -row 0 -column 5 -padx 2m -pady 1m
grid $Mat_Name -row 1 -column 5 -padx 2m -pady 1m

grid $Create_Button -row 5 -column 3 -padx 2m -pady 1m

Inputpropdata函数

proc Inputpropdata {propname window} {
#判断下拉菜单选中的是否为PSHELL
 if {[string equal $propname "PSHELL"]} {
  #删除PSOLID和PBARL的输入数据文本框
  destroy $window.dnl
  destroy $window.ide
  set inputdata "0.00"
  #PSHELL属性显示的是“Thickness”
  set Data_Name [label $window.dnl -text "Thickness"]
  set Input_Data [hwtk::entry $window.ide -textvariable inputdata]
  grid $Data_Name -row 0 -column 7 -padx 2m -pady 1m
  grid $Input_Data -row 1 -column 7 -padx 2m -pady 1m
  return $inputdata
} 
#判断下拉菜单选中的是否为PBARL
elseif {[string equal $propname "PBARL"]} {
  destroy $window.dnl
  destroy $window.ide
  set inputdata "0.00"
  #PBARL属性显示的是“Raduis”
  set Data_Name [label $window.dnl -text "Raduis"]
  set Input_Data [hwtk::entry $window.ide -textvariable inputdata]
  grid $Data_Name -row 0 -column 7 -padx 2m -pady 1m
  grid $Input_Data -row 1 -column 7 -padx 2m -pady 1m
  return $inputdata
} else {
  destroy $window.dnl
  destroy $window.ide
  #PSOLID属性显示的是“NO DATA”
  set Data_Name [label $window.dnl -text "NO DATA"]
  set Input_Data [hwtk::entry $window.ide -state [string tolower disabled]]
  grid $Data_Name -row 0 -column 7 -padx 2m -pady 1m
  grid $Input_Data -row 1 -column 7 -padx 2m -pady 1m
  set inputdata 0
  return $inputdata
} 
}
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/906434.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号