- 积分
- 3
- 注册时间
- 2009-9-25
- 仿真币
-
- 最后登录
- 1970-1-1
|
一直以来,对于二次开发都有着一个信念:凡是手动操作实现的CAE操作,都能实现内核自动前处理建模,期间simwe论坛很多的朋友帮助过我,更让我一直坚定地这样想,期间解决了许许多多繁琐的问题,基本完成了一个新的项目所有的问题。
但有一个问题一直困扰着我,在论坛中曾经提过,我先简单的描述一下这个问题的普遍意义:
手动的时候,我们要选取某个零件的某些特征,比如用在建立集合上,在rpy文件中会对应相应的语句,一般情况下,拷贝到自己的主函数里头,设出来重要的参数用到界面输入,一切OK!
对于一般的模型这是没有问题的,但是对于orphan mesh特征,节点和单元的信息可以说是离散的,这时候选取一些东西的时候,我经常用简单算法嵌到函数里头,比如提取某个面上的所有节点用于定义边界。建立Set集合,我所遇到的问题总会有办法来做,遍历所有的节点或者单元,慢可能会有,但是凑凑呵呵会实现的,做过的朋友应该有这个体会。
但是这里出现了问题,比如建立orphan mesh三维部件的外表面集合,不用Set了,用的是Surface,但是ABAQUS里这块,定义的时候格式十分固定,如下:
p.Surface(face1Elements=……,face2Elements=……,face3Elements=……,face4Elements=……,face5Elements=……,face6Elements=……,name='1')
这个对象类型必须从六块来赋值,手动的时候做没有问题,我鼠标一选ok,但是手动生成的语句却是具体的数。
按照一直以来二次开发的做法,避开数,建立一个小算法判断,最终提取出来所有的小单元的外表面。
尝试过一次,通过遍历,把三维的实体(不是标准三维立方体)外表面都提取出来,赋到face1Elements里头去,结果提取任务说面的法向没定义内还是外。
解决这个问题想了好几个月,总觉得有好的办法解决,这样对于一个特定对象,我们知道总有参数化和自动化的一般步骤。 |
|