Руководства, Инструкции, Бланки

Openscad Руководство На Русском img-1

Openscad Руководство На Русском

Рейтинг: 4.4/5.0 (1918 проголосовавших)

Категория: Руководства

Описание

OpenSCAD - Создание твердых 3D объектов

OpenSCAD - Создание твердых 3D объектов

Обновлено 08.05.2016 15:36

Приложение для создания твердых 3D объектов. Это не интерактивное средство моделирования, а 3D-компилятор на основе языка текстового описания. Документ OpenSCAD определяет геометрические примитивы и определяет, как они изменяются и управляются, чтобы представить 3D модель. OpenSCAD доступен для Windows, Linux и OS X. Он использует конструктивную сплошную геометрию (CSG). Переведено на русский язык.

Оно использует Computational Geometry Algorithms Library (CGAL) в качестве основного двигателя CSG, который наряду с другими библиотеками заботится о деталях, таких как пересечение, разность и сумма Минковского. Результаты могут быть представлены в 2D DXF или SVG-файлах, 3D AMF, OFF, STL файлах или изображения PNG. Для быстрого предпросмотра моделей с использованием Z-буферизации, OpenSCAD использует OpenCSG и OpenGL.

OpenSCAD позволяет проектировщику создавать точные 3D-модели и параметрические конструкции, которые можно быть легко регулировать, изменяя параметры.

Таким образом, OpenSCAD это не визуальный, программно-ориентированный инструмент твердотельного моделирования, и который был рекомендован в качестве CAD инструмента начального уровня для разработки аппаратных средств с открытым исходным кодом, таких как научные инструменты для научных исследований и образования.

Другие статьи

Просмотр темы - 3D модели для чайников

roboforum.ru

Вот господа печататели! Допустим, я - полный лох в конструировании механики(что есть суровая правда). Тем не менее, хочу разработать 3D модель некоего объекта, пригодную для печати на принтере. Вопрос - что почитать, как делать, с чего начинать, где лежат грабли? Надеюсь, этот тред будет очень полезен многим, кто хочет воспользоваться возможностями ваших принтеров, но не знает как.

В спонсонах хочу поставить двигатели от трея CD для привода колес, на внутренней стороне ободов колес сделать зубчики, а на валы двигателей повесить комплиментарные шестеренки. Башню хочу поворотную на микросерве (HXT-500 или 900), в башню установить пару светодиодов.
Для простоты и маневренности хочется задний каток сделать декоративным, а под ним сделать костыль или опорный шарик.

Также хочется крышку, под которой будет плата управления(мой blutle) и АКБ от сотового телефона. В качестве крышки можно использовать саму плату.

Я думаю, допустимы довольно большие вольности в изменении конструкции, благо от оригинала не сохранилось внятных изображений.

И так, прошу разъяснить:
- Какое ПО нужно? OpenSCAD, FreeCAD, AutoCAD, SolidWorks?
- С чего начать - мануал какой-нибудь?
- Можно ли уложиться в 6-7 деталей (башня, крышка(?), корпус, 2 колеса, 2 шестерни)?
- Как правильно рисовать шестеренки.
- как правильно обойтись с осями колес и костылем? Чтобы не было излишнего трения.
- как обеспечить правильное положение шестеренок относительно колеса? нужен ли какой-нибудь прижим моторов и шестеренок к колесам?

Не бейте, если что не так спросил.

я использую SolidWorks (потому что знаком с ним) и изучаю OpenScad
Что лучше - это индивидуально. Думаю для программеров лучше OpenScad (там все кодом да формулами), тем кто абстрактно мыслит и больше любит покрутить получающуюся модель - лучше какой нибудь CAD (SolidWorks хорош дружественным интерфейсом и относительно несложным его изучением)
Мануала по OpenScad русскоязычного толкового я не встречал, а английский у них на сайте.
По SolidWorks спокойно въезжаешь в принципы работы по встроенному учебнику (на русском, с пошаговыми указаниями)

Относительно остальных вопросов, я думаю так:
шестерни правильно рисовать в openscad подключив готовые библиотеки (искать на thingiverse.com по "parametric gears")
оси колес садить на подшипник, который в свою очередь вкладывается в два стаканчика гранями навстречу друг другу.
а можно просто поискать "parametric weels"

