Сообщество программистов Autodesk в СНГ
ADN Club => JavaScript и web-программирование для ПО Autodesk => Тема начата: Андрей Бушман от 24-11-2013, 22:27:55
-
Доброго времени суток.
- AutoCAD 2014 x86\x64 SP1 Enu
Насколько я понял из прочитанного по JavaScript API, его можно использовать в том числе и как замену DCL, создавая HTML-диалоговые окна, доступные в AutoLISP\Visual LISP. Если я не прав - прошу поправить меня, но если всё же прав, то интересно было бы глянуть на пример, демонстрирующий то, о чём я спрашиваю.
Этот же вопрос интересует и применительно к .NET API - можно ли в нём использовать HTML-странички в качестве диалоговых окон (если "да", то пример)?
Спасибо.
-
Из 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
-
Из AutoLISP/VisualLISP можно вызвать HTML'евское диалоговое окно, но чтобы оно "работало" нужно, чтобы оно содержало JS-скрипты, т.е. дальше работа пойдёт уже не при помощи lisp, а при помощи JS: showhtmlmodalwindow
Об этом я в курсе. Меня интересует, как результат пользовательских манипулиций, выполненных в таком окне и обработанный кодом JavaScript, передаётся в код написанный на LISP или .NET...
Качаю архив: 180 Мб - неслабо так примеров (надеюсь, что там исходники, а не получасовое видео на английском без субтитров)... :)
-
Меня интересует, как результат пользовательских манипулиций, выполненных в таком окне и обработанный кодом JavaScript, передаётся в код написанный на LISP или .NET...
Как я понял результат никуда не передается, особенно в lisp. Он передаётся в JavaScript, из которого ты можешь вызвать ObjectARX/.NET-функции.
-
Как я понял результат никуда не передается, особенно в 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) и блокируется доступ по ссылкам на его темы? Полагаю, что это ошибка в настройках, выполненных администратором, хотя могу и ошибаться...
-
Вы не в курсе, планируется ли для LISP добавление функционала по работе с не модальными HTML окнами, или же он отсутствует по каким-то объективным причинам?
Такова природа AutoLisp/VisualLisp, что он не может работать с немодальными окнами, так как доступ к немодальным окнам осуществляется из контекста приложения, а AutoLisp/VisualLisp может работать только в контексте документа.
Полагаю, что это ошибка в настройках, выполненных администратором, хотя могу и ошибаться...
Правильно полагаешь. Исправил.
-
Такова природа AutoLisp/VisualLisp, что он не может работать с немодальными окнами, так как доступ к немодальным окнам осуществляется из контекста приложения
Спасибо.