Функции макропрограммирования в К3-Коттедж
Материал из К3-Коттедж
Функции работы с доской
GetBoardMat
| Синтаксис | idCut=GetBoardMat(idWood,idCut)
| ||||||
|---|---|---|---|---|---|---|---|
| Выходные параметры |
| ||||||
| Возвращаемое значение | ID сечения доски или 0 в случае ошибки |
SetBoardMat
| Назначение | Устанавливает в глобальной структуре currBoard материал доски по указанному сечению и породе
| ||||||
|---|---|---|---|---|---|---|---|
| Синтаксис | code=SetBoardMat(idCut,idWood)
| ||||||
| Параметры |
| ||||||
| Возвращаемое значение | ID породы материала доски в случае успеха или 0 в случае ошибки |
SetCurrBoard
| Назначение | Вызывает диалог смены текущего материала доски |
|---|---|
| Синтаксис | code=SetCurrBoard()
|
| Параметры | Нет |
| Возвращаемое значение | 1 — если в диалоге выбран новый материал (установлен в currBoard)0 — если отказались от смены текущего материала |
GetBoardEnd
| Назначение | Возвращает параметры подрезок левого и правого торца доски из глобальной структуры currBoard
| ||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Синтаксис | code=GetBoardEnd(OrientW,OrientH,Angle,wcutL,wcutR,arrL,arrR)
| ||||||||||||||||||||||||||||||||||||||
| Параметры |
Выходные параметры:
| ||||||||||||||||||||||||||||||||||||||
| Возвращаемое значение | 15 — в случае успеха 0 — в случае ошибки |
SetBoardEnd
| Назначение | Устанавливает текущие параметры подрезки доски в глобальную структуру currBoard
| ||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Синтаксис | code=SetBoardEnd(OrientW,OrientH,Angle,wcutL,wcutR,arrL,arrR)
| ||||||||||||||||||||||||||||||||
| Параметры |
| ||||||||||||||||||||||||||||||||
| Возвращаемое значение | 15 — в случае успеха 0 — в случае ошибки | ||||||||||||||||||||||||||||||||
| Примечание | Значения типов подрезки и битовых масок см. в описании функции GetBoardEnd
|
GetBoardPMat
| Назначение | Возвращает ID текущего материала и заполняет переменные параметрами текущего сечения доски из глобальной структуры currBoard
| ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| Синтаксис | idCut=GetBoardPMat(TypeShave,Width,Height,WorkWidth)
| ||||||||||
| Параметры (выходные) |
| ||||||||||
| Возвращаемое значение | ID сечения доски или 0 в случае ошибки |
GetBoardMatP
| Назначение | Находит ID сечения доски с параметрами, наиболее близкими к заданным, но не меньше заданных | ||||||||
|---|---|---|---|---|---|---|---|---|---|
| Синтаксис | idCut=GetBoardMatP(TypeShave,Width,Height)
| ||||||||
| Параметры |
| ||||||||
| Возвращаемое значение | ID сечения доски или 0 — если не найдено или в случае ошибки |
GetBoardName
| Назначение | Получает групповое имя досок по умолчанию |
|---|---|
| Синтаксис | GrpName=GetBoardName()
|
| Параметры | Нет |
| Возвращаемое значение | Строка с групповым именем досок. Если строка пустая — групповое имя досок по умолчанию в текущем проекте не задано |
SetBoardName
| Назначение | Устанавливает групповое имя досок по умолчанию в текущий проект | ||||
|---|---|---|---|---|---|
| Синтаксис | code=SetBoardName(GrpName)
| ||||
| Параметры |
| ||||
| Возвращаемое значение | Всегда возвращает 0 |
GetBoardCr
| Назначение | Создает доску по трем точкам, используя параметры из глобальной структуры currBoard
| ||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Синтаксис | hBrd=GetBoardCr(arr)
| ||||||||||||||||||||
| Параметры |
| ||||||||||||||||||||
| Возвращаемое значение | Ссылка на pK3Obj созданной доски или nullptr, если доску создать не смогли
|
Типы подрезки торца доски
| Значение | Описание |
|---|---|
| 0 | Без подрезки |
| 1 | Скос (по Z): 1 — угол (от -80 до +80), 2 — высота (от 0 до Height) |
| 2 | Вырез по дуге: 1 — радиус |
| 3 | Просто вырез: 1 — глубина |
| 4 | Шип1 (прямой): 1 — глубина, 2 — ширина шипа, 3 — угол (от 0 до M_PI), 4 — зазор сверху, 5 — зазор снизу |
| 5 | Шип2 (трапеция): 1 — глубина, 2 — ширина основания шипа, 3 — ширина шипа, 4 — угол (от -M_PI/2 до M_PI/2), 5 — зазор сверху, 6 — зазор снизу |
| 6 | Врезка: 1 — глубина (по длине бревна), 2 — ширина (по ширине бревна), 3 — угол с торцем |
| 7 | Под бревно: 1 — глубина, 2 — радиус, 3 — поворот вокруг X |
| 8 | Шип: 1 — заглубление, 2 — высота шипа, 3 — зазор слева, 4 — зазор справа, 5 — зазор снизу, 6 — зазор сверху |
| 9 | Вертикальный скос с прямым пазом: 1 — угол (от -M_PI/2 до M_PI/2), 2 — ширина паза, 3 — глубина паза |
| 10 | Вертикальный двусторонний выпуклый скос: 1 — угол слева, 2 — угол справа, 3 — сдвиг от середины бревна |
| 11 | Фаска: 1 — срез по Y, 2 — длина среза по X |
| 12 | Двойная дуга: 1 — радиус выреза слева, 2 — радиус выреза справа |
| 13 | Скругление: 1 — радиус скругления слева, 2 — радиус скругления справа |
| 14 | Трапеция (для замка): 1 — глубина выреза, 2 — ширина основания выреза, 3 — ширина выреза (на глубине) |
| 15 | Подрезка произвольной плоскостью: 1 — расстояние от вершины до плоскости, 2 — поворот нормали вокруг X, 3 — поворот нормали вокруг Z |
| 16 | Вертикальный двусторонний впуклый скос: 1 — угол слева, 2 — угол справа, 3 — сдвиг от середины бревна |
| 17 | Двойной скос (по Z): 1 — угол снизу, 2 — угол сверху, 3 — высота скоса снизу, 4 — высота скоса сверху |
| 18 | Стык Гербера (ГОСТ) — без параметров, расчет от ширины габарита |
| 19 | Стык Гербера1: 1 — длина стыка, 2 — глубина стыка |
| 20 | Стык Гербера2: 1 — длина стыка, 2 — глубина стыка, 3 — высота остатка, 4 — длина выемки |
| 21 | Стык Гербера3: 1 — длина стыка, 2 — глубина стыка, 3 — высота остатка, 4 — длина выемки |
| 22 | Ступеньки с дугой выпуклой: 0 — радиус, 1,2 — параметры внешней ступеньки, 3,4 — параметры внутренней ступеньки |
| 23 | Ступеньки с дугой впуклой: 0 — радиус, 1,2 — параметры внешней ступеньки, 3,4 — параметры внутренней ступеньки |
| 24 | Шип прямоугольный: 1 — заглубление, 2 — высота шипа, 3 — размер шипа (ширина), 4 — размер шипа (высота), 5 — скругление |
| 25 | Сокращенный ласточкин хвост: 0 — высота до хвоста, 1 — радиус скругления, 2 — угол сужения, 3 — толщина хвоста, 4 — угол фрезы, 5 — угол фаски |
Битовые маски
| Маска | Значение | Описание |
|---|---|---|
DOM_ST_UP |
0x00000001 | Режется верхняя половина бревна |
DOM_ST_OTKOS |
0x00000002 | У торца есть лыска под наличник |
DOM_ST_RIGTH |
0x00000004 | Правая подрезка |
DOM_ADD_SLOPEN |
0x00000008 | Только для подрезки стены скатами — выпуск задан по нормали |
DOM_ADD_SLOPEV |
0x00000010 | Только для подрезки стены скатами — выпуск задан по вертикали |
DOM_ST_ROTATE |
0x00000020 | Подрезка в другой плоскости (Гербер при делении досок) |
DOM_LEP_FIXANG |
0x00000040 | Подрезка с фиксацией угла (у скоса при заполнении не пересчитывается угол) |
DOM_SL_LIMITGAB |
0x00000080 | Только для подрезки стены скатами — с ограничением длины по нижней точке |
DOM_SL_GORCUT |
0x00000100 | Только для подрезки стены скатами — горизонтальная подрезка |
DOM_LEP_BTL |
0x10000000 | Подрезка образмеривается по принципу BTL |
DOM_LEP_BODY |
0x20000000 | Подрезка образмеривается по принципу BODY |
Функции работы с проёмами
GetWndPar
| Синтаксис | code=GetWndPar(hWnd,arr)
| ||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Параметры |
Выходные параметры:
| ||||||||||||||||||||||
| Возвращаемое значение | Уникальный номер проёма или -1 в случае ошибки |
GetWndName
| Синтаксис | WndName=GetWndName(hWnd)
| ||||
|---|---|---|---|---|---|
| Параметры |
| ||||
| Возвращаемое значение | Имя проёма (строка) |
GetWndVPar
| Синтаксис | GetWndVPar(hWnd,arr)
| ||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Параметры |
Выходные параметры:
|
GetWndAPar
| Синтаксис | GetWndAPar(hWnd,arr)
| ||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Параметры |
Выходные параметры:
| ||||||||||||||||||||||||
| Примечание | Типы подрезки и битовые маски см. в описании функции GetWndVPar
|
GetWndMatr
| Синтаксис | code=GetWndMatr(hWnd,matr)
| ||||||
|---|---|---|---|---|---|---|---|
| Параметры |
| ||||||
| Возвращаемое значение | 16 — в случае успеха |
GetWndObj
| Синтаксис | hWnd=GetWndObj()
|
|---|---|
| Параметры | Нет |
| Возвращаемое значение | Указатель на глобальный pK3Obj current_window или nullptr
|
GetWndPoint
| Синтаксис | num=GetWndPoint(params,points)
| ||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Параметры |
Выходные параметры:
| ||||||||||||||||||||||||||||||||||||
| Возвращаемое значение | Количество точек (зависит от формы проёма) |
GetWndById
| Синтаксис | hWnd=GetWndById(idWnd)
| ||||
|---|---|---|---|---|---|
| Параметры |
| ||||
| Возвращаемое значение | Указатель на pK3Obj или 0 в случае ошибки |
TransPoint
| Синтаксис | TransPoint(point,matr)
| ||||||
|---|---|---|---|---|---|---|---|
| Параметры |
|
Формы проёма (DOM_WND_FORM)
| Значение | Описание |
|---|---|
| 0 | Прямоугольник |
| 1 | Шестиугольник: Param1 — срез по оси X, Param2 — срез по оси Y |
| 2 | Арка: радиус скругления — в полширины |
| 3 | Скошенный прямоугольник: Param1 — левая высота |
| 4 | Пятиугольник: Param1 — меньшая высота |
| 5 | Трапеция: Param1 — верхнее основание трапеции |
| 6 | Треугольник (прямой угол — левый нижний) |
| 7 | Треугольник (прямой угол — правый нижний) |
| 8 | Треугольник (прямой угол — левый верхний) |
| 9 | Треугольник (прямой угол — правый верхний) |
| 10 | Восьмиугольник: Param1 — срез по оси X, Param2 — срез по оси Y |
| 11 | Прямоугольник с фаской слева сверху: Param1 — срез по оси X, Param2 — срез по оси Y |
| 12 | Прямоугольник с фаской справа сверху: Param1 — срез по оси X, Param2 — срез по оси Y |
| 13 | Круглый: радиус — половина высоты |
| 14 | Арка с радиусом: Param1 — высота дуги |
| 15 | Прямоугольник со скругленными верхними углами: Param1 — радиус скругления |
| 16 | Вертикальная трапеция вправо: Param1 — угол снизу, Param2 — угол сверху |
| 17 | Вертикальная трапеция влево: Param1 — угол снизу, Param2 — угол сверху |
| 18 | Г-образная правая: Param1 — ширина окна, Param2 — высота окна |
| 19 | Г-образная левая: Param1 — ширина окна, Param2 — высота окна |
| 20 | Скругленная ниша |
Функции работы со стенами, балками и проектом
GetWall
| Синтаксис | hWall=GetWall(Name)
| ||||
|---|---|---|---|---|---|
| Параметры |
| ||||
| Возвращаемое значение | Ссылка на pK3Obj стены |
GetBeam
| Синтаксис | hBeam=GetBeam(num)
| ||||
|---|---|---|---|---|---|
| Параметры |
| ||||
| Возвращаемое значение | Ссылка на pK3Obj балки |
HRow
| Синтаксис | h=HRow(num)
| ||||
|---|---|---|---|---|---|
| Параметры |
| ||||
| Возвращаемое значение | Верхняя точка ряда (мм) |
HBeam
| Синтаксис | h=HBeam(num)
| ||||
|---|---|---|---|---|---|
| Параметры |
| ||||
| Возвращаемое значение | Верхняя точка балки (мм) |
HWall
| Синтаксис | h=HWall(Name)
| ||||
|---|---|---|---|---|---|
| Параметры |
| ||||
| Возвращаемое значение | Верхняя точка стены |
GetPrjPath
| Синтаксис | PrjPath=GetPrjPath()
|
|---|---|
| Параметры | Нет |
| Возвращаемое значение | Путь до папки проекта (строка). Если проект не открыт — возвращает пустую строку |
GetPrjUnit
| Синтаксис | UnitType=GetPrjUnit()
| ||||||
|---|---|---|---|---|---|---|---|
| Параметры | Нет | ||||||
| Возвращаемое значение |
|