SolidWorks совсем не дешев.
FreeCad достаточно простой, видел даже мануал на русском где-то. Осваивается более менее за день.
OpenSCad я забил пока изучать. Но для всяких сложных моделей типа шестерёнок самое оно.
Есть ещё Blender, но он сложен в освоении и подходит больше для скульптур.
Ну и самый простой Google ScetchUp, осваивается за час.

Тут сколько людей, стока и мнений. Лично я:
solidworks - так и не освоил, не пошел он у меня. надо наверна и правда туториалов посмотреть каких
freecad - не видел даже =)
openscad - основная тулза на текущий момент. Лично для меня главная сложность с ним - делать модули так, чтобы у них у всех координаты были в ожидаемых местах, иначе делать сборки нереально.
sketchup - не параметрический. Условно говоря, нельзя потом поменять размер какого-то предыдущего действия, чтобы оно соответствующим образом повлияло на остальное..

У меня в голове опилки и длинные слова меня только огорчают.

Попробовал OpenSCAD - Скриншоты

Здесь на ЛОРе есть люди, которые используют OpenSCAD в работе. А я вот отстал от жизни, и решил это исправить. Результаты на скриншоте - это корпус для устройства, которое я не очень давно делал. Вообще, корпус уже есть, и рисовал я его в SolidWorks, по этому я просто повторил его в OpenSCAD.

Делал я это в течение четырех вечеров. С непривычки весьма тяжело, однако под конец я уже начал понимать принципы работы. Очень понравилась возможность глобальной параметризации. Например, длина ножек светодиодов и положение их сгиба зависят от высоты корпуса, толщиты стенок, толщины платы и положением платы в корпусе. В SolidWorks такие зависимости бывает очень сложно сделать.

Есть и минусы, такие как отсутствие возможностии делать скругления и фаски. Помогает сумма Минковского, но в сложных случаях это выливается в невероятный геморрой и тормоза. Кроме того, нет оператора оболочки, нет вытягивания по направляющей, нельзя узнать размеры объекта и пр. Однако, есть возможность создавать произвольные объекты из точек и поверхностей, что, при наличии какого-никакого языка программирования с циклами и условиями, позволяет делать совсем нетривиальные вещи (конечно, если есть время этим заниматься).

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

В общем, несмотря на минусы, я все таки осилил доделать корпус и мне это понравилось.

Там есть разрез, на котором видно, что разъем MicroSD с картой и MicroUSB не касаются корпуса.

а ты OpenSCAD на работе будешь использовать или у тебя там SolidWorks?

SolidWorks. OpenSCAD я первый раз попробовал, может быть буду использовать, надо только некоторые моменты прояснить, например как правильно делать чертежи по моделям.

А вообще, для онтопика есть Pro/Engineer (старый правда, я с него перешел на SolidWorks) и Siemens NX. Проприетарщина, но хорошая, особенно NX. Free-CAD тоже можно пользовать, последние версии должны быть ничего. Есть еще Varicad, но он мутный какой-то.

По мне так это троллейбус из хлеба, потому как есть FreeCAD и FreeCAD-PCB. Т.е. OpenSCAD это CAD для программистов.

Как удивительно, что я до сих пор не знал о такой программе!

А как вы отдаёте готовую модель на производство? Экспортируете в какой-то популярный формат или в виде чертежа?

Ответ на: комментарий от dimss 17.12.2015 13:08:22

Как попросят. Для пластика STL, для листового металла чертеж или модель в SolidWorks.

Для начала вывести на экран «Хэлло Ворлд». С чего посоветуете начать)

1) Меня интересует какой процессор и контроллер купить - чтобы недорого было.

2) И что нужно, чтобы его прошивать.

3) Какой минимум компонентов нужно, чтобы выводить на экране сообщение.

neon1ks ? ( 17.12.2015 23:01:35 )
Последнее исправление: neon1ks 17.12.2015 23:04:12 (всего исправлений: 1 )

