A.Kudrjashov Posted November 8, 2019 Report Share Posted November 8, 2019 14 часов назад, Robink сказал: В VBA для этого есть Collection насколько помню nanoSoft говорит не о VBA, которое у Autodesk запускается непосредственно из AutoCAD, а о JScript и VBScript - старые средства автоматизации до PowerShell. >wscript Test.js | Test.vbs Для отладки: >wscript //X Test.js | Test.vbs И здесь все очень печально .... Спойлер Quote Link to comment Share on other sites More sharing options...
doctorraz Posted November 8, 2019 Report Share Posted November 8, 2019 (edited) 55 минут назад, A.Kudrjashov сказал: nanoSoft говорит не о VBA, которое у Autodesk запускается непосредственно из AutoCAD не надо глупостей.. и в нане и в папе есть объектная модель (ActiveX), в нашем случае VBA это всего лишь одно из средств доступа к ней иже с VBS, JS, NET и т.д. через COM интерфейс Более того в АК VBA Enabler не встроен по умолчанию и для доступа к объектной модели его наличие не требуется. Выше уважаемый Robink верно заметил, что отладку VBS для наны прекрасно можно делать в VBA из пакета офис. ------------- то что VBA/VBS изрядно устарел и есть более подвинутые средства разработки никто не спорит, но для большинства задач VBA хватает вполне, а легкость освоения и доступность перевешивает все остальные недостатки. ЗЫ по большому счету отличие VBA(VB6) vs VBS лишь в отсутствии пользовательских форм в последнем, в остальном функционал идентичен Edited November 8, 2019 by doctorraz 1 1 Quote Link to comment Share on other sites More sharing options...
A.Kudrjashov Posted November 8, 2019 Report Share Posted November 8, 2019 (edited) 22 минуты назад, doctorraz сказал: не надо глупостей.. и в нане и в папе есть объектная модель (ActiveX), в нашем случае VBA это всего лишь одно из средств доступа к ней иже с VBS, JS, NET и т.д. через COM интерфейс Более того в АК VBA Enabler не встроен по умолчанию и для доступа к объектной модели его наличие не требуется. Выше уважаемый Robink верно заметил, что отладку VBS для наны прекрасно можно делать в VBA из пакета офис. ------------- то что VBA/VBS изрядно устарел и есть более подвинутые средства разработки никто не спорит, но для большинства задач VBA хватает вполне, а легкость освоения и доступность перевешивает все остальные недостатки. ЗЫ по большому счету отличие VBA(VB6) vs VBS лишь в отсутствии пользовательских форм в последнем, в остальном функционал идентичен А как можно сделать отладку VBS в VBA, если в среде VBA вы свойства получаете, а при непосредственном запуске VBS не получаете ? Какой смысл в такой отладке ? Отлаживать надо в той среде, в которой будет выполняться скрипт. А VBS/JS ориентированы на исполнение из командной строки. Разговор начался именно с невозможности получить свойства того, что уже создано, из JScript. добавлено через 4 минут Edited November 8, 2019 by A.Kudrjashov Quote Link to comment Share on other sites More sharing options...
doctorraz Posted November 8, 2019 Report Share Posted November 8, 2019 1 минуту назад, A.Kudrjashov сказал: А как можно сделать отладку VBS в VBA, если в среде VBA вы свойства получаете, а при непосредственном запуске VBS не получаете ? а это я кому писал? 21 минуту назад, doctorraz сказал: по большому счету отличие VBA(VB6) vs VBS лишь в отсутствии пользовательских форм в последнем, в остальном функционал идентичен этак мы щас договоримся, что если я программу в VB6 студии отладил и скомпилировал, то функционал у скомпилированной изменился. 3 минуты назад, A.Kudrjashov сказал: Разговор начался именно с невозможности получить свойства того, что уже создано из JScript. да ладно 1 час назад, A.Kudrjashov сказал: а о JScript и VBScript - старые средства автоматизации до PowerShell. разговор начался так ---------------- за яву не скажу, но для VBS есть отладчики, достаточно перевернуть страницу назад и начать читать, а не только писать Quote Link to comment Share on other sites More sharing options...
A.Kudrjashov Posted November 8, 2019 Report Share Posted November 8, 2019 Вопрос:Как запустить необходимое nanoCAD.Application "по умолчанию" ? Вариант Autodesk (запускается последнее открытое приложение) не проходит. Библиотека подключена из чистого nanoCAD, а запускается Геоника. Quote Link to comment Share on other sites More sharing options...
doctorraz Posted November 8, 2019 Report Share Posted November 8, 2019 (edited) 10 минут назад, A.Kudrjashov сказал: Вариант Autodesk (запускается последнее открытое приложение) не проходит. конечно, потому что папины приложения при запуске себя регистрируют каждый раз, а приложения неклона регистрируются один раз при инсталяции... соответственно запускается не последнее запущенное, а последнее установленное наноприложение. Разработчики в курсе, но и так сойдет. Имха дальше будет еще веселее с запуском, это когда нано придет к одной установленной платформе и куче навесок поверх нее запускаемой либо с ключами либо костыликом типа XX_Интегратор PS и это .. добавление библиотек в референсы по большому счету ни на, что не влияет (кроме удобства работы в редакторе (подсказки)) можно подключить в проект например McCOM от наноСПДС и подцепиться к СПДС в АК и наоборот, а можно никакие дллки не подключать и все равно все будет работать))) Edited November 8, 2019 by doctorraz Quote Link to comment Share on other sites More sharing options...
A.Kudrjashov Posted November 8, 2019 Report Share Posted November 8, 2019 9 минут назад, doctorraz сказал: конечно, потому что папины приложения при запуске себя регистрируют каждый раз, а приложения неклона регистрируются один раз при инсталяции... соответственно запускается не последнее запущенное, а последнее установленное наноприложение. Разработчики в курсе, но и так сойдет. Имха дальше будет еще веселее с запуском, это когда нано придет к одной установленной платформе и куче навесок поверх нее запускаемой либо с ключами либо костыликом типа XX_Интегратор PS и это .. добавление библиотек в референсы по большому счету ни на, что не влияет (кроме удобства работы в редакторе (подсказки)) можно подключить в проект например McCOM от наноСПДС и подцепиться к СПДС в АК и наоборот, а можно никакие дллки не подключать и все равно все будет работать))) Геоника - не последнее установленное приложение. Quote Link to comment Share on other sites More sharing options...
Robink Posted November 8, 2019 Report Share Posted November 8, 2019 36 минут назад, A.Kudrjashov сказал: Вопрос:Как запустить необходимое nanoCAD.Application "по умолчанию" ? Вариант Autodesk (запускается последнее открытое приложение) не проходит. Библиотека подключена из чистого nanoCAD, а запускается Геоника. https://github.com/RobinKzn/CustomAutosaveNanoCad/blob/master/autosave2/GetAcadApplication.cs Перед тем как получить nanocad.application я запускаю регистрацию Ncad.exe /register из кода. Пример на .NET выше. Пример как запустить регистрацию из VBA: https://visio.getbb.ru/viewtopic.php?p=4362#p4362 3 Quote Link to comment Share on other sites More sharing options...
Robink Posted November 8, 2019 Report Share Posted November 8, 2019 58 минут назад, doctorraz сказал: конечно, потому что папины приложения при запуске себя регистрируют каждый раз, а приложения неклона регистрируются один раз при инсталяции... соответственно запускается не последнее запущенное, а последнее установленное наноприложение. Разработчики в курсе, но и так сойдет. Имха дальше будет еще веселее с запуском, это когда нано придет к одной установленной платформе и куче навесок поверх нее запускаемой либо с ключами либо костыликом типа XX_Интегратор PS и это .. добавление библиотек в референсы по большому счету ни на, что не влияет (кроме удобства работы в редакторе (подсказки)) можно подключить в проект например McCOM от наноСПДС и подцепиться к СПДС в АК и наоборот, а можно никакие дллки не подключать и все равно все будет работать))) Может кстати где то приписать в конфиге, чтобы при старте проходила регистация. Quote Link to comment Share on other sites More sharing options...
A.Kudrjashov Posted November 8, 2019 Report Share Posted November 8, 2019 19 минут назад, Robink сказал: https://github.com/RobinKzn/CustomAutosaveNanoCad/blob/master/autosave2/GetAcadApplication.cs Перед тем как получить nanocad.application я запускаю регистрацию Ncad.exe /register из кода. Пример на .NET выше. Пример как запустить регистрацию из VBA: https://visio.getbb.ru/viewtopic.php?p=4362#p4362 Спасибо. Все отлично сработало. Quote Link to comment Share on other sites More sharing options...
doctorraz Posted November 8, 2019 Report Share Posted November 8, 2019 3 минуты назад, Robink сказал: Может кстати где то приписать в конфиге, чтобы при старте проходила регистация. имха разработчики наны этим должны заниматься... Quote Link to comment Share on other sites More sharing options...
A.Kudrjashov Posted November 8, 2019 Report Share Posted November 8, 2019 1 час назад, Robink сказал: Может кстати где то приписать в конфиге, чтобы при старте проходила регистация. В config-файлах вроде как только настройка среды. Аналога startup script Autodesk не нашел. Как вариант, можно сделать соответствующий ярлык и положить его куда-нибудь в сеть, чтобы, если требуется приложение "по умолчанию", запустил один раз и дальше спокойно работаешь. Установка в организациях по путям, как правило унифицирована. Но, меня интересовал случай запуска nanoCAD из внешнего окружения, в частности, когда требуется обработать много файлов, но здесь вполне достаточно >ncad.exe /register. Единственное, для полноты картины, надо бы уточнить куда именно записывается данная регистрация ... Quote Link to comment Share on other sites More sharing options...
doctorraz Posted November 8, 2019 Report Share Posted November 8, 2019 26 минут назад, A.Kudrjashov сказал: Как вариант, можно сделать соответствующий ярлык и положить его куда-нибудь в сеть, чтобы, если требуется приложение "по умолчанию", запустил один раз и дальше спокойно работаешь. Установка в организациях по путям, как правило унифицирована. батник в две строчки первой строчкой регистрация, второй собственно запуск нужного приложения (но можно наоборот) на батник ярлык, и этими ярлыками меняешь родные наноярлыки соотв приложений 1 Quote Link to comment Share on other sites More sharing options...
doctorraz Posted November 8, 2019 Report Share Posted November 8, 2019 но из собственного приложения можно сделать значительно изящнее, дабы не напрягать простого пользователя, для которого что BAT, что ватт одинаково эфемерное понятие Quote Link to comment Share on other sites More sharing options...
A.Kudrjashov Posted November 8, 2019 Report Share Posted November 8, 2019 1 час назад, A.Kudrjashov сказал: В config-файлах вроде как только настройка среды. Аналога startup script Autodesk не нашел. Как вариант, можно сделать соответствующий ярлык и положить его куда-нибудь в сеть, чтобы, если требуется приложение "по умолчанию", запустил один раз и дальше спокойно работаешь. Установка в организациях по путям, как правило унифицирована. Но, меня интересовал случай запуска nanoCAD из внешнего окружения, в частности, когда требуется обработать много файлов, но здесь вполне достаточно >ncad.exe /register. Единственное, для полноты картины, надо бы уточнить куда именно записывается данная регистрация ... Информация о регистрации приложения nanoCAD в Реестре. 1. Регистрация класса nanoCAD.Application: Windows Registry Editor Version 5.00 [HKEY_USERS\S-1-5-21-1444282386-3698927227-3063026589-2620_Classes\nanoCAD.Application\CLSID] @="{6F85631A-A9BB-46C8-85AB-B265B603C5F2}" S-1-5-21-1444282386-3698927227-3063026589-2620 - SID текущего пользователя. Можно получить через PowerShell:PS>Add-Type -AssemblyName System.DirectoryServices.AccountManagement PS>[System.DirectoryServices.AccountManagement.UserPrincipal]::Current 2. Информация о текущем зарегистрированном приложении nanoCAD. Windows Registry Editor Version 5.00 [HKEY_USERS\S-1-5-21-1444282386-3698927227-3063026589-2620_Classes\CLSID\{6F85631A-A9BB-46C8-85AB-B265B603C5F2}\LocalServer32] @="d:\\Program Files\\Nanosoft\\nanoCAD x64 Plus 11.0\\nCad.exe" Можно считать информацию запомнить, восстановить, предложить выбор ... по вкусу. 2 Quote Link to comment Share on other sites More sharing options...
doctorraz Posted November 8, 2019 Report Share Posted November 8, 2019 4 минуты назад, A.Kudrjashov сказал: Можно считать информацию запомнить, восстановить, предложить выбор ... по вкусу подозреваю, что на разных машинах и даже разных пользователей одной машины GUIDы веток и ключей будут отличаться имха все жэж проще перерегистрировать при необходимости на нужное Quote Link to comment Share on other sites More sharing options...
Robink Posted November 8, 2019 Report Share Posted November 8, 2019 Начиная с 7 версии можно получить nanocad.application через .NET, способом не зависящим от регистрации COM сервера https://github.com/RobinKzn/CustomAutosaveNanoCad/blob/master/autosave7x32/GetAcadApplication.cs 3 Quote Link to comment Share on other sites More sharing options...
A.Kudrjashov Posted November 8, 2019 Report Share Posted November 8, 2019 13 минут назад, doctorraz сказал: подозреваю, что на разных машинах и даже разных пользователей одной машины GUIDы веток и ключей будут отличаться имха все жэж проще перерегистрировать при необходимости на нужное Если SID пользователя известен, то почему они должны различаться ? По SID получаете Class_ID, по Class_ID получаете nanoCAD.Apllication. nanoCAD, когда запускается именно этим путем и идет. Проверено через Process Monitor. 1 Quote Link to comment Share on other sites More sharing options...
Олег К Posted May 17, 2022 Report Share Posted May 17, 2022 Оживлю веточку) В примерах нашел связку LISP+DCL. Лисп запускает диалоговое окно, заполняем, возвращает назад. А можно ли связку сделать JavaScript + DCL? Не нагуглил. Ну и сразу может вдогонку пример какой-нибудь helloworld? Quote Link to comment Share on other sites More sharing options...
dows Posted May 17, 2022 Report Share Posted May 17, 2022 Ссылка на SDK к nanoCAD 22.0https://disk.yandex.ru/d/IVuaeVvx8Sig4A Там есть helloworld Quote Link to comment Share on other sites More sharing options...
Олег К Posted May 17, 2022 Report Share Posted May 17, 2022 (edited) @dows Да, спасибо, посмотрел. Там как раз тот helloworld, который вместе с nanoCAD идет. Там есть star.js, где звездочка рисуется и есть пара файлов lisp+dcl, которые как раз работают вместе запуская диалоговое окно (dcl) при запуске lispa. Там примерно: ; load DCL file (setq dcl (load_dialog "helloworld.dcl")) и т.д. Вот тут понятно, что вызывают этот файл, где диалоговое окно описано. А есть ли примеры, где JavaScript вызывает файл диалогового окна и потом обрабатывает все и выдает результат обратно в диалоговое окно? Вот там есть пример еще очень хороший sindialog.lsp + sindialog.dcl. Там прям здорово. Лисп открывает диалог, вводишь значение угла, жмешь рассчитать здесь же в диалоге и здесь же результат. Такое реально выполнить в связке JavaScript + dcl? Edited May 17, 2022 by Олег К Quote Link to comment Share on other sites More sharing options...
MCAD Posted May 18, 2022 Report Share Posted May 18, 2022 15 часов назад, Олег К сказал: А есть ли примеры, где JavaScript вызывает файл диалогового окна и потом обрабатывает все и выдает результат обратно в диалоговое окно? Это не вы спрашивали про выноску с обработкой условий Да/Нет с диалогом: 1 Quote Link to comment Share on other sites More sharing options...
ISL Posted May 18, 2022 Report Share Posted May 18, 2022 Чем женить JScript и DCL, не проще ли на C# окошко соорудить? Средства разработки тут куда удобней. Quote Link to comment Share on other sites More sharing options...
dows Posted May 19, 2022 Report Share Posted May 19, 2022 я тоже не очень понял зачем именно JScript и DCL увязывать друг с другом... Quote Link to comment Share on other sites More sharing options...
Олег К Posted May 19, 2022 Report Share Posted May 19, 2022 2 минуты назад, dows сказал: я тоже не очень понял зачем именно JScript и DCL увязывать друг с другом... Я новичок же) Знаю немного питон. Вот увидел JScript и решил что это более перспективно, чем lisp, поэтому быстренько прошелся по мини-курсу для понимания синтаксиса. Кроме того JScript еще много где пригодиться может. Потому вот, как написал выше, прошелся по мини-курсу и, так скажем, поверхностно разобрался. Разобрался с построением звездочки из примера. Теперь захотелось свое написать, но хочется с какими-то диалогами. Потому и спросил можно ли это в целом сделать, но, видимо, придется еще по лиспу пройтись) Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.