Low-cost 3D Printing for Science, Education and Sustainable Development / Доступная 3Д печать для науки, образования и устойчивого развития: 8. 3D моделирование с OpenSCAD - Часть 2

Оглавление
Английский оригинал Перевод на русский

Сожалеем, но текст оригинала доступен только зарегистрированным пользователям.

Мариус Кинтел
Разработчик OpenSCAD, Австрия
marius@kintel.net

Woolpit 12.10.13 в 05:31

0

OpenSCAD вырос из сообщества RepRap, точнее из 3D печатной деятельности Металаборатории (http://metalab.at) программистов-энтузиастов в Вене, Австрия.

Woolpit 12.10.13 в 05:31

0

Пара слов от автора
OpenSCAD вырос из сообщества RepRap, точнее из деятельности в области 3D печати в Metalab (http://metalab.at), клубе программистов-энтузиастов в Вене, Австрия.

mishavolkin 03.12.13 в 16:41

2

Идея OpenSCAD возникла, потому что мы испытывали недостаток в средствах моделирования бесплатного программного обеспечения для быстрой и многократно создающихся механических деталей. Существующие инструменты, в это время, были слишком медленные в использовании, изменении деталей, часто требовали полной модернизации. Появление коммерческих CAD инструментов решило эти проблемы. Однако, они являясь чрезмерно дорогими, не были общедоступны, и мы чувствовали, что мир нуждается в лучших общедоступных средствах проектирования. Основная идея OpenSCAD состояла в том, чтобы позволить людям описывать свои 3D модели, начинающиеся с основных строительных блоков, и многократно строить с их помощью. Дополнительно мы хотели, чтобы программа была подходящей для описания параметрических форм и положений для того, чтобы упростить настройки и адаптацию, без необходимости проходить через трудоемкие и скучные задачи реконструкции.

Woolpit 12.10.13 в 05:31

0

Идея OpenSCAD возникла, потому что мы нуждались в свободном программном инструменте разработки для быстрого и многократно повторяющегося создания механических деталей.
Использование существовавших в то время инструментов было слишком трудозатратным и изменение детали, часто требовало её полной переделки. Коммерческие САПР, решавшие эти проблемы, существовали, однако помимо запредельной стоимости, они не были открытым ПО, и мы чувствовали, что мир нуждается в лучшем инструменте проектирования с открытым исходным кодом. Основная идея OpenSCAD состояла в том, чтобы позволить людям описывать свои 3D модели, начав с основных строительных блоков, и затем многократно их повторяя, строить с их помощью. Дополнительно мы хотели, чтобы программа была подходящей для описания параметрических форм и положений для того, чтобы упростить настройки и адаптацию, без необходимости проходить через трудоемкие и скучные задачи реконструирования.

mishavolkin 03.12.13 в 17:09

2

Сначала, мы поняли, что OpenSCAD будет иметь строгие ограничения с точки зрения создания геометрических фигур, таким образом, мы решили дать возможность пользователям моделировать более сложные строительные блоки при помощи программного обеспечения, которое они предпочитают. OpenSCAD может затем импортировать эти файлы для дальнейшего моделирования, в то время как в любой момент сможете вернуться и изменить основную геометрию, без необходимости повторного выполнения работы, которая уже сделана в OpenSCAD. При хранении исходного кода, поскольку пользовательский интерфейс имеет важное возникающее свойство, в котором люди соблазнены совместным использованием своих проектов, а также их конструкторскими замыслами. Оно также позволяет изменить, вновь использовать, или создавать другими способами основываясь на существующих идеях и разработках других людей.

Woolpit 12.10.13 в 05:32

0

Вначале мы поняли, что OpenSCAD будет иметь серьезные ограничения в плане создания геометрических фигур, поэтому мы решили дать пользователям возможность выбрать программу моделирования более сложных строительных блоков. Затем OpenSCAD может импортировать эти файлы для дальнейшего моделирования, в то же время вы в любой момент можете вернуться назад и изменить основную геометрию без необходимости переделывать работу, уже проделанную в OpenSCAD. Сохранение исходного кода в качестве пользовательского интерфейса также обладает важным свойством, заключающимся в том, что люди захотят поделиться своими проектами, а также конструктивными идеями. Это также делает возможным менять, повторно использовать, или другими способами базироваться на существующих идеях и проектах других людей.

alex_itz 29.12.13 в 15:31

1
+2

Параметрические разработки
Одно из сильных мест OpenSCAD – поддержка параметрических разработок. Параметрический в данном контексте означает, что Вы можете создать стандартные логические блоки, которые принимают определенные параметры и в свою очередь создают 3D компонент, удовлетворяющий эти параметры. Примерами таких параметров могут быть размеры объекта, отверстия гайки и болта, описания объекта (например, число зубчиков шестеренки) или проектируемые объекты (текст штамповки на разработке).
В OpenSCAD стандартные блоки называются модулями. Модуль – тип шаблона, который задается один раз и может использоваться многократно с различными параметрами. Следующий код определяет модуль TopPlate, который описывает параметрическую пластину с четырьмя резьбовыми отверстиями. Параметры модуля – это размеры пластины и размеры винтов. Модуль TopPlate поэтому переписывает значение дважды:

Woolpit 12.10.13 в 05:32

0

Параметрические разработки
Одно из сильных мест OpenSCAD – поддержка параметрических разработок. Параметрический в данном контексте означает, что Вы можете создать логические строительные блоки, которые принимают определенные параметры, а возвращают созданный 3D компонент, отвечающий этим параметрам. Примерами таких параметров могут быть размеры объекта, отверстия гайки и болта, описания объекта (например, число зубчиков шестеренки) или элементы проекта (текст штамповки на разработке).
В OpenSCAD стандартные блоки называются модулями. Модуль – тип шаблона, который задается один раз и может использоваться многократно с различными параметрами. Следующий код определяет модуль TopPlate, который описывает параметрическую пластину с четырьмя резьбовыми отверстиями. Параметры модуля – это размеры пластины и размеры винтов. Затем вызываются два экземпляра модуля TopPlate :

alex_itz 29.12.13 в 16:46

1

module TopPlate(size, screwsize)
{
margin = 3;
offset = screwsize/2 + margin;
difference() {
cube(size);
for (xoffset = [offset, size[0] - offset], yoffset = [offset, size[1] - offset]) {
translate([xoffset, yoffset, -0.5]) cylinder(r=screwsize/2, h=size[2]+1);
}
}
}
TopPlate(size=[40,50,3], screwsize=8);
translate([50,0,0]) TopPlate(size=[40,30,5], screwsize=3);

Woolpit 12.10.13 в 05:34

0
+2

Библиотеки
Множество задач моделирования, особенно при создании механических деталей или комплектующих, состоит из повторного использования стандартных элементов таких как крепежи, отверстия, прорези и т.д. В дополнение к определяющим модулям, которые упрощают повторное использование компонента в одном проекте, также возможно использование внешних библиотек. OpenSCAD включает набор общих компонентов в библиотеке названной MCAD.
Следующий пример основывается на предыдущем, но с добавлением накидных гаек под винт к существующим отверстиям и использование модуля библиотеки MCAD nuts_and_bolts, чтобы получить верные размеры гайки, соответствующей размеру винта:

Woolpit 12.10.13 в 05:33

1

[код]
include<MCAD/nuts_and_bolts.scad>
module screwhole(screw, depth)
{
translate([0,0,-0.5]) cylinder(r=screw/2, h=depth+1);
translate([0,0,-0.01]) nutHole(size=screw);
}
module TopPlate(size, screwsize)
{
margin = 2;
offset = METRIC_NUT_AC_WIDTHS[screwsize]/2 + margin;
difference() {
cube(size);
for (xoffset = [offset, size[0] - offset], yoffset = [offset, size[1] - offset]) {
translate([xoffset, yoffset, 0]) screwhole(screwsize, size[2]);
}
}
}
TopPlate(size=[40,50,7], screwsize=8);
translate([50,0,0]) TopPlate(size=[40,30,5], screwsize=3);

Как результат среда разработок OpenSCAD, библиотеки делятся путем простого разделения исходной программы Ваших модулей. Множество разработчиков моделей создали компоненты библиотек и совместно пользуются ими он-лайн. На Thingiverse есть много библиотек OpenSCAD:
http://www.thingiverse.com/search?q=openscad+library

Woolpit 12.10.13 в 05:33

0

[код]
include<MCAD/nuts_and_bolts.scad>
module screwhole(screw, depth)
{
translate([0,0,-0.5]) cylinder(r=screw/2, h=depth+1);
translate([0,0,-0.01]) nutHole(size=screw);
}
module TopPlate(size, screwsize)
{
margin = 2;
offset = METRIC_NUT_AC_WIDTHS[screwsize]/2 + margin;
difference() {
cube(size);
for (xoffset = [offset, size[0] - offset], yoffset = [offset, size[1] - offset]) {
translate([xoffset, yoffset, 0]) screwhole(screwsize, size[2]);
}
}
}
TopPlate(size=[40,50,7], screwsize=8);
translate([50,0,0]) TopPlate(size=[40,30,5], screwsize=3);

По причине открытой природы OpenSCAD совместное использование библиотек реализуется простым расшариванием исходного кода модулей. Множество разработчиков моделей создали свои библиотеки компонентов и выложили их онлайн. На Thingiverse есть много библиотек OpenSCAD:
http://www.thingiverse.com/search?q=openscad+library

mishavolkin 03.12.13 в 17:22

2

Примеры использования
Так как OpenSCAD произошел от ранней 3D печати и движения RepRap, пользовательская база является все еще самой сильной среди этих сообществ. В результате, некоторые из самых выдающихся примеров использования OpenSCAD – это разработка самих 3D принтеров.

Woolpit 12.10.13 в 05:33

1

Некоторые примеры:
• RepRap Prusa версия 3:
https://github.com/josefprusa/Prusa3
• АО Lulzbot 100 (частично):
http://download.lulzbot.com/AO-100/hardware/printed_parts/source/
• Lulzbot TK-0:
https://github.com/mswillia/TK-0
• RepRap Mendel90:
http://hydraraptor.blogspot.co.uk/2012/12/mendel90-updates.html

Woolpit 12.10.13 в 05:34

0

Найти разработки OpenSCAD можно в самом большом репозитарии Thingiverse:
http://www.thingiverse.com/tag:openscad

Woolpit 12.10.13 в 05:34

1
Минутку...