3

上一个线程中展示了如何创建一个 3D-body 并将其保存到 solidpython 的 stl 文件中。由于未设置 $fa、$fs、$fn,它们具有默认值,并且 3D 主体的面数较少。上面线程中的示例代码:

from solid import *
from subprocess import run

d = difference()(
   cube(10),
   sphere(15)
)

scad_render_to_file(d, 'd.scad')

run(["openscad", "-o",  "d.stl", "d.scad"])

这里产生的 stl-body 在此处输入图像描述文档中我没有找到任何关于设置这些变量的信息。这个自述文件似乎已经过时了。

如何在solidpython 中设置$fa、$fs、$fn?

4

1 回答 1

2

有两种方法可以做到这一点。

在solidpython 中,一些对象(例如,,,circle()sphere()具有与openscad 中对应cylinder()的可选参数,请参见solidpython 包中的文件objects.py 中的源代码(在archlinux /usr/lib/python/site-packages/solid/objects .py)。segments$fn

可能的solidpython代码:

sphere(15, segments = 180)

生成的openscad代码:

sphere($fn = 180, r = 15);

或者,可以在 中设置文件头scad_render_to_file(),请参阅solidpython 包中的文件solidpython.py 中的源代码。

固体python代码:

scad_render_to_file(d, 'd.scad', file_header = '$fa = 0.1;\n$fs = 0.1;', include_orig_code=True)

将这些行写入 openscad 文件的顶部:

$fa = 0.1;
$fs = 0.1;

这里是示例中生成的 stl 在此处输入图像描述

于 2019-01-07T11:47:11.553 回答