Как установить специальные переменные $ fa, $ fs, $ fn в solidpython - PullRequest
0 голосов
/ 07 января 2019

в в предыдущем потоке показано, как создать 3D-тело и сохранить его в stl-файл с помощью solidpython. Так как $ 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 enter image description here В документации я ничего не нашел об установке этих переменных. Этот файл readme представляется устаревшим.

Как мне установить $ fa, $ fs, $ fn в solidpython?

1 Ответ

0 голосов
/ 07 января 2019

Есть два способа сделать это.

В solidpython некоторые объекты (например, circle(), sphere(), cylinder()) имеют необязательный параметр segments, соответствующий $fn в openscad, см. Исходный код в файле objects.py в solidpython пакет (в 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.py в пакете solidpython.

код 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 из примера enter image description here

...