Просмотр траектории и моделей STL
Пошаговый просмотр перемещений с переходом к соответствующей строке УП. Загрузка моделей STL в текстовом и бинарном формате, их позиционирование, поворот, копирование и построение сечений.
Windows / Linux · GUI / CLI
Редактирование токарных и фрезерных управляющих программ, расчёт траекторий и просмотр перемещений инструмента в 3D. Поддерживаются токарные/фрезерные программы FANUC и фрезерные программы SINUMERIK 840D, включая ограниченные native R-выражения и поток WHILE/GOTO/IF, а также поддерживаемые CAM-траектории 3+2 и непрерывной пятиосевой обработки. Анализируйте папки программ, сравнивайте статистику инструментов и готовьте экспорт через общее ядро расчёта.
Проверялись CAM-программы из Autodesk Fusion 360 и Siemens NX 2312, сформированные постпроцессорами для SINUMERIK 840D и FANUC. Покрытие относится к поддерживаемым командам и настроенным кинематикам; предупреждения о немоделируемых native-командах требуют проверки.
Сборки для Linux также доступны на странице релиза.
| Операция | Type A | Type B |
|---|---|---|
| Быстрый ход | G00 | G00 |
| Линейное движение | G01 | G01 |
| Дуга по часовой | G02 | G02 |
| Дуга против часовой | G03 | G03 |
| Выдержка | G04 | G04 |
| Нарезание резьбы | G32 | G33 |
| Система координат / ограничение шпинделя | G50 | G92 |
| Чистовой цикл | G70 | G70 |
| Черновое точение | G71 | G71 |
| Черновая подрезка торца | G72 | G72 |
| Повторение контура | G73 | G73 |
| Сверление торца | G74 | G74 |
| Канавки OD/ID | G75 | G75 |
| Многопроходная резьба | G76 | G76 |
| Простой цикл точения | G90 | G77 |
| Простой резьбовой цикл | G92 | G78 |
| Простой цикл торцевания | G94 | G79 |
| Подача в минуту | G98 | G94 |
| Подача на оборот | G99 | G95 |
| Type A | Type B | Назначение в ядре |
|---|---|---|
| G70 | G70 | Чистовой контур P-Q |
| G71 | G71 | Продольная обдирка |
| G72 | G72 | Торцевая обдирка |
| G73 | G73 | Обдирка повторением шаблона |
| G74 | G74 | Сверление/прорезка торца с периодическим выводом по Z |
| G75 | G75 | Сверление/прорезка по X с периодическим выводом |
| G76 | G76 | Двухстрочная многопроходная резьба |
| G83 | G83 | Осевое сверление с периодическим выводом |
| G84 | G84 | Осевое нарезание резьбы метчиком |
| G90 | G77 | Модальный цикл продольного точения |
| G92 | G78 | Модальный цикл резьбы |
| G94 | G79 | Модальный цикл торцевой обработки |
| Цикл | Описание |
|---|---|
G70 |
Чистовой путь основан на номинальном профиле P-Q, а не на профиле со смещением обдирки, используемом G71/G72/G73. Если активна компенсация радиуса при вершине резца и может быть проверена, чистовой контур использует компенсированный профиль. После группы чистовой обработки цикл возвращается в сохранённую позицию вызова, используя детерминированный порядок возврата точения проекта. |
G71 |
Моделируется обычная двухстрочная форма FANUC:
Первая строка фиксирует глубину обдирки и отвод. Вторая строка задаёт профиль P-Q, припуски на чистовую обработку и подачу. После последнего прохода по контуру выполняется отскок по R, возврат по Z, затем по X к началу цикла. Припуск и проходы Type I сохраняют аналитическую геометрию дуг. Для обдирки используются настроенные радиус носика и ориентация вершины инструмента; без таблицы инструментов рассчитывается номинальная геометрия. |
G72 |
G72 использует ту же инфраструктуру профиля P-Q, что и G71, но выполняет торцевую обдирку в плоскостях Z. Типичная двухстрочная форма:
Первая строка фиксирует осевую глубину и отвод. Вторая строка ссылается на профиль и припуски на чистовую обработку. |
G73 |
G73 реализован как повторяющиеся смещённые копии профиля обдирки. Первая строка фиксирует общее смещение шаблона U/W и количество проходов R. Вторая строка задаёт P/Q, припуски на чистовую обработку и подачу. Знаки запрограммированных U/W сохраняются. Цикл не выводит направление смещения из того, как инструмент случайно подошёл к контуру. |
G74 |
G74 поддерживает поведение периодического вывода по Z и повторение в стиле прорезки торца. Первый блок, содержащий только R, может установить расстояние отвода. Исполняющий блок может использовать X/U и Z/W плюс параметры P/Q/R/F. Если целевое значение X не задано, G74 может работать как сверление по Z в стиле периодического вывода на текущем X. Когда запрашивается повторение по X, P управляет шагом X, а Q управляет глубиной периодического вывода по Z. Цикл возвращается к сохранённому началу, используя явный порядок возврата сначала по Z. |
G75 |
G75 выполняет периодический вывод/радиальную прорезку по X. P управляет радиальным шагом периодического вывода. Q может повторять канавки вдоль Z. Если Q опущен, запрограммированный Z/W выбирает одно место канавки, а не рассматривается как недопустимое повторение с нулевым шагом. Значение R из установочного блока управляет расстоянием отвода, а значение R исполняющего блока обрабатывается как припуск по дну, где применимо. |
G76 |
Моделируемая форма — двухстрочный G76 в стиле FANUC:
Первый блок хранит:
Второй блок задаёт:
|
G83 |
G83 — осевой цикл сверления по Z.
|
G84 |
G84 — осевой цикл нарезания резьбы метчиком. Ход вниз и возврат являются синхронизированными движениями подачи; возврат не представлен как ускоренное перемещение. |
G90 |
Да. G90 устанавливает цикл продольного прямоугольного точения. Последующие блоки только с X/U могут продолжать активный цикл на новых диаметрах до отмены другим явным кодом движения/цикла. |
G92 |
Пример:
Начальный G92 устанавливает конец резьбы и шаг. Последующие блоки только с X/U продолжают активный цикл G92 с новыми глубинами до отмены другим явным режимом движения/цикла. Каждый проход раскрывается в примитивы подхода, синхронизированного продольного резания, отвода и возврата. |
G94 |
Да. G94 устанавливает цикл торцевой прямоугольной обработки. Последующие блоки только с Z/W могут продолжать активный цикл на новых положениях торца до отмены. |
G71 Type II поддерживает профили с карманами с учётом ограничений. G72 Type II отклоняет несколько раздельных участков в одной плоскости торцевания (UNSUPPORTED_G72_TYPE_II_SPANS). G76 поддерживает углы инструмента 0°, 29°, 30°, 55°, 60° и 80°; остальные вызывают UNSUPPORTED_G76_TOOL_ANGLE.
| G-код | Функция в ядре |
|---|---|
| G00 | Быстрое позиционирование |
| G01 | Линейная интерполяция |
| G02 / G03 | Круговая интерполяция по / против часовой стрелки |
| G04 | Сигнал выдержки времени без перемещения |
| G10 |
Программирование смещений WCS (L2,
L20)
|
| G15 / G16 | Отмена / включение полярных координат |
| G17 / G18 / G19 | Выбор плоскости XY / XZ / YZ |
| G20 / G21 | Входные единицы: дюймы / миллиметры |
| G28 | Возврат в заданную опорную точку |
| G40 / G41 / G42 | Отмена / левая / правая компенсация радиуса фрезы |
| G43 / G49 | Учитывают / отменяют состояние коррекции длины; G43 не применяет H к траектории |
| G43.4 | TCP-перемещения G0/G1/G2/G3 на наклонных столах AC/BC, включая декартовы дуги с поворотом; сочетание с G68.2 не поддерживается |
| G50 / G51 | Отмена / включение масштабирования координат |
| G52 | Локальное смещение координат |
| G53 | Немодальное движение в координатах станка |
| G54–G59 | Выбор рабочей системы координат |
| G54.1 P1–P99 | Разбирается и выбирается; в GUI нет настройки смещения, поэтому оно нулевое, если программа не задаёт его через G10 L20 |
| G65 | Вызов программы Macro B; выражения поддерживают побитовые AND/OR/XOR и LN/EXP |
| G68 / G69 | Включение / отмена поворота координат |
| G68.2 / G53.1 |
Наклонная рабочая плоскость / ориентация оси инструмента
(3+2, fanuc_mill с двухосевой кинематикой
стол-стол, голова-голова или голова-стол)
|
| G73 | Цикл высокоскоростного сверления с периодическим выводом |
| G80 | Отмена постоянного цикла |
| G81 | Цикл сверления |
| G82 | Цикл сверления с выдержкой |
| G83 | Цикл сверления с полным выводом |
| G84 | Цикл нарезания резьбы метчиком |
| G85 | Цикл растачивания с возвратом на подаче |
| G86 | Цикл растачивания с сигналом остановки шпинделя |
| G90 / G91 | Абсолютное / инкрементальное программирование |
| G93 | Обратная подача по времени: 1/F минуты на кадр подачи. При переключении G93/G94/G95 задайте новое положительное F; циклы и коррекция радиуса под G93 не поддержаны. |
| G94 / G95 | Подача в минуту / на оборот |
| G98 / G99 | Возврат на исходную плоскость / плоскость R в постоянном цикле |
| M-код | Функция в ядре |
|---|---|
| M00 / M01 | Сигнал остановки / необязательной остановки; расчёт траектории продолжается |
| M02 / M30 | Завершение программы |
| M03 / M04 / M05 | Сигналы вращения шпинделя по / против часовой стрелки / остановки |
| M06 | Событие смены выбранного инструмента T |
| M07 | Распознаётся; действие для конкретной системы охлаждения не моделируется |
| M08 / M09 | Сигналы включения / выключения охлаждения |
| M19 | Сигнал ориентации шпинделя; S в этом блоке задаёт угол, а не обороты |
| M29 | Подготовка жёсткого резьбонарезания; S в этом блоке задаёт обороты для следующего G84 |
| M98 / M99 | Вызов подпрограммы / возврат из неё |
| Неизвестные вспомогательные M-коды | Неблокирующие предупреждения; движения и известные команды в смешанных кадрах выполняются. |
| Команда | Описание |
|---|---|
G73 / G83 |
G73 — высокоскоростное сверление с периодическим выводом
с коротким промежуточным отводом. G83 возвращается на R
и быстро подходит с зазором d над предыдущей глубиной,
не выше R, затем продолжает на подаче. Параметр ядра
|
G82 |
G82 включает свою семантику выдержки, но выдержка сама по себе не создаёт пространственной геометрии. |
G84 |
Нарезание резьбы G84 возвращается с глубины как синхронизированное движение подачи, а не как ускоренное перемещение. |
G86 |
Цикл моделирует семантику остановки шпинделя вместе со своим поведением сверления/возврата. |
G98 / G99 |
Для циклов фрезерования G98/G99 выбирают поведение возврата цикла. Это не значения режима подачи точения G98/G99. |
| Функция ISO-M | Поддержка и ограничения |
|---|---|
| G290 / G291 | Отдельные кадры переключают режим SINUMERIK / ISO-M. Выполнение MPF/SPF начинается в режиме SINUMERIK. |
| XYZ / G90 / G91 | Трёхосевые перемещения, включая приращения. Поворотные оси и TCP не поддерживаются. |
| G2 / G3 / IJK | ISO-M и native используют относительные IJK. Абсолютный центр в native задаётся явно через I=AC(...), J=AC(...), K=AC(...); G90/G91 управляет конечными точками. |
| G54 P1–P48 | Расширенные рабочие смещения. G54.1 в исходной программе и другие дробные G-коды отклоняются. |
| G50 / G51 | Масштабирование координат; G51 использует коэффициент P/1000. |
| G68 / G69 | Отдельный кадр 2D-поворота при G90, координаты центра в активной плоскости и R. Формы с I/J/K, приращением угла и 3D-вектором отклоняются. |
| Циклы и единицы | В пределах ISO-M поддерживаются общие целочисленные фрезерные G-коды, выбор единиц, системы координат и отдельные стандартные циклы. |
| Неизвестные вспомогательные M-коды | Неблокирующие предупреждения, в том числе в кадрах с движением. M98 здесь не вызывает подпрограмму FANUC; M99 остаётся неподдержанным. M2/M30 завершают программу. |
| Macro B / ISO-T | Поток управления Macro B и ISO Dialect T не поддерживаются. Неподдерживаемые ISO-функции вызывают диагностику. |
| Нативная функция | Текущее поведение |
|---|---|
G0/G1, G2/G3,
G17/G18/G19, CR=
|
Позиционирование XYZ и дуги в выбранной плоскости;
отрицательный CR задаёт большую дугу
|
G90/G91, G54–G59,
G70/G71/G700/G710
|
Абсолютные/приращённые координаты, рабочие смещения и метрические единицы |
G60 / G64 |
Точный останов / непрерывное движение принимаются как метаданные; разгон, время останова и сглаживание не моделируются. |
G93 / G94 / G95 |
Обратная подача по времени / в минуту / на оборот. G93 задаёт 1/F минуты на движение подачи; при переключении режима задайте новое положительное F. Циклы и коррекция под G93 не поддержаны. |
G500 |
Модально отключает рабочее смещение до следующего G54–G59. Координаты пересчитываются без движения. По умолчанию G500 и базовый фрейм нулевые; API wcs_offsets[500] позволяет задать смещение. OEM-повороты базового фрейма, отражения и масштабирование не моделируются. |
DIAMON / DIAMOF / DIAM90 |
Распознаются с предупреждением; исполнитель продолжает расчёт всех координат в семантике DIAMOF. Диаметрическое программирование не моделируется. |
CHF / CHR / RND / RNDM / FRC / FRCM |
Распознаются с предупреждением без изменения геометрии или подачи. Фаски, скругления, модальное скругление и подача на переходах не моделируются; RNDM=0 распознаётся без геометрического эффекта. Отчёты сохраняют предупреждения; экспорт рассчитанной NC-программы отклоняется. |
G40/G41/G42 |
Моделируемая радиусная компенсация по настроенному
инструменту при выключенном TCP. G41/G42 при активном
TRAORI не реализованы: выполнение останавливается с
UNSUPPORTED_TCP_CUTTER_COMPENSATION.
|
T, M6, D0..D12,
S, базовые M-команды
|
Смена инструмента, выбор/отмена моделируемой режущей кромки, сигналы шпинделя и СОЖ; таблицы коррекций контроллера не моделируются |
G0 SUPA ... D0 |
Немодальное перемещение в машинных координатах;
нулевые XYZ-адреса используют настроенную позицию возврата G28/SUPA
в модели приложения, как FANUC G53. WCS и поворотный кадр
определяют отображаемую позицию
Поддерживаются также настроенные оси A/B/C и блоки только с поворотными осями. SUPA задаёт абсолютные цели даже при G91. |
G64, MSG(...),
WORKPIECE(...), комментарии ;
|
Метаданные и комментарии; сглаживание траектории и геометрия заготовки по этим объявлениям не рассчитываются |
MCALL CYCLE81/82/83/84(...) |
Модальное сверление/нарезание резьбы по Z в
G17/G40, запускаемое последующими кадрами XY;
отдельный MCALL отменяет цикл
|
CYCLE81/82 |
Сверление и быстрый возврат, выдержка в секундах для
CYCLE82; безопасная плоскость
RFP + SDIS, возврат на RTP
|
CYCLE83 |
Первая глубина, уменьшение шага на заданную величину, минимальный шаг, дробление стружки/полный отвод и зазор повторного подхода в пределах реализованных параметров |
CYCLE84 |
Правая метрическая резьба за один проход в
G94: положительный явный PIT,
_PITA=0/1, SDAC=3, ось Z,
положительный SST, равный заданному
S; SST1 равен ему либо
нулевой/пропущен. Подача = шаг × обороты; возврат на
подаче до RFP+SDIS, затем быстрый ход до
RTP, возможна выдержка в секундах
|
TRAORI / TRAFOOF |
GUI/CLI/kernel TCP через общие наклонные профили стола AC/BC; G0/G1/G2/G3 с настроенными числовыми поворотными осями |
CYCLE800 |
GUI/CLI/kernel статические фреймы: режимы 57/54/39/27/30/45, ST0/1/200000/200001/220000/220001, DIR-1/0/1; сброс активного фрейма поддержан |
TRANS / ATRANS / ROT / AROT / RPL= |
Программируемые жёсткие фреймы: замена/сброс или композиция в локальных осях с сохранением физической позиции инструмента. Поворот XYZ использует RPY (MD10600=1); RPL вращает в активной плоскости. FULL сохраняет команды; EXPANDED разрешает геометрию. Сочетание с активными TWP/TCP, полярным режимом, циклами и коррекцией радиуса отклоняется. |
G505–G599 / G601 / G641 / G642 / G645 |
Предупреждения UNVERIFIED; зависящие от контроллера эффекты не моделируются. |
| Неизвестные вспомогательные M-коды | Неблокирующие предупреждения; движения и известные команды в смешанных кадрах выполняются. M2/M30 завершают программу. Native M17/M96/M97/M99 останавливают исполнение с диагностикой; M66/M98 предупреждают без вызова подпрограмм. |
CIP / I1= / J1= / K1= |
Пространственная окружность через три точки, включая G90/G91 и AC/IC для промежуточной точки. Plot/Playback сохраняют окружность; EXPANDED выводит хорды G1 с заданным допуском линеаризации. Требуются фиксированный фрейм, G40 и отсутствие активного цикла. |
DEF REAL / присваивания именованных скаляров |
Скалярные переменные с именами, начинающимися с подчёркивания, по умолчанию равны нулю. Поддержаны прямые присваивания чисел, R-параметров и скаляров. Массивы и составные присваивания именованным скалярам отклоняются; выражения R используют отдельное подмножество ниже. |
I/J/K / AC(...) |
Обычные IJK задают смещения от начала дуги. AC явно задаёт абсолютный центр; допускается смешение адресов. Arc Type и автоопределение не переопределяют синтаксис SINUMERIK. |
T="name" / M6 / T0 |
Имена инструментов чувствительны к регистру; M6 активирует выбранный инструмент, T0 с M6 выгружает его. Без заданной геометрии фрезы G41/G42 остаётся непроверенным. |
D0..D12 при TRAORI |
Выбор режущей кромки сохраняет активное TCP-преобразование. |
FNORM / COMPOF / SETMS(1) |
Обычная подача и отключение компрессора; поддержан только выбор главного шпинделя SETMS(1). |
CYCLE832(...) |
Игнорируется без геометрии и событий отображения; принимается от нуля до трёх прямых аргументов. |
CYCLE81(RTP,RFP,SDIS,DP) |
Принимается короткий вызов с четырьмя обязательными аргументами; DPR необязателен. |
CYCLE800: 14/15/16 аргументов |
Поддержаны ST0/ST1 и старый вариант R_DATA; применяется выбранный профиль стола. OEM-траектория отвода не моделируется. |
DC(...) |
Кратчайший подход к абсолютному поворотному углу для настроенных осей. Неоднозначный поворот ровно на 180 градусов отклоняется. |
Присваивания R / адресные и цикловые выражения |
Ограниченные + - * /, скобки, сравнения и SIN/COS/ABS/SQRT; тригонометрия в градусах. Состояние Siemens R отделено от переменных FANUC. |
WHILE / ENDWHILE / GOTO / IF GOTO |
Вложенные циклы и переходы по числовым меткам N. Общие лимиты исполнения/итераций и отмена; ошибки потока останавливают исполнение с указанием исходной строки. |
M19 |
Сигнал ориентации шпинделя без движения и изменения состояния шпинделя. |
G96 / G961 / G97 / G971 |
CSS / CSS / RPM / RPM с подачей на оборот / в минуту / на оборот / в минуту. CSS сохраняет скорость резания; мгновенные RPM не вычисляются. |
ANG / SCALE / ASCALE / MIRROR / AMIRROR |
Распознаются, но геометрия не моделируется; исполнение останавливается до движения. |
GUI/CLI/kernel TRAORI/TRAFOOF поддерживает TCP на наклонных столах AC/BC, включая дуги с поворотом. Числовые A/B/C и прямые R-ссылки требуют подходящего профиля; поддержан инкрементальный IC. CYCLE800 строит матрицы Siemens через общий TWP core; OEM-траектории отвода не моделируются. G70/G71 выбирают длины в дюймах/мм, не меняя единицы подачи; G700/G710 меняют также единицы подачи, сохраняя числовое модальное F. G93 задаёт 1/F минуты на движение подачи, включая вращение под TCP; F должно быть положительным. При переключении G93/G94/G95 задайте новое F. Циклы и коррекция радиуса под G93 не поддержаны. ORI*, FGROUP, FL[], FGREF[], SPOS и CUT3D* принимаются с предупреждением: их эффекты не моделируются. SCALE/ASCALE, MIRROR/AMIRROR и ANG распознаются, но их геометрия не моделируется: исполнение останавливается. R-параметры поддерживают ограниченную арифметику, сравнения, скобки и SIN/COS/ABS/SQRT; тригонометрия использует градусы. WHILE/ENDWHILE допускает вложенные циклы, GOTO/IF GOTO используют числовые N-метки. Ошибки выражений, меток и циклов останавливают исполнение; действуют лимиты исполнения, итераций и отмена. GOTOF/GOTOB/GOTOC, RET и произвольные подпрограммы не поддержаны. M19 создаёт сигнал ориентации без движения и изменения состояния шпинделя. G96/G961 выбирают CSS с подачей на оборот/в минуту; G97/G971 выбирают RPM с соответствующей подачей. CSS хранит скорость резания без вычисления мгновенных RPM по фрезерной координате X. FULL сохраняет поддержанный native-поток; EXPANDED выводит разрешённую геометрию, но отклоняет CSS без достоверной опорной оси. CYCLE84 ограничен однопроходным нарезанием правой метрической резьбы; глубокое нарезание, левая резьба и разные скорости входа и выхода вызывают диагностику.
Пошаговый просмотр перемещений с переходом к соответствующей строке УП. Загрузка моделей STL в текстовом и бинарном формате, их позиционирование, поворот, копирование и построение сечений.
Снятие материала рассчитывается по геометрии инструмента и траектории. Поддерживаются наружное, внутреннее и торцевое точение, канавки и резьбовые профили. Доступна прокрутка вперёд и назад.
Флажки OD/ID/Face фильтруют варианты трассировки в редакторе; съём определяется физической геометрией резца независимо от этих фильтров. Резьбовая пластина имеет фиксированный контур с тремя режущими треугольниками 60° и масштабируется только по диаметру. Наружная вершина P8 направлена вниз, внутренняя P6 — вверх. Профиль съёма резьбы рассчитывается отдельно.
Профили поворотного стола A/B/C, позиционная обработка 3+2 с G68.2/G53.1 и поддерживаемое подмножество перемещений G43.4 TCP. Траектория отображается с учётом выбранного профиля кинематики.
Подсветка синтаксиса, поиск и замена, нумерация кадров, пропуск кадров, шаблоны кода, переходы к сменам инструмента и просмотр макропеременных.
Геометрия токарных и фрезерных инструментов, сохраняемая библиотека SQLite и отдельный набор инструментов текущей программы.
Круговые и прямоугольные схемы отверстий и карманы с предварительным просмотром.
Диалог разделён на две колонки. В левой — тип экспорта, целевое ЧПУ, вывод дуг и представление расширенного вывода (модальная подача, десятичных знаков, десятичная точка и знак плюс). В правой — обёртки текста программы (начало/конец программы и строка безопасности) и блок координат/форматирования (координаты, номера кадров, разделитель и ведущий ноль). Группы разделены визуально без заголовков, чтобы диалог напрямую отражал контракт экспорта.
EXPANDED EXECUTION — единый сериализатор разрешённого исполнения. Целевое ЧПУ выбирает синтаксис и профиль постпроцессора целевого контроллера, при этом все пользовательские параметры вывода остаются доступными и соблюдаются для переходов FANUC → FANUC, FANUC → SINUMERIK ISO, FANUC → SINUMERIK native и SINUMERIK → FANUC. Значения профиля применяются только к тем параметрам, которые не задал пользователь, а обязательный кадр режима (G290/G291) всегда остаётся первым.
Авто (источник) — не отдельный режим: он автоматически выбирает профиль постпроцессора, соответствующий контроллеру и диалекту источника. Модальная подача определяет, повторяется ли F, когда подача и режим не меняются. Строка безопасности вставляет объявленную в профиле строку безопасности после пользовательского текста начала программы.
Настольный диалог, одиночная команда export и batch-export
используют один контракт экспорта и один код конвертации, поэтому вывод CLI и пакетного
экспорта совпадает с GUI при одинаковых настройках.
Нажмите на скриншот, чтобы открыть полный размер в новой вкладке.
Frontend строит Program/AST один раз. По той же модели определяются типы операций, подбираются сохранённые инструменты по номеру T и сохраняются ручные настройки текущей программы. Сканер Cython/Python извлекает явно заданные номера, комментарии и размеры. Затем ядро обрабатывает переходы, переменные, циклы, системы координат и коррекции инструмента. Рассчитанные перемещения используются для 3D-визуализации, пошагового просмотра, статистики и экспорта. Графический интерфейс и CLI используют одно расчётное ядро.
Нативные SINUMERIK CYCLE81–83 задают дефолт сверла, CYCLE84 — метчика через AST контроллера с учётом модального MCALL и его отмены. Совпадающий инструмент сохранённой библиотеки предоставляет свою фактическую геометрию до применения дефолтов. Найденный или дефолтный инструмент не гарантирует подтверждённую компенсацию: G41/G42 по-прежнему может выдавать диагностику UNVERIFIED.
Если неподдерживаемая команда влияет на положение инструмента, ядро выдаёт диагностическое сообщение и отмечает результат как неполный. Программа моделирует геометрию траектории, а не все физические процессы станка с ЧПУ.
Посмотрите, какая часть программы исполнена, где перемещается каждый инструмент и сколько длины и расчётного времени приходится на рабочие и быстрые перемещения. Диалог статистики и CLI используют одинаковые расчёты.
Таблицы по группам показывают количество перемещений, рабочую и быструю длину, расчётное время, среднюю подачу и границы XYZ. Статус различает полное исполнение, предупреждения и частичный или некорректный результат.
Переключайтесь между всей программой и отдельным инструментом через список выбора. У каждого инструмента собственные длины, время и границы XYZ. Единицы отображения — миллиметры или дюймы.
Сохраните HTML из диалога статистики или CLI. Автономный отчёт содержит все инструменты и статичную SVG-проекцию траектории: XY для фрезеровки, XZ для токарки. Он открывается в браузере без установки программы.
Получите HTML-отчёт и подробный JSON за один запуск. Для фрезерных FANUC-файлов укажите
--lang fanuc_mill, для токарных — fanuc_turn.
.\easy_gcode_plot_cli.exe analyze ".\programs\part.nc" --lang fanuc_mill `
--html ".\reports\part.html" -o ".\reports\part.json"
В GUI откройте статистику, выберите инструмент или единицы и нажмите Export HTML. Экспортируемый отчёт всегда светлый; диалог следует основной теме приложения.
Пример рассчитан по plate_setup_complete.nc: 377 перемещений и 10 инструментов.
Время — кинематическая оценка; выдержки, смена инструмента и ускорение не учитываются.
Обработайте папку одной командой вместо открытия каждой УП вручную. Соберите диагностику в таблицу, подготовьте отчёты для коллег или экспортируйте целое дерево программ.
FULL нормализует исходные кадры по карте исполнения и раскрывает Macro B, IF/GOTO, подпрограммы и токарные циклы G70–G76. EXPANDED — единый сериализатор разрешённого исполнения по настраиваемому JSON-профилю стойки. Все пользовательские параметры вывода остаются доступными для любой цели; профиль задаёт только синтаксис и значения по умолчанию.
Экспорт рассчитанной геометрии траектории в DXF.
parse, trace, analyze и export работают с отдельными программами. batch анализирует папку, batch-export экспортирует её. Обе пакетные команды используют API одиночной обработки.
Выберите EXPANDED EXECUTION и целевую стойку. Геометрия и состояния ядра
выводятся через JSON-профили fanuc_mill, fanuc_mill_multiaxis, fanuc_lathe_a, fanuc_lathe_b, sinumerik_iso, sinumerik_840d и sinumerik_840d_multiaxis.
Auto (source controller) подбирает профиль по источнику; внешний профиль выбирается
параметром --post-profile path/to/post.json.
Профиль цели задаёт синтаксис, обязательные кадры, возможности и значения по умолчанию. Пользовательские параметры форматирования — координаты G90/G91, номера кадров, разделитель, ведущий ноль, модальная подача, десятичных знаков, десятичная точка и знак плюс, вывод дуг и начало/конец программы — соблюдаются для целей FANUC и SINUMERIK; значение профиля применяется только когда пользователь его не задал. Циклы и переменные раскрыты в геометрию; физические координаты используют G54 с нулевыми смещениями. Поддержанные операции сверления и нарезания резьбы выводятся через шаблоны циклов выбранного поста. Трёхосевые посты отклоняют rotary/TCP-геометрию; многоосевые реконструируют настроенное индексирование A/B/C, проверенное непрерывное движение стола C и поддержанный TCP наклонных столов AC/BC. Реконструкция наклонных плоскостей/CYCLE800, индексированный экспорт вокруг смещённого начала WCS и непроверенные изменения геометрии остаются неподдержанными.
Options → General → 840D Extended cycles выбирает интерфейс native-циклов:
включён — Siemens 03/2009, выключен — классический 01/2008. В CLI сохраняется
--sinumerik-cycles classic|sl; этот выбор не включает неподдерживаемые операции циклов.
format.words в профиле управляет порядком и обязательностью вывода слов кадра.
У каждого токена (motion, X, Y, Z, A,
B, C, I, J, K, R) есть
order и флаг required, а также необязательные decimals/sign.
required заставляет выводить адрес при наличии resolved value; motion.required=false
делает код движения модальным. Ось допустима только если объявлена в supports.axes, а
F исключён, поскольку подачей управляет Modal Feed.
FULL сохраняет диалект и обычные исходные кадры, раскрывая только зависящие от потока FANUC Macro B / IF/GOTO / подпрограммы и токарные G70–G76, когда это нужно для безопасной нормализации. Поддержанные native-выражения SINUMERIK и поток WHILE/GOTO/IF сохраняются; native-переходы сохраняют числовые метки и запрещают перенумерацию кадров. EXPANDED выводит исполненную геометрию, но экспорт CSS требует достоверной опорной оси. DXF записывает геометрию движений независимо от NC-постформатирования.
.\easy_gcode_plot_cli.exe export fanuc_part.nc --lang fanuc_mill --mode expanded --post-profile app\gcode\export\posts\sinumerik_iso.json -o iso_part.mpf
.\easy_gcode_plot_cli.exe export native_part.mpf --lang fanuc_mill --mode expanded --post-profile app\gcode\export\posts\fanuc_mill.json -o fanuc_part.nc
Для прямого сравнения сгенерированного NC с эталоном UTF-8 добавьте --compare-with expected.mpf.
Коды завершения: 0 — совпадение, 1 — расхождение с unified diff в stdout, 2 — ошибка.
Различия LF/CRLF игнорируются; пробелы, комментарии и завершающий перевод строки сравниваются. Эталон защищён от перезаписи.
.\easy_gcode_plot_cli.exe export source.nc --lang fanuc_mill --post-profile sinumerik_840d -o actual.mpf --compare-with expected.mpf
Команда обходит программы и подкаталоги, собирает ошибки и предупреждения исполнения и создаёт HTML-отчёт статистики для каждого файла. CSV помогает найти УП, требующие внимания; JSON содержит подробную диагностику.
.\easy_gcode_plot_cli.exe batch ".\programs\milling" --lang fanuc_mill `
--html ".\reports\html" -o ".\reports"
reports/batch_report.csv — статусы, количества и диагностика по файлам для работы в таблице.reports/batch_report.json — сводка и подробные результаты для дальнейшей обработки.reports/html/…/part.nc.html — отдельный отчёт для каждой УП; подкаталоги и исходные расширения сохраняются.Без --lang анализ выбирает фрезерный режим для MPF/SPF и токарный для остальных расширений.
Для папки фрезерных FANUC-программ явно укажите --lang fanuc_mill.
Примените одинаковые параметры к каждой УП: EXPANDED NC, нормализацию исходника FULL или DXF. Результаты записываются в отдельную папку с прежней структурой подкаталогов.
.\easy_gcode_plot_cli.exe batch-export ".\programs\milling" --lang fanuc_mill `
--mode expanded -o ".\exported"
Для траекторий в DXF добавьте --format dxf. Для сохранения исходной структуры используйте
--mode full, для постпроцессинга под стойку — --mode expanded --post-profile ....
batch_export_report.csv и batch_export_report.json фиксируют пути результатов,
статусы, диагностику и фактические параметры экспорта.Выходная папка должна находиться вне входного дерева. Выбирайте тип обработки и поддерживаемую цель для папки; неподдерживаемая конвертация отмечается ошибкой, а не молча изменяет программу. Четыре поставляемых сценария конвертации покрыты семантическим регрессионным тестом: успешно экспортированные программы повторно исполняются, и их сигнатура траектории сравнивается с исходной.
Поддерживаемые команды, параметры, ограничения и примеры использования.