如何从 STL 文件创建 PNG 图像文件?

3D打印 切片 stl
2021-05-07 07:41:50

我需要将一些 STL 文件的简单图像渲染添加到文档中。我目前在预览或其中一个切片器中打开 STL 文件并抓取屏幕截图。

有没有更简单或自动的方法来从 Mac 上的 STL 文件生成 PNG 图像?

4个回答

如果您安装了OpenSCAD,此 shell 脚本将为当前目录中的每个 STL 文件生成 100x100 像素的 PNG 图像。

for i in *.stl; do
  T=__tmp__$i
  b=`basename $i`
  echo import\(\"$i\"\)\; >$T
  /Applications/OpenSCAD.app/Contents/MacOS/OpenSCAD -o $b.png --imgsize=100,100 $T
  rm $T
done

感谢0scar您指出STL文件可以导入到OpenSCAD。

更新:此代码执行相同操作,并生成一个 html 文件,其中包含渲染文件的带注释图像。当我为我的 3D 打印机打印一批备件时,我制作了一份硬拷贝并将其贴在盒子里,以便我以后可以识别这些零件。

n=-1
H=00-catalog.html
echo >$H '<table>'
echo >>$H '  <tr>'
for i in $*; do
  n=`expr $n + 1`
  if test $n = 4; then
      n=0
      echo >>$H '  </tr>'
      echo >>$H '  <tr>'
  fi
  echo $i
  T=__tmp__$i
  B=`basename $i .stl`
  echo import\(\"$i\"\)\; >$T
  /Applications/OpenSCAD.app//Contents/MacOS/OpenSCAD -o $B.png --imgsize=200,200 $T
  echo >>$H
  echo >>$H '    <td>'$i'<br><img src="'$B'.png"></td>'

  rm $T
done
echo >>$H '  </tr>'
echo >>$H '</table>'

通常,您会安装(免费)3D 模型程序作为 Fusion 360、FreeCAD 或更多可供选择的选项。安装后,导入 STL 文件并使用菜单选项导出 STL 的图片。

或者,如果您有一些编程技能,您可以在 OpenSCAD 中导入 STL 文件,然后从那里渲染和导出图片。只需使用下面的代码行创建一个 OpenSCAD 文件,它就会将您的example.stl.

import("example.stl", convexity=10);

通过菜单,您可以将视图导出为图像。请注意,您也可以从命令行执行此操作,如 OP 自己的答案所示(OpenSCAD 命令行使用的好示例)。

这些不是唯一的选择,还有更多选择。例如,是一个很好的例子。它还描述了 Thingiverse.com 如何对 Web 图像进行 STL。

如果您不介意使用屏幕抓取,您可以使用 AppleScript 或在最新的 MacOS 版本中调用的任何内容来构建自动脚本来打开每个文件、抓取屏幕、保存等。

您可以使用 OpenSCAD,如已接受的答案中所述。这是该脚本的一个版本,适用于任何需要它的人,就像我一样。

# Change height and width to the desired output image dimensions, in pixels.
# The path to openscad.exe may also have to be adjusted based on your installation.

height=1080
width=1080

for i in *.stl; do
  T=__tmp__$i
  b=`basename "$i"`
  echo import\(\"./$i\"\)\; > "$T"
  C:/'Program Files'/OpenSCAD/openscad.exe -o "$b".png --autocenter --viewall --imgsize=$width,$height "$T"
  rm "$T"
done