将零件参数表格统一到组装文件中来★

问题:零件的参数表如何都引入到组装文件里来,直接在组装文件里修改这些零件参数,从而避免到一个个零件里去修改参数?
特别是对于程序而已,得通过解析组装文件,取得零件文件名,再去解析零件文件,修改零件文件的表格参数(比如零件的尺寸),保存,再刷新组装文件,修改组装文件的表格参数(比如阵列数量等),最后导出组装文件模型。
直接在part下插入表格,到装配体里插入单体文件后,自动带入装配体。
下图是没有在子模型里插入variable,则装配体里的子模型所带的表格,点击后会跳入打开的子模型文件里,而不是当前装配体文件内。

根据作者的提示,实践后是可以的。
https://github.com/Zolko-123/FreeCAD_Assembly4/issues/485
1.打开的单体文件,切换到A4工作台,在part下插入add variable。如果直接在body里插入variable是不行的!!

2.打开装配文件,点击create a variant part,选中刚打开的单体文件(零件),这个带variables,否则就不显示出来


3.点击装配体里子模型的的表格,就是在当前装配体里操作的,不会跳转到另外的子模型文件中去。
A4结合Configurantion Table的效果,configurationtable方法参见2.1节设置即可。

————以下作废!
下面的方法存在循环引用,避免使用
3.在组装文件中新建一个表格,将零件的表格一一拷贝进来,再在组装文件里,将每个Part_var下面的表格里数据,引用刚才建立的表格中的数据,这样可以将零件表格统一到一个表格中来,可惜无法保存,会提示循环引用。但是好像不影响使用,有兴趣的试试。
在代码里,可以遍历各个零件表,修改参数,虽然无法统一到一个表中来。

程序调用组装文件问题

还剩下一个问题,就是在headless模式下,用python调用打开组装文件,修改参数表,那么recompute()后,能否得到想要的结果呢?实际上不行。只能在python命令来执行宏或python文件。
那么freecad执行python程序,如何带参数?用文件的形式作为输入吗?例如python mypython.py 参数??
实际上freecadcmd执行的python文件也可以带参数:python fcgenmin.py ebox.FCStd test.glb

parser = argparse.ArgumentParser(description=descr)
parser.add_argument("filename", type=str, help="An FCStd file name")
parser.add_argument("output", type=str, help="The output file")
args = parser.parse_args(sys.argv[2:])
作者:秦晓川  创建时间:2024-03-26 11:02
最后编辑:秦晓川  更新时间:2025-06-20 14:29