Создать цилиндр в freecad

Основы работы в 3D редакторе FreeCAD. Часть 2

Пространства имён

Действия на странице

Содержание

Основы работы в 3D редакторе FreeCAD. Часть 2

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

За основу возьмем модель робота, созданную из китайского набора. С помощью редактора FreeCAD создадим три детали для этой конструкции:

1. Цилиндрическая проставка между платформами,

• длина определяется высотой моторов с редукторами, т.е. 22мм,

• отверстие внутри — 3,4мм под винт М3.

• Наружный диаметр для достаточной прочности примем равным 8мм.

2. Крепление мотора, являющееся одновременно проставкой.

• расстояние между центрами отверстий крепления моторов 17,2мм, диаметр 3,4мм под винт М3

• Отверстия под крепление к платформам сделаем диаметром 2,2мм, чтобы крепить саморезами 2,5мм.

3. Шаровая опора. Здесь основные размеры таковы:

• диаметр шарика, который оказался под рукой — 19мм (от мышки)

• Винты будем использовать М3, значит отверстия 3,4мм

• Диаметр описанной окружности шестигранника под гайку М3 — 7мм

• Ну и высота конструкции вместе с шариком должна быть 11,5мм.

Подготовим рабочий стол, так, как это описано в 1 части статьи и приступим к работе.

Моделируем цилиндрическую проставку.

2. Выбираем рабочий стол Part.

4. Выбираем аксонометрический вид.

5. Выделяем объект Цилиндр в окне комбо панели.

6. Выбираем вкладку «Данные».

7. Устанавливаем радиус цилиндра 4мм.

8. Устанавливаем высоту цилиндра 22мм.

9. Кликаем мышкой на рабочее поле и, вращая колесо мыши, подбираем удобный масштаб (далее на этом останавливаться не будем. После произведения каждой операции нужно будет при необходимости самостоятельно подобрать масштаб, перемещать, вращать деталь, чтобы рассмотреть её, использовать кнопки стандартных видов).

Теперь нужно сделать отверстие в проставке.

1. Создаем еще цилиндр, появляется объект Цилиндр001.

3. Устанавливаем радиус 1,7мм.

4. Устанавливаем высоту 22мм.

Следующий этап — вычитаем из объекта Цилиндр объект Цилиндр001, получаем объект cut ( в дальнейшем будем писать так: «выполняем: Цилиндр — Цилиндр001 = cut»)

1. Выделяем объект Цилиндр (из которого надо вычесть).

2. Зажав Ctrl, выделяем Цилиндр001 (который надо вычесть).

3. Нажимаем кнопку «Выполнить обрезку двух фигур». В результате появился объект cut.

Проект нужно сохранить, сохраним под именем Prostavka. Файл — сохранить как — выбираем папку — вводим имя файла — жмем Сохранить.

Сразу экспортируем объект в формат STL для печати на 3D принтере:

• Обязательно выбираем объект, который нужно экспортировать, т.е. в комбо панели выделяем итоговый объект Cut

• далее нажимаем Файл — Экспортировать — выбираем папку — выбираем из раскрывающегося списка типов файлов «Mesh formats» — вписываем в окошко название файла Prostavka.stl. Именно так и вписываем, вместе с расширением файла.

Вот и первый файл для печати готов.

Моделируем крепление двигателя.

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

Читайте также:  Как заменить тормозной задний цилиндр шкода фабия

1. Создаем новый пустой документ.

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

3. Создаем Куб. Выделяем его в комбо панели, нажимаем вкладку Данные, вводим размеры:

Куб теперь, несмотря на название, больше напоминает параллелепипед. Покрутим колесо мыши, подберем масштаб отображения, подвинем объект на удобное место.

4. Создадим Куб001. Не забываем выделить его. Задаём размеры:

Кликнем в окошко значений Placement, нажмем на маленькую кнопочку справа в окошке значений и введем местоположение — в окне координаты Х поставим значение 4мм. Нажмем внизу «Применить» и «ОК».

5. Создадим Цилиндр. Введем размеры:

Изменим местоположение (изменим координаты):

6. Выполним: Куб001 + Цилиндр = Fusion

8. Выполним: Fusion — Цилиндр001 = Сut

9. Продублируем объект Cut: выделим его в комбо панели, нажмем Ctrl C (В появившемся всплывающем окне подтвердим — да), нажмем Ctrl V. Теперь видим, что в окне комбо панели появился объект Cut001. Выделим его в панели и изменим местоположение:

10. Выполним: Куб + Cut + Cut001 = Fusion002, для этого нужно выделить все три объекта и нажать на кнопку сложения.

• Поворот вокруг оси Y: 90 градусов

