从python scrip运行FreeCAD模块drawing_尺寸标注或TechDrawGui

2024-10-06 11:18:06 发布

您现在位置:Python中文网/ 问答频道 /正文

注意-我没有在FreeCAD内部的python控制台中运行脚本。这一切都是在安装了FreeCAD的docker容器中的python脚本中完成的。

我正在尝试用python脚本为FreeCAD生成的页面生成一个SVG。我有一个形状的视图,没问题,但我不知道如何添加尺寸和保存到SVG。据我所知,有几个选择接近。。。在

  1. 使用旧图纸模块(和图纸尺寸标注):

我可以用我形状的视图制作页面的SVG,但不能添加维度。如果使用的是全尺寸图形用户界面(GUI)是完美的。但是,我似乎无法使用python脚本中的这个模块。导入时,会出现以下错误:

  File "/usr/lib/freecad/Mod/drawingDimensioning/core.py", line 184, in <module>
FreeCADGui.addCommand('dd_help', helpCommand())
AttributeError: 'module' object has no attribute 'addCommand'

我已经尝试了许多修复这个错误的方法,但是找不到任何有效的解决方案。这是否与drawingDimensioning将FreeCADGui作为依赖项有关?FreeCADGui是否缺少addCommand()?如果你知道其他方法,请评论。在

  1. 更新的TechDraw模块:

据我所知,这是可行的(尽管功能比图纸尺寸标注少)。但是我不能从命令行使用TechDrawGui模块。TechDrawGui模块是将TechDraw页面保存到SVG所必需的。当我这样做时,会出现以下错误:

^{pr2}$

但是我可以导入FreeCADGui模块没有任何问题。使用模块和技术绘图似乎太好了。在

谢谢你的阅读。如果你认为你有一种方法可以在一个页面上创建维度并将其全部从python保存为SVG,请告诉我!在


Tags: 模块方法svg脚本视图尺寸错误页面
1条回答
网友
1楼 · 发布于 2024-10-06 11:18:06

是的,你是对的。当在docker容器中运行FreeCAD(或不使用GUI编译)时,许多需要GUI来执行的工作台特性将不可用。但是,您可以通过挖掘FreeCAD代码库、在https://www.freecadweb.org/tracker/my_view_page.php创建问题或使用FreeCAD的核心功能来解决问题。在

关于你的问题,我有个解决办法:https://gist.github.com/amrit3701/8f67c8ea06c74a64bca08a0a48560556

上面的例子创建了一个多维数据集的SVG文件及其维度。为了创建维度,我使用了Draft.makeDimension函数,为了生成部件对象(即Cube)的视图(SVG内容),我使用了Drawing::FeatureViewPart对象。在

在上述链接中运行main.py后输出SVG文件 ouput.svg

相关问题 更多 >