Jump to content
soulmare

Онлайн конструктор шкалы прибора

Recommended Posts

Может, кому-то пригодится простой онлайн конструктор шкалы прибора, позволяющий в браузере по заданным параметрам сгенерировать шкалу с делениями и цифровыми метками. Собственно, вот он: http://shopcms-moduli.com/scale_constructor/scale_constructor.php

Чтобы сохранить шкалу как рисунок, можно сделать скриншот, и потом в графическом редакторе дорисовать или подправить что нужно.

Программа делалась за вечер, для собственных небольших потребностей, ради которых не хотелось устанавливать профессиональные векторные пакеты вроде CorelDraw. Скрипт полусырой, но может быть при желании и умении пользователя доработан - исходник прилагаю.

Лично у меня остались такие нерешенные в скрипте проблемы:

  • шкалы с нелинейным изменением
  • точная подгонка делений под снятый с показателей прибора шаблон

Это все реализуемо, но простого способа не придумал, а сложные займут слишком много времени, которое неизвестно когда появится.

scale_constructor_example.png

scale_constructor.source.zip

Share this post


Link to post
Share on other sites
1 час назад, soulmare сказал:

можно сделать скриншот

Скрин не дает необходимой четкости. Это будет минусом программы.

Загляните еще сюда. Может, натолкнет на какую мысль для доработки Вашей программы.

Share this post


Link to post
Share on other sites

Ну это скорее не скрин портит четкость, а то что линии в 1-2 пикселя толщиной просто не могут быть четкими, если они не строго вертикальные или горизонтальные. Но скриншот это конечно плохое решение, временное. Там надо бы сделать, чтобы в браузере было видно отмасштабированное под окно браузера "превью" шкалы, а отдельно - кнопка, по которой будет скачиваться изображение, которое уже будет намного большего размера - достаточного, чтобы при печати все было четко. А пока что для четких шкал с мелкими линиями можно делать шкалу как можно большего размера - насколько позволяет экран.

Share this post


Link to post
Share on other sites

Вебинар STM32G0 – новый лидер бюджетных 32-битных микроконтроллеров от STMicroelectronics

Компания Компэл приглашает вас 25 сентября принять участие в вебинаре, который посвящен новому семейству микроконтроллеров STM32G0. Вебинар рассчитан на технических специалистов и тех, кто хорошо знаком с семейством STM32. На вебинаре будут освоены современные методы тестирования производительности микроконтроллеров на примере самых бюджетных 32-битных семейств общего назначения STM32G0 и STM32F0 и проведено их подробное сравнение.

Подробнее

Что на Земле мешает сделать функцию сохранения изображения? Кроме того, размеры указываются в пикселях, что совсем неудобно, когда потребуется эту шкалу напечатать и на прибор наклеить. Аналогично с линиями. Отталкиваться можно от стандартных разрешений принтеров - 600 - 720 dpi.

Если целью ставился не академический интерес поупражняться в php, можно вообще интерактивную рисовалку на JavaScript запилить.

Quote

шкалы с нелинейным изменением

Увеличивать угол не линейно, но логарифмически?

Quote

Скрин не дает необходимой четкости.

Если сохранялось в jpg, неудивительно.

Share this post


Link to post
Share on other sites

Дело не в jpg, а в том, что картинка строится и сохраняется с экранным разрешением (72-96 dpi), что сводит на нет все возможности принтера. У того же Старичка картинка 600 dpi и никаких проблем с тонкими линиями нет.

зы. Гнаться за микронной точностью и 100500 делениями не имеет смысла, т.к. сами стрелочные приборы высой точностью не отличаются, как и линейностью.
Плюс к тому, бумага непредсказуемо меняет свои геометрические размеры после прохода через печку принтера и в процессе приклеивания.

Edited by Dr. West

Share this post


Link to post
Share on other sites
                     

Литиевые батарейки Fanso в беспроводных датчиках пожарно-охранной сигнализации