• Z=2,4mm (22-17,2=2,4) Как мы помним, высота детали 22мм, расстояние между отверстиями 17,2мм.

12. Продублируем Цилиндр004: Выделим его в панели, нажмем Ctrl C — Ctrl V. Появился Цилиндр005.

13. Изменим положение объекта Цилиндр005 только по оси Z:

14. Выполним: Цилиндр004 + Цилиндр005 = Fusion003

15. Выполним: Fusion002 — Fusion003 = Cut002

16. Создадим Куб003 (выемка под выступ на моторе), изменим размеры:

17. Выполним: Cut002 — Куб003 = Cut003

18. Деталь готова, сохраним проект, выделим итоговую деталь Cut003 и экспортируем её в STL.

Моделирование шаровой опоры.

Итак, шарик был под рукой диаметром 19мм, исходя из этого и рисуем опору. Когда детали должны подходить друг к другу, нужно оставлять допуски (например, на неточности 3D) и всегда представлять себе, каким образом эта деталь будет печататься. Поэтому выворку под шарик сделаем диаметром 19,8мм. Пусть вращается посвободнее.

1. Создадим новый документ, закроем сохраненный предыдущий.

3. Создадим объект Сфера001.

• Z=-4мм. Да, координаты и отрицательными могут быть.

7. Для объекта Цилиндр001 изменим положение только по одной оси:

8. Выполним: Сфера001 + Цилиндр + Цилиндр001 + Куб = Fusion

10. Создадим объект Призма (см. Часть 1 статьи)

11. Выполним: Цилиндр002 + Призма = Fusion001

12. Продублируем объект Fusion001

Изменим положение для объекта Fusion002 только для одной координаты:

15. Изменим положение объекта Куб002 только по одной координате:

16. Выполним: Fusion001 + Fusion002 + Сфера + Куб001 + Куб002 = Fusion003

17. Выполним: Fusion — Fusion003 = Fusion003.

Теперь у нас получилась деталь Cut, которую надо разделить на две половины. Сделаем мы это достаточно просто.

19. Выполним: Cut – Куб003 = Cut001

Теперь получилась одна половинка детали, которую уже надо сохранить. Сохраняем проект, экспортируем файл в STL.

Затем делаем отмену Ctrl Z. Делаем видимыми Cut и Куб003

20. Теперь меняем координату для объекта Куб003:

21. Выполним: Cut – Куб003 = Cut001

Теперь получилась вторая половина детали. Её сохраним под другим именем и тоже экспортируем в файл формата STL.

Таким образом были созданы 3 детали, которые готовы к печати. Если показалось, что работать в редакторе FreeCAD долго и трудно, то это лишь сначала. К тому же мы рассмотрели только маленькую часть его возможностей, чтобы показать, что даже такими простыми методами можно создавать необходимые для творчества детали. В следующей статье будет рассмотрен редактор SketchUP в объеме, достаточном для моделирования деталей роботов.

Читайте также:  Блок цилиндров описание назначение

Источник

FreeCAD — новый метод рисования

Disclamer: Я никогда в своей жизни не работал с CAD/CAM приложениями раньше, и, вдруг, пришлось. Принципы работы FreeCAD меня так восхитили, что это требует срочного поста на Хабр, чтобы рассказать другим.

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

Вступление

У меня возникла простая задача — сделать 3D модель своей квартиры. Не просто «стенки в размер», а все балки, выступы и загибы. Я попробовал одну, вторую, третью программу… Я отчаялся (началось с SweetHome3D, а закончилось blender и inkscape). Они все были чертовски неудобными. Среди программ, которые я попробовал, был и FreeCAD, который я пропустил по причине «нифига не сделать» и «не работает толком». После того, как я отчаялся, я пошёл по второму кругу. На этот раз, чуть больше читая документацию… И FreeCAD не только «взлетел», но и ещё и открыл для меня восхитительный новый мир точного векторного рисования, основывающегося на Constrains.

Проблемы моделирования

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

