Справочник узлов станка
Эта страница — справочник свойств для каждого типа узла, используемого в кинематической схеме станка, а также системы координат и единицы, в которых они все выражены. Это справочник‑компаньон к Дескрипторам станков, где разбирается, как узлы сочетаются друг с другом; приходите сюда, когда нужен полный список свойств конкретного типа узла.
Типы узлов образуют небольшое дерево наследования:
TMachineNode— база всего в схеме. Каждый другой тип узла ниже наследует егоID,Matrix,VisualPropertiesиImageFile.TMachineAxis— узел, который движется (линейно или поворотно).TToolHolderNode/TWorkpieceHolderNode— гнёзда, где крепятся инструмент и заготовка (коннектор инструмента / коннектор заготовки интерфейса).
Отдельный тип, TMachineStateParameter, вообще не является узлом схемы — это управляемое
значение, которым приводится узел оси. Узлы осей ссылаются на него по имени.
Системы координат и единицы измерения
- Мировая система координат. Если смотреть на обычный фрезерный станок спереди: Z вверх, X вправо, Y от наблюдателя. Стройте схему (и моделируйте геометрию) в этой системе.
- Единицы. Все переносы
Matrix— и вся CAD‑геометрия — заданы в единицах Measurements станка (см. Идентичность и метаданные): миллиметры для метрического станка, дюймы для дюймового. Если активная система единиц отличается, система пытается пересчитать масштаб станка один раз при загрузке, но для сильно параметризованных схем это может сработать некорректно — поэтому готовьте схему сразу в тех единицах, в которых она будет использоваться. Directionне обязан быть единичным вектором. Для обычной ортогональной оси это нормализованный вектор перемещения. Но на станках с неортогональными осями — например, наклонная опора Y на токарно‑фрезерном — модульDirectionне равен 1; его компоненты следуют синусам/косинусам наклона между осями. Поставляемый токарно‑фрезерный Mori Seiki (Machines\LatheMilling\Turret\Mori Seiki\MoriSeiki.xml) задаёт своей оси YDirection = (√3, 1, 0)— записанное точно как(1.7320508…, 1, 0), наклон 30° с модулем 2 — для математически точного описания.- Конвенция оси инструмента. Z инструмента идёт от режущей вершины вдоль оси вращения
инструмента к точке его крепления в шпинделе/держателе. Для наружных (OD) токарных резцов то
же по ISO 13399: Z от вершины к креплению держателя, рабочая плоскость пластины в
плоскости ZX; X выбран так, чтобы у правого инструмента бóльшая часть режущей
геометрии была со стороны −X (у левого — на +X). CAM‑система всё вычисляет в
предположении этого размещения; лишь при финальном выводе CLData необязательный
AdditionalTransform(вывод системы координат инструмента) может применить последнее смещение/поворот — обычно нулевое для станков и используемое на роботах, чтобы развернуть Z так, чтобы он указывал из фланца (и из инструмента в сторону, противоположную креплению).
TMachineNode
TMachineNode — база для всего в дереве схемы. Каждый тип узла наследует эти четыре члена:
| Свойство | По умолч. | Смысл |
|---|---|---|
ID |
"" |
Идентификатор узла, уникальный в пределах этого файла станка. |
Matrix |
единичная | Размещение узла относительно родителя (или мира — см. позиционирование узлов матрицами). |
VisualProperties |
— | Как отрисовывается 3D‑модель узла (см. ниже). |
ImageFile |
"" |
3D‑модель узла, файл .osd / .stl (см. 3D‑модели станков). |
Голый TMachineNode — это жёсткая часть конструкции (станина, колонна, стол): он несёт
геометрию и позиционирует своих потомков, но сам не движется.
TMachineAxis
TMachineAxis расширяет TMachineNode (поэтому у него есть ID, Matrix, VisualProperties
и ImageFile, как у любого узла) и добавляет специфичные для оси свойства ниже:
| Свойство | По умолч. | Смысл |
|---|---|---|
AxisType |
Linear |
Linear или Rotary. |
ParameterName |
"" |
ID TMachineStateParameter, который приводит эту ось. |
Direction |
(0, 0, 1) |
Направление перемещения (только линейные оси — см. примечание ниже). |
Scale |
1 |
Множитель от значения параметра состояния к физическому перемещению (см. ниже); отрицательный инвертирует направление. |
RapidFeed |
10000 |
Скорость ускоренного перемещения в минуту (мм/мин для линейной оси в мм, град/мин для поворотной оси в градусах). |
Channel |
-1 |
Канал управления (§6); -1 = общий. |
WorkpieceIndex |
-1 |
Если ≥ 0, ось управляется только для этой заготовки. |
DesignTimeAxisValue |
0 |
Значение оси, используемое во время проектирования для вычисления мировых матриц узлов. |
Direction — линейная или поворотная. Для линейной оси Direction — это направление
перемещения. Для поворотной оси Direction не используется: вращение всегда вокруг оси
Z собственной локальной системы координат оси, поэтому ориентируйте узел (через его
Matrix), чтобы поместить этот Z туда, где должна быть ось вращения.
Scale — это безразмерный множитель, применяемый к значению параметра состояния оси —
физическая единица заключена в значении, а не в Scale: длина для линейной оси (мм или дюйм
в дюймовой системе) и угол в радианах для поворотной оси. Используйте Scale, чтобы
переотобразить значение — например, индексная револьверная голова хранит простой индекс
позиции, а Scale, равный 360 / BlocksCount, превращает каждый шаг индекса в поворот на одну
позицию. Отрицательный Scale инвертирует направление оси (а значит, переворачивает и
базовую СК, в которую он вносит вклад — см.
§4).
VisualProperties
Каждый узел (TMachineNode и его потомки — оси, держатели, узлы схемы) имеет блок
VisualProperties, управляющий тем, как отрисовывается его 3D‑модель:
| Свойство | По умолч. | Смысл |
|---|---|---|
Visible |
True |
Показывается ли модель узла; при выключении узел скрыт. |
Color |
(0.5, 0.5, 0.5) |
Цвет узла как R / G / B, каждый 0…1. |
Metallic |
False |
Отрисовка с металлическим видом. |
IsTransparent |
False |
Сделать узел прозрачным (включает Transparence). |
Transparence |
0.5 |
Прозрачность, 0 = непрозрачно … 1 = полностью прозрачно. |
DisplayMode |
Default |
Режим отрисовки — Wire, Shade, EdgeShade или Default. |
VisMatrix |
единичная | Матрица, размещающая 3D‑модель узла независимо от его кинематической Matrix (см. §1). |
Use3DModelColors |
False |
При True отрисовывать узел цветами, хранящимися в его 3D‑модели, вместо Color выше. (Атрибут на VisualProperties.) |
<VisualProperties Use3DModelColors="False"> <!-- атрибут на самом элементе -->
<Visible DefaultValue="True"/>
<Color><R DefaultValue="0.5"/><G DefaultValue="1"/><B DefaultValue="0.5"/></Color>
<DisplayMode DefaultValue="Shade"/>
</VisualProperties>
Подготовка самих 3D‑моделей (файлы
.osd/.stl, где они лежат, единицы и выравнивание) описана в 3D‑моделях станков.
TMachineStateParameter
TMachineStateParameter — это управляемая величина, которой управляет ЧПУ: положение оси,
шпиндель, ход кулачка. Узлы осей ссылаются на него через ParameterName. Он объявляется либо в
глобальной секции MachineStateParameters, либо на узле в Schema (см.
параметры состояния станка).
| Свойство | По умолч. | Смысл |
|---|---|---|
Enabled |
True |
Активен ли параметр. |
ID |
"" |
Его идентификатор; оси и держатели ссылаются на него по этому имени (часто параметризованному, например [Prefix]…). |
Address |
"" |
Адресная буква, которую постпроцессор выводит для него (например, X, Z, C, S). |
AxisControl |
Continues |
Как он приводится — Continues (непрерывно), Indexed или Manual (см. примечания). |
Group |
Other |
Классификация — LinearAxis, RotaryAxis или Other. |
Incr |
0.001 |
Наименьший инкремент / разрешение. |
Min / Max |
-1E9 / +1E9 |
Пределы перемещения. |
InitialValue |
0 |
Значение оси при сбросе станка в исходное состояние в проекте, до запуска любой операции. |
DesignTimeValue |
0 |
Смещение нуля оси — положение, в котором была нарисована её 3D‑модель (см. примечания). |
HasBrake |
False |
У оси есть тормоз. При установке вокруг каждого изменения этой оси в CLData выдаётся команда AXESBRAKE On\|Off (чтобы постпроцессор отпустил/зажал тормоз). |
SupportShortestPathRotation |
вычисляется | Только периодические поворотные оси — влияет на симуляцию ускоренных перемещений (см. примечания). |
Priority |
0 |
Порядок параметра только в списках/окнах пользователя (на вывод не влияет). |
Order |
[Priority] |
Порядок, в котором оси записываются в команды CLData. |
ParameterType |
Geom |
Устарело — сейчас не действует (когда‑то группировало отображение на геометрические и технологические). |
ControlWithMap |
False |
Разрешение избыточной оси через интерактивную карту оси (см. примечания). |
ClampID |
вычисляется | Id зажимного приспособления; на него ссылаются операции передачи/перехвата детали, которые зажимают и разжимают его. |
Чаще всего вы задаёте Address, Group и Min/Max/Incr.
Примечания по отдельным свойствам:
AxisControl— Continuous: несколько непрерывных осей могут меняться в пределах одного кадра УП. Indexed: не может двигаться синхронно с другими осями — позиционируется и фиксируется в собственном кадре(ах) УП до основной обработки. Manual: не управляется программой — оператор задаёт её вручную, поэтому она может меняться только в объектах Setup (не в операциях внутри установа), а постпроцессор может выводить её как комментарий/инструкцию оператору.ControlWithMap— для избыточных осей. Включает интерактивную карту оси: график значения избыточной оси (по вертикали) против длины пути (по горизонтали), на котором вы рисуете, как эта ось должна двигаться вдоль траектории, наблюдая за движением всего станка и видя столкновения узлов как запретные зоны на карте. Это интерактивный способ разрешить избыточность обратной кинематики. Включайте его только для дополнительных избыточных осей, о которых виртуальный субстанок ещё не знает: основные избыточные внешние оси — например, 3 линейные оси рельсов робота и 2 поворотные оси позиционера, или ось C 5‑осевого станка (для обхода сингулярностей) — появляются на карте автоматически, без этого флага.SupportShortestPathRotation— для периодических поворотных осей с диапазоном более 180°. Он не меняет CLData (целевое значение, напримерA+370, по‑прежнему выводится); он влияет только на симуляцию ускоренных перемещений: при включении ускоренное перемещение идёт по кратчайшему эквивалентному углу (A+10вместоA+370); при выключении делает полный оборот. Рабочие перемещения всегда выполняют полный ход.DesignTimeValue— используйте, когда 3D‑модель оси была нарисована в ненулевом положении: укажите здесь это положение, и нуль оси сместится на противоположную величину, чтобы модель совпала со значением оси 0.
Коннекторы инструмента и заготовки
Коннектор — это место, где инструмент или заготовка крепятся к кинематической цепочке —
коннектор инструмента (TToolHolderNode) и коннектор заготовки (TWorkpieceHolderNode)
интерфейса. Оба наследуются от общего гнезда и разделяют свойства шпинделя и зажима ниже. На
станках (не роботах) инструментальный коннектор дополнительно несёт свойства,
сообщающие решателю кинематики, как позиционируется и выбирается его инструмент.
Таблицы здесь — это справочник свойств; поведение за этими свойствами — как выводится базовая система координат, как коннектор делается активным, оговорка о размещении заготовки — объяснено в §4 Коннекторы инструмента.
Свойства, специфичные для инструмента (TToolHolderNode)
| Свойство | По умолч. | Смысл |
|---|---|---|
XAxisID / YAxisID / ZAxisID |
"" |
Оси станка, позиционирующие вершину этого инструмента в пространстве; они также определяют базовую систему координат коннектора (§4). |
ToolAxisID |
"" |
Ось, которую нужно переместить, чтобы сделать этот коннектор активным (индексация магазина / револьверной головы). Может быть пустой, когда активный субстанок предоставляет ось инструмента. |
ToolAxisValue |
0 |
Значение ToolAxisID, которое вводит эту позицию / инструмент. |
ToolNumber |
0 |
Позиция в магазине (номер инструмента), которую выводит постпроцессор. 0 → не используется; вместо этого УП выводит номер из собственных свойств режущего инструмента. |
SupportedToolTypes |
— | Применения, которые может выполнять инструмент в этом коннекторе — MillTool, LatheCutter, JetCutter, Punch, Wire, Cutter6D, Welder, AdditiveTool, Painter, HeatTreatment, Gripper. Используется для фильтрации списков операций/инструментов, предлагаемых для коннектора. |
Channel |
-1 |
Канал управления, к которому принадлежит этот коннектор (§6). |
ToolChangeTimeCalcLawIndex |
0 |
Индекс закона времени смены инструмента (заданного в секции Tool Change станка), применяемого к этому коннектору (0 = закон по умолчанию). |
Шпиндель и зажим (общие для обоих коннекторов)
| Свойство | По умолч. | Смысл |
|---|---|---|
SpindleParamID |
"" |
ID параметра состояния станка, приводящего поворотную ось шпинделя, которая вращает инструмент или деталь. Это ID параметра состояния, а не ID узла оси. |
HolderType |
Unknown |
Unknown, LeftLatheSpindle или RightLatheSpindle; помечает гнездо токарного шпинделя. |
DefaultClampID |
вычисляется | ID зажима по умолчанию для этого гнезда, на который ссылаются операции передачи/перехвата детали; по умолчанию выводится из HolderType (левый шпиндель → 1, правый → 2, иначе -1). |
Коннектор заготовки (TWorkpieceHolderNode)
Коннектор заготовки — это место удержания детали — на патроне, шпинделе или приспособлении.
Он несёт общие свойства шпинделя и зажима выше (важнее всего SpindleParamID для токарного
шпинделя и HolderType / DefaultClampID для зажима), но ни одного из полей
позиционирования инструмента (XAxisID/YAxisID/ZAxisID), активации
(ToolAxisID/ToolAxisValue) или ToolNumber / SupportedToolTypes — те описывают, как
позиционируется и выбирается инструмент, что неприменимо к держателю детали.
Оговорка о размещении. Хотя
TWorkpieceHolderNodeнаследуетMatrixузла, эта матрица игнорируется для коннектора заготовки — в отличие от обычных узлов, осей и держателей инструмента. Коннектор заготовки всегда принимает размещение своего родительского узла. Поэтому, чтобы сместить положение детали, добавьте дополнительный родительский узел и поместите размещение (егоMatrix) на этот узел. Это сделано намеренно: положение детали должно определяться установом заготовки в проекте (внутри CAM‑системы), а не фиксироваться при создании станка.
Назад к разбору: Дескрипторы станков · Указатель станков