首页/文章/ 详情

Workbench平台GUI二次开发入门系列——入门1

3天前浏览11

简介

GUI(Graphical User Interface)‌是一种通过图形化方式显示用户界面的技术,允许用户通过窗口、按钮、菜单等图形元素与计算机或其他电子设备进行交互。

本系列针对的是Ansys_Workbench平台的Mechanical的GUI二次开发入门,通过学习本教程,可以获得GUI开发中得大部分控件的使用方法。作为入门教程,共提供了45个案例,超过1900行代码。每个案例既相对独立,又彼此联系。案例的难度梯度逐步增加,学习起来非常平滑。但是,本案例中不涉及任何Mechanical的交互功能开发,仅是GUI界面开发,同时也无法保证学完本教程就可以进行GUI二次开发。

作为一份学习资料,它既新又老,新的是目前市面上鲜有这方面内容,老的是这项技术已经是多年前的技术。但是如果能熟练掌握,确实能实实在在的提高生产力。作为入门教程,干货满满,直接以案例为入手点。非常适合没有基础,但又想自己折腾的小伙伴。

案例使用方法

本入门教程中的所有案例均已测试通过,具体使用方式和实现效果可以参考之前的文章。

也可参考如下:

  1. 打开脚本窗口;
  2. 将案例中的代码复 制粘贴至对应位置;
  3. 运行脚本。



目录

01 入门1 

02 入门2 

03 布局管理1 

04 布局管理2 

05 菜单栏1 

06 菜单栏2 

07 工具栏 

08 基本控件1 

09 基本控件2 

10 基本控件3 

11 基本控件4 

12 高级控件1 

13 高级控件2 

14 对话框1 

15 对话框2 

16 拖拽功能 

17 绘图1 

18 绘图2 

19 绘图3 

20 绘图4 

21 进度条 

22 游戏——贪吃蛇

入门1

case01 简单demo

目标:创建一个简单窗体设置了窗体的名称,长,宽以及出现方式(从屏幕中间出现)。

# encoding: utf-8
import clr
clr.AddReference('System.Windows.Forms')

from System.Windows.Forms import Form,Application

class IForm(Form):
    def __init__(self):
        self.Text = 'Simple'
        self.Width = 250
        self.Height = 200
        self.CenterToScreen()

# 两种运行类的方法,实际应用中均可。
# 方式1
Application.Run(IForm())
# 方式2
IForm().ShowDialog()

效果展示:

补充:最简单的窗体脚本中只需要定义一个类,其余系统会给出默认值。

# encoding: utf-8
import clr
clr.AddReference('System.Windows.Forms')

from System.Windows.Forms import Form,Application

class IForm(Form):
    def __init__(self):
        pass

Application.Run(IForm())

效果展示:

case02 窗体图标

目标:变更窗体的图标图标的引用地址采用的绝对地址,且图片需要真实存在,否则自动退出程序。ico格式图片采用的是IcoFX软件制作。

# encoding: utf-8
import clr
import sys
clr.AddReference("System.Windows.Forms")
clr.AddReference("System.Drawing")

from System.Windows.Forms import Application, Form
# Drawing模块中需要什么导入什么,不宜全部导入导致将原有的模块覆盖
from System.Drawing import Icon, Bitmap
# import System.Drawing as sysdraw

# 修改为图片的真实地址
path = r"D:\01-图片\icon-png\123.ico"
class IForm(Form):
    def __init__(self):
        self.Text = 'Icon'
        self.Width = 250
        self.Height = 200
        try:
            self.Icon = Icon(path)
        except Exception, e:
            print e.message
            sys.exit(1)
        self.CenterToScreen()

IForm().ShowDialog()

效果展示:

其他

本教程完全免费,后续会持续更新完结。如果你不想等待,获取完整的本地电子版本(包括完整的PDF文档,脚本文件,和配套的图片),不妨请我喝杯奶茶,非常感谢!


来源:CAE中学生
MechanicalWorkbenchSystem二次开发电子游戏SCLANSYS
著作权归作者所有,欢迎分享,未经许可,不得转载
首次发布时间:2024-12-18
最近编辑:3天前
CAE无剑
硕士 | 仿真工程师 CAE中学生
获赞 699粉丝 1533文章 252课程 0
点赞
收藏
作者推荐

