【CATIA参数化设计】如实时更新零件下几个不同密度的几何体的重心的位置?

大家好,今天分享一个非常重要的知识点。

在CATIA软件中,我们可以很方便的测量零件或装配体的重量,并求出他们的重心点。并且对于一个多几何体的零件,我们也可以求出此零件下 某几个 几何体的重心点,只需要点击"秤砣"测量重量命令,然后按住ctrl键依次选择这些几何体,然后点击窗体下的创建几何图形按钮。

【CATIA参数化设计】如实时更新零件下几个不同密度的几何体的重心的位置?的图1

这个时候出现如下[创建几何图形]对话窗体,我们可以发现[关联的几何图形]这个选项是灰显的,也就是说我们只能创建一个无关联的重心点特征,这个被创建出来的点是隔离的,不带参的(而当我们测量一个 单独 的几何体的重量的时候,[关联的几何图形]这个选项不是灰显的,此时我们可以更新body的形状,并实时获取他的重心点的位置)。

【CATIA参数化设计】如实时更新零件下几个不同密度的几何体的重心的位置?的图2


但是有的时候做设计,会有这样一种情况

在一个多几何体的零件中,我们给每个几何体赋予不同的材质密度,最后我们需要统计 其中几个几何体 的重量并求出其重心位置。但是呢,关键的是:求出重心点并不是我们的最终目标,我们的目标是通过调整这几个几何体的形状(当然调整不是随意的,是有界限的)来获取一个合适的重心位置,使这几个几何体的重心点处于我们限定的一个理想区域内(如下图)。

【CATIA参数化设计】如实时更新零件下几个不同密度的几何体的重心的位置?的图3

如果给定三个几何体形状的限定范围,同时又给定重心点的变动范围,诸如此类的问题,如果我们只是通过手动调整几何体的外形,反复调试求解重心点位置来实现设计要求,会耗费很长时间,效率很低,解决这个问题,通常会用到CATIA知识工程的Optimization 优化设计模块,这个功能会自动的给我们去执行在限定区域内调整x,y,z自变量,获取f(x,y,z)因变量的功能,即f(x,y,z)的求解问题,但是较为复杂,会用的老铁并不多,以上听不懂可以略过。

零件下多几何体重心点的快速求解,我们给出两种方案,分别从二次开发与参数化设计的角度。

既然手动调整几何体1,几何体2,几何体3的外形,然后用重量测量工具求出他们的重心点,将其重心点限定在一个特定区域,这个过程很繁琐,需要反复操作来实现最终目的。所以我们不妨将这个连续性的动作用CATIA 二次开发代码来快速实现,或者将求得的特征点的三坐标数值赋予关联性的参数(即参数化设计)。

对于零件下多几何体的情形,嗅觉比较灵敏的老铁会发现,我们创建完了重心点之后,结构树上存在的测量-惯性包络体对象 却是可以随着几何体外形调整不断实时刷新的,而惯性包络体下存在的测量参数Gx,Gy,Gz即为重心点三坐标数值,为我们实现参数化和二次开发提供了可能。

【CATIA参数化设计】如实时更新零件下几个不同密度的几何体的重心的位置?的图4

CATIA二次开发的方法:

我们可以通过CATIA二次开发代码获取到Gx,Gy,Gz这三个重心点坐标值,然后通过在hybridfactory片体工厂对象中创建点的方法AddNewPointCoord,来创建一个重心点,与此同时删除之前的重心点,创建点的语句如下,二次开发的方法稍麻烦,这里只是给大家整理一种思路,学习而已。

Set CenterOfGravity= hybridShapeFactory.AddNewPointCoord(Gx,Gy,Gz)

CATIA参数化的方法:

参数化的方法更为简单一些,也更为实用。既然对于多几何体的情形只能创建无参的重心点,那我们在创建完毕之后就手动的给其赋予参数,并让其与测量结果中的重心参数Gx,Gy,Gz相关联。

双击被隔离的重心点,打开了点定义对话窗体,将点类型切换为[坐标],并在X,Y,Z右侧的输入框中右键单击后,点击编辑公式,打开公式编辑器,然后选择测量里的Gx,Gy,Gz,最终点击确定,就给断参的点赋予了参数,并且与测量结果产生了link(都是参数化设计的基本步骤,不过多赘述)。

既然产生了link关系,那么后续我们再去调整这三个几何体的外形,调整完毕,重心点的位置会直接发生实时的更新,这样就方便很多。

【CATIA参数化设计】如实时更新零件下几个不同密度的几何体的重心的位置?的图5

【CATIA参数化设计】如实时更新零件下几个不同密度的几何体的重心的位置?的图6


整篇帖子内容很多,也说了很多废话,主要目的就是想让大家了解这样的一种设计需求:多几何体零件设计,限制零件的重心点在某一片区域。然后针对这种需求我们给出解决方案。

文章来源:catia小蚂蚁

默认 最新
当前暂无评论,小编等你评论哦!
点赞 评论 收藏
关注