第五章HyperMesh的求解器接口和模板_第1页
第五章HyperMesh的求解器接口和模板_第2页
第五章HyperMesh的求解器接口和模板_第3页
第五章HyperMesh的求解器接口和模板_第4页
第五章HyperMesh的求解器接口和模板_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

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

文档简介

HyperMesh的求解器接口和模板HyperMesh的求解器接口和模板概览关键点:求解器的卡片查找求解器有关的属性练习:从卡片中自动获取数据给求解器有关的属性赋值创建一个可以反复使用的用于创建材料的函数练习:创建一个材料并定义材料更新求解器有关的属性例子:自动定义和更新一组材料求解器的卡片OptiStructMAT1类型材料的卡片示例:上图中每一个输入项都对应了optistruct模型中的一个属性和数据名,这个模型在:

<altair_home>/templates/feoutput/common_nas_os/attribs

其中的一部分定义如下:*defineattribute(E,1,real,none)*defineattribute(G,2,real,none)*defineattribute(Nu,3,real,none)*defineattribute(Rho,4,real,none)查找求解器有关的属性求解器有关的属性可以用

hm_getentityvalue,hm_attributearrayvalue

hm_attributearray2dvalue

命令来查找Thesecommandsuseadata_name_stringtoaccessaparticularpieceofdata.

每一个属性都有一个名称和ID号。例如,我们之前将的MAT1类型的材料的几个常用的属性:*defineattribute(E,1,real,none)*defineattribute(G,2,real,none)*defineattribute(Nu,3,real,none)*defineattribute(Rho,4,real,none)得到一个ID号为11的材料的弹性模型E的值:hm_getentityvaluemats11"\$E"0

练习:从卡片中自动获取数据在OptirStruct模板中获取ID号为1的MAT1类型的材料的Young’sModulus(E),ShearModulus(G),Poisson’sratio(Nu),和density(Rho)显示获得的这些值用到的命令:hm_getentityvaluesetreturn\proctk_messageBox给求解器有关的属性赋值当我们创建一个新的名称为steelMAT1类型的材料时,command.cmf文件记录下的HyperMesh的命令:*collectorcreate(materials,"steel","",11)*createmark(materials,2)"steel"*dictionaryload(materials,2,"C:/Altair/hw10.0/templates/feoutput/optistruct/optistruct","MAT1")*attributeupdateint(materials,1,3240,1,2,0,1)*attributeupdatedouble(materials,1,1,1,1,0,210000)*attributeupdatedouble(materials,1,2,1,0,0,0)*attributeupdatedouble(materials,1,3,1,1,0,0.3)*attributeupdatedouble(materials,1,4,1,1,0,7.85e-009)*attributeupdatedouble(materials,1,5,1,0,0,0)*attributeupdatedouble(materials,1,6,1,0,0,0)*attributeupdatedouble(materials,1,7,1,0,0,0)*attributeupdatedouble(materials,1,341,1,0,0,0)*attributeupdatedouble(materials,1,343,1,0,0,0)*attributeupdatedouble(materials,1,345,1,0,0,0)*attributeupdateint(materials,1,5237,1,2,0,0)

给求解器有关的属性赋值我们看其中的一条命令:*attributeupdatedouble(materials,1,1,1,1,0,210000)这里:materials

拥有这个属性的实体类型1istheIDoftheentity1istheIDoftheattribute1isthesolvernumberoftheattribute1isthestatusoftheattribute0isthebehavioroftheattribute210000isthevalueoftheattribute

我们再去看

optistruct

attribs

模板,就会发现这里ID号为1的属性代表的是弹性模型E或者叫Young’sModulus创建一个可以反复使用的用于创建材料的函数procmat_create{namecolorENuRho}{

if{[hm_entityinfoexistmats$name–byname]}{

hm_errormessage"Material$namealreadyexists"

return;

}else{

*collectorcreatematerials"$name"""$color;

*createmarkmaterials2"$name";

#RetrievematerialIDforusebelow;

setmat_id[hm_getmarkmats2]; *dictionaryloadmaterials2"[hm_infoexporttemplate]“"MAT1";

*attributeupdateintmaterials$mat_id32401201;

*attributeupdatedoublematerials$mat_id1110$E;

*attributeupdatedoublematerials$mat_id3110$Nu;

*attributeupdatedoublematerials$mat_id4110$Rho;

return;

}}练习:创建一个材料并定义材料假设已经打开了OptiStruct模板,创建一个MAT1类型的材料,并且把下面这些属性添加进去:Young’sModulus(E)210000Poisson’sratio(Nu)0.30density(Rho)7.85e-

9可以使用我们之前定义的创建材料的函数更新求解器有关的属性我们也可以更新已经存在的材料的属性

proc

mat_update{mat_idENuRho}{

if{![hm_entityinfoexistmats$mat_id–byid]}{

hm_errormessage"Material$mat_iddoesnotexist"

return;

}else{

*createmarkmaterials2"byid""$mat_id";

*dictionaryloadmaterials2"[hm_info

exporttemplate]"\

"MAT1";

*attributeupdatedoublematerials$mat_id1110$E;

*attributeupdatedoublematerials$mat_id3110$Nu;

*attributeupdatedoublematerials$mat_id4110$Rho;

return;

}}例子:自动定义和更新一组材料

创建下面三个材料,并定义材料的参数:NAMEEGNURHOaluminum10200.340altairium10002000.3400steel2.00E+061.00E+060.37.

温馨提示

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

评论

0/150

提交评论