Выбор подходящего элемента питания, способного обеспечивать требуемый уровень напряжения и выдавать необходимый ток на протяжении всего периода эксплуатации беспроводной пожарно-охранной системы является одной из первостепенных задач. Наиболее подходящим для этих целей элементом являются литий-тионилхлоридные элементы питания, а одним из наиболее конкурентоспособных производителей – компания Fanso, предлагающая своим клиентам продукты как универсальные, так и разработанные специально для решения конкретных задач.

Подробнее...

Сейчас как раз дорабатываю программу в нормальный вид, сегодня или завтра выложу обновление. Некоторые замечания из сообщений выше учел еще раньше - размеры будут в миллиметрах, файл скачивается в нормальном для печати размере. Сейчас произошел небольшой затык с тем, чтобы изменить разрешение с 72 ppi на нормальное для принтера - именно циферку-метатег в результирующем файле, подсказывающую принтеру правильный масштаб печати.

Edited by soulmare

Share this post


Link to post
Share on other sites
В 9/30/2017 в 21:56, 1YHAIhwx сказал:

 

Цитата

шкалы с нелинейным изменением

Увеличивать угол не линейно, но логарифмически?

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

 

ampermetry-i-voltmetry-e365-2.jpg

Edited by soulmare
уменьшение фото

Share this post


Link to post
Share on other sites

Эту нелинейность пытаются конструктивно компенсировать, поэтому вывести универсальную формулу расчета для таких шкал вряд ли получится.

Цитата

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

 

Share this post


Link to post
Share on other sites

Конструктор шкалы прибора - первая полноценная версия

Только что выложил 2-ю (0.2) версию на сайт, доступна по адресу http://shopcms-moduli.com/scale_constructor/ . Исходный код во вложении. Хотел было вообще отказаться от PHP, чтобы можно было сохранить страницу у себя на компьютере и пользоваться программой без доступа к интернет. Но не вышло - PHP нужен для прописки в файле правильного разрешения при печати. Кстати, у меня дома не все программы берут к сведению значение разрешения из файла - иногда приходится вручную в диалоге печати указывать ширину изображения в миллиметрах. Поэтому при скачивании файла он именуется в виде "scale_ШИРИНАxВЫСОТА_РАЗРЕШЕНИЕ.png" - чтобы из названия файла было понятно, как его печатать.

Программа тестировалась в браузерах Chrome и Firefox. Буду признателен за сообщения об ошибках - кроме описания ошибки желательно присылать ссылку на страницу, где была ошибка, и название-версию браузера. Также приветствуются любая помощь, предложения и критика :)

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

scale_constructor.v0.2.zip

scr_scale_constructor_v0.2_resized.png

 

Известные проблемы:

Скрытый текст

- размещение изображения не по центру по вертикали при предварительном просмотре

- автомасштаб не всегда полностью умещает изображение в область просмотра

- разный размер свободных полей по вертикали и горизонтали, также иногда обрезаются элементы изображения (не нужные для печати, впрочем)

- особо большие файлы не скачиваются, выводя белый экран

 

Edited by soulmare
список багов

Share this post


Link to post
Share on other sites

А вот насчет квадратичной характеристики шкалы - не знал, это интересно. Универсальную-то формулу не придумаешь, но вполне можно сделать гибко настраиваемую - ведь подвинуть или искривить график, это лишь значит изменить в каком-то месте формулы коэффициент. На самом деле, шкала прибора из фотографии которую я прикреплял, очень похожа на график y=x2 , разве что может не симметричная.

sq_graph.png

Share this post


Link to post
Share on other sites

Уже лучше.

Quote

Эту нелинейность пытаются конструктивно компенсировать, поэтому вывести универсальную формулу расчета для таких шкал вряд ли получится.

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

Сценарий: пользователь имеет непроградуированный прибор и хочет для него нелинейную шкалу. Выполняет измерение прибором, записывает угол, переносит в редактор.

Quote

Но не вышло - PHP нужен для прописки в файле правильного разрешения при печати

Можно не записывать разрешение в заголовок png, но отталкиваться от размера бумаги формата А4 и стандартных разрешений принтеров. Кроме того, для работы с png уже есть либа png.js, не знаю, может ли она в правку заголовков, правда. Но это привяжет приложение к формату png.

