Аббревиатура STL - это сокращение от STereoLithography (Стереолитография - технология трёхмерной печати). В файлах с расширением .stl содержатся объёмные модели объектов, которые могут быть "распечатаны" на трёхмерных принтерах. Существует два вида форматов .stl - файлов - бинарный и текстовый (ASCII). Бинарный более компактный, а содержимое текстового .stl файла может быть просмотрено любым текстовым редактором.
Одной из программ, которая позволяет открыть stl файл, является бесплатная программа OpenSCAD, её можно скачать с сайта http://www.openscad.org/downloads.html (есть версии под Windows/Mac OS X/Linux/BSD).
Как этой программой открыть файл с расширением .stl? Для этого из главного меню программы выбрать File --> Open (или нажать комбинацию клавиш Ctrl+O), в появившемся диалоге выбора файла ввести маску *.stl, как показано на скриншоте:
Это позволит увидеть .stl - файлы, находящиеся в текущем каталоге, выбрать нужный файл и открыть его. Другой способ - просто перетащить нужный .stl - файл из проводника на окно программы.
Окно программы состоит из трёх полей: текстовое, находящееся слева, графическое, расположенное справа вверху, и поле сообщений внизу справа. В самом низу окна находится строка состояния с индикатором прогресса, который появляется при компиляции и визуализации.
После открытия файла надо запустить компиляцию. Это делается нажатием клавиш F5 (компиляция) или F6 (компиляция и визуализация). Мышью можно вращать модель (при нажатой левой клавише) или перемещать (нажав правую клавишу мыши). Комбинация клавиш Ctrl+P передвигает модель в центр поля.
Программа OpenSCAD позволяет экспортировать 3D модели в форматы .STL, .OFF, .DXF, .CSG и в графический формат .PNG (главное меню --> Design). Для форматов .STL, .OFF и .DXF модель предварительно нужно скомпилировать и визуализировать, нажав клавишу F6. Для формата .CSG достаточно только скомпилировать (клавиша F5).
На рисунке внизу показан пример экспорта 3D модели в графический файл формата .PNG:
Программа OpenSCAD позволяет создавать твёрдотельные трёхмерные модели. Для этого используется несложный язык. Вот пример, позволяющий построить модель сферы с отверстиями:
$fn = 100; difference() { color([0, 1, 1]) sphere(40, center = true); color([1, 1, 0.9]) cylinder(150,30,30, center = true ); rotate(90, [1, -0.66, 0]) cylinder(150,10,10, center = true); rotate(90, [1, 0.66, 0]) cylinder(150,10,10, center = true); rotate(90, [0, 1, 0]) cylinder(150,10,10, center = true); }
Разберём этот пример. Здесь $fn - это системная переменная, определяющая количество полигонов модели, а следовательно, и графическое разрешение. Этот параметр можно задать отдельно для каждой фигуры
Пример: sphere(20, center = true, $fn = 300);
Чем больше величина $fn, тем больше полигонов, в результате получится более гладкая поверхность, но программе потребуется больше времени на вычисления.
Дальше идёт логический оператор difference() - это разница между первой фигурой (sphere) и четыремя цилиндрами (cylinder) - то есть из сферы (первая фигура в фигурных скобках) вычитаются (выдавливаются) цилиндры (все последующие фигуры в фигурных скобках). Существуют ещё два логических оператора - union() и intersection(). Поскольку такие операторы предназначены для работы с несколькими фигурами, то все фигуры, над которыми производятся логические операции, объединяются фигурными скобками { }.
Итак, программа OpenSCAD позволяет производить три логические операции над трёхмерными фигурами:
Оператор color([0, 1, 1]) - это цвет (RGB), в единицах от 0,0 до 1,0. Если использовать четыре параметра, то четвёртый параметр определяет прозрачность.
Пример: color([0, 1, 1, 0.3])
Можно также указывать именованные цвета.
Пример: color("red"))
Этот оператор действует на геометрическую фигру, находящуюся сразу за ним.
Пример:
color("blue") sphere(20, center = true, $fn = 300);).
Что бы оператор действовал на несколько геометрических фигур, их заключают в фигурные скобки (как в языке С++).
Пример:
color("lime") { sphere(20, center = true, $fn = 300); cylinder(30,10,10); }
Далее идёт оператор sphere(40, center = true);. Здесь указан радиус сферы (40) и расположение её центра так, что бы он совпадал с центром координат системы. Включить или выключить оси координат можно комбинацией клавиш Ctrl+2 или из главного меню программы View --> Show Axis.
Дальше снова оператор цвета color([1, 1, 0.9]) - он устанавливает цвет большого цилиндра (cylinder(150,30,30, center = true );). После операции выдавливания цвет этого цилиндра будет присвоен внутренней проверхности сферы.
И в самом конце идут три однообразных оператора, рисующие цилиндры. Предварительно каждый цилиндр поворачивается оператором rotate.
Список трёхмерных фигур программы OpenSCAD:
Одними логическими операциями возможности программы OpenSCAD не ограничиваются - в ней можно производить линейное выдавливание плоских фигур в объёмные фигуры, как в программе SolidWorks. Пример:
linear_extrude(10) polygon([[0,0],[0,20], [20,20],[10,10],[20,0]]);
В этом примере плоская фигура, состоящая из пяти точек в плоскости Х создаётся командой polygon, и выдавливается командой linear_extrude на высоту 10 в плоскости Z. Вот что получилось в результате:
Вот список плоских фигур, которые можно выдавливать:
Таким образом можно создавать объёмные фигуры практически любой сложности.