Создание макропрограммы для параметрического фрезерованного фасада

Материал из K3-Macro
Макро | Мебельные команды и функции | Примеры создания макропрограмм | Создание макропрограммы для параметрического фрезерованного фасада

Чтобы добавить макропрограмму параметрического фрезерованного фасада, нужно:

1. Создать сборочную единицу – рисунок фасада. В свойствах задать:

  • MacroFiledoorsplos.mac
  • Tracemac – путь до макропрограммы с рисунком от папки Proto

Можно использовать свойство milltype, чтобы задать тип фрезеровки (поэлементно, с вращением).

Можно добавить свойства — MillID1, MillID2… — номенклатурные единицы с фрезами

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

2. Создать файл с макропрограммой рисунка. Может быть формат mac или py.

Макропрограмма должна:

  • Получить из вызывающей макропрограммы 6 значений:
    • xn,yn,zn — координаты правого нижнего дальнего угла фасада
    • dx,dz — размеры фасада по ширине и высоте
    • FasID — ID сборочной единицы фасада
  • Нарисовать средствами К3 нужное количество контуров
  • Каждому контуру присвоить служебные атрибуты
  • Собрать все контура в группу

В результате исполнения макро в сцене должен появиться один объект типа «группа». Даже если контур всего один, нужно создать группу из него.

Служебные атрибуты:

Имя атрибута Тип значения Назначение
FrezID Число ID фрезы из номенклатуры
FrezDepth Число Глубина фрезеровки. На том же контуре обязательно должен быть FrezID
CutDepth Число Глубина выреза;

0 — сквозной

SideF Строка Всё, кроме Нет, заставит фрезеровать этот контур сзади (с пласти F)
Test Строка Всё, кроме Нет, отменит назначение фрезеровки или выреза и оставит в сцене контур для проверки, как он построился.
Insert Число Добавить вставку панелью по этому контуру. Значение — заглубление пласти вставки относительно пласти фасада.

Считается по умолчанию по передней пласти. Либо, если задан SideF, по задней.

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

Особенности построения на python

  • Не забудьте import k3
  • getpar сделать немного сложнее:
    • gift = k3.getpar()
    • xn = gift[0].value
    • yn = gift[1].value
    • zn = gift[2].value
    • dx = gift[3].value
    • dz = gift[4].value
    • FasID = int(gift[5].value)
  • Для python доступна библиотека FasUtils (import FasUtils)

Для использования функций оттуда, создаёте экземпляр класса Fasade оттуда, передав ему ID сборочной единицы и количество фрез:

freznum=1 #Количество фрез
Fas=fasutils.Facade(FasID, freznum) #Инициализация списка фрез и набора служебных функций

Можно задать атрибут Fas.test_mode=1, чтобы все контура строились в «тестовом» режиме.

Функции доступны как методы этого класса:

  • Fas.add_frez(n) — назначает последнему созданному контуру фрезу номер n из сборочной единицы.
  • Fas.add_depth(d) — назначает последнему созданному контуру глубину фрезеровки d
  • Fas.add_cut(d) — назначает последний созданный контур контуром выреза глубиной d
  • Fas.mill_from_back() — заставляет фрезеровать и вырезать последний созданный контур с пласти F
  • Fas.add_insert(d) — Назначает по поcледнему созданному контуру вставку с заглублением d

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

В библиотеке fasutils есть варианты этих же методов, которые явно принимают ссылку на объект смотрите комментарии в файле библиотеки.


Макро | Мебельные команды и функции | Примеры создания макропрограмм | Создание макропрограммы для параметрического фрезерованного фасада