Abaqus:Abaqus二次开发与Python脚本教程Texheade_第1页
Abaqus:Abaqus二次开发与Python脚本教程Texheade_第2页
Abaqus:Abaqus二次开发与Python脚本教程Texheade_第3页
Abaqus:Abaqus二次开发与Python脚本教程Texheade_第4页
Abaqus:Abaqus二次开发与Python脚本教程Texheade_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Abaqus:Abaqus二次开发与Python脚本教程

1Abaqus基础

1.1Abaqus简介

Abaqus是一款由DassaultSystemes公司开发的高级有限元分析软件,广

泛应用于工程设计、材料科学、航空航天、汽车制造等领域。它能够处理复杂

的非线性问题,包括材料非线性、几何非线性和接触非线性,提供精确的分析

结果。Abaqus支持多种分析类型,如静态、动态、热分析、电磁分析等,满足

不同工程需求。

1.2Abaqus工作流程

Abaqus的工作流程主要包括以下几个步骤:

L模型建立:在Abaqus/CAE中创建几何模型,定义材料属性,设置

边界条件和载荷。

2.网格划分:艰据模型的复杂度和分析精度要求,对模型进行网格

划分。

3.定义分析步骤:设置分析类型,如静态分析、动态分析等,以及

分析的时间步长和收敛准则。

4.提交分析:将模型和设置提交给Abaqus求解器进行计算。

5.结果后处理:在Abaqus/CAE中查看和分圻计算结果,包括应力、

应变、位移等。

1.3Abaqus用户自定义功能

Abaqus提供了强大的用户自定义功能,允许用户通过编写Python脚本来

扩展软件的功能。这些脚本可以用于自动化模型建立、修改分析设置、自定义

后处理等。下面是一个简单的Python脚本示例,用于在Abaqus中创建一个矩

形板模型:

#AbaqusPython脚本示例:创建矩形板模型

fromabaqusimport*

fromabaqusConstantsimport*

fromcapMoriulpsimport*

frompartimport*

frommaterialimport*

fromsectionimport*

fromassemblyimport*

fromstepimport*

1

frominteractionimport*

fromloadimport*

frommeshimport*

fromjobimport*

fromsketchimport'

fromvisualizationimport*

升创建一个新的模型

myModel=mdb.Model(name='RectanglePlate')

#创建个范图

mySketch=mdb.models['RectanglePlate'].ConstrainedSketch(name=,_profile_sheetSize=100.

0)

mySketch.rectangle(pointl=(0.0,0.0),point2=(100.0,50.0))

#创建一个基于草图的实体

myPart=myModel.Part(name'Part-1',dimensionality二THREE_D,t/pe^DEFORMABLE_BODY)

myPart.BaseShell(sketch=mySketch)

#设置材料属性

