首页/文章/ 详情

HyperMesh与ANSA之间模型转换

3月前浏览3242

来了,来了,水文又来了。

hypermesh和ANSA都是流行的CAE前处理工具,具有丰富的功能和广泛的用户群体。皆适用于各种复杂的模型处理。


然而,它们在处理特定问题时可能存在局限性,当所搭建模型比较复杂,需要结合两个软件的长处进行搭建,故模型会存在HyperMesh和ANSA中导入导出的情况,但是软件之间模型转化会存在部分问题。找了一下没找到相关的文章,介绍两个软件之间关于模型转换的具体步骤,故分享一下。


项目是基于Nastran求解器搭建的,所以后续的内容是基于在Nastran的bdf文件介绍。


两个软件依靠各自的框架都能很好处理模型,但是这两个软件各有特点,不能完全识别对方的所导出的网格文件,默认设置的情况下会存在以下几种情况,1、collectors的信息丢失包含comps,property,assembly,mats;2、属性丢失或存在一个零件赋予多个属性;3、属性错乱(要是丢失了就很容易发现,但是关系混乱了不专门看就很难发现)。


HyperMesh的导入导出设置对于ANSA的读取,基本没什么可以设置的地方,保持默认即可,所以突破点在于ANSA的的设置,经过测试以下设置方式,再配合二次开发程序修正模型,能尽量保留正确的信息。


模型导入:

这是在Hyper Mesh中显示的模型


如果需要在ANSA中导入那么需要进行如下设置

导入模型的时候,勾选Read HyperMesh Comments选项,能够解决大部分情况的模型转换,至少模型层级是能保证的。

到导入模型完成后,检查Part Browser的模型结构,如果结构如下图所示,以文件名为顶层装配这样导入零件的名字就会丢失,但是不同的模型处理方式不一样。

可以尝试对Advanced内的选项“Perform merge on conflicts”切换执行操作,如果不能解决建议将模型导入Hyper Mesh看下是否正常显示,检查Hyper Mesh导出时候是否没有勾选导出Comments 内的Hyper Mesh  选项。



正确导入后模型信息应该如下图所示。


模型导出:

模型导出的正常情况下勾选Output as Hypermesh Comments即可。



如果模型导回Hyper Mesh发现装配层级不正常,或者存在其它问题,可以将Other Options内的三个默认选项取消勾选,应该能保留住装配层级


Hyper Mesh导入的时候默认勾选了Read ANSA Comment选项,当不能正确读取时,建议检查这个选项是否勾选上了。


当然这个方法可能不是最正确的,有知道的小伙伴可以分享一下呀,让大家没必要把时间消耗在这种毫无意义的事情上。




这就又回到本职工作上了,在面对一些重复性有理可循的问题时,二次开发程序将发挥重要作用。比如可以开发一下相关内容,模型Property与Comps的关联性是问题最多的地方,反倒是工况这些还能保持很好。

1、检查模型是否存在Misc的Component。

2、检查Beam Collector名称以及Config类型,因为ANSA的BEAM截面是直接在属性中创建的。

3、检查是否存在UnDefined的Collector。

4、检查Comps的是否赋予了多个Property,这种情况在模型导入的时候会有warning提示,但是模型计算的时候不会报错,但是计算结果是不准确的,所以导入模型的时候不仅仅需要关注Error,warning也同样需要关注。

5、检查未使用的Property,因为会存在模型原始的Property依然存在于模型中,但是在导入的时候又创建了很多无效的Property,然而程序将Comps关联到了无效的Property。



继续分享一个Hypermesh高版本转换低版本存在的问题的解决办法


HyperMesh高版本新增了“Load Step Inputs”的类型,像模态分析的设置就放在了这个里面设置。

当在默认情况下导出模型的时候,这就带来了一个问题,低版本的识别不了这个元素就会将所有单元放在一个comps中。解决办法是高版本的导出模型勾选“Export HMMOVE and HMDPRP”选项,低版本的即可识别成功。


来源:TodayCAEer
HyperMeshNastran二次开发ANSA装配
著作权归作者所有,欢迎分享,未经许可,不得转载
首次发布时间:2024-08-14
最近编辑:3月前
TodayCAEer
本科 签名征集中
获赞 18粉丝 29文章 249课程 0
点赞
收藏
作者推荐

