




已阅读5页,还剩6页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1 / 11二次开发自我总结 (4000 字) Odb 结构如图上所示,可以很明显地分成两部分:ModelData、ResultData。所以要获取节点信息,材料信息,part 信息以及截面信息得用到, ;而要提取应力,应变等结果就得用到。我们先一步步看看如何查看 odb 中的信息,最后汇总一下就知道如何写一个有特定功能的脚本了。首先我们需要用到读取 odb 文件的 python 包,得用到import。fromodbAccessimport*打开你要读的文件,这里就是viewer_: odb=openOdb 查看这个 odb 文件的具体信息:printodb输出如下:可以显示各种数据的储存格式,其中可以看到 OdbAssemblyobject 存放当前 odb 的 Assembly 相关信息,而其他的 Repositoryobject 表示当前对象存储在类似字典类型的数据结构中。整体用括起来表示这应该是一个对象,而后面里面的都是这个对象的成员,他们可以用来获得引用,下面逐一查看。察看 analysisTitle:察看rootAssembly:assembly=输出如下:connectorOrientations:Repositoryobject,2 / 11ConnectorOrientationArrayelementSets:Repositoryobject,object,datumCsyses:elements:OdbMeshElementArrayobject,instances:Repositoryobject,name:Assembly-1,nodeSets:Repositoryobject,nodes:OdbMeshNodeArrayobject,object,pretensionSections:OdbPretensionSectionArrayrigidBodies:OdbRigidBodyArrayobject,sectionAssignments:SectionAssignmentArrayobject,surfaces:Repositoryobject)继续:,即可得到 assembly 的名字 Assembly-1 我们详细查看几个数据:3 / 11nodes,instances,nodeSetsnode=看到输出为 0,odb 中 node 信息应该单独存在每个instance 中的。isnt=输出:PART-1-1:OdbInstanceobjectinst=instPART-1-1printinst输出:Repository可以看到上面列出了这个 instance 的各种信息上面定义的输出:CENT:OdbSetobject,ETOP:OdbSetobject,FOAM:OdbSetobject,PMASS:OdbSetobject,UPPER:OdbSetobject只有 ,这个表示这个对象是一个字典类型的数据,得用XXXYYY来获得引用,比如CENT输出:CENT.elements输出:OdbMeshElementobject,OdbMeshElementobject,OdbMeshElementobject,OdbMeshElementobject,OdbMeshElementobject,OdbMeshElementobject,OdbMeshElementobject,。 。 。 。继续深入:Ele=CENT.elements0printEle4 / 11输出:,instanceName:PART-1-1,instanceNames:,label:1,sectionCategory:SectionCategoryobject,type:CAX4)可以看到单元集合中每个单元的详细数据,编号,节点,单元类型等,注意这个也是一个对象括起来的) ,必须用来引用,如。上面定义的 nodesetnodeset=输出:ALLN:OdbSetobject,BOT:OdbSetobject,CENTER:OdbSetobject,N1:OdbSetobject,N19:OdbSetobject,N481:OdbSetobject,N499:OdbSetobject,PUNCH:OdbSetobject,TOP:OdbSetobject我们也可以用类似上面读 elementSets 的方法读取 nodeset 中的每一个具体 set 的信息的 node 信息 node=node0printnode1输出:,instanceName:PART-1-1,label:1)这是这个 instance 的第一个节点的信息,节点编号、初始坐标、所属 instance,它是用括起来的所以的用来获得引用,比如 coord=coord0printcoord,coordx通过上面的方法就可以得到 model 中的 node 信息,用类似的方法也可以看到 Model 中的 element 信息。上面定义的 nodesetnodeset=printnodeset5 / 11输出:ALLNODES:OdbSetobject,看来他也没有特别定义什么节点集合。nodeset=nodesetALLNODESprintnodeset 输出很多:,),isInternal:False,name:ALLNODES,nodes:,instanceName:PART-1-1,label:1)这个时候我们就可以看到这个 nodeset 中的第一个节点信息了。下面的语句可以提取具体信息:得到节点坐标0.300.0.得到节点编号 1查看 material 信息mat=printmat输出:FOAM:Materialobject可以看见这个模型中唯一的材料类型 FOAM,用XXXXXX继续查看:mat=matFOAMprintmat6 / 11输出:可以看到这个模型中定义了density,viscoelastic ,hyperfoam 等属性继续深入,用:dens=printdens输出:,),temperatureDependency:OFF)继续:values=00printvalues得到密度值:1e-11用同样的方法可以得到其他想要的材料定义值4查看 step 信息,这其中储藏了 odb 单元应力应变以及节点位移等等值。首先得说明的是应力应变时基于积分点的,只能在单元上查询;而位移以及反力都是基于节点的,必须在节点上查询。step=printstep输出:Step-1:OdbStepobject,Step-2:OdbStepobject,Step-3:OdbStepobject可以看到一共有三个 step,这里我们示范看一下 step-3的计算数据7 / 11step3=stepStep-3printstep3输出:,description:Removeload.,domain:TIME,eliminatedNodalDofs:NodalDofsArrayobject,frames:OdbFrameArrayobject,historyRegions:Repositoryobject,inertiaAboutCenter:,inertiaAboutOrigin:,loadCases:Repositoryobject,mass:,massCenter:,name:Step-3,nlgeom:True,number:3,previousStepName:Step-2,procedure:*DYNAMIC,retainedEigenModes:,retainedNodalDofs:NodalDofsArrayobject,timePeriod:,totalTime:)可以看到这一步的具体信息,可以把它打印出来指的是当前步的 time,而 totalTime 指的是该步以前的所有步所经历的总时间。frames 中储藏的才是我们的计算结果frame=printlen输出 27可以看出,这一步总共有 26 个增量步我们现在看第 24步时候的计算结果:8 / 11frame24=frame24printframe24输出:其中记录了该增量步的具体信息:incrementNumber,frameValue,可以通过来获得引用,比如就输出:查看计算结果数据:output=printoutput输出:A:FieldOutputobject,AR3:FieldOutputobject,COPENTARGET/IMPACTOR:FieldOutputobject,CPRESSTARGET/IMPACTOR:FieldOutputobject,CSHEAR1TARGET/IMPACTOR:FieldOutputobject,CSLIP1TARGET/IMPACTOR:FieldOutputobject,LE:FieldOutputobject,:FieldOutputobject,RM3:FieldOutputobject,S:FieldOutputobject,U:FieldOutputobject,UR3:FieldOutputobject,V:FieldOutputobject,VR3:FieldOutputobject9 / 11可以看到这里面A,AR3,CPRESS,CSHEAR1,RF ,S ,V,U 等等数据我们查看一下 U 和 S 两个最常用的uu=outputUss=outputSprintuu输出:,componentLabels:,description:Spatialdisplacement,isComplex:OFF,locations:FieldLocationArrayobject,name:U,type:VECTOR,validInvariants:,values:FieldValueArrayobject)printss输出:,componentLabels:,description:Stresscomponents,isComplex:OFF,locations:FieldLocationArrayobject,name:S,type:TENSOR_2D_PLANAR,validInvariants:,values:FieldValueArrayobject)具体的值都储存在 values 里面u=printu0输出:,dataDouble:unknown,elementLabel:None,face:N10 / 11one,instance:OdbInstanceobject,integrationPoint:None,inv3:None,localCoordSystem:None,localCoordSystemDouble:maxInPlanePrincipal:None,unknown,magnitude:None,midPrincipal:None,maxPrincipal:minInPlanePrincipal:None,minPrincipal:None,mises:None,nodeLabel:1,outOfPlanePrincipal:None,position:NODAL,precision:SINGLE_PRECISION,press:None,sectionPoint:None,tresca:None,type:VECTOR)这是 1 号节点上的位移值,用可以读取具体数据:printu0.data得到-+01printu0.Magnitude得到s=prints0输出:,dataDouble:unknown,elementLabel:1,face:None,instance:OdbInstanceobject,integrationPoint:1,inv3:-11 / 11,localCoordSystem:,),localCoordSystemDouble:unknown,magnitude:None,maxInPlanePrincipal:,maxPrincipal:,midPrincipal:,minInPlanePrincipal:-,minPrincipal:-,mises:,nodeLabel:None,outOfPlanePrincipal:precision:,SINGLE_PRECISION,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025版范文大全员工宿舍租赁合同变更及通知协议
- 二零二五年度呼和浩特市住宅小区房屋租赁合同范本
- 2025年度电工电气设备研发与制造合同
- 2025年度五星级酒店客房全面服务外包合作协议
- 二零二五年度城市地下综合管廊工程承包协议范本
- 二零二五版现代农业设施采购与安装服务合同
- 2025版城市家庭农场家禽定制采购禽类供应合同
- 2025版企业年会保密承诺协议
- 二零二五年度工程担保与担保合同
- 心理健康记录课件模板
- 2024年湖南人文科技学院招聘笔试真题
- 实验室人员授权管理制度
- 美容师客户沟通情绪管理
- 基于教育心理学的教师情绪管理策略
- 2025年广西公需科目答案03
- 2025年口腔医学专业毕业考试试题及答案
- 廉洁自律准则课件
- GB/T 45577-2025数据安全技术数据安全风险评估方法
- 滴滴车个人租车合同协议
- 亚低温治疗在危重患者的使用
- 中国瓷砖胶行业市场深度调研及发展趋势与投资前景研究报告2025-2028版
评论
0/150
提交评论