• 回答数

    0

  • 浏览数

    787

  • 收藏数

    0

作者:团子良 发表于 2022-9-16 15:23:04
跳转到指定楼层
本帖最后由 团子良 于 2022-9-16 15:30 编辑

   HyperMesh的二次开发我做的比较少, 对于tcl语言也算不上精通, 不过制作的插件在前处理以及求解设定过程中也起到了很大的作用. 不过每一次调用都要去找这个脚本, 实在是让我头疼.

    经过查阅资料, 我了解到这些插件都可以注册在Utility---User中, 而要在其中注册插件, 则要修改userpage.mac, 这个文件是在HyperMesh安装完成后自动生成的, 对于2021版本, 它的位置位于...\Altair\2021\hwdesktop\hm\bin\win64.

    这个文件如果不使用文件搜索,还是挺难找的, 而要使用搜索就要知道文件名, 但是它实在是太不常用了, 以至于每次更新HM版本都要重新研究到底怎么注册脚本. 所以就有了这篇笔记, 以后忘记了就来翻公众号吧.


01
userpage.mac

      尽管这个文件不是空文件, 但是完全可以忽视它里面的所有内容(但是也别给删了), 我们要做的就是将我们的注册插件代码写到文件最后面就好了.


02

创建按钮*createbutton

        语法:*createbutton (page name row column width color helpstring macroname arg1 …)
  • page: 该按钮被创建在utility的第几页, user是utility的第五页, 所以注册在这里的按钮page=5;
  • name: 显示在按钮上的文字;
  • row: 按钮的行位置;
  • column: 按钮的列位置;
  • width: 按钮的宽度;
  • color: 按钮的颜色;
  • helpstring: 点击按钮使的提示文字;
  • macroname: 被调用的脚本名称;
  • arg1: 被调用的脚本名称;

03

注册脚本*beginmacro

    可以使用这个命令将按钮注册到utility中
    语法: *beginmacro(name)

04

示例


  1. *createbutton(5, "unit_load_creation",0,0,10,RED,"",EvalTclScript3,"unit_load_creation.tcl")
  2. *beginmacro("EvalTclScript3")
  3. *evaltclscript($1,0)
  4. *endmacro()
复制代码

每一个脚本的名称需要是独一无二的(EvalTclScript3不能重复)

分享:
回复

使用道具

成为第一个回答人

高级模式 评论
您需要登录后才可以回帖 登录 | 立即注册 微信登录