深入探索Tcl:从面向过程到面向对象编程

Tcl(ToolCommandLanguage)是一种解释型的脚本语言,同时也是支持面向对象编程的语言。它提供了多种编程范式,包括面向过程、面向函数、基于命名空间的函数以及面向对象。不过需要注意的是,Tcl中的面向对象编程是基于命名空间和命令的,并没有严格的类和对象的概念。阅读本篇文章,您将了解到:1、tcl语言关于面向对象的语法格式首先,让我们看一段面向过程的Tcl代码:procgreet{name}{puts"Hello,$name!"}setname"Alice"greet$name上述代码定义了一个过程greet,并通过传递参数name实现了输出字符的功能。然后,我们给name赋值为Alice并调用greet过程。接下来是面向函数的Tcl代码:namespaceevalGreeter{variablenameprocset_name{new_name}{set::Greeter::name$new_name}procgreet{}{puts"Hello,$::Greeter::name!"}}Greeter::set_name"Bob"Greeter::greet上述代码使用命名空间(namespace)和变量(variable)来实现了函数式编程。通过命名空间,我们将相关的函数和变量组织在一起。这个例子中,我们使用Greeter命名空间,定义了set_name和greet函数。使用Greeter::set_name函数设置name变量的值,然后调用Greeter::greet函数来输出字符。现在,让我们看一段基于命名空间,共享变量的代码:namespaceevalGreeter{variablenameprocset_name{new_name}{variablenamesetname$new_name}procgreet{}{variablenameputs"Hello,$name!"}}Greeter::set_name"Charlie"Greeter::greet该代码与之前的面向函数的例子类似。不同之处在于,我们使用了variable命令来声明了name变量,这样就可以在所有函数中访问它。最后是基于面向对象的Tcl代码:itcl::classGreeter{privatevariablenameconstructor{new_name}{setname$new_name}methodset_name{new_name}{setname$new_name}methodgreet{}{puts"Hello,$name!"}}setgreeter[Greeternew"Charlie"]$greetergreet在这个示例中,我们使用itcl模块创建了一个名为Greeter的类。类中包含一个私有变量name、一个构造函数以及两个方法set_name和greet。构造函数用于初始化name变量,set_name方法用于设置name的值,greet方法用于输出语句。通过实例化Greeter类,并在构造函数中传递初始名字为"Charlie",我们创建了一个名为greeter的对象。然后,我们调用对象的"greet"方法,输出"Hello,Charlie!"。接下来就是套话了。面向对象编程的主要优势在于它提供了更好的封装性、模块化和可维护性。通过将相关功能组织在一个类中,我们可以更容易地管理代码,减少代码之间的依赖性,并且可以轻松地创建多个实例,实现更高级的功能。在大型项目中,面向对象的编程范式可以提高代码的可读性和可扩展性。项目规模、团队合作、代码的复用和维护等。但对于二次开发而言代码量不大,使用基于命名空间的函数也是同样适用,通过source函数,同样能实现继承以往代码的效果。不同命名空间重写函数,同样能实现多态的效果。关键是结构还简单,写起来也快。以下是关于HyperMesh面对对象的小案例。packagerequireItclif{[::itcl::findclassNodeOperations]!=""}{itcl::deleteclassNodeOperations}itcl::classNodeOperations{#定义实例变量variablenodelist#构造函数内容constructor{}{}#设置实例变量methodSelectNode{}{*createmarkpanelnodes1""setnodelist[hm_getmarknode1]}#使用实例变量nodelist创建中点methodCreateCenter{}{*createmarknodes1{*}$nodelist*createbestcirclecenternodenodes1010}}#使用NodeOperations类创建一个对象setnodeOps[NodeOperations#auto]#调用SelectNode方法,设置实例变量nodelist$nodeOpsSelectNode#调用CreateCenter方法,它会使用实例变量nodelist$nodeOpsCreateCenter来源:TodayCAEer

未登录
1条评论
神经蛙
签名征集中
28天前
请问导出fem文件出现的材料属性丢失可以通过设置解决吗
回复
课程
培训
服务
行家
VIP会员 学习 福利任务 兑换礼品
下载APP
联系我们
帮助与反馈