Ответ на: комментарий от Dark_SavanT 17.12.2015 22:04:05

Да, этот вариант я тоже держу в голове на запас. Но сейчас меня больше интересуют контроллеры.

Поставьте уже катю 5-ку и не мучайтесь. Разницы в производительности я лично не замечаю под wine. Разве что быстрее инстал идет (в wine). http://rutracker.org/forum/viewtopic.php?t=3650448. Этой хватит. Современные R62013, R62014. по ходу с кряками проблемы. Но там ничего такого что помешает наслаждаться реальным параметризмом. NX нативный это хорошо, но катьку все равно считают мощнейшим апаратом для получения 3д геометрии. Она и тажелую геометрию проще переваривает. Количество инструментов гигантское. Их логичность и отточенность тоже. 6-а версия кати это отдельная история. Вряд ли сегодня кто-то способен запустить сие чудо под онтопиком. Но для пятерки (которой хватит на десятилетия) это по моему тот случай когда wine просто охренительный АПИ нашару. Это тяжелый сапр с OpenGl ем. Но под вином летает

Ответ на: комментарий от vux 17.12.2015 23:45:04

here's some uneducated opinion

логичность и отточенность

Помню попробовал после NX'а попользоваться катией (точнее не совсем ей, а смежной делмией, которую получили для evaluation'а так сказать) и малость обалдел от интерфейса. После сред от автодеска и NX первое впечатление: «дизайнили явно негуманойды». Вероятно это была упомянутая 6ая, 5ую не видел честно говоря

Солид вот оказался привычнее, хотя от их API для addin'ов хочется кричать и резать вены

PS. бзв NX нативный под линукс выглядит и ощущается как из 80х годов, спасибо Motif'у

Midael ????? ( 18.12.2015 0:03:09 )
Последнее исправление: Midael 18.12.2015 0:06:51 (всего исправлений: 3 )

Ответ на: комментарий от Puzan 17.12.2015 16:19:07

а вот это жаль:( я надеялся, что под флагом импортазамещения начнут внедрять Linux сверху.

но скрин, конечно, всеравно вызывает уважение. работа, однако!)

crypt ??? ( 18.12.2015 0:07:44 )
Последнее исправление: crypt 18.12.2015 0:08:29 (всего исправлений: 1 )

Солид это не тот уровень. По возможностям моделинга, особенно кривымы солид сосёт. Да и вообще он упадет на элементарном «проэктировании забора» ))) грубо говоря. Да иконки в кате (и дельмии) из начала 90-ых но она очень удобна сама по себе. Я в дельмии не работал, но что-то мне подсказывает что инструменты там тоже по высшему разряду.

OpenSCAD констурктор для Структора

OpenSCAD констурктор для Структора

Мы накодили для вас конструктор в OpenSCAD для создания деталей #Структора. Можно создавать решётки любого размера и сохранять всю эту красоту в формат STL для дальнейшего производства.
Скачать конструктор
Скачать OpenSCAD
Создавайте свои детали, пробуйте разные материалы и рассказывайте что у кого из этого получилось)
  • Вконтакте
  • Facebook
  • Twitter
Навигация по записям

Попробовал импорт файлов из .dxf. Не работает. Работает только construct, а все содержимое simple и interfaces папок не импортируется (делал согласно документации к OpenScad). Попробовал через FreeCad — обрезанные фигуры. Так и должно быть? Или я чего-то не понял?

structor.scad полностью заменяет собой папку simple. Просто введите в конце structor([x,y], center=true);. где x и y — число шипов по двум сторонам простой детали. Получится деталь любого размера.

Не импортировалось в OpeScad из-за проблем с совместимостью. У нас там файлы все в формате dxf 27-й ревизии, а OpenScad понимает похоже только 15-ю. Поправил это, теперь импорт происходит (скачайте с гитхаба ещё раз).

Проблема с обрезанностью фигур посерьёзнее. Похоже OpenScad не умеет работать с окружностями в полилинии, поэтому просто срезает их. Если разбить все полилинии в dxf, то углы получаются уже не обрезанные, но и не окружности, как должны быть. У Openscad есть такой параметр окружностей как $fs, который задаёт «упрощённость» окружностей. То есть как много сторон будет у многоугольника, которым будет заменена окружность. Если больше 20 — то будет похоже на окружность. Если 3 — то будет треугольник вместо круга. При импорте похоже где-то задаётся $fs = 5, и почему-то не меняется извне. Пока ищу в чём проблема.

