Skip to content
pururuallPublic

About

No description or website provided.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Repository files navigation

iso2nsp

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-холсте отключенная обрезка наглядно отображается приглушенным серым пунктиром с пометкой ✂ Обрезка (откл.), а включенная — сплошной ярко-красной линией.
  • Автоматическая привязка отчетов 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.

Чтобы скачать любую версию:

  1. Перейдите в раздел Releases репозитория;
  2. Разверните блок Assets нужной версии;
  3. Нажмите на iso2nsp.exe.

Запуск приложения

Вариант 1. Запуск через готовый iso2nsp.exe (Рекомендуется)

  1. Скачайте файл iso2nsp.exe из репозитория.
  2. Запустите двойным кликом. Установка не требуется, права администратора не нужны.

Вариант 2. Запуск из исходного кода Python

Требуется Python 3.8+ (используются только стандартные модули):

# Графический интерфейс
python iso2nsp_gui.py

# Консольный режим (CLI)
python iso2nsp.py input.iso -o output.nsp

Консольный интерфейс (CLI)

python 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).

Сборка .exe файла из исходников

Если вы хотите самостоятельно пересобрать бинарный файл:

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.

About

No description or website provided.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages