Клиначёв Николай Васильевич
ICQ: 253060497

Скрипт Jigrein4WEB – online-редактор чертежей
моделей сложных технических систем

Скрипт Jigrein4WEB.js предоставляет новые технические возможности, которыми можно воспользоваться при публикации моделей сложных технических систем в Интернете. Следуя традиционной практике, инженеры и ученые разрабатывают модели в той или иной программе (Jigrein, VisSim, ПК "МВТУ", Simulink). Создают скриншоты фрагментов окна – gif- или png-файлы. Подключают их к html-документу и размещают на web-сервере. Недостаток подобной публикации проявляется в тот момент, когда читатели пытаются воплотить идеи автора в практических решениях. Например, среднестатистическая модель электропривода, состоит из математических блоков в количестве от двух до четырех сотен. Безусловно, в рамках традиционной печатной статьи автор не может привести столь подробный чертеж. А для читателя процедура восстановления чертежа по его десятой части и словесному описанию весьма затруднительна. Другое затруднение – доступность математической программы читателю, которую невозможно установить на компьютер по тем или иным служебным инструкциям предприятия.

Настройка браузера для корректного исполнения скрипта Jigrein4WEB

Jigrein4WEB – это скрипт (файл), который разработан для подключения к html-документу. Исполняется браузером. Результат исполнения – интерактивный чертеж модели (примеры приведены ниже по тексту). Скрипт использует html-тег canvas – полотно для рисования в окне браузера (прикладной интерфейс создания изображений, который рекомендован стандартом HTML5 Canvas 2D Context). Пять браузеров, конкурирующих в секторе персональных компьютеров, успешно визуализируют чертежи. В отдельных случаях требуется их настройка. Необходимо включить внутреннюю поддержку интерфейса прикладного программирования XMLHttpRequest (AJAX), как показано на рисунке 1. Это условие не является обязательным – данные для отрисовки чертежа может содержать html-документ. Если автор, подготавливая публикацию, не предполагает открыть читателям доступ к процедуре запуска модели, то дополнительные запросы к серверу не являются абсолютно необходимыми. Повторим список требований: javascript, canvas, XMLHttpRequest, диалоговое окно web-страницы.

MSIE_XMLHTTP.png, 2,3kB
Рис. 1

Примеры визуализации рабочих файлов программы Jigrein в окне браузера

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

Чертёж 1. Модель системы автоматического регулирования скорости
вентильного двигателя с подчиненным контуром регулирования
электромагнитного момента (Brushless DC Motor control)

Чертёж 2. Модель бездатчикового векторного электропривода на синхронном
двигателе с постоянными магнитами (PMSM Sensorless FOC-control)

Публикация чертежей моделей программы Jigrein в Интернете

Jigrein4WEB-1.4.min.js 20130205, sha:d7e932828669bf3d210bb7f78d82958b67d1410e
Jigrein4WEB-1.4.pack.js 20130205, sha:bd665b86b688ebd039a6fd791b328103fb73492d

Для публикации чертежей моделей технических систем автор должен иметь навык html-верстки. Знание языка программирования JavaScript не требуется. Публиковать модели можно на пассивном web-сервере. Где структура директорий и имена файлов должны соответствовать шаблону представленному на рисунке 2.

Jigrein4WEB_Files.png, 4,2kB
Рис. 2

На рисунке 3 представлен html-документ демонстрирующий способ подключения скрипта Jigrein4WEB и передачи ему аргументов необходимых для инициирования процесса загрузки с сервера xml-файлов содержащих данные для визуализации чертежей.

Jigrein4WEB_HTML.png, 5,6kB
Рис. 3

Красным цветом на рисунках 2 и 3 отмечены позиции редактируемые автором публикации. Следует помнить, что по причинам информационной безопасности интерфейс браузера XMLHttpRequest активирует загрузку xml-файлов исключительно по протоколам http: или https: (если файлы расположены не на web-сервере, а на жестком диске автора (протокол file:), то чертежи визуализироваться не будут). Поэтому предусмотрен альтернативный вариант, когда данные для отрисовки чертежей внедряются в html-документ.