Багрепорты:

- подвал поехал, см. рисунок. basement.png.3bd376ca685483ddb8ddf302cacfea36.png (Firefox 54.0)

Фич-реквесты:

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

Share this post


Link to post
Share on other sites
14 часа назад, 1YHAIhwx сказал:

Можно не записывать разрешение в заголовок png, но отталкиваться от размера бумаги формата А4 и стандартных разрешений принтеров.

К сожалению, при выводе такого "сырого" изображения, принтер всегда решает его печатать в разрешении 72ppi, что есть очень плохо. И даже сам уменьшает это число, если картинка не влезает в формат бумаги. Если же генерировать изображение, исходя из 72ppi - оно будет печататься в правильном размере, но нечетко, кубиками - потому что нужно хотя бы 300ppi для нормального качества.

Технические проблемы (JavaScript, PHP, PNG):

Скрытый текст

Размеры результирующей картинки в пикселах вычисляются скриптом, исходя из требуемого при печати разрешения, например 300ppi. Принтер не находит в метатегах файла ничего о его физическом размере в миллиметрах, потому что встроенная JavaScript функция HTMLCanvasElement.toDataURL(), генерирующая бинарный код в формате PNG (единственный возможный формат), не прописывает такой информации в файле - ни физических размеров, ни разрешения - ничего. И печатает файл в разрешении 72ppi, если только позволяет размер бумаги.

Начитавшись инфы по теме, было решено отправлять файл на сервер, где PHP пропишет нужный заголовок (разрешение=300ppi), и отправит файл назад юзеру, что и было сделано. Но оказалось, что 4 строчками кода можно обойтись только при наличии на хостинге библиотеки ImageMagick, или же PHP версии >= 7.2.0, чего в моем случае не оказалось. Поэтому пришлось разбираться в том, как устроены заголовки PNG и решить проблему "в лоб" - сгенерировать двоичный код метатега pHYs (информация о физическом размере картинки), и вставить его в нужном месте файла. Обычно на хостингах действуют строгие ограничения на размер загружаемых файлов и используемую память, которые не всегда можно изменить в скрипте. Из-за этого получаем белый экран при попытке отправить на сервер очень большое изображение.

Указанная библиотека png.js, насколько я понял, не умеет менять метаданные изображения, и занимается лишь перекодированием файла в массив пикселей. С другой стороны, в ее коде есть разбор некоторых заголовков PNG. И это меня натолкнуло на идею: перевести процедуру вставки метатега с PHP на JavaScript "строка в строку" - и тогда абсолютно все будет делаться в браузере, и не понадобится наличия соединения с интернет для работы с программой. Предстоит проверить, реализуемо ли это на практике, ведь обрабатываемое изображение может иметь размер в несколько мегабайт.

 

Edited by soulmare

Share this post


Link to post
Share on other sites

Представляю новую версию данной  программы для создания шкал аналоговых приборов: https://soulmare.github.io/scale_master/

Возможности:

  • неограниченное количество шкал для одной стрелки
  • настройка делений и меток как группами, так и по отдельности
  • выделение секторов цветом
  • изменение положения, прозрачности, цвета и других параметров элементов изображения
  • наложение растровых изображений - для работы по сканированному шаблону, или декорации шкалы готовыми шильдиками
  • экспорт шкалы в SVG
  • загрузка родных SVG файлов для редактирования
  • экспорт в PNG для печати
  • библиотека примеров

Требования: достаточно новая версия браузера Chrome или Firefox. Пока что не тестировались Internet Explorer и Opera.

Краткая инструкция:

Скрытый текст

Через меню можно открыть один из примеров и доработать его под собственные нужды. Или же, создать новую шкалу с чистого листа, добавляя новые элементы с помощью кнопки "Создать объект" на левой панели.

Интерфейс программы напоминает векторные графические редакторы. Слева находится список объектов с кнопками для управления ими. Порядок объектов в списке влияет на их перекрытие при наложении друг на друга. При выборе объекта вокруг него появляется рамка, а справа отображается список свойств. Если рабочая область в фокусе, стрелки клавиатуры двигают объект. Изменение масштаба - прокруткой колесика при зажатой клавише Ctrl.