myMaterial=myModel.Material(name="Steel)

myMaterial.Elastic(table=((200000.0,0.3),))

#将材料应用到实体

mySectionmyModel.HomogeneousSolidSection(name?Section-r,material-Steel',thickness;

None)

myPart.SectionAssignment(region=myPart.sets['Set-l'],sectionName='Section-l',offset=0.0,offs

etType=MIDDLE_SURFACE,offsetField=",thicknessAssignment=FROM_SECTION)

#创建一个实例

myAssembly=myModel.rootAssembly

myAssembly.lnstance(name='lnstance-l',part=myPart,dependent=ON)

#设置边界条件

myAssembly.Set(name='BC-Set'(faces=myAssembly.instances[Instcnce-lJ.faces.findAtftfO.O,0.0,

0.0),)))

myModel.DisplacementBC(name='BC-l'/createStepName'Initial',region=myAssembly.sets['BC-S

et'J,ul=0.0,u2=0.0,u3=0.0,amplitude=UNSET,fixed=OFF,distributionType=UNIFORM)

#设置载荷

myAssembly.Set(name='Load-Set',faces=myAssembly.instances['lnstance-l').faces.findAt(((100.0,

50。0.0),)))

,

myModel.Pressure(name='Load-l,createStepName='Step-l'/region=myAssembly.sets['Load-Set

distributionType=UNIFORM,field=",magnitude=100.0)

2

扑网格划分

myPart.seedPart(size=10.0/deviationFactor=0.1,minSizeFactor=0.1)

myPart.generateMesh()

升提交分析

,

myJob=mdb.Job(name='Job-l1model='RectanglePlate',description=",type=ANALYSIS,atTime=

None,waitMinutes^O,waitHours-O,queue二None,memory=90/memoryUnitsPERCENTAGE,get

MemoryFromAnalysis=True,explicitPrecision=SINGLE,nodalOutputPrecision=SINGLE,echoPrint=

OFF,modelPrint=OFF,contactPrnt=OFFzhistoryPrint=OFF)

myJob.submit()

myJob.waitForCompletion()

#结果后处理

odb=session.openOdb(name='Job-l.oclb')

session.viewports['Viewport:l'].setValues(displayedObject=odb)

odb.stepsCStep-l'J.framesl-lj.fieldOutputsf'S'J.plotO

13.1代码解释

•模型创建:首先创建一个新的模型RectanglePlate。

•草图与实体:在模型中创建一个矩形草图,然后基于此草图创建

一个实体。

•材料与截面:定义材料属性(如弹性模量和泊松比),并创建一个

截面,将材料属性应用到实体上。

•实例与边界条件:创建一个实例,并设置边界条件,限制实体在

某些方向上的位移。

•载荷设置:在实体的另一侧设置压力载荷。

•网格划分:对实体进行网格划分,设置区格大小。

•提交分析:创建一个分析任务,提交给Abaqus求解器进行计算。

•结果后处理:分析完成后,打开结果文件,查看并绘制应力分布

图。

通过上述Python脚本,用户可以自动化完成Abaqus中的模型建立、分析

设置和结果后处理,极大地提高了工作效率和分析精度。

2Python在Abaqus中的应用

2.1Python脚本环境设置

在Abaqus中使用Python进行二次开发,首先需要确保Python环境正确设

置。Abaqus自带Python解释器,通常不需要额外安装Python。但是,为了确

保与Abaqus的兼容性,建议使用Abaqus自带的Python版本。

3

2.1.1步骤1:确认Python版本

打开Abaqus/CAE,通过命令行输入python,可以查看当前Abaqus环境下

的Python版本。

2.1.2步骤2:配置Python路径

在Abaqus中,可以通过修改abaqus_python_path来添加自定义的Python

库路径。这通常在Abaqus的启动脚本中用成,血如在Linux环境下,编辑

$ABAQUS_DIR/6.14-l/Python/abaqus_python_path文件,添加你的库路径。

2.1.3步骤3:测试Python脚本

创建一个简单的Python脚本,例如:

#测试AbaqusPython环境

importsys

print("Pythonversion:",sys.version)

printf'Abaqusversion:",_version_)

保存脚本,并在Abaqus/CAE中运行,确认Python环境和Abaqus版本信息。

2.2AbaqusPythonAPI介绍

AbaqusPythonAPI提供了与Abaqus交互的接口,允许用户通过Python脚

本来控制Abaqus的各个方面,包括模型创建、分析设置、结果提取等。

2.2.1常用模块

•session:控制图形界面的模块。

•odbAccess:月于读取和操作ODB文件的模块。

•part:零件模块,用于创建和操作零件。

•assembly:装配模块,用于创建和操作装配体。

•material:材料模块,用于定义材料属性。

•section:截面模块,用于定义截面属性。

•step:步骤模块,用于定义分析步骤。

•interaction:交互模块,用于定义边界条件和载荷。

2.2.2示例:创建一个简单的模型

下面的代码示例展示了如何使用AbaqusPythonAP创建一个简单的立方体

零件,并将其添加到装配体中:

fromabaqusimport*

fromabaqusConstantsimport*

fromcaeModulesimport*

frompartimport'

4

frommaterialimport*

fromsectionimport*

fromassemblyimport*

fromstepimport*

frominteractionimport*

#创建一个立方体零件

myPartPart(name='Cube'/dimensionalityTHREE_D,typeDEFORMABLE_BODY)

mySketch=mdb.models['Model-l'].ConstrainedSketch(name='_profile_sheetSize=100.0)

mySketch.rectangle(pointl=(0.0,0.0),point2=(10.0,10.0))

myPart.BaseSolidExtrude(sketch=mySketch,depth=10.0)

。将零件添加到装配体

myAssembly=mdb.models!Mcdel-l'].rootAssembly

myAssembly.lnstance(name='Cube-l,,part=myPart,dependent=ON)

2.3使用Python进行前处理

Abaqus的PythonAPI允许用户在前处理阶段自动化许多任务,如创建模型、

定义材料、设置边界条件等。

2.3.1示例:定义材料属性

下面的代码示例展示了如何定义一个线性弹性材料,并将其应用于模型中

的零件:

fromabaqusimport*

fromabaqusConstantsimport*

fromcaeModulesimport*

frommaterialimport*

fromsectionimport*

升定义材料属性

mdb.models['Model-l'].Matericl(name=,Steel')

,,

mdb.models['Model-l].materials[Steer].EIastic(table={(200000.0/0-3),))

#定义截面属性,并将材料应用于截面

,

mdb.models['Model-l].HomogeneousSolidSection(name='SteelSection'/materiah'Steel',thickne

ss=None)

#将截面属性应用于零件

myPart=mdb.modelsfModel-ri.partsCCube']

myPart.SectionAssignment(region=myPart.cells[:],sectionName='SteelSection',offset=0.0/offset

Type=MIDDLE_SURFACE,offsetField=",thicknessAssignment=FROM_SECTION)

通过这些步骤,你可以在Abaqus中设置一个完整的Python脚本环境,了

5

解AbaqusPythonAPI的基本用法,并开始使用Python进行前处理自动化。这

将大大提高你的工作效率,特别是在处理复杂模型和重复任务时。

3Abaqus二次开发:自定义材料模型、单元与接触算法

3.1自定义材料模型

3.1.1原理

在Abaqus中,自定义材料模型允许用户定义非标准或复杂的材料行为,这

通常通过编写Python脚本来实现。用户可以定义材料的应力-应变关系、塑性

流动规则、损伤模型等,以适应特定的工程需求。

3.1.2内容

自定义材料模型主要通过用户子程序(UMAT)来实现,但在Abaqus/CAE

中,也可以通过PythonAPI来定义材料属性。下面是一个使用PythonAPI定义

线性弹性材料模型的例子:

fromabaqusimport*

fromabaqusConstantsimport4

fromcaeModulesimport'

fromdriverlltilsimportexecuteOnCaeStartup

#定义材料属性

defdefineMaterial():

mdb.modelsfModell'J.MateriaHnames'CustomMateriar)

mdb.modelsfModel-l[.materials「CustomMaterial].EIastic(table=((200e9,0.3),))

#创建材料实例

defcreateMateriallnstance():

mdb.models[Model-1'].HomogeneousSolidSection(name='CustomSection',material='Custom

Material',thickness=None)

扑将材料实例应用于模型

defapplyMaterialToModel():

mdb.models[Model-1'].partsI'Part-l'J.SectionAssignmentfregion=mdb.modelsfModel-1').part

s['Part-l'].sets['Set-l'],sectionName='CustomSection',offset=0.0,cffsetType=MIDDLE_SURFACE,

offsetField=",thicknessAssignmentFROM_SECTION)

#执行材料定义和应用

defineMaterial()

createMateriallnstance()

applyMaterialToModel()

6

3.1.3描述

上述代码首先定义了一个名为CustomMaterial的材料,其弹性模量为

200GPa,泊松比为0.3。然后,创建了一个基于该材料的截面实例

CustomSectiono最后,将这个截面实例应用于模型中的Part-1的Set-1区域。

3.2自定义单元

3.2.1原理

自定义单元(UELEM)在Abaqus中用于模拟标准单元无法准确描述的复杂

结构或行为。通过Python脚本,用户可以定义单元的几何形状、应力应变关系、

边界条件等。

3.2.2内容

自定义单元的实现通常涉及编写用户子程序,但在Abaqus/CAE中,可以通

过PythonAPI来控制单元的生成和属性。下面是一个使用PythonAPI创建自定

义单元的例子:___________________________________________________________

fromabaqusimport*

fromabaqusConstantsimport*

fromcaeModulesimport'

fromdriverUtilsimportexecuteOnCaeStartup

#定义自定义单元的几何和属性

defdefineCustomElementO:

#联设我们定义一个简单的四边形单元

part=mdb.modelsCModel-l'I.partsCPart-l']

part.Element(type=Q4,materiah'CustomMaterial',sectionName='CustomSection',nodes=part.

nodes)

it执行自定义单元定义

defineCustomElementO

3.2.3描述

这个例子中,我们定义了一个四边形单元(Q4),并指定了材料和截面。

这只是一个简化示例,实际的自定.义单元可能需要更复杂的几何定.义和属性设

置。

7

3.3自定义接触算法

3.3.1原理

Abaqus提供了多种接触算法,但有时标准算法可能无法满足特定的接触条

件或物理现象。自定义接触算法允许用户通过Python脚本来定义接触行为,如

摩擦系数、接触刚度等。

3.3.2内容

自定义接触算法通常涉及修改接触属性或使用用户子程序(UCON)。下面

是一个使用PythonAPI设置自定义接触属性的例子:

fromabaqusimport*

fromabaqusConstantsimport"

fromcaeModulesimport*

fromdriverutilsimportexecuteOnCaeStartup

#定义自定义接触属性

defdefineCustomContactPropertyO:

mdb.models!Model-l'J.ContactPropertyCCustomContact')

mdb.models[Model-1'].interactionProperties[CustomContact'].TangentialBehavior(formulatio

n=FINITE,directionality=ISOTROPIC,slipRateDependency=OFFzpressureDependency=OFFztemper

atureDependency=OFF,dependencies^,table=((0.3,),),shearStressLimit=None,maximumElasti

cSlip=FRACTION,fraction=0.005zelasticSlipStiffness=None)

#创建接触对

defcreateContactPair():

mdb.models[Modell'].Surface(name'Surface-1',sidelEdges=mdb.models[,Modell'].parts['P

art-1'].edges)

'

mdb.models[Model-l'].Surfa:e(name='Surface-2/sidelEdges=mdb.models['Model-l'].parts['P

art-2'J.edges)

mdb.modelsfModel-11).ContactStd(name='lnt-l',createStepNarre='lnitial',master='Surface-l',

slave='Surface-2',sliding=FINITE,thickness=ON,interactionProperty='CustomContact)

才执行接触属性定义和接触对创建

defineCustomContactPropertyO

createContactPair()

3.3.3描述

在这个例子中,我们定义了一个名为CustomContact的接触属性,设置了

摩擦系数为0.3,并允许最大弹性滑移为0.5%。然后,创建了两个表面Surface-

1和Surface-2,并使用CustomContact属性定义了接触对lnt-l<,

8

以上示例展示了如何在Abaqus中使用Python脚本来实现自定义材料模型、

单元和接触算法的基本过程。在实际应用中,可能需要根据具体问题调整代码

细节,以满足更复杂的工程需求。

4Abaqus二次开发与Python脚本实例

4.1自动化网格划分

在Aboqus中,网格划分是有限元分析的关键步骤之一。通过Python脚本,

我们可以自动化这一过程,提高效率并确保一致性。下面是一个使用Python脚

本在Abaqus中自动化网格划分的例子。

4.1.1示例代码

#导入Abaqus模块

fromabaqusimport*

fromabaqusConstantsimport*

fromcaeModulesimport*

frommeshimportMeshtlement,MeshNode

#创建模型

model=mdb.modelsfModel-1']

升定义网格控制

model.Part(name'Part-1',dimensionalityTHREE_D,typeDEFORMABLE_BODY).setMeshControl

s(regions=model.cells,techniqu2=STRUCTURED)

#设置网格尺寸

model.seedPart(size=0.1,deviationFactor=0.1,minSizeFactor=0.i)

#生成网格

model.generateMesh()

u输出网格信息

printf'Meshgenerationcompleted.")

4.1.2代码解释

1.导入模块:首先,我们导入了Abaqus中必要的模块,包括

abaqus,abaqusConstants.caeModules和mesh。

2.创建模型:我们从现有的模型Model-1中选择一个部分Part-lo

3.定义网格控制:使用setMeshControls方法,我们为模型的单元格

区域设置了结构化网格技术。

9

4.设置网格尺寸:通过seedPart方法,我们定义了网格的基本尺寸,

以及允许的尺寸偏差和最小尺寸因子。

5.生成网格:调用generateMesh方法来生成网格。

6.输出信息:最后,我们打印一条消息确认网格生成完成。

4.2批量作业提交

Abaqus允许通过Python脚本批量提交作业,这对于需要运行多个分析或

参数化研究的情况非常有用。下面是一个示例脚本,展示了如何自动化作业提

交。

4.2.1示例代码

#yAAbaqus模块

fromabaqusimport*

fromabaqusConstantsimport*

fromcaeModulesimport*

fromjobMessageimport*

#定义作业列表

jobList=['Job-1','Job-2','Job-3';

#循环提交作业

forjobNameinjobList:

[jobName].submit(consistencyChecking=OFF)

#等待所有作业完成

forjobNameinjobList:

while[jobName].status!=COMPLETED:

time.sleep(lO)#/10♦次门、班状态

it输出作业完成信息

printf'Alljobshavebeencompleted.")

4.2.2代码解释

1.导入模块:我们导入了Abaqus中用于作业管理和消息处理的模块。

2.定义作业列表:这里我们创建了一个包含多个作业名称的列表。

3.循环提交作业:通过一个循环,我们提交了列表中的所有作业,

关闭了一致性检查以提高提交速度。

4.等待作业完成:使用另一个循环,我们检查每个作业的状态,直

到所有作业都完成。

5.输出信息:最后,我们打印一条消息确认所有作业已完成。

10

4.3结果后处理脚本

Abaqus提供了强大的后处理功能,可以使用Python脚本来自动化结果的

提取和分析。下面是一个示例脚本,展示了如何从Abaqus结果文件中提取应力

数据。

4.3.1示例代码

#导入Abaqus模块

fromabaqusimport*

fromabaqusConstantsimport*

fromcaeModulesimport'

fromvisualizationimportVisOdb

#打开结果文件

odb=session.openOdb(name='Job-l.odb')

#获取模型实例

Instance=odb.rootAssembly.lnstances(Part-1-1]

升提取应力数据

stressField=odb.stepsCStep-l'J.framesl-lJ.fieldOutputsCS]

#输出应力数据

forelemLabel,elemininstance.elements.items():

elemStress=stressField.getSubset(region=instance.elements[elemLabel].getNodes())

printff'Element{elemLabel}:Stress:{elemStress.values(O].data}')

并关闭结果文件

session.closeOdb(odb)

4.3.2代码解释

1.导入模块:我们导入了Abaqus中用于后处理和可视化结果的模块。

2.打开结果文件:使用。penOdb方法,我们打开了名为Job-l.odb

的结果文件。

,3.获取模型实例:我们从结果文件中选择了模型的实例Part-l-U

4.提取应力数据:通过fieldoutputs,我们获取了最后一步的应力数

据。

5.输出应力数据:我们遍历了实例中的所有元素,提取了每个元素

的应力值,并打印出来。

6.关闭结果文件:最后,我们关闭了打开的结果文件以释放资源。

通过这些示例,我们可以看到Python脚本在Abaqus中的强大应用,从自

11

动化网格划分到批量作业提交,再到结果的后处理,Python脚本极大地提高了

Abaqus的使用效率和灵活性。

5高级Python脚本技巧

5.1错误处理与调试

在Python脚本开发中,错误处理与调试是确保代码健壮性和可维护性的关

键。通过使用try和except语句,我们可以捕获并处理运行时错误,避免程序

因未预见的异常而崩溃。

5.1.1示例:错误处理

defsafe_divide(numl,num2):

IIIlli

安全地执行除法操作,处理除数为零的情况。

参数:

numl(int):被除数.

num2(int):除数。

返回:

float:除法结果。

uitn

try:

result=numl/num2

exceptZeroDivisionError:

print("错误:除数不能为零。

returnNone

else:

returnresult

#测试函数

print(safe_divide(10,2))

print(safe_divide(10,0))#

5.1.2示例:调试技巧

使用pdb(Python调试器)可以逐行执行代码,检查变量状态,帮助定位

错误。

importpdb

defcalculate_average(numbers;:

12

IIHH

计算数字列衣的平均值。

参数:

numbers(list):包含数字的列表。

返回:

float:平均值。

pdb.set_trace()#i-

total=sum(numbers)

count=len(numbers)

returntotal/count

#测试函数

numbers=[1,2,3,4,5]

average=calculate_average(numbers)

print(average)

5.2脚本优化

优化Python脚本可以提高代码的执行效率,减少资源消耗。常见的优化策

略包括使用列表推导式、生成器表达式,以及避免不必要的数据结构操作。

5.2.1示例:列表推导式

列表推导式提供了一冲更简洁、更快速的方式来创建列表。

#使用列表推导式创建一个平方数列表

squares(x**2forxinrange(lO)]

print(squares)#输出:[0,1,4,9,16,25,36,49,64,81]

5.2.2示例:生成器表达式

生成器表达式在迭代过程中生成值,而不是一次性创建整个列表,节省内

存。

达式创建一个平方数生成器

squares_gen=(x**2forxinrange(lO))

forsquareinsquares_gen:

print(squarezend='')#输出:0149162536496481

5.3并行计算与多线程

并行计算和多线程可以显著提高处理大量数据或执行复杂计算的效率。

13

Python的threading模块支持多线程编程,而multiprocessing模块则支持多进程

并行计算。

5.3.1示例:多线程

使用threading模块创建并运行多个线程,每个线程执行独立的任务。

importthreading

defprint_numbers():

IIIIII

在线程中打印数字。

foriinrange。,6):

print(「线程

defprint_letters():

tIHH

在线程中打印字母。

tutu

forletterinobede':

print*"线程2:{letter}")

#创建线程

tl=threading.Thread(target=print_numbers)

t2threading.Thread(target=print_letters)

#启动线程

tl.start()

t2.start()

#等待线程完成

tl.join()

t2.join()

5.3.2示例:多进程

使用multiprocessing模块创建并运行多个进程,每个进程独立执行任务,

适用于CPU密集型操作。

importmultiprocessing

defsquare_numbers(numbers,"esult):

计算数字列表中每个数字的平方。

14

参数:

numbers(list):数字列表。

result(multiprocessing.Array):用了存储结果的共享数组。

UHH

foridx,numberinenumeratefnumbers):

result[idx]=number*number

if_name_=='_main_

numbers=[1,2,3,4,5]

result=multiprocessing.ArrayCi1,len(numbers))

p=multiprocessing.Process(target=square_numbers,args=(numbers,result))

p.start()

P-joinO

print(list(result))#[1,4,9,16,25]

以上示例展示了如何在Python中处理错误、优化代码以及实现并行计算,

这些都是高级脚本技巧的重要组成部分。

6Abaqus二次开发与Python脚本:综合项目实践

6.1创建自定义插件

在Abaqus中,创建自定义插件是实现二次开发的关键步骤之一。这允许用

户扩展Abaqus的功能,以满足特定的工程需求。以下是一个创建自定义插件的

示例,该插件用于自动创建一个具有特定属性的材料模型。

6.1.1示例代码

#自定义插件:创建材料模型

fromabaqusimport*

fromabaqusConstantsimport*

fromcaeModulesimport-

fromdriverlltilsimportexecuteOnCaeStartup

@executeOnCaeStartup

defcreateCustomMaterial():

皿’创建一个自定义材料模型,该模型具有预定义的弹性属性和塑性属性。"""

#创建材料

mdb.models[Model-l'].Material(name='CustomMateriar)

8定义弹性属性

mdb.models[Model-1'].materials['CustomMateriar].EIastic(table=((200e3z0.3),))

15

#定义塑性属性

mdb.models[,Model-l'].materials[,CustomMateriar].PIastic(table=((300,0.005),(400,0.01),(5

00z0.02)))

#输出确认信息

print("自定义材料模型已创建。

#调用函数

createCustomMaterial()

6.1.2描述

此代码示例展示了如何使用Python脚本在Abaqus中创建一个自定义材料

模型。首先,我们导入了必要的Abaqus模块,然后定义了一个函数

createCustomMaterial,该函数在Abaqus启动时自动执行。在函数中,我们创建

了一个名为CustomMaterial的材料,并为其定义了弹性模量和泊松比,以及塑

性属性。最后,我们通过调用createCustomMaterial函数来执行材料模型的创建。

6.2开发用户界面

Abaqus的二次开发不仅限于脚本编写,还包括创建用户界面,以使非编程

用户能够更轻松地使用自定义功能。以下是一个简单的示例,展示了如何使用

Python开发一个用户界面,用于输入材料属性并创建材料模型。

6.2.1示例代码

#自定义插件:开发用户界面

fromabaqusimport*

fromabaqusConstantsimport*

fromcaeModulesimport*

fromdriverlltilsimportexecuteOnCaeStartup

fromabaqusGuiimport*

fromkernelAccessimportmdb,session

classCustomMaterialDialog(AFXFormDialog):

…定义一个用户界面,用于输入材料属性并创建材料模型。"""

并初始化对话框

def_init_(self):

super(CustomMaterialDialcg,self)._init_(电J建自定义材料')

self.formOptionsAFXFormOptions(initialVisibleFalse)

Kw=AFXStringKe¥word(name='name',label='材料名称default=")

self.elasticKw=AFXTableKeyword(name='elastic',label="『R性属”1default=(('200e3','0.3'),

16

))

self.plasticKw=AFXTableKeyword(name

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论