CAD

руководство по openSCAD

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

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

Введите стандартный способ описания любого материала с помощью команд.

Что делает openSCAD таким особенным?

В openSCAD вы ничего не рисуете указателем или пером. Вы кодируете весь кусок с помощью команд и функций. Это неудобно для инженеров-механиков, но для программистов у вас другая ситуация. Помимо личных предпочтений, у вас также есть преимущество в точности. Когда вы разрабатываете его с помощью кода, у вас есть точность в коде.

Самая мощная особенность openSCAD - бинарные операции. Вы можете использовать бинарные операторы, чтобы соединить части или вырезать материал. Куб с отверстием в центре легко сделать, вытянув цилиндр из куба. Некоторые из этих операций доступны в другом программном обеспечении САПР, но естественно использовать их в openSCAD.

Что нужно вашему проекту?

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

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

Установка

OpenSCAD, доступный в ваших стандартных репозиториях для большинства дистрибутивов, также может быть установлен с помощью оснастки и AppImage. Интересно то, что у вас также есть второй пакет, который включает винты, шестерни и общие формы. Самый новый пакет находится в оснастке openscad-nightly.

sudo apt установить openscad
sudo snap установить openscad-nightly

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

sudo apt установить openscad-mcad

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

Несколько стандартных форм

Принципы создания сценариев САПР заключаются в том, что у вас есть несколько стандартных геометрических фигур. Вы используете эти формы и объединяете их в более сложные формы. Стандартные формы - круг, квадрат и многоугольник для 2D. Для 3D у вас есть сфера, куб, цилиндр и многогранник. Используя одни из них для сборки, а другие для резки, вы можете создавать очень сложные формы.

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

Кроме того, вы можете выдавливать формы из существующих объектов.

Трансформации

По умолчанию вы создаете все части в центральной точке сетки во всех измерениях. Это заставляет их все пересекаться. Когда у вас есть несколько фигур, вы хотите, чтобы они были размещены в нужном месте и повернуты. Это самые простые функции, translate помещает объект в другое место. Команда поворота вращает объект или дочерние объекты. У вас также есть функция зеркального отражения, которая создает копию объекта, отраженную вокруг данной оси.

Другие преобразования нуждаются в примерах для объяснения. Короче говоря, корпус создает внешние линии самых разных форм. Попробуйте с двумя кружками и объедините их с корпусом (). Или код ниже.

translate ([- 10,0,0])
hull ()
цилиндр (30, 5, 1);
куб (9);
сфера (12);

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

Логические операции

Многие части не могут быть созданы только из квадратов, цилиндров и сфер. Первое, что вы можете сделать, это объединить и вырезать несколько фигур в одну. Для этого вы используете логические операторы. Это союз, различие и пересечение.

union ()
куб ([35, 5, 2], center = true);
цилиндр (h = 2, r = 5, center = true);

В приведенном выше коде вы получаете цельный кусок с лампочкой в ​​центре. Чтобы сделать трубку, вы берете разницу между одним цилиндром и другим.

разница()
цилиндр (h = 15, r1 = 30, r2 = 30, center = true);
цилиндр (h = 15, r1 = 25, r2 = 25, center = true);

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

пересечение ()

повернуть ([45,0.0])
цилиндр (h = 40, r = 4, center = true);
translate (5,5,5)
цилиндр (h = 40, r = 6, center = true);

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

Для петель

Многие из ваших дизайнов будут иметь одно и то же множество раз, подумайте о патио. Их обычно делают из нескольких досок с промежутками между ними. В этом случае вы делаете одну доску и просто перебираете ее с помощью цикла for.

разрыв = 8;
plank_width = (bed_width / 4) - промежуток;
num_planks = 4;
для (plank_x_pos = [0: 1: num_planks - 1])

перевести ([ширина_планки * ширина_планки + расстояние * положение_плоскости, 0,0])
куб ([ширина_планки, 4,200]);

Без цикла for вы бы написали куб и операторы перевода четыре раза. Вы также должны были бы рассчитать, как далеко уйдет следующая доска. Даже из четырех частей это решение выглядит намного проще. В примере вы также можете увидеть переменные, которые необходимо установить. Все переменные устанавливаются во время компиляции, это важно, поскольку вы можете столкнуться с проблемами отладки, если будете думать о них как о значениях в других языках программирования. Как вы увидите позже, вы также можете сделать все патио модулем.

Математика

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

для (i = [0:36])
перевести ([i * 10,0,0])
цилиндр (r = 5, h = cos (i * 10) * 50 + 60);

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

Модули и функции

У вас есть много модулей, включенных в установку openSCAD. Однако вы также можете скачать другие библиотеки. В вашем дистрибутиве вы, вероятно, найдете MCAD, также называемый openscad-mcad. Для установки под Ubuntu.

$ sudo apt установить openscad-mcad

Внутри этого пакета вы найдете как модули, так и функции. Прежде чем начинать какой-либо проект, поищите библиотеки и модули. Уже есть библиотека винтов, и это только начало. Отсутствует часть вашего дизайна? Создавайте собственные модули; вы используете их для создания новых частей. Когда вы используете параметры, вы можете сделать из них множество версий. Лучший способ создать модуль - сделать дизайн в виде отдельного файла, выяснить, что должно быть динамическим, и добавить «модуль» вокруг части.

