编程技术文章分享与教程

网站首页 > 技术文章 正文

彻底搞懂ProE和Creo的精度系统,拒绝莫名失败

hmc789 2024-11-25 12:45:15 技术文章 2 ℃

相对于其它的三维CAD软件,ProE和Creo的精度系统是个另类存在。其它软件的精度一般都是躲在背后偷偷起作用,对用户而言都是透明的存在。ProE和Creo的精度设置却经常会跳上舞台表演,不但会影响系统的计算时间,而且还会实际影响几何的创建成功与否。

正是因为这点,不少用户在实际的建模过程中,使用不恰当的精度而引起的各种莫名其妙的失败时有发生。比如类似下面视频里的实际案例,就是精度问题所造成的奇怪曲面变形:【引发Creo曲面变形的诡异原因,高手从分析到放弃】

遇到这种充满弦学而无法解释的失败,严重影响了使用者的工作情绪和效率,用一个词来形容,那就是:憋屈。

下面我就对ProE和Creo的精度系统进行一些探讨,力求帮助大家从原理上理解两者所采用的精度系统,避免遇到因为精度问题而造成的特征失败而一筹莫展。

在我们讲解精度之前,我们首先了解一下ProE和Creo有关精度的配置选项:

  • enable_absolute_accuracyyes/no控制“精度”菜单的显示与否;当设为no的时候,只有零件的当前精度是绝对精度的时候点设置的时候才会出现精度菜单,否则不会出现,换言之,你无法进行绝对精度的设置。设为yes则不管当前零件是否使用绝对精度都可以出现精度菜单
  • accuracy_lower_bound1e-3设置精度下限,设定你可以替模型设定的相对精度下限,同时也是绝对精度下限,
  • default_abs_accuracy0.001缺省的绝对精度值。

实际上,对于精度的下限,在proe和creo中我们实际可设的精度并不等于精度下限,而是要比精度下限要小10倍,这个10倍应该是为了安全起见而设置的安全系数,一般来说,这个安全系数在0.1到1之间,对于绝对精度亦然。比如你如果设置精度下限为1e-3,实际操作中你最小可以设置为1e-4。而如果模型最大尺寸为100,那么绝对精度就可以设置为0.01左右而不是0.1左右。


精度的设置

在ProE和Creo中,有两种精度系统,它们分别是相对精度和绝对精度。以Creo为例,要设置精度,我们可以通过菜单【文件】->【准备】->【模型属性】打开【模型属性】的设置对话框,在模型属性对话框中,找到精度那行,通过右侧的【更改】按钮,可以进行精度系统的设置。


在打开的精度对话框中,用户可以从精度下拉菜单中选择【相对】或【绝对】精度系统;也可以直接选择【从模型复制值】,这种情况通常用于外部复制参考的情形,为了保证当前模型从其他模型复制过来的参考不因精度问题而变形引起各种失败,比如原本实体的面组复制过后无法实体化,这时候就把当前模型的精度设置为从参考模型复制值,就可以避免这种情况的发生,特别是在进行模具分模的时候。

但有的用户打开这个对话框时,可能会发现无法选择绝对精度,那是因为没有配置对应的config选项,要打开这个选择功能,需要先设置config选项enable_absolute_accuracy并把值设为yes。下面再来了解下相对精度和绝对精度的区别。


相对精度

顾名思义,相对精度是使用一个和模型大小相对的比例值来设置模型中的最小尺寸,默认是0.0012。这个比例值的含义是这样的:构建一个刚好能完全包含模型中所有实际几何(包括实体、曲面、曲线、集中点等)的最小长方体,那么就可以把这个长方体的对角线作为模型的最大轮廓尺寸(最大对角线),那么用这个尺寸值乘以相对精度值等到的尺寸,就是理论上模型中可以存在的最小几何尺寸。而为了能适应各种类型的几何,还添加了一个值在0.1到1之间的安全比例,这个比例乘以刚才得到的最小尺寸才是真正在模型中允许的尺寸值,小于这个尺寸值的几何都会被认为零几何,或者说不存在的。

举个简单的例子,有个100x100x2的薄板,那么模型最大对角线长度大概是140m左右,那么在我们的模型中,允许的理论最小尺寸大概就是140*0.0012=0.17左右,然后再乘以安全系数0.1,那么模型中实际可以存在的最小尺寸就是0.017。模型的最大对角线尺寸在creo中可以通过【工具】选项页中【调查】溢出菜单中选择【模型大小】来查看,creo会在模型上创建一个长方体轮廓框和对角线,大小结果会在底部的信息区显示

