Python在ABAQUS二次开发中的应用实例2.ppt_第1页
Python在ABAQUS二次开发中的应用实例2.ppt_第2页
Python在ABAQUS二次开发中的应用实例2.ppt_第3页
Python在ABAQUS二次开发中的应用实例2.ppt_第4页
Python在ABAQUS二次开发中的应用实例2.ppt_第5页
已阅读5页,还剩19页未读 继续免费阅读

下载本文档

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

文档简介

Python在ABAQUS二次开发中的应用实例 主要内容 一 ABAQUS脚本概述二 Python语言简介三 ABAQUS脚本编写 一 ABAQUS脚本概述 ABAQUS脚本概述 ABAQUS软件简介ABAQUS是国际著名的CAE软件 它以解决实际工业问题能力和强大的非线性功能赢得广泛声誉 航空工业是ABAQUS最重要的应用领域之一 波音 空中客车 洛克希德 马丁等是其长期合作的用户 ABAQUS分析过程由三个步骤组成 前处理 ABAQUS CAE 模拟计算 ABAQUS Standard或者ABAQUS Explicit 后处理 ABAQUS CAE 建模过程主要集中在前处理步骤中 ABAQUS脚本概述 ABAQUS建模方法常用的ABAQUS建模方法主要有三种 在ABAQUS CAE界面建模优点 界面直观 简单易懂 缺点 操作步骤繁琐 不利于修改 缺乏通用性 通过inp文件建模优点 可以直接在ABAQUS中提交 缺点 只包含模型节点信息 代码较多 修改不便 使用Python语言建模优点 代码少 语言友好 可移植性好 可进行参数化修改 缺点 不够直观 ABAQUS脚本概述 ABAQUS脚本接口ABAQUS有限元分析软件二次开发环境提供的脚本接口 是基于Python语言进行的定制开发 在ABAQUS CAE中进行建模和进行后处理时 对话框中做的所有设置都由ABAQUS CAE从内部发出与之对应的命令 command ABAQUS脚本接口直接与内核进行通信 communicate 而与ABAQUS CAE的图形用户界面 GUI 无关 如果将所有的脚本接口命令存储于文件中 该文件则称为脚本 script 脚本由一系列纯ASCII格式的Python语句组成 扩展名一般为 py ABAQUS脚本概述 ABAQUS脚本接口编写脚本可以实现以下功能 自动执行重复任务 进行参数分析 创建和修改模型 访问输出数据库 ODB文件 定制ABAQUS环境文件 创建ABAQUS插件程序 编写完成的脚本文件 可以直接在ABAQUS运行 File RunScript 打开相应的 py文件 即可执行 刚打开ABAQUS界面 直接选择RunScript也可 可以在GUI界面下部的命令行接口输入脚本语句执行 ABAQUS脚本概述 创建ABAQUS脚本创建脚本有3种常用方法 在GUI建模时录制宏 macro File MacroManager可以按需录制任何操作对应的命令 直接编辑abaqus rpy文件建模时工作目录下自动生成abaqus rpy文件使用软件EditPlus可以直接打开编辑保存 cae文件并退出后才能生成 rpy文件 借助PythonReader exe软件中国石油大学焦中良开发可以实时获取CAE每步操作对应的脚本命令 ABAQUS脚本概述 调试ABAQUS脚本调试脚本有多种方法 这里介绍Abaqus自带的PDE中的调试 PDE PythonDevelopmentEnvironment Python开发环境 有以下功能 编辑Python文件 调试Python脚本或插件 创建guiLog脚本 录制所有的GUI动作 通过GUI guiLog 运行Python脚本或在ABAQUS CAE之外运行Python脚本 设置延迟 delay 和断点 breakpoint 并查看代码的执行情况 在watch窗口中查看变量值等 打开方式File AbaqusPDE 然后打开相应的 py文件 即可编辑调试 ABAQUS脚本概述 调试ABAQUS脚本点按钮可以调试整个脚本文件 点按钮可以逐行调试脚本文件 调试行显示为蓝色 点按钮可以停止调试文件 点按钮可以设置断点 调试时将调到此行为止 点按钮 然后点按钮 可以录制CAE中的操作 点可以停止录制 二 Python语言简介 Python语言简介 基本规则代码按级别从大到小解读 之间用操作符 连接 如 mdb models Model 1 materials BPCOMPOSITE Depvar n 5 表示将模型 model 1 的材料 BPCOMPOSITE 里的子程序相关参数设为5 语句前加上 号 表示是注释内容 这个语句将不被执行 使用中文注释 要在文件最开始加上 coding UTF 8 以换行来识别一个逻辑语句的结束 如果需要在一个物理行中编写多个逻辑语句 需要用分号分开 如 x 1 y 2 z 3 如果一个逻辑语句太长需要分行写 需要用反斜杠 进行连接 有括号括起来的内容就不用 不同代码块之间要注意用冒号和缩进来区分代码块之间的层次关系 如 foriinrange 0 b3 if iAnglelowfg i forlinrange 0 i j 1 c3 k c3 k iAnglelowfg j l 1 j ielif iAnglelowfg i Python语言简介 保留字段定义变量名 函数名的时候 避免使用保留字段 如 Python语言简介 数据类型数据类型主要有数字类型 字符串类型 数字类型主要有四种 整型int 长整型long 浮点型float 复数型complex Python语言可自动判断数据类型 不需要编写者定义说明类型 如 i 10 5 即可 不需要用 floati 10 5 不同数据类型之间可通过函数转换 如int float 可以用替代符号表示定制字符串 如stress 1234 56print Thestressis fMPa stress即可输出 Thestressis1234 56Mpa Python语言简介 运算符主要有赋值运算符 算术运算符 逻辑运算符 关系运算符 下表按优先级排列 从上往下优先级增加 不支持自加或自减运算 如 i i 但类似i 1这样的语句是可以的 三 ABAQUS脚本编写 ABAQUS脚本编写 定义和导入模块在每个脚本文件的最开始处 首先要导入相应的ABAQUS模块 每个步骤均有对应的模块 如part模块 material模块 assembly模块等 通过以下语句可以直接导入cae模块的所有对象 fromcaeModulesimport 如果需要用到各种符号常数 如单元类型C3D8R 还要导入符号常数模块 fromabaqusConstantsimport 定义和导入对象还需要导入相应的ABAQUS对象 包括Session对象 包括视口 远程队列 视图对象 Mdb对象 包括Model对象和Job对象 Odb对象通过类似如下的语句导入对象 fromabaqusimport ABAQUS脚本编写 创建新实体myModel mdb models Model 1 myViewport session Viewport name Regionsyntax origin 20 20 width 200 height 100 mySketch myModel Sketch name SketchA sheetSize 200 0 mySketch rectangle point1 40 0 30 0 point2 10 0 0 0 mySketch rectangle point1 10 0 30 0 point2 40 0 0 0 door myModel Part name Door dimensionality THREE D type DEFORMABLE BODY door BaseSolidExtrude sketch mySketch depth 20 0 通过以上语句 在Part模块中生成两个三维实体 建立新模型Model 1 创建新的视口 创建一个草图 并绘制两个矩形 对上面创建的两个矩形进行拉伸操作 生成三维部件 ABAQUS脚本编写 装配实体 导入边界条件myAssembly myModel rootAssemblydoorInstance myAssembly Instance name Door 1 part door dependent OFF pillarVertices doorInstance vertices findAt 40 30 0 40 0 0 myModel StaticStep name impact previous Initial initialInc 1 timePeriod 1 myPillarLoad myModel ConcentratedForce name pillarForce createStepName impact region pillarVertices cf1 12 50E4 通过以上语句 装配实体 并施加边界条件 此处使用了findAt语句来查找顶点 导入实体 完成装配 选择两个顶点 创建静力分析步 static 在选择的顶点上施加集中力 ABAQUS脚本编写 findAt语句简介在Abaqus建模操作生成的rpy文件中 Abaqus将自动为模型的特征进行编号 每个节点 node 单元 element 顶点 vertex 边 edge 面 face 体 cell 都有对应的ID 实例 对方形实体切割p mdb models Model 1 parts Door c p cellspickedCells c getSequenceFromMask mask 1 v e d p vertices p edges p datumsp PartitionCellByPlaneThreePoints point1 v 0 point2 v 2 point3 v 6 cells pickedCells 如果后续对模型进行编辑 增加 删除 特征ID会改变 这时再用原来的语句就报错 解决方法 用该特征的空间坐标来表示 对于点 坐标是唯一的 对于线 面 体 上面的任一坐标都可以 但不要用两个特征的交点坐标 p PartitionCellByPlaneThreePoints point1 10 30 0 point2 40 30 20 point3 40 0 20 cells pickedCells c findAt 25 30 20 ABAQUS脚本编写 定义材料属性mdb models Model 1 Material name Steel mdb models Model 1 materials Steel Elastic table 220000 0 0 35 mdb models Model 1 HomogeneousSolidSection name Section 1 material Steel thickness None pickedCells c p Set cells pickedCells name Set all p mdb models Model 1 parts Door c p cellscells c region p sets Set all p mdb models Model 1 parts Door p SectionAssignment region region sectionName Section 1 offset 0 0 定义材料 steel 定义材料 steel 的工程弹性常数 定义截面属性 steel 将材料 steel 赋予截面 c 可以选取全部的实体 定义集合 Set all 将全部实体定义成一个集合 将截面属性赋予给集合 Set all ABAQUS脚本编写 布置种子a mdb models Model 1 rootAssemblye1 a instances Door 1 edgespickedEdges e1 e1 可以选取全部的边a seedEdgeByNumber edges pickedEdges number 4 通过以上语句布置种子 a mdb models Model 1 rootAssemblypartInstances a instances Door 1 a generateMesh regions partInstances 通过以上语句 把实体划分网格 提交工作mdb Job name Job 1 model Model 1 description type ANALYSIS atTime None waitMinutes 0 waitHours 0 queue None memory 90 memoryUnits PERCENTAGE getMemoryFromAnalysis True explicitPrecision SINGLE nodalOutputPrecision SINGLE echoPrint OFF modelPrint OFF contactPrint OFF historyPrint OFF userSubroutine scratch multiprocessingMode DEFAULT numCpus 1 mdb jobs Job 1 submit consistencyChecking OFF datacheckJob True ABAQUS脚本编写 参考资料ABAQUS帮助手册 AbaqusScriptingReferenceManual 中关于Python部分 曹金凤 王旭春 孔亮 Python语言在Abaqus中的应用 M 机械工业出版社 2012 总结 ABAQUS在建模过程中生成脚本文件 贮存在rpy文件中 提取rpy文件 可以用EditPlus编辑 保存生成py文件 在ABA

温馨提示

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

最新文档

评论

0/150

提交评论