Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/dart/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
用Python编程更改stl CAD文件_Python_Stl_Freecad - Fatal编程技术网

用Python编程更改stl CAD文件

用Python编程更改stl CAD文件,python,stl,freecad,Python,Stl,Freecad,我有很多用于3D打印的stl CAD文件,我想知道如何通过编程进行简单更改来操作单个CAD文件。比如,如果我想将CAD文件中的所有内容的尺寸增加一倍,我如何在python中实现这一点?我可以将其转换为gcode,如果这样可以使事情更简单的话 我遇到过FreeCad,但我不确定这是否是以编程方式更改CAD文件的最简单和最好的方法。我还希望有一个选项,允许在大小之外自由操作,也许还可以看看如何通过编程改变CAD文件的形状。STL文件是网格。其外部由三角形曲面定义。众所周知,网格事后很难修改。这就是为

我有很多用于3D打印的stl CAD文件,我想知道如何通过编程进行简单更改来操作单个CAD文件。比如,如果我想将CAD文件中的所有内容的尺寸增加一倍,我如何在python中实现这一点?我可以将其转换为gcode,如果这样可以使事情更简单的话


我遇到过FreeCad,但我不确定这是否是以编程方式更改CAD文件的最简单和最好的方法。我还希望有一个选项,允许在大小之外自由操作,也许还可以看看如何通过编程改变CAD文件的形状。

STL文件是网格。其外部由三角形曲面定义。众所周知,网格事后很难修改。这就是为什么您总是希望以本机格式保存设计,也希望以.STP或.IGES等开放式实体格式保存设计

也就是说,网格的简单缩放非常简单,可以在FreeCAD中轻松完成。 您可以在mesh design workbench的gui中或通过python来完成。这里有一篇关于这个的帖子:

FreeCAD还有一些将网格转换为实体的工具。结果通常不太壮观,但可能足够好,这取决于你的需要。在FreeCAD论坛上搜索有关转换的帖子或查看此处:


Gcode没有说明任何关于模型本身的内容。它指定了工具应该移动的位置,所以它只是一系列指令,以给定的速度将工具从一个地方移动到另一个地方。从Gcode转换为可以编辑的模型是相当困难或不可能的。

准确地说,STL文件甚至不是网格,而是三角形汤。这意味着三角形之间甚至没有连接(它们需要相邻才能被软件g代码使用,但没有其他义务)

只是为了澄清一下:g代码格式只是机器(3d打印机等)的一系列指令,所以它对打印机来说非常好,但也肯定是操纵几何体的最差格式

一个解决方案 您可以使用python模块来处理STL文件 因此,对于简单的变换操作(如缩放、平移等)

从madcad导入*
part=read('path/to/your_file.stl'))
变换=部分变换(mat3(2))#按系数2(2的对角矩阵)缩放
写入(已转换为'path/to/output_file.stl')
如果需要更复杂的操作(如布尔、倒角等),则需要在执行所需操作之前再次连接三角形

从madcad导入*
part=read('path/to/your_file.stl'))
part.mergeclose()#在同一位置合并点
#您所需的操作(示例)
变换=并集(部分,icosphere(vec3(1,1,1),3.)#添加一个直径为3的球体
写入(已转换为'path/to/output_file.stl')
笔记
pymadcad在内部用于导入stl文件,如果您只需要基本操作,也只能安装该操作

到目前为止您尝试了什么?有像和这样的库可以做这种事情。如果您稍微搜索一下,就会有许多堆栈溢出问题涉及到这个主题。就目前情况而言,你当前的问题过于宽泛,无法简明扼要地回答。