如果我们在其中一条边上倒圆角,输入0.01作为圆角大小,这时系统就会提示你最小的圆角必须是0.017以上(有可能比这个值略大,比如0.02),在这里0.017这个尺寸就是我们这模型可以辨别的最小尺寸,凡是小于这个尺寸的几何将会认为是零值,比如圆角、间隙、短边等等。当然,安全系数并不总是等于0.1,具体的确定方法我们也无法清楚的确定,我们知道的只能是一个大概范围,但这已经足够我们用来进行判断我们的精度系统是否合适了。



为了加深我们的理解,我们继续在这个模型上进行特征的创建,首先我们在其上创建一个直径0.05的圆柱拉伸,你会发现,这个创建可以成功再生(因为0.05>0.017);不过,虽然特征可以成功再生,但是这个圆柱的显示变成了多边形截面了,这也是因为太接近最小尺寸的缘故,要改善这个情况,如果提高显示质量依然无法改善的话,那么就只有提高模型的精度。


把这个尺寸改为0.01的时候,你就会发现这个特征失败(因为0.01<0.016)了,虽然单纯从建模原理上它不应该失败.


而我们如果想解决这个失败,可以采用提高精度的方法,比如把相对精度改为0.0001,但碰到这种极端的情况下,我们一般采用绝对精度的方法更为合适。


绝对精度

相对于相对精度,绝对精度对于最小尺寸的定义和模型的大小无关,也就是说,不管模型尺寸如何,当设定绝对精度后,那么模型的最小尺寸就只和绝对精度有关而和模型无关,这就是绝对精度名称的来由。

比如对于上例中的模型,假设我们把绝对精度设为0.01,那么就可以成功解决因为精度而引起的特征失败。

绝对精度除了应用于这种极端尺寸比例的模型外,一般还用于装配的零件间有几何参考的情况,为了避免因为不同零件的精度不同而导致在复制几何的时候出现不必要的非理性失败,通常就会使用绝对精度以保持不同零件之间具有相同的精度。我们再用一个例子来演示这种情况所带来的问题。首先我们创建一个装配,装配中有一个壳体零件,尺寸大概是250x120x40,还有一块PCB,PCB上有一排直径0.5的装配孔。我们现在想在壳体零件中复制PCB的一个底面以方便作内部结构的参考,壳体用相对精度0.01,PCB为0.0012。



在孔径为0.5的时候,我们复制过去的平面正常,正如我们期望的,四个装配孔都顺利在壳体上反映出来。但当我们把孔径改为0.2再生的时候,你就会发现在壳体中四个孔就会消失,而我们复制的方法其实根本没有改变,这是什么原因呢?


当然,这其中就是两个模型的精度不一致作怪。在壳体中,最大尺寸大约300,相对精度0.01,所以最小尺寸大概为300*0.01*0.1=0.3左右;而对于PCB而言,最大尺寸大概50,相对精度0.0012,所以最小尺寸大约为50*0.0012*0.1=0.06,所以对于0.2的孔完全没有问题,但是这些孔复制到了壳体后,因为它们比壳体的最小尺寸还小,所以系统就完全不认为其上存在孔了,这也就是孔消失了的原因。同样的道理,假如我们的模型中有使用这个孔作参照的几何的话,那么就会造成了失败,这就是有的时候不同零件件复制曲面会失败的原因。


要解决这个问题,我们可以把壳体的精度直接改为绝对精度并且让它跟随PCB的精度,因此精度设置可以选择“从模型复制”并指定PCB便可。

这种情况尤其用于分模的装配之下,因为对于分模的零件不少情况都是输入的模型,模型本身就存在大量的细小边或细小间隙,当从一个零件复制到另一个零件的时候这些细小边或间隙就会消失,从而在新的零件中所生成的几何就和原始几何发生了偏差引起失败。


总结

两种精度各有特点,使用相对精度,系统自动根据模型的大小设定最小尺寸界限,这样在大多数的情况下都能在兼顾模型的情况下减少计算资源的损耗和提高系统运算速度;因为在一般的情况下,一个大模型不太可能有很小的特征,比如一个10几米的机床上恐怕你找不到一个1mm的孔或5mm的倒角,但某些特殊情况下还是会存在的,比如2米的汽车内饰件上就很可能有R1的圆角,在这种情况下,使用相对精度就会带来麻烦。

当然,随着ProE和Creo处理的模型越来越复杂,电脑硬件越来越先进,相对精度相比绝对精度所节省的那一点点资源已经变得无足轻重了,为了避免精度问题对模型造成干扰,特别是现在越来越多的高精度精密仪器的设计,PTC也把在ProE中默认所采用的相对精度系统改成了现在Creo的绝对精度系统了。


以上内容为黄光辉IceFai原创出品,欢迎大家阅读和留言评论。如果你觉得还有帮助,顺手点个赞支持下呗~

Tags:

标签列表
最新留言