Чтобы использовать модуль, вы называете его по имени. Поскольку многие модули поставляются в отдельных файлах, вы должны поместить оператор include в начало файла. Обратите внимание на разницу между оператором include и оператором use. Если вы хотите, чтобы все в файле выполнялось, вы «включаете» его, если вы хотите, чтобы были определены только модули и функции, «используйте» файл. Чтобы убедиться, что вы можете использовать модули, вы должны поместить их в текущий каталог вашей модели или в один из путей поиска.

Во-первых, давайте посмотрим на несколько, которые вы можете скачать и использовать.

Винты

В пакете из предыдущего раздела вы можете найти много чего. Одна группа - винты! Вы можете опробовать их, загрузив их в приложение и вызвав модуль. В библиотеке MCAD можно найти множество винтов. Есть много других коллекций из других источников. Чтобы использовать винт, создайте файл, содержащий инструкцию include для нужного вам модуля. Теперь, где бы вы ни захотели использовать модуль, вы можете использовать имя модуля для создания своего винта.

включать ;
ball_groove (12, 40, 2);

Это винт, который может поместиться в мяч. Вы также можете найти nut_and_bolts_scad, который определяет метрические винты и болты. Дизайнеры использовали веб-сайт, на котором вы можете найти болты, и создали метод, который вы можете использовать. Другой пример - отверстие под болт.

включать
разница()
куб ([12,16,20], center = true);
перевести ([0,0, -3])
boltHole (8, длина = 300);

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

Изготовление тележки

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

колесная база = 150;
длина тележки = колесная база * 1.2;
cartwidth = 50;
диаметр колеса = 25;
высота подвески = (диаметр колеса / 2) + 5;
translate ([колесная база / 2, ширина тележки, 0])
повернуть ([90,0,0])
цилиндр (r = радиус колеса, 10, центр = истинный);
translate ([колесная база / 2, - (ширина тележки), 0])
повернуть ([90,0,0])
цилиндр (r = радиус колеса, 10, центр = истинный);

Код показывает код первых двух колес. Если немного подумать, то, наверное, можно сделать задние колеса. Чтобы добавить зенитку, поверхность, на которой размещается весь материал, вы просто добавляете куб. Используйте переменные, которые вы указали в коде.

translate ([0, 0, Suspensionheight])
куб ([длина тележки, ширина тележки, 10], центр = истина);

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

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

перевести ([колесная база / 2,0,0])
повернуть ([90,0,0])
цилиндр (r = радиус колеса * 0.25, h = (ширина тележки * 2) + 15, center = true);

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

// Приостановка
translate ([колесная база / 2, 0, высота подвески])
rotate ([90,0,0])

разница()
цилиндр (r = высота подвески, 10, центр = истинный);
цилиндр (r = высота подвески - 5, 11, центр = true);
куб ([102, высота подвеса / 6, 12], center = true);

перевести ([высота подвески, 0, 0])
цилиндр (r = высота подвески / 3, h = 12, центр = true);
translate ([- Suspensionheight, 0, 0])
цилиндр (r = высота подвески / 3, h = 12, центр = true);

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

Код корзины доступен по адресу https: // github.com / matstage / Carriage! Дальнейшее развитие событий может произойти позже.

Библиотеки

В предыдущей части вы использовали только круги. Любые проекты, использующие только эти примитивы, не будут лучшими для всех приложений. Вам нужно создавать красивые и эффективные дизайны. Решение - математика! Чтобы добавить это, вы должны начать с использования чужих библиотек.

Есть большое количество библиотек, созданных умными людьми в сообществе. Люди, которые создают, - это пользователи, которые решают свои проблемы, а затем любезно делятся этим со всеми. Спасибо вам всем! Хороший пример - dotSCAD; для примера подвески вы можете найти кривую Безье.

Экспорт в другое программное обеспечение

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

Альтернативы

Еще одна интересная альтернатива - ImplicitCAD. Это программное обеспечение находится в стадии разработки. Вы должны запустить его командную строку, и для этого требуется Haskell в вашей системе. Большинство стандартных установок не имеют Haskell!

Заключение

На первый взгляд, использовать openSCAD очень сложно. Преодолеть кривую обучения - это немного сложно, но для многих пользователей оно того стоит. Благодаря проектам внести свой вклад в проект. У вас есть много функций, доступных в конце команды git. Простое освоение основ создания механических конструкций с помощью кода меняет ваше представление о формах. Это полезно, даже если вы продолжите использовать указатель и щелкать мышью, чтобы реализовать другие проекты.

  • https: // www.openscad.org / документация.html?версия = 2019.05
  • http: // edutechwiki.униж.ch / en / OpenScad_beginners_tutorial
  • https: // www.openscad.org / cheatsheet / index.html
Топ-5 карт для захвата игр
Все мы видели и любили потоковые игры на YouTube. PewDiePie, Jakesepticye и Markiplier - лишь некоторые из лучших игроков, которые заработали миллионы...
Как разработать игру в Linux
Десять лет назад не многие пользователи Linux могли бы предсказать, что их любимая операционная система однажды станет популярной игровой платформой д...
Порты коммерческих игровых движков с открытым исходным кодом
Бесплатные игры с открытым исходным кодом и кроссплатформенные версии игрового движка можно использовать для игры как в старые, так и в некоторые из с...