Начнём с SweetHome3D. Условно-понятный интерфейс, позволяющий описать комнату как «пол» (где задаётся форма и выступы), вокруг которой делается «стена». SweetHome3D дал мне две проблемы: пиксельхантинг (размер меняется либо микроскопическими сдвигами мыши, либо в диалоге, но не существует метода «прижать» стенку к полу с точностью — только пиксельхантинг. Вторая проблема — модель SweetHome3D не подразумевает существование балок, арок и других элементов стены, не идущих сверху до низу. Дополнительно, SH3D не умеет наклонных стен и полов (я бы хотел, чтобы такой проблемы у меня не было, но перед тем, как эту проблему устранять IRL, её надо задокументировать). Т.е. SH3D покрывает 90% того, что мне было нужно, доставляя невероятную боль с 5%, и делая невозможным оставшиеся 5%.

Blender теоретически позволяет сделать всё, но только теоретически. На практике либо моих навыков не хватало, либо сам процесс очень медлительный, но нарисовав три с половиной угла, я сдался. Слишком медленно и слишком много возни с освещением и другими неважными вещами. Плюс (насколько я знаю), Blender вряд ли сможет показать нормальные 2D проекции с размерами.

Inkscape был хорош кроме одной проблемы — в многосекционной линии (F2) невозможно задать размеры каждой секции. Можно было бы — я бы всё в Inkscape так и рисовал.

… Но мой пост не про абсолютное превосходство FreeCAD над Blender (я в обоих их новичок и толком сравнить не могу), а про новый стиль рисования. Сначала про проблемы старого стиля (то есть «обычного» векторного рисунка).

Проблема пиксель-хантинга

Перед тем, как перейти к картинкам и объяснению идеи Constrains, я хочу сфокусироваться на нескольких проблемах, которые извечно преследуют векторные рисунки:

Почти объединённые кривые. Если две кривые почти соприкасаются, то можно подумать, что они соприкасаются. В какой-то момент (при печати, либо при дальнейших манипуляциях), картинка развалится.

Почти параллельные/перпендикулярные линии. Они параллельны, но не до конца.

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

производная от предыдущего — линии, стыкующиеся под углом в 0.001°.

неточности в размерах и толщине линий. Линия имеет свою толщину, и при редактировании (поворотах, ресайзах и т.д.) толщина начинает плыть. Более того, в большинстве векторных реакторов трудно нарисовать квадрат с площадью 100 и линией толщиной 0.5 (потому что линия на 50% заходит на площадь фигуры, и мы имеем не 10х10 внутри, а 9.75х9.75).

Читайте также:  Чем смазать поршень тормозного цилиндра под пыльником

Сохранение align’а и симметрии является задачей, требующей постоянного внимания.

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

Constrains

Это было долгое вступление. Теперь я рассказываю про constrains, или, по-русски, удерживающие связи (перевод термина из статьи про степени свободы в механике.

Давайте попробуем нарисовать квадрат со стороной 10, опираясь на его фундаментальные свойства.

У квадрата 4 прямые стороны.

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

  • Противоположные стороны квадрата параллельны *

Солвер говорит, уже лучше. Стало не хватать 13. Обратите внимание на красные пометки — это указание на constrains. В самом начале у нас случайно получилось два ограничения — две горизонтальные линии.

Стало лучше, хотя на квадрат это всё ещё похоже мало. Что же не так? Ах, да, квадрат — это полигон, а у полигона стороны сходятся в углах в точку. Добавим эти ограничения.

Получилось немного неожиданно, хотя solver всё более довольный. Указанная фигура — обычный такой четырёхугольник, в котором стороны попарно параллельны. Немного за пределами школьного курса, но вполне понятно.

Добавим объёма … плоскости к этой фигуре. Соседние грани — перпендикулярны.

Уже похоже на правду (хотя это я чуть-чуть подтянул вверх рисунок, потому что стороны нулевого размера вполне устраивают solver как перпендикулярные к прямой, на которой лежат (в виде точки)). solver ругается на избыток ограничений. Согласимся с ним и удалим одну перпендикулярность (у нас требование попарной параллельности, перпендикулярность для одной пары автоматически вытекает из перпендикулярности первой пары). После того, как мы удалили лишнее, solver жалуется на 4 свободы.

Запретим ещё что-нибудь, так как свободы слишком много.

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

После этого у нас получается три свободы. Ещё три свободы? Но квадрат же… Да, это квадрат, но мы не знаем его размера (0 — тоже размер, между прочим), и положения в пространстве.

Зададим его — укажем, что один из углов квадрата лежит на точке «0, 0», плюс зададим для одной из сторон размер в 10мм.

Всё, квадрат полностью готов, у него нет свобод, а значит, нет и скрытых ошибок.

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

Лирика

Для меня такой метод описания рисунка является совершенно новым и неожиданным. В каком-то смысле он напоминает то, что делают типизированные языки программирования с машинным кодом — добавляют в него ограничений, позволяющих в математически-точной форме задать ограничения на возможные операции с данными. В тот момент, когда ограничений достаточно много, мы получаем однозначное решение, которое точно есть и точно однозначное. И точно правильное, если входные данные были правильными. И никаких «случайно задел мышкой» или «рука дрогнула».

Источник

Оцените статью
Авто помощник
Adblock
detector