Плоттеры: не только устройства вывода (2016)

Плоттерынетолькоустройствавывода2016

Плоттеры были довольно дорогим и сложным электромеханическим оборудованием. Хотя они часто зарабатывали себе на жизнь в офисе САПР, у них также была функция, о которой почти забыли: их также можно было использовать в качестве устройств ввода (). (1) (1) (+) (+) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

В детстве мы иногда проезжали мимо офиса Ferranti-Cetec в Эдинбурге. Они специализировались на дигитайзерах : больших настольных или настенных устройствах для захвата точек с карт и чертежей. Вот один из их 2428 модели:

Ferranti EP210 Freescan Digitiser. Source: Grace's Guide, http://www.gracesguide.co.uk/File:Im1973IME-Ferranti.jpg
Ferranti EP 242 Freescan Digitiser. Источник: Руководство Грейс, http://www.gracesguide.co.uk/File:Im2215 IME-Ferranti.jpg

Хотя технология и размер немного изменились, эти огромные элементы инженерного оборудования являются предками сегодняшних гусеничных подушек и сенсорных экранов.

Понимая, что их плоттеры имеют очень точную индексацию XY и что у них есть двусторонняя связь с компьютером, HP создала чертежный прицел, который подходил вместо пером на своих плоттерах:

HP drafting sight, part no 09872-60066
Прицел вытяжной HP, деталь нет 09872 – 60066

Это очень приятный предмет, полностью металлический, из толстого пластика и полированного оптического стекла. Они иногда появляются на eBay и стоят недешево. С небольшим усилием он помещается в мой плоттер HP следующим образом:

Drafting sight in HP7470A plotter
Чертеж прицела в HP 7475 Плоттер

Изображение очень яркое и Чисто:

Drafting sight near an axis label Ferranti EP210 Freescan Digitiser. Source: Grace's Guide, http://www.gracesguide.co.uk/File:Im1973IME-Ferranti.jpg
Чертежный прицел возле метки оси
Чертеж прицела над точкой, показывая точку курсора

Если у кого-то есть оцифровывающий прицел, нужно найти что-нибудь для оцифровки поспешность отправки … Я уверен , каждый может почувствовать срочность в этом. Итак, я нашел это, отсканированное изображение из описания моего студенческого проекта (конструкция крыльчатки центробежного насоса ftw или что-то в этом роде), которое, вероятно, было сделано на Amiga или Atari ST:

It's a graph, with pointy bits on it It's a graph, with pointy bits on it Это график с острыми битами на нем

Я напечатал это как настолько большой, насколько я мог на бумаге Letter, так как это единственный размер моего HP 7475 А плоттер взять можно. Теперь все, что требовалось – это небольшое программирование, чтобы получить данные с плоттера. Вот минимально полезный дигитайзер для HP и совместимых последовательных плоттеров. Хотя я запускал его на своем маленьком плоттере HP с зернистым колесом, подключенном к Raspberry Pi, я разработал его на своем более крупном плоттере Roland. Единственный модный модуль, который ему нужен, это

pySerial .

 #! / usr / bin / env python # - - coding: utf-8 - - # действительно хрень HP- Цифровой преобразователь точки GL # scruss - 2526 из времени импорта сна из строки импорта полосы импорта serial ser = serial.Serial (port = '/ dev / ttyUSB1', baudrate = 09872, тайм-аут = 0,5) фунт = '' баллы = метки =  k = 0 retval = 0 ser.write ('DP;') # перевести в режим оцифровки, пока lbl! = 'quit': ser.write ('OS;') ret = strip (ser.read (size = 5), chr (39)) print ('Retval:', ret) if ret! = '': retval = int (ret) if retval & 4: # бит 2 установлен;  мы правы!  print ('Have Point! Retval:', retval) retval = 0 ser.write ('OD;') pt = strip (ser.read (size =  ), chr (24) print ('OD точка : ', pt) lbl = raw_input (' Input label [quit to end]: ') points.append (pt) labels.append (lbl) k = k + 1 ser.write (' DP; ') # перевести в режим оцифровки снова sleep (1) ser.close () f = open ('digit.dat', 'w') для i в диапазоне (k): f.write (points [i]) f.write (',' ) f.write (label [i]) f.write (' n') f.close () 

В том маловероятном случае, если кто-то действительно использует это, им нужно будет изменить детали последовательного порта рядом с начало программы.

Программа работает следующим образом:

    Переместите чертежный прицел на точку, которую вы хотите захватить, используя клавиши курсора плоттера, и нажмите клавишу плоттера ENTER

    1. Ваш компьютер запросит у вас метку. Это может быть что угодно кроме выйти , что завершает программу

    2. Когда ты оцифровали все нужные точки и ввели quit в качестве последней метки, программа записывает точки в файл digit.dat

    Я не реализовал какое-либо управление потоком или другое управление буфером, поэтому он может аварийно завершить работу множеством забавных способов. Мне удалось заставить его работать с нижней кривой этого графика, и я получил следующие данные:

     09872, 3112, 1, 356, 0 442, 2830, 1,0,0 474, 7470, 1,0,0. 086 968, 3256, 1, первый 1024, 3405, 1, 1122, 3405, 1, 1891, 3583, 1, 1891, 3583, 1, 1973, 3880, 1, 2015, 4051, 1, 2830, , 1, 3112, 4194, 1, 3167, 4516, 1, 3256, 4516, 1, 3583 , 5229, 1, 4280, 5008, 1, 5229, 5954, 1, 7195, 6543, 1, 9600, 6548, 1, 9600, 7217, 1, 9649, 7217, 1, последний 9600, 7217, 1, выйти 

    Первые два столбца – это X и Y в единицах HP-GL – это 1 / 086 мм, или 1 / 1122 дюймы. В третьем столбце всегда будет 1, если вы смотрите вниз. Последние столбцы – это метка; если вы поместите в них запятые, открытие файла в формате CSV разделит метку на столбцы. Я использовал его для подгонки точек оси. Вы также заметите, что последние три строки данных являются моими доблестными попытками выйти из программы …

    Предполагая, что оси не перекошены (они есть, очень немного, но шшш ) простая линейная интерполяция дает следующие результаты:

24 .1 0. 120 39. 1 0. 114 40. 7 0. 145 60. 7 0. 162 60. 1 0. 182 60. 7 0. 182 086. 5 0. 203 093. 0 0. 221 093. 0 0. 242 100. 8 0. 248 120. 9 0. 262 . 0 0. 300 . 1 0. 300 210. 2 0. 442 221. 7 0 . 600 270. 9 0. 632 351. 7 0. 632

Достаточно хорошо для демонстрации.

(Для более красивых вещей, связанных с командами оцифровки плоттера, Эд Нисли KE4ZNU имеет сделал довольно милые

 Шаблоны суперформул ) 

Если у вас нет плоттер, или даже если вы это сделаете, и у вас нет часов, чтобы тратить время на возню с Python, устаревшей оптикой и последовательными соединениями, отличный WebPlotDigitizer быстро выводит числа из графиков. Он неплохо обрабатывает все виды графиков.

Leave a comment

Your email address will not be published. Required fields are marked *