Документ, который вы читаете, соответствует описанному шаблону. Попробуйте отредактировать имя файла в адресной строке браузера и скачать с сервера документ mdl_20120206020.xml. В случае успеха – вы разобрались и можете публиковать собственные модели.

Скрипт Jigrein4WEB поддерживает процедуру создания документов с чертежами, обеспечивая экспорт требуемых данных. Воспользуйтесь горячими клавишами Ctrl+S и ознакомьтесь с результатом – нижняя часть данного документа будет модифицирована. Альтернативная процедура доступна пользователям версии программы Jigrein для платформы NET (Jigrein4NET). Этот вариант более быстрый (исключает операцию копирования / вставки при сохранении). Позволяет запускать и отлаживать модели.

Кроссбраузерные свойства скрипта Jigrein4WEB

Код скрипта Jigrein4WEB создан в соответствии с третьей версией международного стандарта языка программирования JavaScript (ISO/IEC 16262:2011). И удовлетворяет строгому режиму интерпретации кода в браузере (Strict Mode), который был представлен в стандарте ECMA-262: Edition 5.1 (ECMAScript Programming Language Standard). Скрипт Jigrein4WEB использует три интерфейса прикладного программирования. Все запросы к интерфейсам соответствуют требованиям совокупности стандартов HTML5 (HTML Canvas 2D Context, XMLHttpRequest, DOM, DOM Events). Фрагментов кода, которые бы идентифицировали браузер с целью учета особенностей реализации, скрипт Jigrein4WEB не содержит.

17.11.2012

О развитии программы Jigrein на Web-платформе

Web-платформа предполагает разделение программы для математического моделирования технических систем на web-сервис (математическое ядро) и клиентскую часть (графический редактор). Это решение имеет особенности и методические ограничения, которые определены наличием канала удаленного доступа между математическим ядром и серверами визуализации данных на стороне клиента. Ограничения не позволят перевести на web-платформу меньшую часть от уже разработанных моделей (10..20 %).

Другой аспект проекта Jigrein4WEB – строгий отказ от установки на стороне клиента исполняемого кода или байт-кода. Допускается передача исключительно текстовых файлов с исходным JavaScript-кодом интерпретируемым браузером. Для полноценного функционирования редактора чертежей моделей на стороне клиента браузер должен предоставить три интерфейса прикладного программирования: Canvas 2D API, Dialog Window API и Context Menu API. 17.12.2012 совокупность стандартов HTML5 получила фиксированный статус Candidate Recommendation. Первый из упомянутых интерфейсов стандартом определен, нареканий специалистов не вызывает. Работа над проектом Jigrein4WEB выявила лишь одну ошибку. Стандарт не определил способ включения / отключения режима изменения величины зазора для особых пар литер (кернинг шрифта) при рендеринге текста в элементе canvas. Интерфейс "Диалоговое окно web-страницы" стандартами определен в зачаточном состоянии (функция window.showModalDialog). Более 10 лет осуждается специалистами. Подвергается атакам со стороны хакеров, а для защиты привлекает (опрашивает) пользователя. Решить затруднение возможно. Предлагается определить прикладной интерфейс "Универсального диалогового окна web-страницы" строго для типов данных boolean, integer, float и string. А функцию window.showModalDialog вызывать лишь косвенно (после косвенного опроса пользователя) – в качестве мастера заполнения полей ввода "Универсального диалогового окна web-страницы" или через Context Menu API. В отношении последнего из требуемых интерфейсов – Context Menu API – можно констатировать следующий факт. Специалисты интернационального сообщества W3C путают такие вещи как "навигационное меню" сайта и "контекстное меню" приложения web-платформы.

Обозначенные затруднения сдерживают процесс развития моделирующий программы на web-платформе. Проект Jigrein4WEB замораживается до даты следующей фиксации статуса HTML-стандартов, которая запланирована на 17.06.2013 и имеет наименование Proposed Recommendation.

6.02.2013, 26.12.2012