一、存在的问题:

1.不靠谱的距离约束

距离约束是不靠谱的,随机出现在参考点右边或参考点左边


同心圆想用圆之间的距离约束,随机出现圆比参考圆大或比比参考圆小
解决办法:想办法取到参考对象的几何特性,比如长度,比如圆半径,然后减去我们的参数,这样可确保位置正确
参考官方表达式文档:https://wiki.freecad.org/Expressions#Reference_to_CAD_data
打开属性面板——勾选 显示全部

比如这个同心圆,外面是参考圆,我们想办法取到这个参考圆的直径,然后在参数里扣减一个值,这样可保证里面的圆直径永远比参考圆小。

怎么查到这个参考圆的属性,即直径呢?还是看这个属性面板,点击刚画的草图,这个草图中参考了前面Sketch014,所以我们再点击看看Sketch014的属性

查看Sketch014的属性——<<Sketch014>>.Geometry[0].Radius

在公式编辑器里,键入名称后,键入点号,会出现属性

可以看出geometry是个数组(方括号代表数组),所以输入数组索引号,第一个为0

再输入点号后,出现半径

2.不靠谱的点约束至对象

本来想象着给定这个线段的长度,线段两个端点分别约束在两个相交线上,这个线段与角平分线垂直

但是事与愿违,随机会出现这个是线段跑到两个相交线延长线上去了。并非这个线段长度超过了2条相交线之间的距离

那只能靠几何公式来算出这根线段所在位置的距离定位。距离计算见下图公式。疑问,如果距离不靠谱,那这个距离是否同样会跑到上面去?


这会用的是geometry[1],索引用了1,因为数组的值是下图这样的,逗号隔开的数组索引

3.跨body引用参考丢失

官方新版会好很多

4.参考线、参考面丢失

丢参考线的问题:https://github.com/realthunder/FreeCAD/issues/1028
用参数驱动模型变化后,会导致某些线被分割成2根线了。比如这个闸墩突出去了,导致底板面层那个边线变成了2根。

闸墩这个面也会随着放样后,被分割成2个面了,所以这个参考面也会随机丢失。

所以作者似乎建议我们,不要用这些会可能会发生分割的线/面作为参考,但任何面都会随着模型的叠加上去,导致面被分割,不知道是不是这样,是一个面不要完整地被切割,只要是在面里面切割一部分,是不是没问题。例如下图立方体的上表面,右侧被完整切割,中间圆柱只是切割上表面的一部分,后者应该不会导致面的编号发生变化,所以就不会丢参考面。

5.variables Assembly4装配体约束不起作用?

使用variables有非常方便的地方,如果使用了,可以多次插入同一个单体模型,而拥有不同的参数。修改参数后,装配体的相对关系不会立即跟随改变,需要点击按钮solve and update assembly,(Gui.runCommand('Asm4_updateAssembly',0))

6.全选表格导致卡死,文件特别大

千万不要像excel那样,点击左上角那个全选表格,会卡死。全选后操作居中之类的,保存的文件特别大。
解决办法,新建一个表格,数据拷贝过去,删除这个表格,把新表格命名为旧表格名。
注意,表格名称方面,一个是系统自己命名,后面会自动增加如001 002之类,新表格的系统名是spreadsheet001,则重命名为spreadsheet。也可以用我们的宏,将参数公式中的链接表格名批量更换。

7.参数链接请使用<<Spreadsheet>>.B5……这种label形式

表格不要去重命名,表格单元格也不要做别名。参数链接使用<<Spreadsheet>>.B5……这种带尖括号的label形式,当表格没有重命名的话,默认就是系统内部名称。这种好处是我们更换一个表格,可以把表格再命名回来代替旧表。这样,参数中的链接还有效。
如果单元格做了别名,那么选中,鼠标右键可以一次性全部删除。此时,参数中的链接会自动转为单元格地址了。
对于没有采用<<Spreadsheet>>.B5……这种label形式,而是采用Spreadsheet.B5……这种形式的,我们写了个宏,可以一次性将所有参数链接中的Spreadsheet……加上尖括号。
对于竖向表格转置为横向表格,我们写了宏,一次性可以转掉。
操作步骤也不必去重命名,只对body进行重命名,节约时间。

