基于Python的Abaqus二次开发实例讲解
(asian58 2013.6.26)
基于Python 的Abaqus 的二次开发便捷之处在于:
、所有的代码均可以先在 中操作一遍后再通过 文件读取,然后再在此
1 Abaqus\CAE rp
基础上进行相应的修改;
2、Python 是一种解释性语言,读起来非常清晰,因此在修改程序的过程中,不存在程
序难以理解的问题;
、 是一种通用性的、功能非常强大的面向对象编程语言,有许多成熟的类似于
3 Python
Matlab 函数的程序在网络上流传,为后期进一步的数据处理提供了方便。
为了更加方便地完成Abaqus 的二次开发,需进行一些相关约定:
1、所有参数化直接通过点的坐标值进行,直接对几何尺寸的参数化反而更加繁琐;
、程序参数化已不允许在模型中添加太多的 ,因此不同零部件的绑定直接通过共节
2 Tie
点来进行,这就要求建模方法与常规的建模方法有所区别。思路如下:
将一个整机拆成几个大的Part 来建立,一个Part 中包含许多零件,这样在划分网格式
时就可以自动实现共节点的绑定。不同的零件可通过建立不同的 来进行区分,不同
Set Part
的绑定可以通过 来实现。将一个复杂的结构拆成几个恰当的 来建立,一方面可以将
Tie Part
复杂的模型简单化,使建立复杂模型成为可能;另一方面,不同的Part 可单独调用,从而
又可实现程序的模块化,增加程序的适应范围,延长程序的使用寿命,也方便后期程序的维
护和修改。
、通过 文件建立起的模型要进行参数优化,已不适合采用 中 模块,
3 py Isight Abaqus
需要用到Isight 的Simcode 模块。
下面详细解释一个臂架的 文件。
py
#此程序用来绘制臂架前段
#导入相关模块
# -*- coding: mbcs -*-
from abaqus import *
from abaqusConstants import *
#定义整个臂架的长、宽、高
L0=14300
W0=1650
H0=800
第 1 页 共 11 页
#创建零件P01_12
L1=H0+200
W1=200
T1=12
s = mdb.models['Model-1'].ConstrainedSketch(name='__profile__',
sheetSize=2000.0)
g, v, d, c = s.geometry, s.vertices, s.dimensions, s.constraints
s.setPrimaryObject(option=STANDALONE)
注:通过点的坐标进行参数化
s.rectangle(point1=(W0/2, L1/2), point2=(W0/2+W1, -L1/2))
是模型参数化的最好选择。
s.rectangle(point1=(-W0/2, L1/2), point2=(-W0/2-W1, -L1/2))
p = mdb.models['Model-1'].Part(name='Part