Сообщество программистов Autodesk в СНГ

ADN Club => JavaScript и web-программирование для ПО Autodesk => Тема начата: Андрей Бушман от 24-11-2013, 22:27:55

Название: HTML диалоги вместо DCL
Отправлено: Андрей Бушман от 24-11-2013, 22:27:55
Доброго времени суток.

- AutoCAD 2014 x86\x64 SP1 Enu

Насколько я понял из прочитанного по JavaScript API, его можно использовать в том числе и как замену DCL, создавая HTML-диалоговые окна, доступные в AutoLISP\Visual LISP. Если я не прав - прошу поправить меня, но если всё же прав, то интересно было бы глянуть на пример, демонстрирующий то, о чём я спрашиваю.

Этот же вопрос интересует и применительно к .NET API - можно ли в нём использовать HTML-странички в качестве диалоговых окон (если "да", то пример)?

Спасибо.
Название: Re: HTML диалоги вместо DCL
Отправлено: Александр Ривилис от 25-11-2013, 20:14:26
Из AutoLISP/VisualLISP можно вызвать HTML'евское диалоговое окно, но чтобы оно "работало" нужно, чтобы оно содержало JS-скрипты, т.е. дальше работа пойдёт уже не при помощи lisp, а при помощи JS: showhtmlmodalwindow (http://docs.autodesk.com/ACDMAC/2014/ENU/files/GUID-1330BB1E-866E-419A-8AE3-22B0C16E1F06.htm)
В ObjectARX и .NET в принципе аналогично, только имеется возможность использовать callback-функции на C++/.NET
Тут примеры: http://adndevblog.typepad.com/files/autocad_2014_getting_started_with_javascript_api.zip
Название: Re: HTML диалоги вместо DCL
Отправлено: Андрей Бушман от 25-11-2013, 20:39:54
Из AutoLISP/VisualLISP можно вызвать HTML'евское диалоговое окно, но чтобы оно "работало" нужно, чтобы оно содержало JS-скрипты, т.е. дальше работа пойдёт уже не при помощи lisp, а при помощи JS: showhtmlmodalwindow
Об этом я в курсе. Меня интересует, как результат пользовательских манипулиций, выполненных в таком окне и обработанный кодом JavaScript, передаётся в код написанный на LISP или .NET...

Качаю архив: 180 Мб - неслабо так примеров (надеюсь, что там исходники, а не получасовое видео на английском без субтитров)... :)
Название: Re: HTML диалоги вместо DCL
Отправлено: Александр Ривилис от 25-11-2013, 22:04:49
Меня интересует, как результат пользовательских манипулиций, выполненных в таком окне и обработанный кодом JavaScript, передаётся в код написанный на LISP или .NET...
Как я понял результат никуда не передается, особенно в lisp. Он передаётся в JavaScript, из которого ты можешь вызвать ObjectARX/.NET-функции.
Название: Re: HTML диалоги вместо DCL
Отправлено: Андрей Бушман от 26-11-2013, 08:21:03
Как я понял результат никуда не передается, особенно в lisp.

Под словом "передаётся" я, разумеется, подразумевал саму ВОЗМОЖНОСТЬ непосредственной передачи данных из кода JavaScript в код, написанный на ARX\.NET\LISP, путём вызова функций\методов, написанных на этих языках и передачи им этих самых данных в качестве параметров. :)

Он передаётся в JavaScript, из которого ты можешь вызвать ObjectARX/.NET-функции.

Вот... Это и есть ответ (положительный) на тот вопрос, который я задавал :)

Теперь насчёт "не передается, особенно в lisp": я так понимаю, что если из JavaScript можно вызывать ObjectARX/.NET-функции то, скорее всего, так же имеется и возможность вызывать LISP функции, передавая им в качестве параметров результаты, полученные в диалоговом окне (поправьте, если я не прав). Но в бочке мёда есть ложка дёгтя (прочитал здесь (http://adn-cis.org/autocad-2014-dlya-razrabotchikov.html)), надеюсь, что в будущем это исправится:

Цитировать
В LISP: (showHTMLModalWindow) [так он может работать только с модальными окнами]

Вы не в курсе, планируется ли для LISP добавление функционала по работе с не модальными HTML окнами, или же он отсутствует по каким-то объективным причинам?

Кстати, дополнительный вопрос: из каких соображений незарегистрированным пользователям не отображается эта ветка форума (JavaScript) и блокируется доступ по ссылкам на его темы? Полагаю, что это ошибка в настройках, выполненных администратором, хотя могу и ошибаться...
Название: Re: HTML диалоги вместо DCL
Отправлено: Александр Ривилис от 26-11-2013, 09:51:14
Вы не в курсе, планируется ли для LISP добавление функционала по работе с не модальными HTML окнами, или же он отсутствует по каким-то объективным причинам?
Такова природа AutoLisp/VisualLisp, что он не может работать с немодальными окнами, так как доступ к немодальным окнам осуществляется из контекста приложения, а AutoLisp/VisualLisp может работать только в контексте документа.
Полагаю, что это ошибка в настройках, выполненных администратором, хотя могу и ошибаться...
Правильно полагаешь. Исправил.
Название: Re: HTML диалоги вместо DCL
Отправлено: Андрей Бушман от 26-11-2013, 09:57:02
Такова природа AutoLisp/VisualLisp, что он не может работать с немодальными окнами, так как доступ к немодальным окнам осуществляется из контекста приложения
Спасибо.