Справочник по настройке CAM-системы
  • Справочник по настройке CAM-системы
Search Results for

    Show / Hide Table of Contents
    • Справочник по настройке CAM-системы
    • Фреймворк XMLProperties
      • Обзор фреймворка
      • Синтаксис дескрипторов
      • Язык выражений
      • Использование XML-свойств из кода
      • Пользовательские значения по умолчанию
    • XML-дескрипторы операций
      • Дескрипторы операций
      • Справочник иерархии операций
    • Дескрипторы станков
      • Дескрипторы станков
      • Справочник узлов станка
      • Справочник параметров Machine Setup
      • Продвинутые темы по станкам
      • 3D-модели станков

    Дескрипторы станков

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

    Большинство станков строятся в MachineMaker, а не вручную. Отдельное приложение MachineMaker позволяет создавать станок интерактивно: для распространённых типов кинематических схем оно само формирует дескриптор, без ручной правки XML. Оставьте рукописный XML (и подготовленные вручную 3D‑модели) для особых, сложных или необычных станков, выходящих за рамки возможностей MachineMaker. Эта глава документирует ручной путь — но если MachineMaker может построить ваш станок, предпочтите его.

    Сопутствующие страницы по станкам — читайте вместе с этой главой:

    • Справочник узлов станка — полные таблицы свойств для каждого типа узла (TMachineNode, TMachineAxis, коннекторы, параметры состояния, VisualProperties), а также системы координат и единицы измерения.
    • Справочник параметров Machine Setup — что делает каждый параметр на вкладке Control Parameters станка (дуги, сингулярности, поворотные преобразования, 5‑осевая компенсация, смена инструмента, симуляция, …), с XML‑фрагментом, который его переопределяет.
    • Продвинутые темы по станкам — матрицы узлов, переключаемые/съёмные узлы, револьверные головы, коннекторы инструмента/заготовки, а также каналы управления и субстанки.
    • 3D‑модели станков — подготовка, подключение и выравнивание геометрии узлов (.osd / .stl).

    Станок — это набор файлов

    Станок — это не единый объект, спрятанный в приложении, а небольшой набор файлов, на которые можно указать:

    • дескриптор — один .xml‑файл, который и есть станок: его идентичность, параметры управления и кинематическая схема;
    • его 3D‑модели — геометрия .osd / .stl, на которую дескриптор ссылается через ImageFile (на каждом узле) и заголовочные члены Image / Icon; по соглашению хранится в подпапке Images\ рядом с дескриптором (см. 3D‑модели станков);
    • опционально значения по умолчанию станка (*.usrdef), подстраивающие поставляемые станки.

    Поставляемые файлы в Machines\ — ваш справочник. Они задают библиотеку типов станков — абстрактные станки и типы‑строительные‑блоки, из которых собирается каждый станок, — загружаемую через Machines/MachinesConfig.xml в пространство имён Machines. Чаще всего вы будете читать два: Machines/AbstractMachine.xml (общая база, от которой наследуется каждый станок) и Machines/MachineTypes.xml (типы узлов, осей, держателей и параметров).

    Конкретный станок, напротив, — это отдельный файл, загружаемый сам по себе (ниже). Как и с операциями, вы не редактируете Supplement: пользовательский станок — это отдельный файл в сканируемых папках станков ($(SCHEMAS_FOLDER) / $(CUSTOM_SCHEMAS_FOLDER)), обычно создаваемый инструментами построения станков (см. §7). Эта глава объясняет синтаксис дескриптора, из которого строятся такие станки.

    Как загружается дескриптор станка

    Станки загружаются иначе, чем операции, и это различие влияет на то, как их создавать.

    • Библиотека типов загружается один раз. MachinesConfig.xml загружает общую библиотеку типов станков — абстрактные станки и строительные блоки узлов, осей, держателей и параметров (ниже). Она общая для каждого станка.
    • Каждый станок загружается изолированно. Конкретный станок — это собственный XML‑файл. Когда системе нужен конкретный станок, она строит свежее пространство имён Machines поверх общей библиотеки типов, включает именно этот один файл станка, а затем применяет значения по умолчанию станка (Machines/MachinesDefaults.xml, который подключает любые *.usrdef). Каждый станок получает собственное приватное пространство имён.
    • Идентификаторы локальны для одного станка. Поскольку станки никогда не делят пространство имён, два разных файла станков могут безопасно переиспользовать одни и те же ID у SCType. Глобально уникальные имена членов не нужны — только уникальные внутри вашего станка.
    • Библиотека ленивая. Установки могут содержать тысячи станков, поэтому библиотека станков лишь сканирует предопределённые папки станков на предмет лёгких метаданных (достаточных, чтобы их перечислить и искать) и полностью загружает дескриптор станка только тогда, когда этот станок действительно открывают. Помните: файл станка разбирается по требованию, изолированно, а не весь сразу при старте.

    Практическое следствие для авторов: ваш файл станка — это самодостаточный <SCCollection> в пространстве имён Machines, наследующийся от библиотечного типа и переопределяющий/расширяющий его. Он лежит в сканируемой папке станков, а не в Supplement.

    Строительные блоки

    MachineTypes.xml определяет переиспользуемые типы, из которых собирается станок. Их всего несколько; справочник узлов перечисляет каждое свойство каждого из них.

    Тип Роль
    TMachineNode База для всего в дереве схемы — жёсткая часть (станина, колонна, стол). Имеет ID, матрицу преобразования Matrix, визуальные свойства и необязательный ImageFile (геометрия .osd/.stl).
    TMachineAxis Узел, который движется: AxisType (Linear/Rotary), Direction (только линейные оси), Scale, RapidFeed и ParameterName, связывающий его с параметром состояния.
    TMachineStateParameter Управляемое значение, которым приводится ось (положение, шпиндель, …): Address, пределы, режим управления. Не узел схемы — оси ссылаются на него по имени.
    TToolHolderNode / TWorkpieceHolderNode Гнёзда, несущие инструмент / заготовку, с SupportedToolTypes. Специализации: TMillToolHolder, TLatheCutterHolder, TJetCutterHolder, …

    О наименовании. ID типов TToolHolderNode и TWorkpieceHolderNode отображаются в интерфейсе как «коннектор инструмента» и «коннектор заготовки». Это одно и то же — гнездо, где инструмент, соответственно заготовка, крепится к кинематической цепочке.

    Существует также несколько предопределённых типов осей и параметров состояния (TToolAxisX/Y/Z, TLatheSpindle, TRotaryTable, TAxisXPosition, …), но они унаследованные и необязательные: введённые рано для экономии набора через наследование, они экономят мало и заставляют выяснять, какие умолчания они скрывают. Предпочитайте объявлять оси и параметры явно из TMachineAxis / TMachineStateParameter, чтобы значимые значения были видны прямо в вашем файле станка. (Шаблонные типы вроде револьверных в §3 — исключение: там наследование действительно оправдано.)

    Полный простой станок

    Конкретные станки наследуются от AbstractMachine (или более близкой базы вроде AbstractMillMachine), которая уже предоставляет каждую секцию станка:

    Секция Содержимое
    DescriptionPlaceHolder Идентичность и метаданные: Name, Comment, Group, Developer, NCSystem, файл постпроцессора (SPPFile), файл интерпретатора, система единиц.
    ControlData Параметры управления/поведения: поддержка дуг, поворотные преобразования, 5‑осевая компенсация, обработка локальной СК (ORIGIN), формат вывода системы координат инструмента.
    MachineStateParameters Список управляемых параметров (состояние осей).
    Schema Само кинематическое дерево.
    Coolants Доступные каналы СОЖ.
    Simulation Метод/разрешение симуляции и настройки столкновений.
    ToolChange Позиция смены инструмента, тайминги и режим вывода.
    MachineDimensions Опрятное место для сбора ключевых определяющих параметров схемы.

    Две секции, которые вы пишете почти для каждого станка, — это MachineStateParameters (значения, которыми управляет ЧПУ) и Schema (геометрия, движущаяся вместе с ними). Вот полный небольшой 3‑осевой фрезерный станок, в котором стол перемещается по X, а инструментальная голова несёт Y и Z — распространённая компоновка станинного типа и хорошая иллюстрация того, что двигаться могут обе ветви:

    <MachineStateParameters>
        <SCType ID="AxisXPos" Caption="X" type="TMachineStateParameter">
            <Address DefaultValue="X"/><Group DefaultValue="LinearAxis"/>
            <Min DefaultValue="-300"/><Max DefaultValue="300"/>
        </SCType>
        <SCType ID="AxisYPos" Caption="Y" type="TMachineStateParameter">
            <Address DefaultValue="Y"/><Group DefaultValue="LinearAxis"/>
            <Min DefaultValue="-200"/><Max DefaultValue="200"/>
        </SCType>
        <SCType ID="AxisZPos" Caption="Z" type="TMachineStateParameter">
            <Address DefaultValue="Z"/><Group DefaultValue="LinearAxis"/>
            <Min DefaultValue="0"/><Max DefaultValue="400"/><InitialValue DefaultValue="400"/>
        </SCType>
        <SCType ID="SpindlePos" Caption="Spindle" type="TMachineStateParameter">
            <Address DefaultValue="S"/><Group DefaultValue="RotaryAxis"/><AxisControl DefaultValue="Manual"/>
        </SCType>
    </MachineStateParameters>
    
    <Schema>
        <SCType ID="Base" Caption="Bed" type="TMachineNode" IsFloor="True">
            <ImageFile DefaultValue="Images\bed.osd"/>
    
            <!-- ВЕТКА ИНСТРУМЕНТА: Y несёт Z, тот несёт шпиндель, тот несёт инструмент -->
            <SCType ID="AxisY" Caption="Axis Y" type="TMachineAxis">
                <ParameterName DefaultValue="AxisYPos"/>
                <AxisType DefaultValue="Linear"/>
                <Direction><X DefaultValue="0"/><Y DefaultValue="1"/><Z DefaultValue="0"/></Direction>
                <SCType ID="AxisZ" Caption="Axis Z" type="TMachineAxis">
                    <ParameterName DefaultValue="AxisZPos"/>
                    <AxisType DefaultValue="Linear"/>
                    <Direction><X DefaultValue="0"/><Y DefaultValue="0"/><Z DefaultValue="1"/></Direction>
                    <SCType ID="Spindle" Caption="Spindle" type="TMachineAxis">
                        <ParameterName DefaultValue="SpindlePos"/>
                        <AxisType DefaultValue="Rotary"/>
                        <SCType ID="Tool" Caption="Tool" type="TMillToolHolder">
                            <SpindleParamID DefaultValue="SpindlePos"/>
                        </SCType>
                    </SCType>
                </SCType>
            </SCType>
    
            <!-- ВЕТКА ЗАГОТОВКИ: стол движется по X (физически -X, см. примечание ниже) -->
            <SCType ID="AxisX" Caption="Axis X" type="TMachineAxis">
                <ParameterName DefaultValue="AxisXPos"/>
                <AxisType DefaultValue="Linear"/>
                <Direction><X DefaultValue="-1"/><Y DefaultValue="0"/><Z DefaultValue="0"/></Direction>
                <SCType ID="Table" Caption="Table" type="TMachineNode">
                    <ImageFile DefaultValue="Images\table.osd"/>
                    <SCType ID="Workpiece" Caption="Workpiece" type="TWorkpieceHolderNode"/>
                </SCType>
            </SCType>
        </SCType>
    </Schema>
    

    Чтение этого дерева: станина — фиксированная база (IsFloor="True", см. кинематическую схему). Её ветка инструмента — Y → Z → шпиндель → держатель инструмента: подвиньте Y, и всё, что ниже, сдвинется, а листовой TMillToolHolder — это место крепления режущего инструмента. Её ветка заготовки — X → стол → заготовка: ось X несёт стол, а TWorkpieceHolderNode на столе — место удержания детали. Эти два листа — коннектор инструмента / коннектор заготовки интерфейса. Каждый движущийся узел называет управляющий им параметр состояния через ParameterName, и все четыре параметра объявлены в MachineStateParameters.

    Обратите внимание на Direction оси X — (−1, 0, 0). Она находится в ветке заготовки, поэтому её Direction — это физическое перемещение стола — мировой −X. Перемещение детали в −X эквивалентно перемещению инструмента в +X, так что получается привычная станочная ось X с правой тройкой осей. (Ось из ветки инструмента, напротив, использует своё направление перемещения напрямую.) Это правило знака для ветки заготовки подробно описано в §4.

    Остальная часть главы проходит по каждой секции по очереди.

    Идентичность и метаданные

    AbstractMachine несёт заголовочные члены, нужные каждому станку — GUID, Priority, Name, Comment, Group, Image, Icon — и поля идентичности DescriptionPlaceHolder (Developer, NCSystem, постпроцессор SPPFile, файл интерпретатора и систему Measurements, фиксирующую единицы станка). Производный станок переопределяет их так же, как операция:

    <SCType ID="AbstractMillMachine" Caption="Abstract Mill Machine" type="AbstractMachine">
        <GUID     DefaultValue="{FA164E91-DF7D-474B-B335-8EE7F2C34E41}"/>
        <Priority DefaultValue="1000"/>
        <Group    DefaultValue="Milling"/>
        ...
    </SCType>
    

    (реальный пример: Machines/AbstractMachine.xml)

    Group — это перечисление TMachineGroup: Milling, Lathe, LatheMilling, JetCutter, WireEDM, Robot, Unknown.

    Система Measurements (метрическая или дюймовая) фиксирует единицы каждого переноса Matrix и всей геометрии, на которую есть ссылки — см. Системы координат и единицы.

    Параметры управления

    ControlData — это глубокая секция переключателей, сообщающих движку и постпроцессору, что станок умеет. Обычно вы переопределяете только относящиеся к вашему станку части. Каждый из этих параметров подробно объяснён — с XML‑фрагментом, который его переопределяет — в Справочнике параметров Machine Setup; этот раздел — лишь обзор того, что там находится:

    • Дуги — разрешён ли вывод дуг и в каких плоскостях, мин. длина, макс. радиус, пространственные дуги.
    • Поворотные преобразования — доступность полярной/цилиндрической интерполяции, поддержка TCPM и умолчания.
    • 5‑осевая компенсация — компенсация вершины инструмента / нуля заготовки / системы координат для индексных и непрерывных режимов.
    • Локальная СК (ORIGIN) — как ведут себя начала координат в стиле G54.
    • Вывод системы координат инструмента — формат поворота/ориентации, ожидаемый постпроцессором (вектор нормали, кватернион, варианты Эйлера, …).

    Многие из этих умолчаний вычисляются языком выражений, чтобы оставаться согласованными — например, последовательность поворотов, выводимая из выбранного формата системы координат инструмента через большой SWITCH (см. §5).

    Параметры состояния станка

    MachineStateParameters перечисляет величины, которыми управляет ЧПУ. Вы добавляете их, переопределяя унаследованную секцию и объявляя члены TMachineStateParameter (или предопределённой специализации):

    <MachineStateParameters>
        <SCType ID="AxisXPos" type="TAxisXPosition"/>
        <SCType ID="AxisYPos" type="TAxisYPosition"/>
        <SCType ID="AxisZPos" type="TAxisZPosition">
            <InitialValue DefaultValue="100"/>
        </SCType>
        <SCType ID="AxisSPos" Caption="Spindle Position" type="TMachineStateParameter">
            <Address  DefaultValue="S"/>
            <Group    DefaultValue="RotaryAxis"/>
            <Priority DefaultValue="1"/>
            <Order    DefaultValue="4"/>
        </SCType>
    </MachineStateParameters>
    

    (реальный пример: Machines/AbstractMachine.xml)

    Чаще всего вы задаёте Address, Group и Min/Max/Incr; ещё несколько управляют поведением симуляции и смены инструмента (AxisControl, HasBrake, SupportShortestPathRotation, DesignTimeValue, ControlWithMap, …). Полная таблица свойств с примечаниями по каждому — в справочнике узлов → TMachineStateParameter.

    Два места для объявления параметра состояния

    TMachineStateParameter может объявляться в одном из двух мест:

    • в глобальной секции MachineStateParameters (как выше), либо
    • внутри описания узла или оси в Schema.

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

    Кинематическая схема

    Schema — это место, где геометрия станка оживает. Это дерево узлов, вложенных по принципу вложенности: дочерний узел сидит на родителе и движется вместе с ним. Вложенность и есть кинематическая цепочка. У схемы всегда две ветви от базы — одна несёт инструмент, другая удерживает заготовку — и обе обязательны (см. полный пример выше).

    Ключевые моменты при построении схемы:

    • Каждый движущийся узел привязывается к параметру состояния через ParameterName (шпиндель — это просто поворотная ось, чей параметр состояния в группе RotaryAxis, а держатель инструмента указывает на него через SpindleParamID). Все параметры, которые называет схема, должны существовать в MachineStateParameters.
    • AxisType — это Linear или Rotary. Direction применяется только к линейным осям — там это направление перемещения. Для поворотных осей Direction не используется: вращение всегда вокруг оси Z собственной локальной системы координат оси, поэтому ориентируйте узел (через его Matrix), чтобы поместить этот Z туда, где должна быть ось вращения.
    • Scale — это безразмерный множитель значения параметра состояния оси (длина для линейной оси, угол в радианах для поворотной); отрицательный Scale инвертирует ось. Полный список свойств TMachineAxis, включая RapidFeed, Channel и DesignTimeAxisValue, см. в справочнике узлов.
    • Цепочка должна заканчиваться держателем, чтобы инструменту (а на стороне заготовки — детали) было где разместиться. XAxisID/YAxisID/ZAxisID и ToolAxisID/ToolAxisValue держателя инструмента несут дополнительный смысл — см. §4 и справочник коннекторов.
    • Визуальный Color/геометрия каждого узла задаётся через унаследованный VisualProperties (см. справочник узлов и 3D‑модели станков).

    Один параметр, несколько узлов — приём с общей осью

    Ось живёт в двух местах с разными ролями: узел оси (TMachineAxis) в Schema — геометрия (где он сидит, его Direction, Matrix, 3D‑модель) — и параметр состояния (TMachineStateParameter) — единственное управляемое значение (его Address, пределы, режим управления). Они связаны через совпадение ParameterName узла с ID параметра.

    Мощное следствие: несколько узлов осей могут делить один параметр состояния, так что одно управляемое значение приводит сразу несколько частей геометрии. Классический случай — 3‑кулачковый патрон: три кулачка, каждый — собственный узел оси, направленный радиально в своём повёрнутом направлении, и все приводятся одним JawPos:

    <!-- один общий параметр состояния -->
    <MachineStateParameters>
        <SCType ID="JawPos" Caption="Jaws" type="TMachineStateParameter">
            <AxisControl DefaultValue="Manual"/>
            <Min DefaultValue="0"/><Max DefaultValue="100"/><InitialValue DefaultValue="50"/>
        </SCType>
    </MachineStateParameters>
    
    <!-- три узла-кулачка, все управляются ОДНИМ JawPos, но повёрнуты на 0°, 120°, 240° -->
    <SCType ID="Chuck" Caption="Chuck" type="TMachineNode">
        <SCType ID="Jaw1" type="TMachineAxis">
            <ParameterName DefaultValue="JawPos"/><AxisType DefaultValue="Linear"/>
            <Direction><X DefaultValue="1"/><Y DefaultValue="0"/><Z DefaultValue="0"/></Direction>
            <Matrix><SCType ID="T1" type="TRotateZ" DefaultValue="0"/></Matrix>
        </SCType>
        <SCType ID="Jaw2" type="TMachineAxis">
            <ParameterName DefaultValue="JawPos"/><AxisType DefaultValue="Linear"/>
            <Direction><X DefaultValue="1"/><Y DefaultValue="0"/><Z DefaultValue="0"/></Direction>
            <Matrix><SCType ID="T1" type="TRotateZ" DefaultValue="120"/></Matrix>
        </SCType>
        <SCType ID="Jaw3" type="TMachineAxis">
            <ParameterName DefaultValue="JawPos"/><AxisType DefaultValue="Linear"/>
            <Direction><X DefaultValue="1"/><Y DefaultValue="0"/><Z DefaultValue="0"/></Direction>
            <Matrix><SCType ID="T1" type="TRotateZ" DefaultValue="240"/></Matrix>
        </SCType>
    </SCType>
    

    Каждый кулачок перемещается вдоль своего локального X (своего Direction), но его Matrix поворачивает эту локальную систему на 0° / 120° / 240°, так что три кулачка радиально сходятся и расходятся вместе при каждом изменении единственного значения JawPos. Один параметр — три движущихся узла.

    Привязка схемы к полу — IsFloor

    Пометьте узел, представляющий пол (куда направлена гравитация), логическим атрибутом IsFloor="True" (как на узле Base в примере выше). Он не влияет на кинематику; он сообщает графическому окну, как строить стандартные виды, чтобы «верх» выглядел естественно для пользователя, даже когда мировой Z станка не направлен вверх — например, у потолочного робота, базовый Z которого направлен вниз.

    Частые ошибки схемы

    При загрузке схемы система проверяет её и сообщает о проблемах. Сообщения, которые вы вероятнее всего встретите:

    • "Axes (X,Y,Z) must define the right coordinate system (repaired)" — выбранные направления перемещения осей не образуют правую тройку. Система исправляет это, но проверьте векторы Direction и знаки веток инструмента/заготовки (§4).
    • Tool connector "…" has no correct X/Y/Z axis — XAxisID / YAxisID / ZAxisID коннектора инструмента не называют существующие оси.
    • "Possibly incorrect ToolAxisID …" — ToolAxisID инструмента или субстанка не указывает на корректную ось (обычно это должна быть ось шпинделя или револьверной головы).
    • "The same machine axis is specified as a X, Y or Z axis more than once in the submachine" — субстанок указывает одну ось в двух из своих слотов XAxisID/YAxisID/ZAxisID.
    • "Incorrect redundant robot axis type" — неподдерживаемое значение в RedundantAxis.

    Продвинутые темы схемы — как позиционировать узлы матрицами (относительно родителя или мира), строить переключаемые/съёмные узлы (блоки револьверной головы, присоединяемые головки), создавать револьверные головы, подключать коннекторы инструмента/заготовки и настраивать каналы управления и субстанки для многоканальных станков — описаны в Продвинутых темах по станкам.

    Оснастка, СОЖ и симуляция

    Остальные секции дескриптора меньше и в основном самоочевидны:

    • Coolants — каналы СОЖ, доступные на станке, каждый с кодом, который постпроцессор выводит для его включения/выключения.
    • Simulation — метод и разрешение симуляции, а также настройки столкновений, используемые при проверке проекта на этом станке.
    • ToolChange — позиция смены инструмента, закон(ы) тайминга (на которые ссылается ToolChangeTimeCalcLawIndex коннектора) и режим вывода смен инструмента.

    Размеры станка

    MachineDimensions — место, где собираются важные управляющие параметры схемы, чтобы пользователь видел их все в одном компактном месте — например, расположение позиционера, размер ячейки или любое значение, от которого параметризованы другие узлы. Параметр попадает в эту секцию одним из двух способов: объявляется напрямую как её дочерний (для значений, принадлежащих базовым узлам) или прикрепляется к ней атрибутом переподчинения Parent (для значений, живущих на переключаемых/присоединяемых узлах, но которые всё равно должны появляться здесь). О Parent см. §8.4.

    Обнаружение

    Станки нигде не регистрируются — они обнаруживаются по расположению. Файл станка находится просто за счёт размещения в одной из сканируемых папок станков ($(SCHEMAS_FOLDER) / $(CUSTOM_SCHEMAS_FOLDER)); библиотека станков подхватывает его при сканировании папок и загружает по требованию (выше). Регистрационную запись писать не нужно — в отличие от операций, станкам не нужна запись в регистраторе.

    Чек‑лист для нового станка

    1. Определите ближайшую базу (AbstractMillMachine, абстрактный робот/токарный, …) или напрямую AbstractMachine.
    2. Сгенерируйте GUID; задайте Group, Name, Comment, Image, Icon, постпроцессор SPPFile.
    3. Определите управляемые величины в MachineStateParameters.
    4. Постройте дерево Schema: вложите оси в их реальном кинематическом порядке и завершите каждую ветвь подходящим держателем; свяжите каждую ось с её параметром состояния через ParameterName.
    5. Установите нужные переключатели ControlData (дуги, поворотные преобразования, 5‑осевое, вывод системы координат инструмента).
    6. Поместите файл в сканируемую папку станков ($(SCHEMAS_FOLDER) / $(CUSTOM_SCHEMAS_FOLDER)), а не в Supplement — библиотека обнаружит его автоматически, регистрационная запись не нужна; ID членов должны быть уникальны лишь в пределах этого одного файла (выше).

    Далее: Использование XML‑свойств из CAM API

    In this article
    Back to top Generated by DocFX