Sketcher Examples/ru

Эта документация не закончена. Пожалуйста, помогите и внесите свой вклад в разработку документации.

Пример документирования команды Gui объясняет, как должны быть задокументированы команды. Просмотрите Category:UnfinishedDocu/ru, чтобы увидеть больше незавершённых страниц, подобных этой. Смотрите Category:Command Reference/ru для всех команд.

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

Other languages:

Введение

Я думаю, что Верстак Sketcher нуждается в некоторых примерах, которые не являются подробными руководствами или видео...

Плёночный шарнир

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

В этом примере используется некий мастер-эскиз, на который накладываются несколько зависимых эскизов. Он также показывает, как прикрепить и анимировать простой зажим на основе функций верстака PartDesign (ПроектнаяДеталь) и ограничений из верстака Sketcher (Скетчер). Использование выражений, как описано ниже, требует FreeCAD V 0.21 или выше.

Базовый эскиз

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

(Некоторые скрытые дополнительные пояснения и описание рабочего процесса можно найти здесь -->

Мастер-эскиз и анимированная петля плёночного шарнира (щёлкните по изображению, если анимация остановилась после нескольких повторов)

Для полуокружности длина дуги равна радиусу, умноженному на Pi (l = r * Pi). Радиус называется NeutralRadius (НейтральныйРадиус), а линия - DevelopedLength (ДлинаРазвёртки). Выражение для DevelopedLength связывает оба значения: .Constraints.NeutralRadius * pi

В пределах одного эскиза выражение начинается с ., за которым следует ValueType.ValueName для обращения к другому значению.

Промежуточный эскиз

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

Круговой сегмент вспомогательной геометрии показывает соотношение между дугой и радиусом для заданного угла.
InputLength = ReferenceRadius * Pi
и
ArcLength = DynamicRadius * Pi * ArcAngle / 180°
при постоянной длине это приводит к:
ReferenceRadius * Pi = DynamicRadius * Pi * ArcAngle / 180°
И, исключив Pi, получаем:
ReferenceRadius = DynamicRadius * ArcAngle / 180° или DynamicRadius = ReferenceRadius * 180° / ArcAngle

Выражение для значения DynamicRadius : .Constraints.ReferenceRadius * 180 ° / .Constraints.ArcAngle

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

Выражение для значения HalfArc : .Constraints.ArcAngle / 2

Промежуточный эскиз, показывающий DynamicRadius дуги шарнира 4 (мм) при заданном угле 45° (и полудуги для вывода)

Эскиз петли для крепления плёнки

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

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

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


Слева: выдавленная половинка петли с видимым эскизом. Справа: полупетля с добавленым скруглением


Полупетля с выделенной зеркальной плоскостью → зеркальная плёночная петля


Подсказка: Функция Part Зеркально принимает только три основные плоскости и поэтому не может быть использована в данном случае.

(Оглядываясь назад, можно сказать, что было мудрым решением начать этот пример с комбинации PartDesign (ПроектнаяДетаь) и Sketcher (Скетчер)).


Наконец, два параметра определяют размер плёночного шарнира:

  • NeutralRadius основного эскиза
  • значение толщины плёнки в эскизе петли

Сгибание плёночного шарнира

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

doc=App.ActiveDocument
sketch=doc.getObjectsByLabel('IntermediateSketch')[0]
 ...
sketch.getDatum('ArcAngle')
 ...
sketch.setDatum('ArcAngle',App.Units.Quantity('50.000000 deg'))
doc.recompute(None,True,True)

Краткое объяснение:

  • doc = App.ActiveDocument: Чтобы обратиться к активному документу по псевдониму, называемому doc
  • sketch = doc.getObjectsByLabel('IntermediateSketch')[0]: Чтобы обратиться к соответствующему эскизу под псевдонимом sketch.
    Метод getObjectsByLabel() возвращает список объектов, и мы должны использовать суффиксный индекс 0, чтобы выбрать первый объект в списке. (Мы не ожидаем появления другого объекта с такой же меткой и поэтому не должны заботиться о других элементах в списке.)
  • sketch.getDatum('ArcAngle'): Возвращает текущее значение размерного ограничения ArcAngle (в режим просмотра отчета)
  • sketch.setDatum('ArcAngle', App.Units.Quantity('50.0 deg')): Устанавливает значение ArcAngle 50°
  • doc.recompute(None,True,True): Чтобы обновить весь документ и показать изменения зависимой геометрии.

Присоединяем геометрию

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

Две половинки простого зажима

Статическая сторона проста:

  1. Активируйте тело и настройте свойства положения и ориентации в редакторе свойств так, чтобы они совпадали с плёночным шарниром.
  2. Активируйте тело шарнира.
  3. Выберите инструмент

PartDesign Булевы с опцией (по умолчанию) Слияние.

  1. В диалоговом окне нажмите кнопку Добавить тело (Add body).
  2. Выберите тело статичной половины клипсы.
  3. Нажмите OK, чтобы закончить и закрыть диалог.

Плёночный шарнир и статичная половина в положении для моделирования → Плёночный шарнир с перемещённой и объединённой статической половинкой

Но на подвижной стороне всё иначе: связанная половина геометрии зажима должна переместиться в нужное положение, прежде чем начнётся (повторный) расчёт операции Соединения (Fuse).

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

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

  • Присоединение может быть применено к элементу ПроектнаяДеталь (PartDesign). Этот элемент и элементы, зависящие от него, будут перепозиционированы в соответствии с базовой геометрией. Но!
    • Независимые элементы ПроектнойДетали (PartDesign) не будут перемещаться, что приведёт к изменению итоговой формы и её разрушению.
    • Нам рекомендуется сохранять независимость функций, чтобы избежать воздействия из-за Проблемы топологического именования.
  • ПроектнаяДеталь Клонировать (PartDesign Clone) создаёт тело как единую часть, которая может быть использована с Присоединением (Attachment).


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

  1. Выберите подвижную половинку зажима.
  2. Используйте команду Создать клон.
  3. В этом новом теле выберите объект Clone в Дереве Проекта.
  4. Используйте инструмент Деталь Присоединить (Part Attachment), чтобы добавить свойства присоединения к объекту Clone.
  5. Откроется диалог Присоединения.
    • Выберите вершину для начала координат.
    • Выберите ребро для первого направления.
    • Выберите ребро для второго направления.
    • Попробуйте различные режимы прикрепления, чтобы найти наиболее подходящий.
    • Настройте значения поворота и координат, пока геометрия снова не окажется в положении для построения модели.
  6. Нажмите OK, чтобы закрыть диалог.
  7. При активном состоянии тела шарнира выберите инструмент ПроектнаяДеталь Булевы операции (PartDesign Boolean).
  8. В диалоге нажмите кнопку Добавить тело.
  9. выберите тело подвижной половины.
  10. Нажмите OK, чтобы закончить и закрыть диалог.

Подвижная половина будет прикреплена к углу подвижной стороны шарнира (режим привязки OXZ: вершина, ребро, ребро)

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

Зажим на данный момент и подвижная половина в положении для моделирования → готовый зажим с присоединённой и объединённой подвижной половинкой

Теперь в результате должен получиться один сплошной зажим, который можно закрывать и открывать, изменяя ArcAngle плёночного шарнира. Допустимые углы: от 0,1° до 180°, при этом участок плёнки не должен становиться прямым, а больше, чем закрытый, не имеет смысла. (При 180° объект может слиться по касательной или в местах перекрытия, но небольшой дополнительный зазор может помочь, если это неприемлемо).

Клипса почти закрыта → Клипса закрыта наполовину → Клипса в положении для отливки в пресс-форме