问题标签 [freecad]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
30 浏览

python-3.x - 宏忽略参数更改

给定一个FreeCAD 模型,其中包括

  • 电子表格“参数”,其中一个单元格别名为“半径”,值为 50
  • 具有 Radius=parameters.radius 的二十面体(来自 Pyramids-and-Polyhedrons 宏)
  • 一些对于这个问题来说并不重要的面部粘合剂,

下面的 python 脚本打开这个模型,将电子表格中的半径单元格更改为 15,在电子表格上调用 recompute(),在二十面体上调用 touch(),在文档上调用 recompute(),最后对二十面体进行镶嵌。镶嵌网格中索引 11 处顶点的 z 坐标恰好等于二十面体的半径。根据参数更改,我期望它会更改为 15。但它仍然保持在原来的值 50。我做错了什么?

据我了解,应该在重新计算文档期间调用宏的执行方法。

当我用 pudb 跟踪 Document.recompute() 时,我只看到它执行 Facebinder.execute() 而不是 Icosahedron.execute()。从 Document.recompute() 到 Facebinder.execute() 方法的路径在 pudb 中不可见;它立即在 Facebinder.execute() 中停止。

0 投票
0 回答
194 浏览

python - 如何从 python 中的 STEP 文件创建图像

我目前有一个使用freecad API 的python 脚本来读取一个步骤文件并将一些数据发送到一个带有xlwings 的excel 文件(体积、尺寸等)。我还想添加 STEP 文件的视图。有没有办法使用 python 从步骤文件中获取图像?

我在 freeCAD 文档中看到你可以使用这样的东西:

FreeCADGui.ActiveDocument.ActiveView.saveImage(filePath)

但我没有运行 GUI,所以这个选项目前对我不起作用。

0 投票
0 回答
94 浏览

python - 是否可以在 python 程序中嵌入 Blender/Freecad?

我正在使用 python 编写一个程序,其中需要一些 3D 绘图功能,例如导入 OBJ 文件、在不同视图中查看 3d 对象等

我知道 Blender 和 Freecad 可以使用 python。是否可以将它们嵌入到纯 python 脚本中,这样我就可以在不打开 Blender 和 Freecad 本身的情况下编写自己的程序?正如我看到的那样:

另外,有没有这方面的文件?

0 投票
0 回答
123 浏览

python - 如何通过 MacOS Terminal shell 下载 FreeCAD Python 模块?

我正在尝试使用 FreeCAD Python 软件构建 3D 模型来模拟通过材料的热传递。我目前正在尝试创建一个网格来模拟同质立方体,以确保一切正常。我需要下载 FreeCAD 模块以使“从 FreeCAD 导入基础,newDocument”行工作。我尝试在终端 shell 中输入“conda install FreeCAD”,但响应是存在“冲突”。FreeCAD Python 模块还能如何安装?

最终目标是生成格式与 SfePy 软件兼容的网格。

这是我试图运行的代码:

提前致谢。

0 投票
1 回答
973 浏览

python-3.x - 如何在 Python 虚拟环境中嵌入 FreeCAD?

如何设置一个嵌入了 FreeCAD 库的 Python 虚拟环境,以便能够作为模块导入脚本?

在使用使用 FreeCAD 库创建和修改 3D 几何图形的 Python 脚本时,我想避免使用 FreeCAD GUI 以及依赖于在系统上安装 FreeCAD。我希望 Python 虚拟环境可以做到这一点。

我在 Debian 10 的 virtualenv 中使用 Python 3.8 在 PyCharm 2021.1.1 中工作。

我开始使用 FreeCAD 文档作为嵌入脚本的基础:

https://wiki.freecadweb.org/Embedding_FreeCAD

在一次尝试中,我从 Debian 下载并解压了 .deb 包,注意获取每个依赖项所需的正确版本。在另一次尝试中,我复制了 FreeCAD flatpak 安装的内容,因为它应该包含 FreeCAD 依赖的所有库。

将要导入的库放置在虚拟机加工文件夹中后,我在各种尝试中使用 sys.path.append() 以及 PyCharm 的项目结构工具指向它们。在这两种情况下,虚拟环境都会检测到 FreeCAD.so 所在的位置,但无法找到其任何依赖项,即使位于同一文件夹中也是如此。显式导入这些依赖项时,它们中的每一个都有相同的问题。当导入失败时,这会导致死胡同,因为它没有根据 Python 定义模块导出函数:

我似乎正在查看一个很长的损坏依赖链,即使我使所需的库可用并通知 Python 它们所在的位置。

