падку зображення не виводиться і видається повідомлення про помилку структури файлу. Результатом дії розглянутого алгоритму є зображення малюнка у вікні перегляду із зазначенням початкової точки зображення, габаритні розміри малюнка в сотих частках міліметра і буфер векторів точок полилиний, що утворюють малюнок.
Подальшим дією в режимі ТПО може бути перегляд наступного малюнка зі списку файлів або завантаження коду УП в систему ЧПУ. Блок-схема алгоритму кодування і виведення УП представлена ​​на малюнку 5.
В
Рис.4. Блок-схема алгоритму виводу зображення УП
На кресленні прийняті наступні позначення:
i - покажчик вихідного буфера координат поліліній;
j - покажчик буфера УП;
БПУ - буфер керуючої програми;
Х1, У1 - координати початку поточного відрізка прямої;
Х2, У2 - координати кінця поточного відрізка прямої;
ТКН - технологічна команда початку роботи;
Sx, Sy - знаки поточного приросту відрізка прямої за координатами x і y відповідно;
L - команда переміщення РІ;
int - Шестнадцатіразрядное мінлива oxffff ;
ТКК - технологічна команда;
n - число відрізків полилиний переходів і технологічних команд;
m - коефіцієнт перетворення dx або dy в змінні типу int у разі, якщо одна з них має тип long;
k - покажчик поточного значення числа записів при перетворенні long в int;
пп - підтвердження прийому від інтерфейсу зв'язку з системою ЧПУ.
В
Рис.5. Блок-схема алгоритму кодування і виведення УП
Завданням цього алгоритму є перетворення масиву векторів координат поліліній і умов переходу від однієї полілінії до іншої в виконуваної УП для системи ЧПУ. У розглянутому випадку використовується трехосевой привід. Одна команда УП може мати довжину одну або три змінних типу int. Однослівне команда є технологічною або задає переміщення по координаті z у відповідності з номером шару, що містяться в коді команди. Величина переміщення по z в цьому випадку визначається виходячи з таблиці параметрів, що знаходиться в програмованої постійної пам'яті системи ЧПУ. Трислівні команда задає переміщення осі в відносних координатах. Перше слово команди містить код команди і визначає напрямок переміщення щодо поточного положення РІ. Другі два слова визначають величину переміщення по координатах х і у відповідно. Крім розглянутого випадку подібний спосіб кодування УП може бути застосований у разі використання лінійно-кругової інтерполяції, тому на код команди відводиться ціле слово.
Формування УП починається з обнулення покажчиків на буфер масиву векторів точок полілінії і на порожній буфер, в якому буде формуватися код УП (блок 1 алгоритму). Перша команда, записувана в буфер УП, - технологічна і визначає початкове положення по координаті z РІ. Блоки 3 та 4 алгоритму визначають початкове і кінцеве положення точок поточного відрізка полілінії. Якщо поточне положення другої точки відрізка визначається як Const, в буфер УП записується команда підняти (опустити) РІ на величину z ( блок 9 алгоритму) і збільшує на одиницю покажчик буфера координат.
В іншому випадку обчислюється абсолютна величина і знак поточного приросту за координатами. Формується код операції як логічна сума власне коду операції (в даному випадку відпрацювання прямій лінії) і знаків збільшень за координатами х і у відповідно (блок 6 алгоритму).
Так як в даній реалізації максимальний розмір збільшення не може перевищувати величину int/2 (15 двійкових розрядів), блоки 7 і 8 здійснюють перевірку на перевищення поточного приросту відносно заданого. Максимальний розмір приросту в int/2 прийнятий виходячи з скорочення обсягу пам'яті УП, т.к переважна більшість відрізків прямих полилиний, що утворюють малюнок, не перевищують зазначений поріг.
У разі, якщо поріг не перевищено, в буфер УП записуються код операції і значення збільшень по координатам (блок 10 алгоритму). Потім проводиться перевірка на кінець вихідного буфера і, якщо не "кінець", здійснюється вибірка координат черговий точки і форми-вання чергової команди.
При перевищенні поточних значень збільшень за координатами або однієї з них величини порогу відрізок розбивається на m ділянок, де m є відношення максимально можливого збільшення по координаті заданого типу обладнання до величини int/2, і формується гілка алгоритму запису m ділянок прямий (блоки 14-16). Після цього відбувається перехід до основної гілки алгоритму (блок 11). p> Якщо весь вихідний буфер вичерпаний, формується остання технологічна команда "кінець УП" (блок 12 алгоритму). p> Після процесу кодування запускається режим введення УП в систему ЧПУ. Весь масив УП розбивається на блоки по 128 байт. Для кожного блоку формується контрольна сума, тобто циклічний ...