如何在solidpython中设置特殊变量$fa, $fs, $fn
How to set special variables $fa, $fs, $fn in solidpython
在 a previous thread 中显示了如何通过 solidpython 创建 3D 体并将其保存到 stl-file。由于未设置 $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
在documentation i didn‘t find anything about setting these variables. This readme好像过时了。
如何在 solidpython 中设置 $fa, $fs, $fn?
有两种方法可以做到。
在solidpython中一些对象(例如circle()
、sphere()
、cylinder()
)有可选参数segments
对应openscad中的$fn
,见solidpython 包中文件 objects.py 中的源代码(在 archlinux /usr/lib/python/site-packages/solid/objects.py 上)。
可能的solidpython代码:
sphere(15, segments = 180)
生成的 openscad 代码:
sphere($fn = 180, r = 15);
或者可以在 scad_render_to_file()
中设置文件头,请参阅 solidpython 包中文件 solidpython.py 中的源代码。
solidpython代码:
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
在 a previous thread 中显示了如何通过 solidpython 创建 3D 体并将其保存到 stl-file。由于未设置 $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?
有两种方法可以做到。
在solidpython中一些对象(例如circle()
、sphere()
、cylinder()
)有可选参数segments
对应openscad中的$fn
,见solidpython 包中文件 objects.py 中的源代码(在 archlinux /usr/lib/python/site-packages/solid/objects.py 上)。
可能的solidpython代码:
sphere(15, segments = 180)
生成的 openscad 代码:
sphere($fn = 180, r = 15);
或者可以在 scad_render_to_file()
中设置文件头,请参阅 solidpython 包中文件 solidpython.py 中的源代码。
solidpython代码:
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