二、逻辑处理

1 步骤中间插入步骤

场景:有时候删除了中间步骤的物体,导致后面的引用、附加、依赖的对象(比如面)没有了,这时候想在出错步骤前增加一步,以便生成比如一个面,用鼠标右键点击出错那一步前面的步骤,set tip(中文叫 设置结算位置,属于翻译不准确,应该是设置 计算 位置吧?)
如下图所示,pad040出错,原因是它依赖的面被删掉了。于是我在linearpattern006位置 设置计算位置

然后做一个pad041,然后鼠标右键pad040里草图——附加编辑器

选择刚建立的pad的某个面

类似的,将对象移至其他对象之后……等功能,极大地方便我们修改模型逻辑。
场景:比如我们建立的机墩是可以阵列的,进、出水管也是可以阵列的,我们先将机墩建立好了,也阵列了。后面又建立了进水管,又阵列一次,建立了出水管,又阵列一次……可以将他们移动到某个步骤一起,然后做一次阵列。

2 重计算出错,计算卡顿

如下图提示错误,那么将草图30和减料删除即可。逻辑上有错误,按照上面插入计算位置处理。

3 附加出错

比如依赖被删除了,鼠标右键草图——附加编辑器——选择一个新的附加(比如面)
重要:假如附加面(依赖面)选择好了,还是出错,那进入草图,草图中有参考线(参考关联的边……),这个参考线也要删掉重新设置参考线。

4 创建链接

相当于CAD中的参照、参考、引用,不占模型空间。
看青鱼老师的视频【14::00】https://www.bilibili.com/video/BV1yj411r79W
打开要链接进来的模型——在当前模型中点击 创建链接——在link的属性里选择刚打开的模型。

调整一下位置和角度即可。

5 阵列

左侧的目录它到底是代表步骤还是代表某个体?答案是它都代表。
因为比如pad,它是基于上一步基础上的additive。所以,从显示角度来讲,它包含了前面的。
但从阵列操作角度,它每一步都是一个独立的体。
所以,官方版 做阵列前,先多选目录,然后再点阵列按钮。link版则在阵列里可以勾选,甚是便捷。

官方版本无法对阵列后的进一步阵列。
link版可以。如下,对镜像后的继续阵列,还可以不包含原始的。

官方新版线性阵列支持任意方向了。

6 性能

(1)缓存设置大一点
编辑——首选项——常规——缓存
或者不要打开渲染模式,采用flat lines
(2)过程不能有错误,否则影响计算速度,要将错误消灭
有时候虽然有错误,但是它还是生成了,不注意就会一直往下画,一直会卡。
类似下方这个,矩形拉伸到斜面,因为矩形和斜面相交,拉伸长度最小为0,可能会导致错误,但是也成功了。因此这个有可能导致后面的计算出问题,待继续验证。

link不允许,如下

(3)修改尺寸的时候,要关闭自动更新,否则每修改一个尺寸要计算很久……

(4)用link版,建模会快捷很多。官方版没那么灵活

7 圆环放样

注意不同截面的圆环,内外圆绘制顺序要一致,比如都先画内圆,再绘制外圆,这样才可以。否则放样就出问题了,如下,交叉了,会失败。

8 拓扑命名

自从拓扑命名问题解决后,步骤前面的基础模型到草图里修改也变得允许了,不会破坏拓扑关系。
模型采用part和不同body来组织,不同body之间彼此可以参考,就会引入被参考的body。

作者:秦晓川  创建时间:2023-08-20 13:23
最后编辑:秦晓川  更新时间:2024-09-15 10:02