首页/文章/ 详情

使用python进行ABAQUS批处理-Gui代码

1年前浏览1314

 在使用python进行ABAQUS批处理-总体思路中, 我们梳理了插件开发需求与流程, 本篇将详细讲述该插件的Gui的设计。




    使用ABAQUS自带的RSG即可搭建简易的GUI操作界面, 这样可以避免书写大量的GUI代码, 只需针对其不符合使用需求的部分进行修改即可. 这样一来, 就要求在设计完成后, 保存GUI时应选择standard plug-in, 同时你还需要能够找到这个文件, 来进行修改.

    如何使用RSG工具构造GUI并关联kernel程序的方法, 在本篇文章中不进行讨论.

    在设计GUI的时候, 我们已经发现了两个问题:

  1. label标签内容不可以换行, 即使输入\n也不行;

  2. RSG没有提供选择文件夹的控件, 只提供了选择文件的控件.

    以下, 将就这两个问题展开讨论


01


label标签内容可以换行



    label标签如果不能换行, 那么在输入一些解释性的信息的时候会比较麻烦, 要么会拉宽对话框, 要么就得需要多个label.

    其实label不是不能换行, 只是其不能在RSG页面进行换行, 想要换行的话, 需要自己手动编辑自动生成的带有DB字样的py文件.

    从上图可以发现, \n并没有达到换行的目的.

    通过查看上图所对应的带有DB的py文件可以发现:

    l = FXLabel(p=GroupBox_1, text='000000000000000000000000000\\n00000000000000000000', opts=JUSTIFY_LEFT
       

        我们设计的这个label文件的内容中的\n被禁止转义了, 相信我们主要取消这个禁止, 就可以实现换行:

      l = FXLabel(p=GroupBox_1, text='000000000000000000000000000\n00000000000000000000', opts=JUSTIFY_LEFT)
         

          然后重启ABAQUS:

          成功换行!    


      02


      文件夹的选择


          RSG自动生成的file控件是无法选择文件夹的:

          如此一来我们就需要查阅帮助文档, 首先我们需要知道控件的名称, 打开对应的带有DB字样的python文件, 可以找到控件的类型为AFXFileSelectorDialog.

         fileDb = AFXFileSelectorDialog(getAFXApp().getAFXMainWindow(),      'Select a File',     self.fileNameKw, self.readOnlyKw,     AFXSELECTFILE_ANY, self.patterns, self.patternTgt)
           

            在帮助文档中, 我们可以发现这个控件是通过mode参数来设定选择类型的:

        File selection modes

        AFXSELECTFILE_ANY

        A single file, existing or not (to save to).

        AFXSELECTFILE_EXISTING

        An existing file (to load).

        AFXSELECTFILE_MULTIPLE

        Multiple existing files.

        AFXSELECTFILE_MULTIPLE_ALL

        Multiple existing files or directories.

        AFXSELECTFILE_DIRECTORY

        Existing directory.

        AFXSELECTFILE_REMOTE_HOST

        Enable opening files on a remote host.

            作如下更改后, 重启ABAQUS:

           fileDb = AFXFileSelectorDialog(getAFXApp().getAFXMainWindow(), 'Select a Folder',     self.fileNameKw, self.readOnlyKw,     AFXSELECTFILE_DIRECTORY, self.patterns, self.patternTgt)
             

              OK, 可以选择文件夹了


          03


          总结

              至此, 所有技术细节已经处理完毕, 在kernel代码设计完成后, 使用RSG工具设计GUI界面的初始样式, 并关联kernel,  然后自行修改带有DB字样的py文件, 已达到标签换行和选择文件夹的目的.

          来源:SimCoder
          Abaquspython
          著作权归作者所有,欢迎分享,未经许可,不得转载
          首次发布时间:2023-02-02
          最近编辑:1年前
          签我的导演他姓张
          本科 怕什么真理无穷进一寸有一寸欣喜
          获赞 47粉丝 39文章 44课程 0
          点赞
          收藏
          未登录
          还没有评论

          课程
          培训
          服务
          行家

          VIP会员 学习 福利任务 兑换礼品
          下载APP
          联系我们
          帮助与反馈