iso2nsp — автономная утилита и графическое приложение для конвертации управляющих программ ЧПУ (G-код ISO от CAM-систем Lantek / плазменного и лазерного раскроя) в проекты раскроя CypNest / FSCUT / RayTools (.nsp).
Приложение поставляется как в виде исходного кода на Python, так и в виде портативного исполняемого файла iso2nsp.exe, который запускается на любом компьютере с Windows без прав администратора и без необходимости устанавливать Python.
-
Портативность (Zero-Install): единый
.exeфайл без зависимостей, не требует прав администратора и работает сразу после скачивания. -
Современный интерфейс в стиле Blender 3D:
- Глубокая тёмная палитра (
#1e1e1e,#282828,#303030), снижающая утомляемость глаз оператора; - Фирменный оранжевый акцент Blender Orange (
#ea7600), синие кнопки сохранения (#3a6ea5), приглушённо-красные кнопки отчётов (#993d3d); - Таблицы в стиле Blender Outliner с контрастными заголовками и строгим выделением;
- Интерактивное окно с условиями использования и отказом от ответственности (LICENSE).
- Глубокая тёмная палитра (
-
Интерактивный 2D-предпросмотр (Blender 3D Viewport):
- Масштабирование колесиком мыши (Zoom) и плавное перемещение листа (Pan);
- Отображение контура листа, координатной сетки, габаритов в миллиметрах;
- Шейдинг деталей Solid / Clay (
#3a4049с четким контуром#8b9cb0), внутренние отверстия (#4772b3), сквозные технологические резы делового остатка; -
Мгновенная подсветка деталей: клик по строке в таблице подсвечивает деталь на холсте фирменным оранжевым свечением Blender Orange (
#ea7600); - Визуализация физических упоров станка (
◀ Упор X=0,▼ Упор Y=0) и маркера старта резки▶ Старт #1.
-
Оптимизация резки и позиционирование:
-
⚡ Резка от упоров: автоматическая сортировка деталей от базовых упоров станка (
$X=0, Y=0$ , нижний левый угол), снижающая холостые переезды лазерной головки; - ⇲ В нули (0, 0): быстрое прижатие крайних деталей листа ровно к упорам станка.
-
⚡ Резка от упоров: автоматическая сортировка деталей от базовых упоров станка (
-
Интерактивная таблица деталей:
- Список всех найденных на листе деталей с их точными габаритами (
$W \times H$ ) и количеством; -
Быстрое переименование: возможность в 1 клик присвоить деталям понятные имена (например,
А1184 К-1-3), которые будут экспортированы в проект CypNest.
- Список всех найденных на листе деталей с их точными габаритами (
-
Управление технологической обрезкой листа (Cutoff lines):
- По умолчанию линии гильотинного отреза / обрезки делового остатка больше не переносятся в проект CypNest
.nsp(в файл попадают только готовые чистые детали); - Быстрое переключение кнопкой
✂ Убрать обрезку/✂ Включить обрезку(с опцией «Ко всем листам» для группового применения); - На 2D-холсте отключенная обрезка наглядно отображается приглушенным серым пунктиром с пометкой
✂ Обрезка (откл.), а включенная — сплошной ярко-красной линией.
- По умолчанию линии гильотинного отреза / обрезки делового остатка больше не переносятся в проект CypNest
-
Автоматическая привязка отчетов Lantek CAM (PDF):
- Поддержка совместного выбора файлов УП (
.iso,.cnc) и отчетов раскроя (.pdf) прямо в одном диалоговом окне «+ Добавить файлы...»; - Отдельная кнопка «📑 Подгрузить отчеты Lantek (PDF)» для привязки отчетов к уже открытым листам проекта;
- Автоматическое сопоставление отчетов с листами УП по имени программы / цифровому префиксу файла;
- Автоматическое присвоение официальных заводских имен деталям из спецификации Lantek (по габаритам
$W \times H$ и количеству); - Автоматическое выставление тиража листов (числа повторов) и наименования заказа из шапки отчета.
- Поддержка совместного выбора файлов УП (
-
Производственные PDF-отчёты (стиль Lantek CAM):
- Экспорт официальных технологических карт раскроя в формате А4 (1 в 1 по стандарту Lantek CAM);
- Векторный масштабированный чертёж листа с контурами деталей, отверстиями и номерами деталей внутри них (
#1,#2, ...); - Автоматическая штриховка зон делового отхода / остатка листа (
REMNANT) диагональными линиями под углом 45° по линии реза гильотины; - Сводная карточка параметров: Заказ, Лист, Ссылка, Дата/Время, Станок/ЧПУ, Тираж, Габариты (
$W \times H$ ), Толщина, Марка металла, Расчетный вес листа (кг), Процент полезного использования металла (% Util.); - Полная таблица спецификации деталей: порядковый номер (#), наименование/артикул, количество на листе, суммарное количество во всем заказе с учетом тиража, вес (кг), габаритные размеры (
$W \times H$ ); - Поддержка экспорта как одиночного текущего листа, так и полного многостраничного отчета по всем листам заказа в единый PDF-файл;
- Мгновенное открытие готового отчета в системном просмотрщике PDF сразу после экспорта.
-
Многолистовые проекты (Multi-Sheet Jobs):
- Пакетная загрузка группы файлов раскроя (
+ Добавить файлы...с мультивыбором*.iso,*.cnc,*.nc,*.tap,*.txt,*.pdf); - Автоматическое определение имени заказа (Job Name) по общему префиксу файлов (например,
1849 FE6); - Таблица листов с индивидуальным тиражом (количеством повторов) каждого листа;
- Мгновенное переключение активного листа в 2D-предпросмотре и спецификации деталей;
- Опция «Применить ко всем листам» для группового поворота, смены осей или отражения;
- Единая глобальная дедупликация деталей по всем листам заказа с суммированием тиража (
totalnum/partProcessNum); - Экспорт в единый XML
.nspсо всеми узлами<PlateNode>и общей библиотекой<CutPieceNode>.
- Пакетная загрузка группы файлов раскроя (
-
Трансформации раскроя:
- Автоматическая адаптация станочных осей на оси листа (
$X \leftrightarrow Y$ ) и отражение по$Y$ для точного соответствия чертежам Lantek; - Быстрый ручной доворот раскладки на
$\pm 90^\circ$ и$180^\circ$ ; - Точное прижатие раскладки к базовым упорам станка (
⇲ В нули (0, 0)).
- Автоматическая адаптация станочных осей на оси листа (
-
Интеллектуальная дедупликация (Rotated Deduplication):
- Автоматическое распознавание одинаковых деталей, повернутых на
$90^\circ$ ,$180^\circ$ или$270^\circ$ ; - Группировка повернутых копий под единым мастер-шаблоном
<CutPieceNode>с указанием угла вставкиPartInsertAngles; - Автоопределение марки материала (
FE,SS,AL) и толщины из имени файла или заголовка.
- Автоматическое распознавание одинаковых деталей, повернутых на
-
Сохранение точной хронологии резки (Toolpath Preservation):
- Экспорт деталей и внутренних отверстий в проект
.nspв строгой хронологической последовательности резки из исходного ISO-файла (без случайных прыжков между углами листа при симуляции).
- Экспорт деталей и внутренних отверстий в проект
-
Консольная версия (CLI): возможность автоматической пакетной обработки в скриптах (
python iso2nsp.py sheet1.iso sheet2.iso -o job.nsp --repeats 2 1 --pdf).
Готовые сборки программы доступны на вкладке Releases:
- v3.0.0-test (Тестовая сборка) — новый алгоритм «⚡ Очередность обработки (змейка)»: резка от упоров станка (X=0, Y=0) продвигается змейкой вправо (слева направо по полосам деталей), исключая длинные холостые переезды лазерной головки.
- v2.6.0 (Стабильная) — чистый эргономичный интерфейс в стиле Blender 3D со скруглением кнопок (4 px), оптимизированная панель инструментов (убраны неиспользуемые кнопки трансформаций и возврат в ноль), штатный останов станка
<StopPos/>, прикрепление PDF-отчетов Lantek и управление обрезкой листа. - v2.5.0 — переход на палитру Blender 3D и первичная очистка панели инструментов.
- v2.4.1 — дизайн в стиле Blender 3D со скруглением кнопок.
- v2.4.0-test (Тестовая сборка) — тестовая сборка функций оптимизации резки от упоров и возврата в нули.
- v2.3.0 — выравнивание
⇲ В нули (0, 0), точный отступ 10 мм и сквозной перенос имен деталей из PDF Lantek. - v2.2.0 — управление технологической обрезкой листа (отключена по умолчанию в
.nsp, приглушенный пунктир на холсте), авто-привязка отчетов Lantek PDF (авто-назначение имен деталей, тиражей и заказа), поддержка одновременного выбора ISO+PDF в одном окне. - v2.1.0 — экспорт производственных PDF-отчетов в стиле Lantek CAM, векторный чертеж листа с номерами деталей, штриховка делового остатка, весовые и процентные показатели использования материала, многостраничный PDF для многолистовых заказов, флаг
--pdfв CLI. - v2.0.0 — полноценная поддержка многолистовых проектов, тиражи листов, пакетная загрузка файлов, автоопределение имени заказа, глобальная библиотека деталей.
- v1.2.0 — сохранение оригинальной хронологии резки ISO, поддержка
.cnc, группировка повернутых деталей. - v1.1.0 — поддержка
.cncи сопоставление повернутых деталей. - v1.0.0 (Первая стабильная) — исходный релиз с базовым функционалом конвертации и GUI.
Чтобы скачать любую версию:
- Перейдите в раздел Releases репозитория;
- Разверните блок Assets нужной версии;
- Нажмите на
iso2nsp.exe.
- Скачайте файл
iso2nsp.exeиз репозитория. - Запустите двойным кликом. Установка не требуется, права администратора не нужны.
Требуется Python 3.8+ (используются только стандартные модули):
# Графический интерфейс
python iso2nsp_gui.py
# Консольный режим (CLI)
python iso2nsp.py input.iso -o output.nsppython iso2nsp.py input.iso -o output.nsp [параметры]-
-o, --output— путь к выходному файлу.nsp(по умолчанию:{имя}.nsp); -
--job-name— имя заказа / проекта; -
--repeats— тираж для каждого входного листа (например,--repeats 1 2 1); -
--pdf [путь]— сформировать производственный технологический отчет в формате PDF (стиль Lantek CAM); -
--orientation {auto, vertical, horizontal}— режим ориентации листа (по умолчанию:auto); -
--swap-axes— принудительно поменять оси$X$ и$Y$ местами; -
--rotate {0, 90, 180, 270}— доворот карты раскроя; -
--flip-x— отразить по горизонтали; -
--flip-y— отразить по вертикали; -
--sheet-size WxH— переопределить габариты листа (например,1500x3000); -
--include-cutoff— включить перенос линий обрезки листа в проект NSP (по умолчанию отключено); -
--end-zero— команда возврата станка к нулевым координатам (0, 0) после завершения резки листа; -
--lantek-pdf— файлы отчетов Lantek PDF для автоматического импорта имен и тиражей; -
--material M— марка материала (по умолчанию:FE).
Если вы хотите самостоятельно пересобрать бинарный файл:
pip install pyinstaller reportlab pypdf
pyinstaller --onefile --noconsole --name iso2nsp iso2nsp_gui.pyИли при использовании менеджера пакетов uv:
uvx --with reportlab --with pypdf pyinstaller --onefile --noconsole --name iso2nsp iso2nsp_gui.pyСобранный файл появится в текущей папке.
Программа создана исключительно в личных целях Разработчика (Мурзянов Виталий Олегович / pururuall).
Использование третьими лицами, отказ от ответственности и правовые условия регламентируются файлом LICENSE.txt.