Готовую шкалу можно скачать в удобном формате. SVG подходит, если изображение потом нужно загрузить в векторный графический редактор для доработки. Только этот формат является родным для программы, и такой файл можно будет в нее снова загрузить для редактирвоания. PNG подходит для печати или обработки растровыми редакторами. Чтобы распечатать шкалу в соответствии с выбранным размером, нужно чтобы совпадало разрешение экспорта с разрешением при печати. Это может быть, например, 300ppi (dpi). Если изображение занимает весь лист, возможно понадобится убрать поля для правильного масштаба.

 

 

 

scale_master_0.3.png

Edited by soulmare

Share this post


Link to post
Share on other sites

Вышла новая 0.4 версия конструктора шкал. Самое главное, что добавилось - это редактирование шкалы мышкой, перетаскиванием делений и других объектов.

Подробнее смотрите в видео примерах:

1. Самая простая шкала

2. Простая шкала по шаблону (скану или фото)

3. Шкала с неравномерно распределенными делениями, на примере амперметра

Полный список изменений в новой версии:

Скрытый текст

        ГЛАВНЫЕ ИЗМЕНЕНИЯ
    - Редактирование и перемещение элементов перетягиванием мышкой.
    - Настройка углов делений мышкой или изменением цифрового параметра, с автоматическим распределением соседних незакрепленных делений.
        ОСТАЛЬНЫЕ ИЗМЕНЕНИЯ
    - Выделение основных делений 2 и 3 уровня - длиной, толщиной и цветом.
    - Параметр "Экспонента" для настройки "квадратического" распределений делений.
    - Новые примеры со скриншотами и объяснениями принципов работы программы.
    - Кроссбраузерность: Chrome/Firefox/Opera
    - Отображение вспомогательных осей при выборе объектов.
    - Параметр "Постоянный угол" с тремя режимами (позволяет делать горизонтальный текст меток, вертикальные деления).
    - Возможность создавать угловые шкалы (например, повернутые на 90 градусов).
    - Вставка специальных символов в текстовые метки (например: Ω, ∞).

 

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...

  • Similar Content

    • By Alexey_Volgin
      Попадались различные схемы явно созданные в одном редакторе. Быстрый поиск по гуглу ничего не дал.




    • By Vladislav7
      Добрый день.
       
      Необходимо разработать схему для изготовления печатной платы с установленным микроконтроллером (подобрать подходящий), также подобрать все электронные компоненты и написать программу.
      Цель следующая:
      Необходимо с помощью одного контроллера управлять двумя цепями состоящими из 15 светодиодов (мощность одного = 0,1 Вт) каждая, диоды одноцветные.
      При включении одной кнопки начинает мигать одна цепь. При включении второй - вторая. Возможность одновременного включения кнопок.
      Необходим датчик индикации на кнопке, который будет мигать в такт светодиодной цепи. Принцип кнопки как у аварийной сигнализации.
       
      Спасибо.
    • By 5670721
      Доброго времени!
      Для Ардуино мне необходимо написать программу управления тремя сервоприводами и выводом на дисплей абсолютного угла наклона по одной оси.
      Два сервопривода должны управляться потенциометрами, третий кнопкой (два положения сервопривода).
      Ну и помочь мне все это спаять ) Поэтому желательно, чтобы Вы находились в Москве или Подмосковье.
      Так же я слышал про накопление ошибки при работе гироскопа-акселерометра, очень желательно убрать эту проблему.
      Если, конечно, Вы не предложите более подходящий прибор для измерения угла наклона.
      Компоненты все куплены.
    • By dbokov
      Всем привет.
      С учётом разрастающейся мастерской всё труднее искать нужные детали, а также помнить, что в ней есть, а чего нет.
      Задумался о системе учёта деталей, материалов, инструментов.
      На просторах интернета нашёл программу учета деталей (начинайте с 10стр) http://monitor.espec.ws/section13/topic25350.html
      Мне очень понравилась - нет ничего лишнего, не перегружена, всё понятно, бесплатна (ну по желанию можно отблагодарить). Разработчик очень адекватно реагирует на пожелания пользователей.
      Давно пользуюсь данной программой, очень доволен.
    • By Rage Steel
      Моя цель — познакомиться с ламповыми однотактами путем сборки радиоконструктора. Бюджет 20к руб.
      Среди китайцев на Ali выбрал самый мощный (из простых однотактов) вариант на KT88, гулять так гулять.

      Мне понравилось, что тут, в отличии от аналогичных конструкторов, все трансформаторы и дроссель расположены сверху. И кенотрон подальше от входных цепей отодвинут.
      Вот так выглядят прилагаемые к наборы трансформаторы и дроссель:

      Силовой трансформатор на 250 Вт, вторички:
      350-0-350В, 0.2А — для двухполупериодного выпрямителя анодного; 3.15-0-3.15В, 3А — это похоже для накала драйверных ламп; 6.3В 3А ×2 — это видимо для накала выходных ламп; 5В 3А — накал кенотрона; 12В 2А — не уверен что эта обмотка задействована; Я так понимаю при переводе питания на диодный выпрямитель, обмотку накала кенотрона можно задействовать для питания накала ламп постоянкой, если сделать мост из диодов Шотки.
      К сожалению схему без оплаты китайский продавец не хочет давать, но не думаю там наверняка что-то более-менее стандартное. Есть только вид подвала:

      Опыт сбора китайских радиоконструкторов имеется, конструкции на лампах тоже собирал (российский лаконик - усилитель для наушников).
      При сборке сделаю общую шину из обрезков ВВГ 1.5 или 2.5 квадрата, постараюсь обойтись без монтажной панельки.
      Чтобы упростить принятие решения накидал список плюсов/минусов этого решения.
      Плюсы:
      Готовый набор «всё в одном» — есть все детали плюс корпус, т.е. легко получить законченное устройство; ‎Внешний вид готового изделия, да он китайский нарядный, но даже такое повторить у меня займёт немало времени, которого вечно не хватает; Крышки для ТВЗ; ‎Навесной монтаж; ‎В некотором виде заработает и без настройки, т.е. схема должна быть отработанная, ибо китайцы вряд-ли захотят возвратов или негативных отзывов по причине «не заработало»; ‎Хорошая заготовка для экспериментов; Минусы:
      Непредсказуемое качество китайских комплектующих, в некотором роде это нивелируется простотой замены компонентов; ‎Анодная вторичка под двухполупериодный выпрямитель, лучше конечно если бы это были отдельные обмотки, чтобы можно было применить мостовой выпрямитель; ‎Нет решётки для ламп; ‎Кенотронный выпрямитель, как по мне — так это ламповость ради ламповости, но это легко поправимо; Всего один дроссель в анодном питании — с разделением каналов будут проблемы, но, на мой взгляд «электронные дросселя»  на транзисторах исправят эту ситуацию; ‎Силовой трансформатор хотелось бы в виде ТОРа; Интересно, это я один такой лентяй, который хочет получить и удовольствие от сборки и отсутствие необходимости искать где и что покомпонентно покупать.
      Понятно что это будет не суперкачественный усилитель. Даже после настройки. Без замены деталей достойного результата все равно не получить. Но зато в одном наборе получаем сразу все детали, да ещё и с корпусом. Бери и делай!
      Собственно вопрос: брать такой конструктор или может что-нибудь другое посоветуете?
      Нашёл некий аналог у отечественного производителя — SPARTA SE Premium от Золотой Середины:

      Но цена его за 33к рублей уже получится. И к этому ещё прибавить кожух трансформатора, лицевую панель и ручку регулятора громкости и толкатель кнопки выключения. Уже около 36к получится. Плюс доставка. Конечно в плюсах больше доверия к качеству компонентов, два кенотрона (видимо каждый на свой канал, но при этом почему-то один дроссель). Хотелось бы конечно полностью навесного монтажа, но тут блоки питания на платах собираются.
×
×
  • Create New...