Спасибо за быстрый ответ. Со structor я сразу разобрался, а вот детали так и не импортируются. И интернет преобразователь из .dxf в .stl выдает ошибку. Вот два скрина, может я где ошибаюсь. Может проще .stl выложить?

Если б у нас были stl, то было б проще их выложить) Но их пока нет, мы всё делаем из DXF

Обновил репозиторий. Там появилась новая папочка scad, в ней есть два OpenScad файла. Один — тот же самый structor. Второй — interface.scad. Он делает нужное преобразование интерфейсных деталей в openscad. Посмотрите пожалуйста (нужно заново скачать все файлы)

Попробовал. Выдает «Ошибка:404″. Страничка отсутствует.

LugRap: 3D Печать, 3D Принтеры и другие приключения в стране RepRap планеты DIY: OpenSCAD

OpenSCAD - это программа твердотельного 3D моделирования. которая очень популярна среди RepRap сообщества. Принцип ее работы основан на написании алгоритма отрисовки 3D объекта.


Для начала нужно настроить наше рабочее пространство, как это сделать и облегчить себе работу в OpenSCAD читайте здесь .
Теперь удобно расположите ваши руки на клавиатуре и мы начнем.
Весь код мы будем вводить в окне Sublime Text и по нажатию Ctrl+S он будет отображаться в окне OpenSCAD. Но вы также можете обойтись и одним OpenSCAD. в этом случае вводите код в окно редактора OpenSCAD .


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

Отобразить оси


Первое что мы сделаем так это включим отображение осей в рабочем пространстве OpenSCAD для того чтобы проще было ориентироваться в пространстве, меню View - Show Axes .

Куб и Перемещение


Куб в OpenSCAD относится к прямоугольной призме. Чтобы создать куб введите:
cube(5);


Мы также можем отобразить куб в центре координат:
cube(5, center=true);


Куб с разными сторонами отображается следующей командой, где размер указывается в формате [x,y,z]:
cube([2,2,5], center=true);


Чтобы переместить объект используется команда translate([x,y,z]). например переместим предыдущий куб на 2 по Х, на 2 по У и на 10 по Z:
translate([2,2,10]) cube([2,2,5], center=true);


Если нужно переместить группу объектов то эта группа заключается в фигурные скобки, например так:
translate([2,2,10]) <
cube([2,2,5], center=true);
//.>В OpenSCAD все что идет после символов // является комментарием и не учитывается интерпретатором OpenSCAD при генерации 3D модели. в них можно писать пометки в вашем коде чтобы потом легче было разобраться в нем, особенно когда код будет очень большим и сложным.

Перемещать естественно можно и в отрицательные полуоси, например:
translate([2,-2,-10]) <
cube([2,2,5], center=true);
//.
>


А теперь сделаем модель буквы "П"

translate([2.5,0,2.5]) cube([2,2,5], center=true); //правая нога
translate([-2.5,0,2.5]) cube([2,2,5], center=true); //левая нога
translate([0,0,5]) cube([7,2,2], center=true); //перекладина


Каждая строка кода завершается точкой с запятой, после фигурных скобок точку с запятой ставить не обязательно.

Переменные


Вы можете использовать цифры при задании команд и создании объектов, но если вы хотите чтобы от изменения одного значения пересчитались и все остальные и когда ваша 3D модель будет очень сложной с большим числом строк кода, вам не обойтись без переменных.

Переменная определяется следующим образом:
parameter = 10;В OpenSCAD нельзя переопределять переменные, т.е. переменная должна быть задана только один раз, и она будет равна последнему присвоенному значению по всему тексту скрипта, например:
a = 10;
echo(a);

