在ABAQUS中操作模型时,经常需要选择边界上的元素,如果使用框选则需要将模型摆正(处于一个主视图角度),虽然ABAQUS提供了6个主视图工具按键,但实际使用中还有有一些不便的:

  • ABAQUS提供的视角只是基于一个盒子的6个面,如果需要在同一个面的不同方向的视角则没有,例如ABAQUS提供了y轴向上,x轴向右的视图,但却没有x轴向上,y轴向左的视图;
  • 对于较复杂的模型或模型局部,使用时还需想象需要的视角对应于ABAQUS提供的哪个视角,不太方便;

因此开发一个最近主视角的功能,在使用时在图形窗口中将模型转至一个角度后,可以将视图直接转换至与当前视角最接近的主视图,解决上述问题。

ABAQUS/CAE使用PYTHON进行二次开发,开发的主要步骤是:

  1. 创建一个算法文件(python源代码文件),用于执行算法逻辑,名称任意;
  2. 创建一个命令注册文件(python源代码文件),用于将上一步创建的算法注册进行ABAQUS中,以方便使用,名称必须以_plugin结尾;
  3. (可选)创建一个GUI文件(python源代码文件),用于描述对话框及界面元素,名称任意;
  4. 将上述三个python文件放进ABAQUS安装文件夹中的…\CAE\plugins\20xx\文件夹下;
  5. 重新启动ABAQUS,即可在菜单项Plug-ins菜单下或工具条中看到相应的菜单项或工具按钮。

这个功能并不需要图形界面,但为了方便,需要一个工具按键。因而创建两个文件,一个是算法文件,另一个是命令注册文件。
算法文件命名为mainViewOri.py(这个文件名是任意的),如下所示。

from abaqus import *
from abaqusConstants import *
import numpy as np

def setMainViewOri():
    vp = session.viewports[session.currentViewportName]
    view = vp.view
    UpVector = np.array(view.cameraUpVector)
    upVecMaxIndic = np.argmax(np.abs(UpVector))
    newUpVector = [0,0,0]
    newUpVector[upVecMaxIndic] = np.sign(UpVector[upVecMaxIndic])
    view.setValues(cameraUpVector = newUpVector)
    cameraVec = np.array(view.cameraPosition) - view.cameraTarget
    cameraVecMaxIndic = np.argmax(np.abs(cameraVec))
    newCameraVec = [0,0,0]
    newCameraVec[cameraVecMaxIndic] = np.sign(cameraVec[cameraVecMaxIndic])
    view.setViewpoint(viewVector=tuple(newCameraVec))

命令注册文件如下所示,其中registerKernelMenuButton函数用于将模块mainViewOri(参数moduleName,即算法文件名,python中使用文件名做为模块名)中的函数setMainViewOri(参数functionName,点击菜单后执行的相应python模块中的函数名)注册到一个显示名称为mainViewOri(参数buttonText)的菜单项上,这个命令可以应用于所有Modules(参数applicableModules)。

from abaqusGui import *
from abaqusConstants import ALL

toolset = getAFXApp().getAFXMainWindow().getPluginToolset()
toolset.registerKernelMenuButton(
    moduleName='mainViewOri', 
    functionName="setMainViewOri()",
    buttonText="mainViewOri",
    icon=None,
    applicableModules=ALL,
    version='N/A',
    author='N/A',
    description='N/A',
    helpUrl='N/A')

将上述两个文件拷至ABAQUS安装文件夹中的…\CAE\plugins\20xx\文件夹下后重启ABAQUS,将会看到如下的菜单项。
在这里插入图片描述

但总用菜单显然不方便,可以将其添加至工具条中,通过以下的自定义工具条创建一个工具条。
在这里插入图片描述
在这里插入图片描述

之后在Functions选项卡中找到刚创建的命令将其拖到工具条中即可。其中的图标可以在界面右下角处自定义。
在这里插入图片描述

Logo

2万人民币佣金等你来拿,中德社区发起者X.Lab,联合德国优秀企业对接开发项目,领取项目得佣金!!!

更多推荐