如果给你的代码加上许可证?

声明:这篇看个乐子就行了代码可以通过多种方式进行使用方面的限制,本篇文章就大概演示一下:通过与Mac地址和时间进行限制逻辑就是代码跟Mac地址绑定,如果Mac地址正确,代码启动,否则报错提示,在Mac地址正确的前提下又进行终止时间的判断,到了终止时间,代码运行失败,提示许可证过期,如下图可以和你代码绑定的内容很多,不止Mac地址,甚至可以是你的声卡设备如果遇到某些判断复杂的场景,那就可以列一下思维导图,帮你理下逻辑在演示代码前,给大家先来个操作就是打开Hypermesh时,运行相关tcl代码,有两种方法方法一:通过bat文件进行hm界面的启动,顺便在启动时直接运行tcl文件,工作目录会自动设置为你放bat文件的路径下,不建议放在桌面,因为启动时候会产生一系列的文件,比较乱setdir="G:\ProgramFiles\Altair\2022.3\hwdesktop\hw\bin\win64\hw.exe"setfile="C:\Users\Administrator\Desktop\encrypted.tcl"%dir%-clientconfighwfepre.dat-tcl%file%pause方法二:右击Hypermesh图标,点击属性,如下图设置在目标那边加上-tcl"代码路径",默认是有写/clientconfighwfepre.dat,这段话的意思就是加载hypermesh的启动配置,不写的话,打开hw.exe直接就是hyperview的界面,起始位置的话你就直接可以理解为工作目录,也就是Hypermesh下面输入pwd得到的那个路径如果不想启动hm的GUI,也就是说在不打开hm界面的情况下运行tcl程序,那就在bat中写上如下内容,毕竟这两种方式会使运行效率差了十万八千里setdir="G:\ProgramFiles\Altair\2022.3\hwdesktop\hm\bin\win64\hmbatch.exe"setfile="C:\Users\Administrator\Desktop\encrypted.tcl"%dir%-b-tcl%file%pause相关代码呈上,请各位老爷品鉴#获取当前电脑时间settime[clockformat[clockseconds]-format"%Y%m%d%H%M%S"]#设置到期时间setbigTime[lindex$time0]setsmallTime[lindex$time1]setexpireBigTime20241030setexpireSmallTime235959#获取当前电脑Mac地址setmac[lindex[execwmicnicgetMacAddress]1]#程序,在工作目录下创建一个log.txt文件,里面写上相关内容proctest{typetxt}{setfilenamelog.txtif{[fileexists$filename]}{setfd[open$filenamea]close$fd}setfd[open$filenamew]puts$fd"$type$txt"close$fd}#判断Mac地址是否正确,正确的话再判断是否在终止时间内,再运行test的程序,否则直接报错#代码运行成功后,会在工作目录下产生一个log.txt文件,里面写上代码的运行结果,运行失败后,会在打开hypermesh的界面弹出窗口#YourComputerhaveinvalidPermessionif{$mac=="DC:53:60:18:1E:65"}{if{$bigTime==$expireBigTime}{if{$smallTime<=$expireSmallTime}{test\[info]"代码启动成功"}else{tk_messageBox-icon"error"-message"YourComputerhaveinvalidPermession"test\[error]"小许可证已过期"}}elseif{$bigTime<$expireBigTime}{test\[info]"代码启动成功"}else{tk_messageBox-icon"error"-message"YourComputerhaveinvalidPermession"test\[error]"大许可证已过期"}}else{tk_messageBox-icon"error"-message"Mac地址错误,请联系管理员"test\[error]"联系管理员提供正确的Mac地址"}运行结果如下,分别对应四种情况:四十行代码如果加密后,竟然成了一百八十多行,神奇,最近在沉迷二开的知识,Dyna还没空写~~~来源:CAE中学生

未登录
还没有评论
课程
培训
服务
行家
VIP会员 学习计划 福利任务
下载APP
联系我们
帮助与反馈