a = 15;
echo(a);Даст следующий результат:
ECHO: 15
ECHO: 15А теперь давайте сделаем ту же модель буквы "П" с применением переменных:
depth = 2; //глубина модели по оси Y
weight_leg = 2; //ширина ноги по оси X
height_leg = 5; //высота модели по оси Z
legs_space = 5; //расстояние между осями ног по X
weight_bridge = legs_space + weight_leg; //ширина перекладины равна расстоянию между осями ног плюс ширина ноги
height_bridge = weight_leg; //высота перекладины равна ширине ноги

translate([legs_space/2,0,height_leg/2]) //перемещаем правую ногу вправо по X
cube([weight_leg,depth,height_leg], center=true); //правая нога
translate([-(legs_space/2),0,height_leg/2]) //перемещаем левую ногу влево по X
cube([weight_leg,depth,height_leg], center=true); //левая нога
translate([0,0,height_leg + height_bridge/2]) //перемещаем перекладину вверх по Z
cube([weight_bridge,depth,height_bridge], center=true); //перекладина


Попробуйте поэкспериментировать с различными значениями параметров.
Как видите теперь намного проще изменять модель.

Теперь давайте взглянем на другие формы которые вы можете использовать в OpenSCAD .

Сфера


Простая сфера (шар) может быть определена командой:
sphere(r=5);


Вы можете управлять разрешением сферы и других форм при помощи параметра $fn. Разрешение можно задать как для всего скрипта:
$fn = 50;Так и для конкретной формы которая позволяет использовать этот параметр:
sphere(r=5, $fn = 50);


На время проектирования рекомендуется использовать разрешение 20-40, а при компиляции и прорисовке готовой модели 100-150, потому что чем выше разрешение тем дольше будет проходить компиляция и тем больше понадобится памяти OpenSCAD .


Цилиндр и Вращение


Для цилиндра нужно указать два параметра, радиус и высоту, а также можно указать разрешение как для сферы и положение относительно центра как для куба:
cylinder(r=5, h=5, center=true, $fn = 50);


Цилиндр создается в вертикальном положении, а если нам он нужен в горизонтальном положении то мы воспользуемся функцией вращения rotate([x,y,z]). где x,y,z - это угол на который нужно повернуть относительно соответствующей оси. Например повернем цилиндр на 90° относительно оси Y:
rotate([0,90,0]) cylinder(r=5, h=5, center=true, $fn = 50);


А теперь повернем и переместим цилиндр одновременно:
translate([0,0,5]) rotate([0,90,0]) cylinder(r=5, h=5, center=true, $fn = 50);Этот код можно написать и подругому:
translate([0,0,5]) <
rotate([0,90,0])<
cylinder(r=5, h=5, center=true, $fn = 50);
>
>


Из цилиндра можно получить конус задав разные диаметры сверху и снизу:
cylinder(r1=20, r2=3, h=40, center=true, $fn=50);


Где r1 - диаметр основания, а r2 - диаметр вершины. Вы также можете получить идеальный конус задав диаметр r2 равным нулю.

Объединение и Вырезание

Объединение неявно когда не используется. Но оно необходимо, например когда необходимо вырезать один объект из группы объектов. Пример объединения:
union() <
cylinder (h = 4, r=1, center = true, $fn=100);
rotate ([90,0,0]) cylinder (h = 4, r=0.9, center = true, $fn=100);
>


Все что мы рассмотрели ранее позволяет создавать объекты сложной формы посредством добавления небольших частей друг к другу. Но очень часто нам нужно вырезать какую-то часть. И рассмотрим мы это на примере создания кольца. В функции вырезания из первого объекта вырезаются все последующие:
$fn = 50;

difference() <
// Из этого цилиндра мы будем вырезать
cylinder(r=10, h=5, center=true);

// Все остальное следующее далее будет вырезано
cylinder(r=8, h=6, center=true);
>


Иногда очень удобно видеть что мы вырезаем и в этом случае можно использовать специальный знак #. который делает видимым вырезаемую часть:
$fn = 50;

difference() <
// Эта часть будет создана
cylinder(r=10, h=5, center=true);

// Все остальное следующее далее будет вырезано
#cylinder(r=8, h=6, center=true);
>


