问题标签 [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.
python - 在脚本错误的末尾给出总金额
背景:我正在为 FreeCAD 编写一个宏 python 脚本。此代码打开一个对话框,提供有关草图几何形状的信息,例如惯性矩阵和面积。
我的问题:我正在尝试获取脚本末尾的总面积。目前,它给出了每个几何图形的结果,这没问题,但我希望在我的宏脚本对话框中有一个完整的部分。
我已经尝试过:我尝试为每个几何图形创建一个 for 循环,以计算面积并将其存储为变量。我也试图把它放在已经存在的 for 循环中。我最终遇到了语法错误。
python - 查找 .stl(CAD 绘图)文件和 3D 图(matplotlib)之间的交点?
我试图找到 3d 对象 .stl 文件(我使用 numpy-stl 导入到 python)和 3d 绘图(我使用 matplotlib 生成)之间的交点。3d 对象是 cad 绘图,3d 绘图是 3d 中的一堆曲线。我可以将它们绘制在同一个图上,但我不知道如何找到轨迹和绘图之间的交点。我的想法是在绘制曲线后使用 numpy-stl 模块中的 save() 函数将曲线转换为 .stl,并将它们一起显示在像 freeCAD 这样的 cad 应用程序上,并使用应用程序的功能找到交点。但它并不那么简单,因为这些图是基于点的,而 .stl 是基于三角形的。如果有人对如何解决这个问题有任何建议,请告诉我!!
这是绘制 .stl 对象和 3d 绘图的代码。这就是我到目前为止所拥有的。
1个想法:有没有办法将.stl对象转换为一组平面函数?如果是这样,我可以将绘图变成线并找到平面和线之间的交点?
第二个想法:或者,因为 .stl 是基于矢量的,我可以使用矢量计算?即查看曲线(线段)上的向量是否与 .stl 对象上的三角形有共同点(三角形由三个向量定义)。
请给我任何你可能有的想法!太感谢了。
python - 单击后 QPushButton 不执行任何操作
我是 Qt 和 Python PySide 的初学者,我面临一个我不知道如何解决的问题。我正在使用 FreeCAD,我尝试设计一个带有按钮的简单窗口,但我无法让它们工作。当我点击它们时,它们的文本应该会改变,但什么也没有发生。这是我的一段代码:
我的窗口是根据使用 Qt Creator 完成的 UI 文件创建的。窗口的设计也是正确的,例如,我可以将项目添加到列表小部件,但单击时按钮未激活。
这是一个 UI 文件示例:
macos - 在 macOS 上找不到 Boost(缺少:python)
错误信息:
我已经尝试了在这里找到的所有东西,但没有任何效果。
这是我所做的:
首先,我通过 brew install 安装了 boost、boost_python 和 boost_python3。
但是,我注意到在 boost dir 中有“include”和“lib”目录,但 boost_python 和 boost_python3 中只有“lib”,我不明白。运行 cmake 如下:
CC=/usr/bin/gcc CXX=/usr/bin/g++ cmake
-DCMAKE_BUILD_TYPE="Release"
-DBUILD_QT5=1
-DCMAKE_PREFIX_PATH="/usr/local/Cellar/qt/5.13.1/lib/cmake"
-DFREECAD_USE_EXTERNAL_KDL =1
-DBUILD_FEM_NETGEN=1
-DFREECAD_CREATE_MAC_APP=1
-DCMAKE_INSTALL_PREFIX="./.."
-DPYTHON_LIBRARY=$ANACONDA_HOME/lib/libpython3.7.so
-DPYTHON_INCLUDE_DIR=$ANACONDA_HOME/include/python3.7
-DPYTHON_EXECUTABLE=$ANACONDA_HOME/bin /python3.7
-DBoost_NO_BOOST_CMAKE:BOOL=ON
-DBoost_NO_SYSTEM_PATHS=TRUE
-DBOOST_ROOT=/usr/local/Cellar/boost/1.71.0
-DBOOST_LIBRARY_DIRS=/usr/local/Cellar/boost/1.71.0/lib
-DBOOST_INCLUDE_DIR=/usr/local/Cellar/boost/1.71.0/include
../
但是日志说:
- 找到 Boost:/usr/local/Cellar/boost/1.71.0/include(找到版本“1.71.0”)
- 找到 PythonInterp:/bin/python3.7(要求至少是版本“3”)
- 找到 PythonLibs:/lib/libpython3.7.so(要求至少是版本“3”)
- 在 /usr/local 检测到 Homebrew 安装
- 找到 PythonInterp:/bin/python3.7
- 找到 PythonLibs:/Library/Developer/CommandLineTools/SDKs/MacOSX10.14.sdk/usr/lib/libpython.tbd(找到版本“2.7.10”)
- 找到 Boost:/usr/local/Cellar/boost/1.71.0/include(找到合适的版本“1.71.0”,最低要求是“1.48”)找到组件:文件系统程序_选项 regex 系统线程 chrono date_time atomic
- 找不到 Boost (缺少:python)(找到版本“1.71.0”)
如您所见,Boost 中除了 python 之外还有一些组件。
我试过了:
-DBOOST_ROOT=/usr/local/Cellar/boost_python3/1.71.0_1 -DBOOST_LIBRARY_DIRS=/usr/local/Cellar/boost_python3/1.71.0_1/lib
但由于 boost_python3 中没有“包含”目录,我不知道如何编辑 BOOST_INCLUDE_DIR。因此,日志说:
找不到 Boost(缺少:Boost_INCLUDE_DIR)
请帮忙!!!!!!!我打算在我的 Mac 上编译 FreeCAD,但我被困了几天!
python - 我可以阻止 FreeCad 缓存 Python 文件吗?
我正在尝试为 FreeCad 学习 Python 脚本。
在“C:/p/Freecad/0.18/ZillmannTest”文件夹中,我有 2 个文件:
- Macro1.py 和
- FCadHelper.py
Macro1.py的内容如下:
我可以从 FreeCad 宏菜单启动 Macro1.py 但是当我在 FCadHelper.py 中出现错误并更正它时,FreeCad 不会加载更改后的文件 FCadHelper.py,它会继续使用该文件的旧(chached ?)版本。要使用更改后的文件,我必须终止 FreeCad 并重新启动它。这很烦人。
有没有办法阻止 FreeCad 缓存这个文件?当我计划创建一个类似文件的类库时,问题将比现在更大。
亲切的问候
python - 使用 Python 以编程方式更改 stl CAD 文件
我有许多用于 3D 打印的 stl CAD 文件,我想知道如何通过以编程方式进行简单更改来操作单个 CAD 文件。就像如果我想将 CAD 文件中所有内容的尺寸加倍,我怎么能在 python 中完成呢?如果这使事情变得更简单,我可以将其转换为 gcode。
我遇到过 FreeCad,但我不确定这是否是以编程方式更改 CAD 文件的最简单和最好的方法。我还想要一个选项,它允许除了大小之外的自由操作,也许还想看看我如何以编程方式改变 CAD 文件的形状。
python - FreeCAD 选择所有没有 Gui 的对象
我正在尝试使用带有外部 python 脚本的 FreeCAD 选择 stp 文件中的所有对象。有什么方法可以在不打开 gui 的情况下使用 freecad 外部脚本从 stp 文件中选择所有对象
django - 异常值:libFreeCADApp.so:无法打开共享对象文件:没有这样的文件或目录
我不知道如何在生产中使用外部库作为 python 模块。非常感谢您对此问题的任何帮助。
我在我的 django 应用程序中将FreeCAD作为 python 模块导入,如下所示。
视图.py
Freecad bin 和 library 文件位于根目录,其中 manage.py 文件如下所示。
在我的本地服务器上一切正常。我可以导入 FreeCad 并对 CAD 文件进行数据处理。但是当我在谷歌云引擎上部署应用程序时,事情就开始崩溃了。部署后它抛出了这个错误。
Exception Value: libFreeCADApp.so: cannot open shared object file: No such file or directory
我还构建了这个应用程序的 docker 镜像以确保一致的依赖关系。但相同的结果本地服务器找到 Freecad 库并运行良好,但 docker 抛出此错误。
ModuleNotFoundError: No module named 'FreeCAD'
.
Docker 文件内容
要求.txt
python - FreeCAD 是如何从 python 类中继承的?
我想从 FreeCAD python 类 Vector 继承。
在下面的测试代码中,我要么使用自己的 Vector 类,要么从 FreeCAD 导入 Vector 类。它适用于我自己的 Vector 类,但打印一个零向量,然后崩溃 - 'Base.Vector' 没有属性 'extra',这意味着 ExtraVector 的构造函数已被绕过,ExtraVector 只是一个向量,当使用FreeCAD 矢量。
(我怀疑 FreeCAD 向量是 C 代码的包装器)
FreeCAD 做了什么?你如何弄乱一个python类来赋予它这种行为?
我该如何解决?继承是解决我问题的最佳方法。组合意味着编写更多代码,我不喜欢 WET。
当使用我的 Vector 类(FreeCAD Vector 已注释掉)时,输出为:-
使用 FreeCAD Vector 时(我的 Vector 已注释掉),输出为:-
python - 在 python 中将 3D CAD 文件导入为 dask 数组
我正在尝试导入由TexGen在 python 中创建的 3D 文件。我想在最后有一个 dask 数组以供进一步分析。我的文件是“.igs”格式。我可以用FreeCAD打开它并以多种格式导出。我只是不知道使用哪种格式以及python中的哪个库更有帮助。
我发现了这个问题(Import CAD object in Python and store as array)并尝试在 python 中安装 FreeCAD 包,但没有成功。我遇到无法解决的冲突错误(不兼容的软件包)。
我发现了这个问题(3D CAD to OpenGL)并安装了 PyOpenGL,但我不知道如何使用 OpenGL 导入 STL 文件。
有什么建议么?