我将不胜感激有关如何执行此操作的直接说明或指向描述在 Python 虚拟环境中导入 FreeCAD 库的文档的指针,因为我还没有遇到任何具体的内容。

我遇到了一些先前的问题,这些问题似乎具有相似的意图,但没有答案:

在 python 脚本中嵌入 FreeCAD

是否可以在 python 程序中嵌入 Blender/Freecad?

Conda 的类似问题集中在从主机系统导入库而不是将它们嵌入到虚拟环境中:

仅在一个 conda 虚拟环境的系统路径中包含 FreeCAD

其他人在 FreeCAD 论坛上的问题没有得到解答:

https://forum.freecadweb.org/viewtopic.php?t=27929

编辑:

弄清楚这一点是一次很棒的学习经历。将依赖项拼凑在一起的问题在于,要实现这种方法,从 FreeCAD 及其依赖项到 Python 解释器及其依赖项的所有内容似乎都需要构建在它们所依赖的相同版本的库上,以避免导致分段使一切都陷入崩溃的故障。这意味着从 Flatpak 安装中获取它所依赖的 FreeCAD 模块和库的想法在理论上并不可怕,因为所有部件都是使用相同的库版本构建在一起的。我只是无法解决问题,大概是由于包含的库的位置以及难以识别包含的 Python 解释器的可执行文件。最后,我查看了 FreeCAD AppImage 的内容,

0 投票
0 回答
12 浏览

path - Trying to make a curvy line (path) and apply it to a circle

I’m trying to learn freecad by doing a ring. I want an extrusion on the top of my ring but I want it to be like a zigzag. enter image description here

I was able to easily do a sweep with a circle as the path but ended up with a strait extrusion.

How can I make this path to be not only a circle in the xz, but also like a curvy like a snake on the xy

Thks a lot!

0 投票
0 回答
35 浏览

python - STEP文件转换为带有材料的OBJECT文件

我正在使用以下代码将 Step 文件转换为 Object 文件。

使用下面给出的示例代码 1,转换后输出文件只有顶点(v)和面(f),而 vt 和 vn 不存在。我还需要创建没有发生的相应材料文件。

我是这个编程领域的新手。任何建议或更正将不胜感激。

我正在使用来自 FreeCAD(0.16) 和 python(2.7) 的 Python。

谢谢

示例代码 1 如下。

示例代码 2 如下。在第 5 行(shape = data[0][0].Shape)返回 NULL 会导致错误。

0 投票
1 回答
625 浏览

python - python将步骤文件转换为stl

一点背景

为了使用 openfoam 进行模拟,我使用 snappyHexMesh 创建了我的网格,作为输入,我需要每个对象的三角曲面文件,例如 stl 或 obj。在我的公司,我们使用solidEdge,它不能从装配中导出stl。如果您导出它们,它们将在被添加到装配体之前位于它们的本地坐标系中。为了将程序集文件转换为 stl,我正在以实心边缘导出一个步骤文件并将其写入 freecad 中的 stl。但是,我想使用 python 自动化这个过程。

方法

我发现这篇文章将步骤文件转换为 stl或这个网站。但是,在组装步骤中读取时,它会创建一个 stl 文件。我想为装配中的每个零件创建一个 stl。有没有一种方法可以遍历组件中的零件并将它们写入 stl?

0 投票
0 回答
19 浏览

python - 在 FreeCAD 模型中使用点密度函数对孔进行建模

我正在为实验设计一个零件,它基本上是某种带有孔的薄片。

这些孔需要根据一些测量进行间隔,其中中间的孔数量需要大于沿外侧的孔,类似于下面的图表。

我阅读了 FreeCAD 的 Python 集成,但我对文档有点不知所措,坦率地说不知道从哪里开始。

在此处输入图像描述

如何将这样的点密度模拟转换为零件上要钻孔的孔?

我会想像提取每个点的坐标,然后将它们转换到 FreeCAD 模型上。

谢谢你,托尼

0 投票
1 回答
55 浏览

python - pivy.coin (COIN3D) 箭头绘图不旋转 (FreeCAD - Python)

在我看来,下面的代码是正确的。但不幸的是我无法旋转箭头。无论我给这个功能什么角度,它都不起作用。我不知道这段代码有什么问题。

注意:这是我为 FreeCAD 构建的 COIN3D 小部件系统的一部分。你可以在我的 github 上找到整个项目 = https://github.com/MariwanJ/Design456/tree/devbranch