Вырезаемая часть всегда должна быть немного больше. Например в рассмотренном выше примере, если между внешним и внутренним цилиндрами не будет перекрытия мы получим "оболочку" равную нулю. Это плохой стиль 3D моделирования. и может привести к ошибкам при генерации модели (рендеринг) или отправке модели в 3D принтер .


Поэтому всегда учитывайте это и делайте вырезаемый объект немного выступающим, 0.1мм достаточно.

А теперь используем объединение и вырезание в одном примере, чтобы наглядно показать как вырезать из группы объектов:
difference() <
union() <
cylinder (h = 4, r=1, center = true, $fn=100);
rotate ([90,0,0]) cylinder (h = 4, r=0.9, center = true, $fn=100);
>
rotate([0,90,0]) cylinder(r=1, h=10, center=true, $fn=100);
>

Модули


Модули являются мощным средством в OpenSCAD. они позволяют упростить и повторно использовать однажды написаный код.
Сделаем ранее рассмотренную модель буквы "П" с использованием модуля:
// Инструкции как должна создаваться буква "П"
module pi() <
// Параметры
depth = 2; //глубина модели по оси Y
weight_leg = 2; //ширина ноги по оси X
height_leg = 5; //высота модели по оси Z
legs_space = 5; //расстояние между осями ног по X
weight_bridge = legs_space + weight_leg; //ширина перекладины равна расстоянию между осями ног плюс ширина ноги
height_bridge = weight_leg; //высота перекладины равна ширине ноги

translate([legs_space/2,0,height_leg/2]) //перемещаем правую ногу вправо по X
cube([weight_leg,depth,height_leg], center=true); //правая нога
translate([-(legs_space/2),0,height_leg/2]) //перемещаем левую ногу влево по X
cube([weight_leg,depth,height_leg], center=true); //левая нога
translate([0,0,height_leg + height_bridge/2]) //перемещаем перекладину вверх по Z
cube([weight_bridge,depth,height_bridge], center=true); //перекладина
>

// Эта строчка говорит OpenSCAD найти инструкции как создавать букву "П" и создать ее
pi();


А теперь давайте улучшим модуль и будем передавать параметры в него, что позволит повторно использовать модуль с разными размерами, и создадим несколько разных букв "П":
// Инструкции как должна создаваться буква "П"
module pi(depth, weight_leg, height_leg, legs_space) <
// Параметры
weight_bridge = legs_space + weight_leg; //ширина перекладины равна расстоянию между осями ног плюс ширина ноги
height_bridge = weight_leg; //высота перекладины равна ширине ноги

translate([legs_space/2,0,height_leg/2]) //перемещаем правую ногу вправо по X
cube([weight_leg,depth,height_leg], center=true); //правая нога
translate([-(legs_space/2),0,height_leg/2]) //перемещаем левую ногу влево по X
cube([weight_leg,depth,height_leg], center=true); //левая нога
translate([0,0,height_leg + height_bridge/2]) //перемещаем перекладину вверх по Z
cube([weight_bridge,depth,height_bridge], center=true); //перекладина
>

// Эта строчка говорит OpenSCAD найти инструкции как создавать букву "П" и создать ее
pi(2,2,5,5);
translate([10,0,0]) pi(1,3,7,4);
translate([-10,0,0]) pi(4,1,2,5);


Модули незаменимы когда вы работаете с функциями которые должны повторно использоваться в вашей модели.

Вот мы и рассмотрели основные функции OpenSCAD. которые позволят вам создавать ваши 3D модели в такой замечательной программе твердотельного 3D моделирования как OpenSCAD .

Продолжение следует.

При копировании ссылка на источник обязательна.

3D модели для KiCAD

3D модели для KiCAD. Часть 1 - OpenSCAD

Если вы разрабатываете электронику и искали подходящее свободное ПО, наверняка вы уже знакомы с проектом KiCAD. Он предназначен для проектирования электрических схем и печатных плат. Меня он покорил своей кроссплатформенностью, лёгкостью в освоении и стабильностью работы. Одной из отличительных свойств этого проекта является поддержжка 3D моделей компонентов, а это даёт замечательную возможность посмотреть, как ваша плата будет выглядеть после сборки. К сожалению, многие считают создание 3D моделей сложной задачей. Кроме того, KiCAD поддерживает только модели, созданные в Wings3D. Нарисовать там что-то для начинающего довольно сложно. К счастью, есть более красивые пути. Один из них мы сегодня и рассмотрим. Речь пойдёт об OpenSCAD .

