Этот раздел собран как рабочая шпаргалка по файлу генератора GBX: как описывать первую строку //params:,
какие элементы интерфейса доступны, какие переменные подготавливает докер и какие функции можно использовать для создания объектов CorelDRAW.
Формат первой строки
должно начинаться с "//params: " пробел в конце обязательно
далее через запятую описываем поля по шаблону
имя поля только латиницей т.к. это будет переменной для вставки в код
имя поля = значение по умолчанию.
//params: [имя_поля]=[значение_по_умолчанию], ...
true или false — формируют чекбокс (переключатель включено/выключено).text — задаёт простой текстовый заголовок.block — обозначает начало раздела интерфейса.конец блока endblock;
list — создаёт выпадающий список. Имена и значения полей описываются ниже с помощью строки//list:имя_списка имя_поля=значение, имя_поля=значение, имя_поля=значение
текстовые подписи для элементов прописываются по аналогии в //lang:
пример material=list|show##g/cm3
//list:material g375=11.55, g500=12.7, g585=13.6
//lang: material_g375=Золото 375 проба (9К)
//lang: material_g500=Золото 500 проба (12К)
//lang: material_g585=Золото 585-200 проба (14К)
btn — создаёт кнопку, код которой должен лежать в одноименной папке скрипта с именем параметрапример my_btn=btn для файла myscript.js должен находиться в js/myscript/my_btn.js
для маленького кода код кнопки можно вставить в основной скрипт.
проверка нажатия через условие if (btn=='my_btn')
//params: knopka1=btn, knopla_sdelaj_ohuenno=btn,sklejka=btn|wide, hideall;
if (btn=="sklejka"){ //это код для иммитации кнопки "собрать"
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
/** КРАЙНЕ НЕ РЕКОМЕНДУЮ СБОРКУ ДЕЛАТЬ ТАКИМ СПОСБОМ. используйте стандартные кнопки. **/
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
sstop=true; // останавливаем цикл чтобы он не обрабатывал каждый объект а сделал только один раз.
ch_kbx_compens.checked = false; // отключить создание компенсации.
glue_kbx(); // собственно и запускаем функцию сборки
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
}else if(btn=="knopka1"){
// тут код внутри скобок
}else if(btn=="knopla_sdelaj_ohuenno"){
// тут код внутри скобок
}else{
// тут весь остальной код внутри скобок
}
Так же можно задать значение текстового поля через val_имя_поля.
Пример. для поля paz_gap=6 можно поменять значение на 4 через val_paz_gap=4.
range — создаёт кнопки вниз - вверх и между ними текстовое поле со значением.параметры задаются в формате |min#4:
min — стартовое (минимальное значение)max — предельное значениеstep — шаг увеличения кнопкамиdef — значение по умолчанию (при первом запуске)dot_size=range|min#1|max#10|def#4|step#2,
folder — создаёт текстовое поле и кнопку для выбора папкиdxf_folder=folder
file — создаёт текстовое поле и кнопку для выбора файлапараметр filter задаёт фильтрацию файлов по типу
dxf_file=file|filter#*.dxf#*.cdr
Вертикальная черта | разделяет альтернативные действия или состояния параметра.
Специальные действия, которые могут идти через |:
check — добавляет чекбокс активности поля. проверка if (!!foo_name) активен или не равен 0 или !foo_name - неактивен или равен 0.если нужно строго проверить чекбокс, то к имени поля добавлям "ch_gbx_" - ch_gbx_<имя_поля>.
glue — склейка текущего элемента в одну строку с предыдущим.br — только для списка вариантов: каждая радиокнопка со своей строки, подпись поля отдельной строкой сверху, весь блок прижат вправо. Подпись варианта при этом идёт перед самой кнопкой, поэтому кнопки встают ровным столбиком по правому краю. Без модификатора весь список идёт одной строкой. Ставится в конце значения: fill_mode=hex:random:max|br.active — активация связанных элементов или параметров по их ID.deactive — деактивация связанных элементов или параметров по их ID.even — проверка значения на чётность.odd — проверка значения на нечётность.mm — отменяет проверку чётности, если установлен чекбокс mm.un — очень узкаяnarrow — задаёт узкий стиль кнопкеwide — задаёт широкий стиль полю вводаuwide — очень широкая (65%)wide10 — ширина 10%wide25 — ширина 25%wide50 — ширина 50%wide75 — ширина 75%wide90 — ширина 90%mid — средняя ширина (25%)free — свободная ширина.center — выравнивание по центруleft — выравнивание по левому краюbold — жирное начертание текстаitalic — курсивное начертание текстаnotitle — убирает заголовок у элементаread — делает поле ввода только для чтенияshow — действие для списка - показывает значение в специальном поле.формат |show#prefix#postfix |show## |show##postfix |show#prefix#
save — действие для списка в который пользователь может добавить свое полеshowblock — скрывает или показывает блок чтобы видеть, что внутри параметр установлен и влияет на создание.Специальные параметры:
br — разрыв строки (перенос).hr — горизонтальная линия.endblock (необязательно) — закрывает раздел. Раздел также закрывается началом следующего блока или в конце строки.hidethhi — для скрытия полей толщина и высотаhideshippaz — для скрытия кнопок с цветом шипов/пазовhidebtns — для скрытия нижних кнопок "создать" и "склеить"hidetools — для скрытия нижних инструментов перегородки, шипы и гибкий резhideall — для скрытия всех этих блоковaddbtns=btn1|btn2 — Можно добавить кнопки из интерфейса. Пример: addbtns=btn_cmnborder|btn_monoline_font*** служебные параметры
maxLimit=X — Задаёт лимит на предупреждении о выборе большого числа объектов. По умолчанию значение 5. maxLimit=666noduplicateS — параметр который не создает копию объекта S = s.Duplicate() а использует оригинальный объектnoMove — предотвращает перемещение исходного объекта вверхnoOS — убирает перебор объектов. все переменные объекта не доступны. Доступны:HI, TH, join, copy, last, color_paz, color_ship, color_vstr, color_grav, color_3mm, color_cut, OScnt
delLast — исключает объект sLast из перебораdelFirst — исключает объект sFirst из перебораID параметров используются для связи и взаимного включения/выключения через active и deactive.
пример (все должно быть в 1 строку)
//params: name=korobka, mm=false|glue, paz_wi=7|odd|mm, paz_le=5|odd|mm, paz_hi=5|odd|mm, paz_gap=6, close_dno=open:dno:side, close_side=open|active#make_shoes_cover:close|deactive#make_shoes_cover:vstr|deactive#make_shoes_cover, cover_box=false|deactive#make_shoes_bot_holes#make_shoes_cover, slide_box=false|deactive#make_shoes_bot_holes#make_shoes_cover, round_corners=true, circle_vstr=false,covertext=block, make_shoes_cover=false|active#cover_gap#cover_height#make_shoes_holes|deactive#cover_box#slide_box, cover_gap=1, cover_height=15, endblock,text_shoe_holes=text, make_shoes_holes=true, make_shoes_bot_holes=true|glue, make_shoe_holes_four=false;
Parameters и правила:
самая первая строчка, обязательно начало с "//params: ":
name=korobka — имя моделиmm=false|glue — чекбокс mm, действие glue (склейка с предыдущим)paz_wi=7|odd|mm — числовое значение, проверка на нечетность, mm отменяет проверкуpaz_le=5|odd|mm — длина паза, с теми же проверкамиpaz_hi=5|odd|mm — высота паза, с теми же проверкамиpaz_gap=6 — числовое значение, шаг между пазамиclose_dno=open:dno:side — radiobutton с тремя вариантамиclose_side=open|active#make_shoes_cover:close|deactive#make_shoes_cover:vstr|deactive#make_shoes_cover — radiobutton с активацией/деактивацией элементов
cover_box=false|deactive#make_shoes_bot_holes#make_shoes_cover — чекбокс с деактивацией связанных элементовslide_box=false|deactive#make_shoes_bot_holes#make_shoes_cover — чекбокс с деактивацией связанных элементовround_corners=true — чекбоксcircle_vstr=false — чекбоксcovertext=block — начало раздела интерфейсаmake_shoes_cover=false|active#cover_gap#cover_height#make_shoes_holes|deactive#cover_box#slide_box — чекбокс с активацией/деактивацией связанных элементов
cover_gap=1 — числовое значениеcover_height=15 — числовое значениеendblock — закрытие разделаtext_shoe_holes=text — текстовый заголовокmake_shoes_holes=true — чекбоксmake_shoes_bot_holes=true|glue — чекбокс с действием gluemake_shoe_holes_four=false — чекбоксТак же можно добавить свои подписи на русском и других языках.
//lang: — строка для добавления локализованных подписей и описаний если их не существует в языковом пакете самого докера
//lang: " с пробелом в концеЦифровые значения
Shift = 1, Ctrl = 2, Alt = 4;
//lang: title1=Настройка пазов|Тут можно настроить пазы по количеству.
//lang: title2=Вводятся только нечетные значения|Нечетные значения потому что так получается красивая симметрия.
//lang: round_corners=Скругление углов|Скругление углов коробки
//lang: round_corners|en=Round corners
Для кнопок создать и собрать можно добавить свои действия на функциональные кнопки Ctrl+Alt+Shift+...
Учтите, что кнопка собрать сначала выполняет основную сборку шип/пазов, а затем выполняет функциональные кнопки.
для скрипта myscript.js файлы должны находиться в js/myscript/
для кнопки Создать make.js
для кнопки Собрать glue.js
этот скрипт выполняется для каждого выбранного объекта.
Если вам не нужно выполнять много раз в конце кода последней строчкой пишем
break;
Описывать в начале файла так же как язык.
//lang: — строка для добавления функциональных кнопок
//lang: " с пробелом в концеЦифровые значения кнопок Shift = 1, Ctrl = 2, Alt = 4;
Все комбинации это просто сумма цифровых значений
//lang: 5=Собрать со сдвигом|Собрать коробку со сдвигом элементов вправо
//lang: 5|en=Make with shift|Make with shift elements to the right
5 - это сумма 4+1 те. кнопки Shift и Alt
пример:
var rect = rectangle(50,50,200,100,5);
создаст прямоугольник левый нижний угол координата 50,50 шириной 200 и высотой 100мм
shipy(shape, side, ...) или shipy(x1, y1, x2, y2, ...)
Поддерживает инверсию сторон с префиксом "-".
Перед созданием объекта SHAPE, автоматически подготавливаются переменные для упрощённой работы:
!регистр переменных очень важен!
s — Исходный объект (кореловский). (s маленькое)S — Копия исходного объекта (карабокса). Для него применимы все методы (функции) описанные нижеW — Ширина объекта (s.SizeWidth).H — Высота объекта (s.SizeHeight).A — Площадь текущего объекта.allA — Площадь всех объекта.LE — Длина всех кривых текущего объекта.allLE — Длина всех кривых всех объектов.L — Левая координата (s.LeftX).R — Правая координата (s.RightX).T — Верхняя координата (s.Topy).B — Нижняя координата (s.Bottomy).HI — Значение из поля ввода высота коробкиTH — Значение из поля ввода толщинаX — Центр X: либо CenterXY — Центр Y: либо CenterYjoin — Строка "join", используется как флаг режима.copy — Строка "copy", используется как флаг режима.last — Строка "last", заменяет последнюю использованную координату.color_paz — Цвет для пазов.color_ship — Цвет для шипов.color_vstr — Цвет для встречных пазов.color_grav — Цвет для гравировки.color_3mm — Цвет для 3мм.color_cut — Цвет для реза.rnd_num — Случайный номер для идентификации объектовsNum — Номер объекта если случайный номер был присвоен объекту. genNum(s.name)addShape — Признак добавления объекта s в выделение. Если false, то объект s не добавляется в выделение.lastnum — Признак последнего использованного номера. Можно использовать для идентификации объектов в цикле.toDel — Флаг чекбокса удалять исходный объект или нет.compensation — Размер компенсации или ноль если чекбокс не стоит.sfirst и slast — флаги проверка первый это объект или последний.sindex — порядковый номер текущего объекта в OS.Shapes()sstop — флаг для прерывания обхода всех объектов.OScnt — общее количество объектов в OS.Shapes()delMe — если эту переменную присвоить объекту, то при сборке он удалится. S.name(delMe);sLast — Последний объект в выборке (параметр delLast удалит его из перебора)sFirst — Первый объект в выборке (параметр delFirst удалит его из перебора)для того чтобы выполнить только 1 раз для любого количества выбранных объектов есть 2 способа
getShape
Оборачивает объект CorelDRAW (Shape) в удобный интерфейс для манипуляций.
W(val) — Ширина. Получить или установить ширину.H(val) — Высота. Получить или установить высоту.L(val) — Левая граница (LeftX).R(val) — Правая граница (RightX).T(val) — Верхняя координата (TopY).B(val) — Нижняя координата (BottomY).X(val) — Центр по оси X. Учитывает флажок ch_sett_center.Y(val) — Центр по оси Y. Учитывает флажок ch_sett_center.setCenter — Задать центр вращенияsetColor([R,G,B]) — Устанавливает цвет обводки в RGB.setColor([C,M,Y,K]) — Устанавливает цвет обводки в CMYK.setFill([R,G,B]) — Устанавливает цвет заливки в RGB.setFill([C,M,Y,K]) — Устанавливает цвет заливки в CMYK.copyFill — Копирует заливку объектаcopyOutline — Копирует абрис объектаcopyColor — Копирует и заливку и абрис.setFont(font, size) — Задать шрифт и/или размер если это Текст.name(val) — Получает или устанавливает имя объекта.cut(shape) — Обрезает текущую форму по другой (shape).weld(shape) — Объединяет текущую форму с другой (shape).join(shape, reduce, dist) — Объединяет и соединяет кривые. сокращать и дистанция поиска соединенияintersect(shape) — Создаёт пересечение между двух объектов.del() — Удаляет текущую форму.copy(x, y) — Копирует объект и смещает на (x, y).copyTo(x, y) — Копирует объект и переносит его центр в (x, y).move(x, y) — Перемещает объект на (x, y).moveTo(x, y) — Перемещает центр объекта в точку (x, y).resize(w, h, aspect) — Изменяет размер формы, добавляя к текущим размерам.setSize(w, h, aspect) — Устанавливает точный размер формы, с учётом пропорций.repeat(dx, dy, hCnt, vCnt) — Строит массив из объектов.findbyName(name, OS, ingroup, strong) — Ищет объект по имени. Возвращает первую найденную форму или false, если объект не найден.если strong = false ищет не строгое совпадение имени
removeHoles() — Удаляет все отверстия в объекте.breakNodes(nodes, split2) — Разрывает указанные узлы (массив номеров узлов)если split2=true то разваливает деталь и возвращает массив об\ектов (кусков)
add(sr) — Добавляет объект в выделение (если sr) либо в любой другой ShapeRange. krug.add(sr);range.getShape(i) — если range коллекция - взять i-тый объект.createRange() — Создавать коллекцию var range = createRange();flipX(x, mode) — Отражение по оси X. mode: "copy", "join", undefined.flipY(y, mode) — Отражение по оси Y. mode: "copy", "join", undefined.flip([x1,y1,x2,y2], mode) — Отражение относительно произвольной линии.rotate(angle, centerX, centerY) — Поворот на угол вокруг точки.angle() — Получает текущий угол.angle(val) — Устанавливает абсолютный угол.resize(W, H, aspect) — Увеличивает размер на W и H. При aspect=true сохраняет пропорции.setSize(W, H, aspect) — Устанавливает абсолютные размеры. Если aspect=true и один из параметров 0, сохраняет пропорции.scale(k) — Масштабирует форму пропорционально по обоим осям.fitScale(W, H) — Масштабирует форму пропорционально так, чтобы она вписалась в прямоугольник W×H.* Все методы трансформации можно применять как к конкретному объекту, так и к последнему.
lastColor(arr) — Установить цвет обводки.lastFill(arr) — Установить цвет заливки.lastflipX(x, mode) — Отразить объект по вертикальной оси X с координатой x (если не задана — по центру объекта).Режимы:
lastflipY(y, mode) — Отразить объект по горизонтальной оси Y с координатой y (если не задана — по центру объекта).Режимы аналогичны flipX.
lastflip([x1,y1,x2,y2], mode) — Отразить объект относительно произвольной линии, заданной двумя точками.Режимы те же: изменить текущий, вернуть копию или объединить с копией.
lastjoin(obj) — Объединить с другим объектом.lastrotate(angle[, cx, cy]) — Повернуть на угол (в градусах) относительно точки (cx, cy).lastgetAngle() — Получить текущий угол поворота объекта.lastsetAngle(val) — Установить абсолютный угол поворота объекта (в градусах).FillXY(X, Y) — Создаёт объект используя интерактивную заливку.del() — Удалить объект.contur(shape, gap, dir) — Создаёт внутренний (dir=0 или "in") или внешний (dir=1 или другое) контур объекта.mode: "qty" — по количеству, "dist" — по расстоянию, "qty_by_gap" — количество по шагу.
even — равномерное распределение (по умолчанию true).
genNum(txt) — Извлекает номер из имени объекта (например: rect_123 → 123).do_flex( OS, opts, mode) - создаёт гибкий рез из объекта. Задавать можно только нужные параметры. Остальные подтянутся из интерфейса.
OS = ActiveShapeRange // активный диапазон выбора объектов или объект
var opts = {
// --- базовые параметры ---
shft: 2, // нажатые клавиши-модификаторы
thickness: 3, // толщина линии/реза (по умолчанию из интерфейса val_gbx_th)
height: 50, // высота реза/перемычки (по умолчанию val_gbx_hi)
gap: 30, // зазор между элементами (10 * thickness)
deleteSource: false, // удалить исходный объект после операции (true/false)
step: 3, // интервал реза (по умолчанию val_kbx_flex_step)
qty: 5, // количество перемычек (по умолчанию val_kbx_flex_qty)
perSize: 2, // размер перемычки (по умолчанию val_kbx_flex_per_size)
makeContour: false, // создавать контур в полтолщины (true/false)
makeSlots: false, // добавлять шипы (true/false)
pazQty: 5, // количество шипов (по умолчанию val_flex_sh_qty)
mmMode: false // режим мм вместо количества шипов (true/false)
};
mode = "flex"; // "startpoint", "restore", "perimetr", "flex"
Пример: do_flex(s); //создать гибкий рез из объекта s по параметрам гибкого реза в докере.
// Расчет соединения деталей под углом
// t1 - толщина шипа (вставляемой детали)
// t2 - толщина детали куда вставляется
// angle - угол наклона (90° = вертикально, 0° = горизонтально)
// mode - режим расчета (0 - close, 1 - open, 2 - full)
Функция возвращает объект с основными параметрами соединения:
tennon — длина шипа (рассчитанная длина выступающей части).slot — ширина паза (рассчитанная ширина отверстия для шипа).cut1 — дополнительная длина/глубина с одной стороны соединения (зависит от режима и угла).cut2 — дополнительная длина/глубина с другой стороны соединения.add1 — вспомогательный параметр: tennon - cut1.add2 — вспомогательный параметр: slot - cut2.debug — объект с отладочной информацией (промежуточные значения для проверки формул).var result = calcAngleJoint(10, 12, 90, 0);
// Результат:
{
tennon: 10,
slot: 12,
cut1: 0,
cut2: 0,
add1: 10,
add2: 12,
debug: {...}
}
lastObject).просто 4 координаты для единичного отрезка.
Первая линия массив из 4х элементов. далее один массив с вложенным массивом кажой последующей точки.
Функция: line(a, b, c, d, e, f, g, h)
Purpose:
Создаёт отрезок или кривую линии с возможностью добавления дополнительных сегментов.
Может использоваться для построения как простой прямой, так и сложной кривой с несколькими сегментами.
Функция поддерживает несколько форматов вызова с разным количеством и типом аргументов:
startLine.startLine (4 или 8 координат),addLines, массив сегментов, где каждый сегмент:SubPath) основной линии.R, применяется фаска (Fillet) к предыдущей вершине.Shape, обёрнутый с помощью createShape.// Простая линия
line(10, 10, 100, 10);
// Кривая с управляющими точками
line(10, 10, 100, 100, 30, 30, 70, 70);
// С дополнительными сегментами
line([10, 10, 100, 10], [
[150, 20], // Прямая
[200, 40, 5], // Прямая с фаской 5
[250, 60, 270, 70, 300, 90], // Кривая
[350, 100, 370, 110, 400, 130, 4] // Кривая с фаской 4
]);
Функция: rectangle(x1, y1, wi, hi, r1, r2, r3, r4)
Purpose:
Creates a rectangle с возможностью задания радиусов скругления углов.
// Прямоугольник 100x50 без скруглений, с левым верхним углом (10,10)
rectangle(10, 10, 100, 50);
// Прямоугольник 100x50 с радиусом скругления 10 для всех углов
rectangle(10, 10, 100, 50, 10);
// Прямоугольник 100x50 с разными радиусами для каждого угла
rectangle(10, 10, 100, 50, 5, 10, 15, 20);
Функция: circle(x, y, r1, r2)
Purpose:
Создаёт окружность или эллипс с заданными параметрами центра и радиусов.
// Создать окружность с центром (50,50) и радиусом 20
circle(50, 50, 20);
// Создать эллипс с центром (50,50), горизонтальным радиусом 40 и вертикальным радиусом 20
circle(50, 50, 40, 20);
Пример: poly([x1, y1, x2, y2, x3, y3])
Функция: poly(points)
Purpose:
Создаёт многоугольник (полигон) из последовательности точек.
Минимум должен содержать координаты двух точек (4 числа).
// Создать многоугольник из 4 точек
poly([10, 10, 100, 10, 100, 50, 10, 50]);
или
shipy(shape, side, qty_or_len, ph, clo, sgap, lgap, rgap, bylen, colr) или
Поддерживает инверсию сторон с префиксом "-".
либо указываем 4 координаты линии вдоль которой надо рисовать шипы.
Пример 1: shipy(x1, y1, x2, y2, ..., options)
если в первый переметр передать объект, то он рисует шипы вдоль указанной грани (второй параметр T,B,L,R)
Пример 2: shipy(shape, "T", qty, thikness, ...)
Purpose:
Создаёт серию прямоугольных пазов вдоль заданной линии между точками (sx, sy) и (stx, sty).
Пазы чередуются с пропусками и могут быть смещены, повернуты и раскрашены.
false) или длина одного паза (если bylen = true).true — начинается с пропуска, false — с паза. По умолчанию: true.true, qty_or_len интерпретируется как длина паза, иначе — как количество. По умолчанию: false.false) — цвет заливки пазов. Передаётся в виде массива (например, [255, 0, 0]) или кореловского объекта color. Если false — заливка не применяется.Пример:
shipy(0, 0, 100, 0, 5, 10, true, 0, [5, 10], [5, 10], false, [255, 0, 0]);
Создает прямоугольные шипы вдоль линии. Шипы имеют небольшое сужение для лучшей посадки.
x1, y1 - координаты начала линииx2, y2 - координаты конца линииnums - количество шиповth - высота шиповdirection - направление выступа шипов:shift - смещение шипов вдоль линии (опционально):Создает прямоугольные пазы для сопряжения с шипами. Каждый паз создается как отдельный прямоугольный объект.
Parameters идентичны функции line_teeth:
x1, y1 - координаты начала линииx2, y2 - координаты конца линииnums - количество пазов (должно совпадать с количеством шипов)th - глубина пазов (должна совпадать с высотой шипов)direction - направление углубления пазов (противоположное шипам):shift - смещение пазов вдоль линии (должно совпадать со смещением шипов)Для создания сопрягаемых деталей:
nums и th для шипов и пазовdirection) для пазов должно быть противоположным шипамshiftПример:
// Создание шипов
line_teeth(0, 0, 100, 0, 5, 10, "up", "half");
// Создание ответных пазов
line_slots(0, 50, 100, 50, 5, 10, "down", "half");
Функция perf предназначена для создания пунктирного контура объекта и имеет следующие характеристики:
s — входной объект (может быть типа SHAPE или другого типа)punkt_dash — длина штриха пунктираpunkt_gap — длина промежутка между штрихамиСоздаёт и размещает текстовую надпись в документе.
X (число) — координата X точки привязки текста.
Y (число) — координата Y точки привязки текста.
text (строка) — содержимое текстовой надписи.
size (число) — размер шрифта в единицах документа или в миллиметрах (если указан параметр mm).
font (строка) — имя шрифта.
params (массив строк) — набор дополнительных опций для форматирования и выравнивания текста.
"mm" — размер шрифта задаётся в миллиметрах.
"wide", "width" — задаёт ширину текста по size.
"top" — позиционирование по верхней границе (TopY = Y).
"right" — позиционирование по правой границе (RightX = X).
"l", "textleft" — выравнивание по левому краю.
"r", "textright" — выравнивание по правому краю.
"c", "textcenter" — выравнивание по центру.
"b", "bold" — полужирный шрифт.
"i", "italic", "cursive" — курсивное начертание.
"u", "under", "underline" — подчёркнутый текст.
Возвращает:
Объект, содержащий созданную текстовую фигуру (txt).
Features работы:
Если указан mm или wide, размер текста подгоняется в миллиметрах.
Если используется wide, ширина текста регулируется по высоте size.
При отсутствии top и right текст привязывается по левому нижнему углу в точке (X, Y).
Метод возвращает объект с текстовой фигурой, созданной на активном слое.
text(50, 100, "Hello World", 12, "Arial");
Создаёт текст Hello World размером 12 пунктов шрифтом Arial с привязкой по левому нижнему углу в точке (50, 100).
text(200, 150, "Label", 10, "Times New Roman", ["mm", "bold", "italic", "right"]);
Создаёт текст Label шрифтом Times New Roman размером 10 мм, полужирным курсивом, с привязкой по правому краю в точке (200, 150).
text(100, 50, "Centered Text", 20, "Verdana", ["wide", "c"]);
Создаёт центрированный текст Centered Text шрифтом Verdana с высотой 20 мм и подгонкой ширины текста к размеру 12mm.
normalizeCoordinates(coords) — Нормализует координаты в объект {x, y} из массива [x, y] или объектаdistXY(x1, y1, x2, y2) — Вычисляет расстояние между двумя точкамиgetEndXY(X, Y, L, ANG) — Находит конечную точку отрезка заданной длины и угла от начальной точкиrotatePoint(x, y, angle, xR, yR) — Поворачивает точку на заданный угол вокруг центра вращенияgetMidPoint(x1, y1, x2, y2) — Находит середину отрезка между двумя точкамиgetTriangleArea(x1, y1, x2, y2, x3, y3) — Вычисляет площадь треугольника по трем точкамisPointOnLine(px, py, x1, y1, x2, y2, tolerance) — Проверяет, лежит ли точка на отрезке с заданной точностьюpolarToCartesian(r, angle) — Преобразует полярные координаты в декартовыcartesianToPolar(x, y) — Преобразует декартовы координаты в полярныеnormalizeAngle(angle) — Нормализует угол в диапазон 0-360 градусовgetAngleDifference(angle1, angle2) — Вычисляет минимальную разность между двумя угламиtoRad(degrees) — Преобразует градусы в радианыtoDeg(radians) — Преобразует радианы в градусыgetLineAngle(x1, y1, x2, y2, inDegrees) — Вычисляет угол наклона линии между двумя точкамиgetAngleByTwoCatets(a, b) — Вычисляет угол по противолежащему и прилежащему катетам (atan)getAngleByTwoCatetsAtan2(a, b) — Вычисляет угол по катетам с использованием atan2getOppositeKatetbyAdjacentKatetandAngle(adjKatet, angle) — Находит противолежащий катет по прилежащему и углуgetAdjacentKatetbyOppositeKatetandAngle(oppKatet, angle) — Находит прилежащий катет по противолежащему и углуgetHypotenuseByCatets(adjKatet, oppKatet) — Вычисляет гипотенузу по двум катетамgetOppositeKatetbyHypotenuseandAngle(hypotenuse, angle) — Находит противолежащий катет по гипотенузе и углуgetAdjacentKatetbyHypotenuseandAngle(hypotenuse, angle) — Находит прилежащий катет по гипотенузе и углуHypotenuseEndPoint(startPoint, adjacentEndPoint, angleInDegrees) — Вычисляет конечную точку гипотенузы по начальной точке, конечной точке прилежащего катета и углу между гипотенузой и прилежащим катетом. Возвращает объект с координатами и длинами сторон.префиксы для файлов от пользователей начинаются на x
xa — GROSSLASERfunction getColor(color) — Приводит входные данные к объекту Color из любого вида: [R,G,B], [C,M,Y,K] или #hex цвета.getSColor(s, byFill, strict) — взять цвет объекта возвращает кореловский ColorgetbyName(name, OS, ingroup, strong) -> ShapeRange : взять объекты по имени
getByFill(color, os) -> ShapeRange : фигуры с заливкой color
getByOutline(color, os) -> ShapeRange : фигуры с обводкой color
getByColor(color, byFill, os) -> ShapeRange : поиск по цвету (fill/outline по приоритету)
copyFill(trgt, src) : копирует заливку
copyOutline(trgt, src) : копирует обводку
copyColor(trgt, src) : копирует заливку и обводку
setFill(S, color) : устанавливает заливку
setColor(S, color, mode) : устанавливает цвет (outline|fill|both)
getColor(color) -> Color : преобразует вход к Color (RGB/CMYK/hex/id/obj)