Новий робочий процес створення матеріалу для фрезерних і токарних режимів.
Динамічна зміна матеріалу без перезавантаження сторінки для підтримуваних фрезерних операцій.
Додано режим редагування матеріалу з екранною плашкою редагування та переміщенням матеріалу в робочій зоні.
Покращено вікна додавання/видалення матеріалу та налаштування токарної заготовки.
Покращено роботу мобільної версії сайту й відображення модальних вікон на малих екранах.
Додано дію STOP для аварійної зупинки, скидання програми та відновлення після зависання процесу в браузері.
Додано індикатор користувачів онлайн.
Вікна What's New, гарячих клавіш, Measure Tools і матеріалу приведено до стилю модальних вікон NCPlayer.
Локалізовано Bounds, Measure Tools, кількість рядків, час останнього збереження та одиниці вимірювання в інформаційній панелі.
Дублюючу кнопку Optional Stop прибрано з верхньої панелі; перемикач залишився в меню.
Покращено праву інформаційну панель: застарілий вивід Total Duration приховано, дані Bounds залишено з перекладами.
Версія 2.13 — 24.04.2026
Додано денну та нічну теми зі збереженням вибору в localStorage.
Додано тематичні стилі для меню, модальних вікон, правих панелей контролерів, таблиць, редактора ACE і фонів симуляції.
Додано перемикач Solid Simulation у меню View та перекладено інтерфейс Simulation Settings.
Покращено мобільне компонування, включно з роботою Switch, елементами керування симуляцією, безпечним позиціонуванням над футером і збереженням активної панелі.
Покращено доступ із меню до NC Assistant, вибору контролера та функції Optional Stop.
Версія 2.12 — 23.04.2026
Додано звіт Program Runtime у меню Tools, який формується на основі попередньо обробленої програми.
Звіт показує для кожного інструмента сумарний шлях і час для rapid-переміщень, подач, дуг, стандартних циклів, затримок і змін інструмента, а також містить налаштування Rapid Override і Feedrate Override.
Додано новий 26-гранний 3D-маніпулятор виду у формі багатогранника типу rhombicuboctahedron з клікабельними основними площинами, реберними фасками та кутовими фасками, включно з трикутником XYZ для ізометричного виду.
Додано обов’язкову авторизацію через безплатний акаунт NCPlayer для захищених дій, таких як відкриття власних NC-файлів.
Версія 2.11 — 22.04.2026
Додано Inspection Mode для аналізу симуляції, який дозволяє розбирати побудовану траєкторію безпосередньо у вікні перегляду.
Клік по точці траєкторії тепер переводить до відповідної вихідної строки в редакторі ACE, а під час наведення показується tooltip з номером рядка та його текстом.
Додано підсвічування вибраного сегмента, стрілку напрямку та компактне вікно з Start XYZ, End XYZ, Delta XYZ, модальним станом і значеннями макро/службових даних, якщо вони доступні.
Додано експорт Toolpath to DXF з меню File, щоб зберігати симульовану траєкторію після контролерно-залежного парсингу та розгортання макросів.
Додано вікно DXF Export Settings з налаштуваннями LINE/POLYLINE, режиму проєкції, організації шарів, включення rapid-переміщень і точності рівнів Z.
Версія 2.10 — 20.04.2026
Додано модальну форму зворотного зв’язку, через яку користувачі можуть поділитися досвідом роботи з NCPlayer, поставити запитання, повідомити про проблеми або запропонувати відсутні функції та підтримку додаткових CNC-стійок.
У футер додано посилання на правову інформацію, включно з Terms & Conditions, Privacy Policy, Cookie Policy, Refund Policy та Legal Information, з урахуванням мови там, де доступні локалізовані юридичні сторінки.
Додано окрему модальну форму “Found an error?” для повідомлення про баги, некоректну поведінку або ймовірні проблеми безпосередньо з інтерфейсу.
Додано перший етап підтримки симуляції токарної обробки, включно з режимом FANUC Lathe.
Додано варіанти відображення токарного інструмента: лівий/правий різець і вигляд спереду/ззаду.
Додано вибір режиму координати X для токарної симуляції: відображення за діаметром або радіусом.
Додано окрему модель токарного різця замість використання форми фрезерного інструмента.
Додано створення циліндричної заготовки для токарної симуляції через Add/Delete Material — Lathe.
Існуючу логіку прямокутного матеріалу для фрезерної симуляції залишено без змін, а токарний режим тепер використовує окремий процес для циліндричної заготовки.
Версія 2.0 — 19.04.2026
Проєкт перенесено на nc.cncpassport.com і тепер він розвивається в межах цього проєкту.
Додано підтримку HAAS серії VF, зокрема окремий профіль контролера HAAS VF-1 і налаштування симулятора.
Додано підтримку SYNTEC 6MB з окремим файлом симуляції та обробкою макросинтаксису Syntec.
Додано підтримку макропрограмування Syntec: присвоєння :=, IF/ELSE/END_IF, WHILE/END_WHILE і FOR/END_FOR.
Покращено роботу з макрозмінними: присвоєні значення відображаються в таблиці змінних під час симуляції.
Покращено сумісність парсера із синтаксисом різних контролерів із розділенням файлів симуляції для FANUC, HAAS і SYNTEC.
Оновлено загальну стилізацію та візуальне оформлення симулятора.
Виправлено збереження вибору контролера: SYNTEC 6MB залишається вибраним після перезавантаження сторінки та зміни controller в URL.
Версія 1.6 — 11.11.2025
Додано повну підтримку верстата з ЧПК у симуляторі: осі X/Y/Z, шпиндель і модель інструмента тепер рухаються синхронно з симульованою траєкторією, а не залишаються статичними.
Реалізовано повноцінний режим JOG: ручне переміщення по кожній осі з налаштовуваним кроком / безперервним рухом, а також перемикач RAPID, з урахуванням меж ходу верстата.
Додано логіку повернення в машинних координатах G53: симулятор тепер підтримує послідовність «повернення в нуль машини» в тому ж порядку, що й реальний контролер (спочатку безпечне Z, потім X/Y).
При натисканні STOP симулятор тепер візуально повертає модель верстата в нуль машини, тож послідовність базування чітко видно у 3D-вікні.
При натисканні START додано змодельований «підхід до початку програми»: верстат переходить із нуля машини в безпечне положення над першим блоком програми, а потім переключається в робочу систему координат (G54) перед початком рухів різання.
Запроваджено уніфіковану перевірку меж для всіх рухів верстата (симуляція, JOG, G53): будь-яка спроба вийти за допустимий діапазон ходу обмежується й супроводжується попередженням OVERTRAVEL.
Покращено поведінку камери під час руху верстата: огляд залишається читабельним під час JOG, повернення в нуль і підходу до початку обробки, що спрощує стеження за шпинделем та інструментом.
Додано конфігураційні хуки для ввімкнення/вимкнення підтримки кінематики верстата незалежно від класичного режиму «лише траєкторія», щоб наявні робочі процеси залишалися сумісними.
Performance Monitor — показує FPS і використання пам’яті; перемикач у меню Help, стан зберігається через localStorage.
Coords Box — відображає координати курсора X/Y/Z (raycast по моделі); перемикач у меню Help, стан зберігається.
Додано підтримку пек-циклів (peck drilling) з автоматичним відведенням та контролем подачі.
Реалізовано команду G04 dwell (P/X) із повідомленням у реальному часі під час симуляції.
Додано команди M00 (зупинка програми) та M01 (опціональна зупинка) — повна поведінка Feed Hold із можливістю продовження.
Додано кнопку «Опціональна зупинка» з постійним перемикачем (на основі localStorage) для керування M01.
Покращено синхронізацію між dwell, feed-hold та контролерами паузи для стабільного перебігу симуляції.
Удосконалено логіку розпізнавання M-кодів для запобігання помилковим спрацюванням (наприклад, M06, M13M09).
Версія 1.410 Beta — 22.08.2025
Додано генератор програм NC “Rectangular Pocket” для NCPlayer: модальне вікно, завантаження в ACE, явний / макрорежим.
Версія 1.4 Beta — 22.08.2025
Нове: NC Assistant — вбудований аналіз, пояснення, виправлення та рефакторинг G-коду; відповіді з урахуванням мови інтерфейсу.
Нове: Автоматичний вхід у обліковий запис MEBLEOS — тихе оновлення токена, єдиний вхід між вкладками, безпечне повернення до гостьового режиму у разі помилки.
Нове: Збереження виду — позиція камери, ціль, масштаб і трансформація моделі (позиція / кватерніон / масштаб) зберігаються для кожної програми й відновлюються при перезавантаженні.
Інтерфейс: покращено відображення траєкторії (товща лінія, краща видимість; depthTest off + polygonOffset для запобігання z-конфліктам).
Додано повну підтримку RTL (справа наліво) для арабської, івриту, перської, пушту та урду.
Версія 1.204 Beta — 29.07.2025
Повна підтримка циклу свердління G81 із коректним розбором координат (X, Y, Z, R, F).
Кожен етап свердління генерує послідовність: G0 XY → G1 Z → G0 Z із правильним обробленням G98 / G99.
Підтримка макрозмінних і виразів у координатах G81 (X[#100] Y[#101]).
Запобігання повторному свердлінню тієї самої точки (sameAsLast перевірка).
Покращено відображення рядків для налагодження: lineMap тепер містить суфікси .0, .1, .2 для фаз свердління.
Динамічне обчислення координат (літералів і макровиразів) із веденням логів.
Рефакторинг структури fragmentFile.push для точного трасування.
Версія 1.203 Beta — 27.07.2025
Додано 10 демонстраційних програм для симуляції (макроси, підпрограми, логіка G-коду).
Виправлено відсутність траєкторії при використанні G0 без G1.
Реалізовано механізм «порожнього руху» для запуску симуляції.
Оновлено simulateStepsFromLine для плавної анімації дуг (G2/G3).
Додано вдосконалений animateToolThroughSegment із урахуванням speedMultiplier і режиму стеження камери.
Версія 1.202 Beta — 25.07.2025
Додано обов’язкове прийняття Умов користування (Regulamin) перед доступом до NCPlayer.
Виправлено обробку оператора MOD у складних умовах.
Додано повідомлення, якщо умови не прийнято: «Продовжуючи використовувати цей сайт, ви повинні прийняти умови.»
Логування прийняття умов: дата, IP, браузер.
Версія 1.201 Beta — 22.07.2025
Підтримка G65 із передачею параметрів (#1, #2, … у підпрограму).
Виправлено логіку WHILE...DO...END із вкладеними виразами.
Підтримка глибоко вкладених функцій FANUC із безпечною заміною.
Додано режим попередньої обробки з повністю розгорнутим лінійним G-кодом.
Нова система логування: компактний і детальний режими.
Глибина рекурсії збільшена до 10 000.
Додано панель змінних у реальному часі (#100–#199, #500–#531).
Покращено візуалізацію траєкторії для циклів і спіралей.
Новий переглядач демонстраційних програм із попереднім переглядом траєкторії.
Версія 1.103 — 16.07.2025
Додано підтримку умовних переходів із використанням синтаксису IF [...] GOTO xxx та логічних операторів: EQ, NE, GT, GE, LT, LE, включно з підтримкою вкладених виразів і математичних функцій (SIN, FIX, ROUND тощо).
Виправлено помилку, через яку неможливо було присвоювати від’ємні значення локальним макрозмінним (наприклад, #2 = -0.51504).
Версія 1.102 — 15.07.2025
Додано підтримку умовних переходів із використанням синтаксису IF [...] GOTO xxx та логічних операторів: EQ, NE, GT, GE, LT, LE.
Парсер виразів тепер підтримує підстановку змінних і вкладені математичні функції всередині умов IF.
Додано захист від нескінченних циклів — симуляція зупиняється після виконання понад 500 000 рядків із попередженням у консолі та спливаючим повідомленням.
Додано підтримку безумовних переходів GOTO: GOTO 120 переходить до рядка N120 у тій самій програмі O; формати на кшталт GOTO N120 відхиляються як некоректні.
Додано підтримку M98 Pxxxx L#yyy — параметр L тепер може бути змінною (наприклад, #512), що обчислюється перед повторенням підпрограми.
Версія 1.101 — 14.07.2025
Додано повну підтримку математичних виразів із використанням функцій FANUC усередині адресних виразів (наприклад, X[SIN[...]], #100=ROUND[...] тощо).
Вкладені функції тепер правильно обчислюються, наприклад: X[SIN[FIX[ROUND[#100+10]]]], X[COS[FUP[ATAN[TAN[45]]+0.1]]].
Адресні вирази на кшталт G#123, T#125, L#512, S[#511] тепер обчислюються динамічно під час симуляції.
Реалізовано автоматичну обробку «злитих» викликів функцій (наприклад, ROUND10.4 → ROUND[10.4]).
Додано захист від нескінченної рекурсії: максимальна глибина обчислень — 20 рівнів.
Покращено логування кожного виклику функцій і підстановок для налагодження складних виразів.
Версія 1.002 — 09.07.2025
Додано функцію mappingEntryForJump для коректної покрокової навігації в програмах із викликами підпрограм.
Версія 1.001 — 08.07.2025
Додано підтримку M97 Pxxxx — перехід до рядка Nxxxx у поточній програмі без виклику підпрограми.
M97 тепер працює незалежно від M98 як у головній програмі, так і в підпрограмах.
Додано підтримку M02 і M30 — миттєве завершення парсингу при зустрічі цих команд.
Додано підтримку виклику підпрограми M98 Pxxxx — виклик Oxxxx із поверненням через M99.
Додано підтримку M98 Pxxxx Ln — виклик підпрограми Oxxxx n разів із використанням параметра L.
Додано підтримку M99 — повернення до викликаючої програми після M98.
Додано підтримку M99 Pxxxx — повернення до викликаючої програми та продовження виконання з указаного рядка Nxxxx.
Версія 0.133 — 06.07.2025
Додано підтримку форматування чисел у G-коді згідно з допусками:
normalizeGCode_dot() — вставляє десяткову крапку, якщо її немає (наприклад, F0 → F0.).
normalizeGCode_dot0() — додає .0 (наприклад, Z30 → Z30.0).
normalizeGCode_dot00() — додає .00 (наприклад, R40.5 → R40.50).
normalizeGCode_dot000() — додає .000 (наприклад, Z-2 → Z-2.000).
Версія 0.132 — 05.07.2025
Додано кнопку toggleResizeEditor — перемикання між компактною шириною, шириною за найдовшим рядком та повною шириною редактора.
Автоматичне регулювання ширини редактора залежно від вмісту G-коду.
Додано модальний інструмент Renumber Blocks (N) із функціями:
Перенумерувати всі блоки
Перенумерувати без порожніх рядків і коментарів
Перенумерувати лише наявні блоки
Перенумерувати без символу пропуску блоку
convertIJKtoR — зберігає Nxxx, видаляє модальні G2/G3, обчислює R для INC/ABS, видаляє IJK, додає R, уніфікує обробку центру дуги.
Перехід на внутрішню ієрархічну структуру меню для кращої організації.
Додано функцію Refresh Plot — повторний парсинг і перезавантаження поточного NC-коду без автоматичної симуляції.
Refresh Plot також зберігає програму перед перезавантаженням і оновлює час останнього збереження.
Додано підтримку Block Skip (/) у покроковому режимі симуляції.
Додано функції перемикання між 2D і 3D видами з головного меню.
Додано можливість вставляти та видаляти символи пропуску блоку (/) на вибраних рядках або для всієї програми.
Додано можливість видаляти всі рядки, що починаються з символу пропуску блоку (/).
Версія 0.131 — 04.07.2025
• Новий режим камери “Follow Tool”: автоматично відстежує положення інструмента в реальному часі під час симуляції.
• Функція “Fit to View”: автоматично центрує та масштабує всю траєкторію інструмента.
• Опція “View Center of Tool”: фокусує камеру на поточному положенні інструмента.
• Перетворення дуг: 6 функцій трансформації G-коду для дуг (IJK ↔ R, ABS ↔ INC) із підтримкою площин G17/G18/G19 та старого синтаксису (G02/G03).
• Очищення коду: видаляє з G-коду непотрібні або пошкоджені рядки.
• Режим “Pan Mode” у 3D: переміщення сцени мишею за допомогою перемикаємого курсора у вигляді руки.
• Покращений механізм перетворення дуг: зберігає режим дуг між послідовними рядками без явних команд G2/G3.
• Виправлено перетворення IJK→R: видаляє зайву вісь K у площині G17.
• Усі результати перетворень тепер автоматично встановлюють статус ArcMode (IJK_INC, IJK_ABS, R) у робочому процесі.
Версія 0.130 — 02.07.2025
• jumpToBottom(): швидкий перехід у кінець NC-програми. Кнопка доступна в інтерфейсі.
• jumpToTop(): миттєве прокручування на початок програми.
• Форматування G/M/T-кодів:
- Скорочення G00–G09 → G0–G9, M00–M09 → M0–M9, T00–T09 → T0–T9.
- Нормалізація G0–G9 → G00–G09 і аналогічно для M та T.
• Друк поточного вигляду: збереження зображення 3D-симуляції як PNG і відкриття у новій вкладці для завантаження або друку.
• Керування символом кінця блоку (;): функції addeob() і deleteeob() для додавання або видалення ; у кінці рядків.
• Друк програми: повний або вибірковий друк виділених рядків коду.
Версія 0.129 — 01.07.2025
• Підтримка Copy/Cut/Paste/Undo/Redo через гарячі клавіші та меню.
• Вибір діапазону рядків за допомогою кнопок із підсвічуванням у редакторі ACE та можливістю копіювання.
• Перетворення координат:
- G91 → G90 із перерахунком усіх координат у абсолютні.
- G90 → G91 із перерахунком усіх переміщень у відносні.
- Видалення G90 і вставлення G91 на початку програми.
• Меню “Format”: видалення номерів рядків, зайвих пробілів, порожніх рядків і коментарів; зміна регістру.
• Інтелектуальне форматування на основі вибраного типу ЧПК.
Версія 0.128 — 29.06.2025
• Пострічкове декодування G-коду у реальному часі, відстеження станів модальних груп, положення інструмента та кодів M/S/T.
• Нові змінні стану: currentModalStateAtLine, currentPositionAtLine, miscCodesAtLine.
• jumpToLine(row) тепер оновлює панель декодування, використовуючи збережені дані.
• Перемикання конфігурацій верстата, за замовчуванням — FANUC 0i.
• Додаткові види камери у меню “View”, включно з ізометричним.
Версія 0.127 — 28.06.2025
• Відображення координат ABS/REL: координати в абсолютному та відносному режимах оновлюються в реальному часі під час симуляції.
• Розрахунок відносних координат: здійснюється на основі попереднього положення інструмента для кожного рядка.
• Відстеження модальних груп FANUC G-коду: підтримка груп 01–20 з оновленням активних кодів у реальному часі.
• Динамічна таблиця модальних груп: генерується на основі офіційних схем Fanuc.
• Моніторинг кодів M/S/T/F/D/H: значення відображаються в реальному часі під час симуляції.
• Візуальна таблиця значень M/S/T/F/D/H: додана до панелі додаткової інформації.
• Покращена логіка simulateSteps: динамічний парсинг і застосування модальних і допоміжних кодів.
• Підтримка багатоформатного G-коду: сумісність із форматами типу G0/G00/G01/G1 та подібними.
Версія 0.126 — 27.06.2025
• Підтримка заготовки (Stock): параметри зазорів і позиціювання, автоматичне визначення розміру заготовки з моделі.
• Очищення параметрів заготовки: кнопка для видалення параметрів із localStorage.
• Завантаження Drag & Drop: підтримка перетягування файлів .nc безпосередньо в редактор.
• Модальне вікно зміни інструмента: адаптоване для мобільних пристроїв.
Версія 0.125 — 26.06.2025
• Позиціювання інструмента: клацання правою кнопкою миші по рядку G-коду переміщує інструмент у 3D-сцені до відповідної точки траєкторії.
• Гарячі клавіші F2+...: додано екранну підказку зі списком комбінацій.
• Розумний пошук G-коду: 3 режими пошуку — загальний, у виділенні та за діапазоном рядків.
• Функція “Замінити”: редагування тексту G-коду безпосередньо в редакторі.
• Покращення інтерфейсу: новий технічний шрифт Google, оновлені випадаючі меню з вирівнюванням і відображенням гарячих клавіш праворуч.
• Закриття модальних вікон: клавішею ESC, включаючи діалог відкриття файлу.
• Блокування введення при використанні гарячих клавіш: запобігає випадковому набору під час утримання клавіш.
• Збереження програми: додано у верхнє меню зі статусом і міткою часу.
Версія 0.124 — 25.06.2025
• Виправлено проблему подвійного прокручування у блоці NC-програми.
• Експорт програми: можливість експорту коду NC.
• Мобільна версія: адаптивний режим із обмеженим функціоналом.
• Вибір активної площини: покращено в режимі симуляції.
• Поведінка кнопок миші: перероблено для області симуляції.
• Скидання підсвічування траєкторії: виправлено помилку після натискання “Stop”.
• Підсвічування коду: додано кольорове маркування під час парсингу.
Версія 0.1 — 24.06.2025
• Збереження ідентифікатора програми: у localStorage із використанням UUID.
• Автоматичне перенаправлення: із параметром ?nc=UUID, якщо він відсутній у URL.
• Збереження програми: записує вміст редактора у тимчасовий файл.
• Демонстраційна програма: завантажує та візуалізує приклад G-коду.
• Індикатор рядка: синхронізований із позицією в редакторі.
• Регулювання ширини редактора: ручне налаштування ширини панелі G-коду.
• Два режими симуляції: SIMULATION та INSPECTION.
• Збереження швидкості: значення повзунка зберігається у localStorage.
• Повноекранний режим: стан зберігається та відновлюється.
• Стан правої панелі: зберігається у localStorage.
• Стан траєкторії (Trail): зберігається у localStorage.
• Сітка: автоматично перемикає масштаб мм/см/дм залежно від рівня зуму.
• Вибір виду (2D/3D): зберігається у localStorage.
• Клацання по рядку в редакторі: переміщує інструмент у 3D до відповідної точки.
• Функція “From L”: запуск симуляції з вибраного рядка.
• Покрокова симуляція з L: анімація починається з будь-якого блоку.
• Панель “What’s New”: завантажується з whatsnew.dat і доступна з меню.
• Підтримка модальних вікон: із затемненням фону та вертикальною прокруткою.
• Покращення ACE-редактора: центрування рядків, очищення підсвічування.
• Відновлення симуляції: правильно відновлюється після паузи.
• Анімація руху інструмента: плавний перехід із використанням TWEEN.
• Парсинг сегментів G-коду: підтримує фрагментовані блоки та виявлення помилок.
• Центрування рядка: при переході до рядка в редакторі.
• Синхронізація кнопок керування: верхня та центральна панелі.
• Збереження параметрів: вид, fullscreen, сітка, швидкість, траєкторія, L.
• Підготовка до розширення діалогів: підтримка накладень (overlay).
• Збереження стану “From L”: працює після перезавантаження сторінки.
• Очищення після “Stop”: скидання маркерів, пауз і зупинка анімації.