В качестве примера для написания этой статьи я решил взять корпус SSOP28. Почему? Да просто потому, что он понадобился в одном из моих проектов. Кстати, в процессе создания модели мы параметризуем все размеры и сможем путём изменения нескольких параметров сгенерировать любой корпус от µSOP до LFQP.

Итак, наша модель будет представлять собой условно говоря, прямоугольный параллелепипед с массивами выводов по сторонам и небольшой выемкой около первого вывода, поэтому создание модели можно выполнить в следующем порядке:

  • Создание вывода
  • Создание корпуса
  • Создание массива выводов
  • Создание выемки в корпусе
  • Компоновка массивов выводов вокруг корпуса

Итак, начнём с вывода. Выводы, как правило, не очень хорошо описаны в справочной документации на компоненты, и могут слегка отличаться для одной и той же модели корпуса у разных производителей. Поэтому наша задача - создать приблизительно похожий профиль, но с чётко заданными шириной, длиной и высотой.

Нарисуем вывод в виде полигона. Здесь можно пойти двумя путями: вручную прописать координаты всех восьми точек, либо задать несколько размеров и считать остальные точки автоматически. Первый путь проще для эксперимента, но гораздо сложнее, если потребуется что-то изменить, поэтому мы пойдём правильным путём и зададим следующие размеры:

Учитывая, что толщина пина - величина постоянная, вычислим координаты всех точек и создадим пин:

В этом коде вы можете увидеть создание полигона по заданным точкам (команда polygon), экструзию (linear_extrude) полигона, и поворот получившейся фигуры в нужную позицию.

В итоге должно получиться следующее:

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

Массив выводов делается гораздо проще:

Осталось совсем немного. Мы не будем заморачиваться над фасками корпуса, а просто сделаем прямоугольный параллелепипед и вычтем из него небольшой цилиндр, чтобы создать выемку около первого вывода:

Всё, что нам осталось - это скомпоновать массивы выводов вокруг корпуса:

Получится вот такая красота:

Заметьте, что эта модель полностью параметризуема и путём модификации параметров может быть легко превращена практически в любой SMD корпус с гибкими выводами (µSOP, SSOP, SO, TQFP,LQFP, и т.д.) При необходимости, изменив модель вывода и компоновку, можно сделать и другие корпуса, например PLCC или DIP. В такой параметризации и заключается, на мой взгляд, главнейшее преимущество OpenSCAD над любыми другими программами 3D моделирования.

В заключение, полный код модели (можете поиграться с параметрами и создать свой корпус):

Немного улучшенная модель, которую я и использую, можно скачать здесь. В отличие от нашей учебной модели она использует polyhedron вместо куба и поддерживает фаски.

Выглядит она следующим образом:

В следующей статье мы рассмотрим альтернативный метод создания моделей - при помощи FreeCAD. И, наконец, в заключительной части мы добавим красок нашим моделям и подключим модели в KiCAD.

OpenSCAD (Страница 1) - 3D редакторы с поддержкой

Тема: OpenSCAD

Эта программа не является классическим 3д редактором. Для создания объектов требуется написать некоторый код, наподобие программы. Есть визуализатор, показывающий, что получилось. Например, понадобилось мне сделать шкив, типа катушки. 5 минут:
difference()< //вычитание - делаем дырку
union()< //сложение - делаем корпус
cylinder(h=10,r=10,$fn=32); //основное тело
cylinder(h=2,r1=11,r2=10,$fn=32); //конический край нижний
translate([0,0,8]) //поднимаем нулевую точку
cylinder(h=2,r1=10,r2=11,$fn=32); //конический край верхний

>
cylinder(h=10,r=4.5,$fn=32); //дырка
translate([0,0,5])
cylinder(h=5,r1=5,r2=6,$fn=32); //и коническая часть дырки
>
Для меня, как программиста это гораздо быстрее и точнее, чем двигать объекты. А редактор, типа Блендера еще полгода изучать надо и без частого пользования он забывается.
Так что после долгих мучений я на все редакторы забил и пользуюсь OpenSCAD.

2 Ответ от Siorinex 2011-11-16 21:49:47 Re: OpenSCAD

Почему у меня впечатление, что ЭТО станет моим 3Д редактором №1.
Всё-же все эти 3Д студии и Блендеры - довольно заумные, а чаще всего надо тупо задать деталь с определёнными параметрами.

3D печать

3D печать. OpenSCAD- Рисовать или программировать.

Давно не писал в блоге. Исправляюсь.

Недавно мое внимание привлек интересный, на мой взгляд, 3D редактор для разработки моделей для печати. Его необычность заключается в том, что модель не рисуется, а программируется, в прямом смысле этого слова. Встречайте — OpenSCAD. Как видно из названия, программа совершенно бесплатна и имеет исходные коды в свободном доступе. Соответственно работать можно как в Windows, Linux, Mac, так и в других системах, где есть компилятор кода С++.

Интерфейс редактора предельно прост. С левой стороны редактор кода, с правой – предпросмотр готовой модели. После написания кода можно выбрать кнопку просмотр на панели инструментов или нажать F5 для того, чтобы посмотреть, как выглядит ваше творение. Затем провести рендеринг для его оцифровки (кнопка рядом или F6). И далее – экспортировать в STL формат или какой-либо другой.

Все основное волшебство заключается именно в написании исходного кода. Язык программирования очень напоминает Си. Для создания объекта достаточно указать тип элемента, его местоположение, размер, поворот и несколько других параметров. К примеру, цилиндр высотой 10мм, радиусом 3мм и размещенным по центру на языке OpenSCAD выглядит так: cylinder(d=3,h=10,center=true);

Мдаа… Как-то не очень… Сделано это для того, чтобы уменьшить время расчета модели. Перед экспортом надо указать параметр $fn ,тем самым увеличив количество граней концентрических окружностей. Чем больше значение, тем более гладкой будет поверхность.

Для того, чтобы показать некоторые возможности, разработаем (читай — запрограммируем), например, модель держателя шагового двигателя nema 17 для сборки 3D принтера Mendel-90.

Как и в любом языке программирования здесь можно использовать подпрограммы, или как они называются – модули. Модули удобны тем, что им можно передавать значения, подобно подпрограммам, и использовать их для создания однотипных элементов.

Модуль div рисует горизонтальную площадку, ups – вертикальную. Переменная d_bolt задает радиус под болты. Ключ $fn – см. выше.

Функция difference() выдавливает из первой фигуры последующие. Функция translate () перемещает элемент на заданные координаты (х,у,z). Функция rotate () поворачивает фигуру на указанный угол.

Используем фигуры cube () – куб, прямоугольник, cylinder () – цилиндр.

cylinder (h=7, r=11, center =true);

translate([-15.5,15.5,0])cylinder (h=7, r=d_bolt, center =true);

translate([-15.5,-15.5,0])cylinder (h=7, r=d_bolt, center =true);

translate([15.5,-15.5,0])cylinder (h=7, r=d_bolt, center =true);

translate([15.5,15.5,0])cylinder (h=7, r=d_bolt, center =true);

translate([25,0,18]) cube([4,46,40],center = true);

rotate ([0,90,0]) translate([-20,12,12])cylinder (h=40, r=d_bolt, center =true);

rotate ([0,90,0]) translate([-20,-12,12])cylinder (h=40, r=d_bolt, center =true);

Подведем итог сего. На первый взгляд редактор имеет:

— Портируемость на любую платформу, писать программы можно даже на планшете или смартфоне ;

— Абсолютно бесплатно;

— Используя преременные можно внести изменения в весь проект сразу;

— Простота использования;

— Сложно использовать для построения сложных моделей (шестерни, резьбы, точные изгибы);

— Небольшое количество библиотек базовых моделей.

Хотя есть любители, которые программируют и такое:

Все… Пока все… Следите за новыми публикациями.