A.Kudrjashov Posted March 11, 2020 Author Report Share Posted March 11, 2020 35 минут назад, EdwardSt сказал: Кстати, может стоить попробовать осуществить запуск из лиспа досовской команды "CMD>hh.exe …". Вроде в акаде такая конструкция была осуществима Это понятно. В крайнем случае можно получить доступ через VBA. Правда там придется для CHM городить MAP и ALIAS. Я пробую понять что именно работает и как-то все становится все более печально. Если функция не работает, то зачем она показана ? В NC20 появились новые функции, которых не было в NC11. Сомнительно, чтобы это было сделано случайно. Видимо, кто-то этим занимался, ставил "галочки" на подключение .... но описания этих функций нет и в помине. Один хороший человек сказал, что нельзя быть САПРовцем и не быть программистом. Похоже, что разработчики nanoCAD с этим категорически не согласны. 49 минут назад, EdwardSt сказал: Не знаю, в этом ли дело, но команда (acad_helpdlg) в справке указана как "externally defined function". Т.е. она не является внутренней командой акада. Команда (help) действительно неопределенна, о чем честно написано в справке по лиспу для нанокада. Это в какой именно Справке ? Quote Link to comment Share on other sites More sharing options...
EdwardSt Posted March 11, 2020 Report Share Posted March 11, 2020 14 минут назад, A.Kudrjashov сказал: Это в какой именно Справке ? Справку по функции (acad_helpdlg) я прочитал тут, в ремарках. Команда (help) отсутствует в справочном файле по нано ncLISP_ref.chm из комплекта для разработки Quote Link to comment Share on other sites More sharing options...
A.Kudrjashov Posted March 11, 2020 Author Report Share Posted March 11, 2020 1 минуту назад, EdwardSt сказал: Справку по функции (acad_helpdlg) я прочитал тут, в ремарках. С AutoCAD все понятно. Там и та и другая функция отлично работают. У (help) есть дополнительный бонус, но я его не проверял. 3 минуты назад, EdwardSt сказал: Команда (help) отсутствует в справочном файле по нано ncLISP_ref.chm из комплекта для разработки Я там тоже смотрел. Является ли отсутствие функции в списке основанием считать ее не реализованной - вопрос ? Quote Link to comment Share on other sites More sharing options...
EdwardSt Posted March 11, 2020 Report Share Posted March 11, 2020 17 минут назад, A.Kudrjashov сказал: Является ли отсутствие функции в списке основанием считать ее не реализованной - вопрос ? Я, конечно, понимаю! Всякое бывает (могли упустить, глюкнул ворд при верстке и т.п.). Но отсутствие в списке однозначно не может быть основанием, что функция реализована))) Хотя... Quote Link to comment Share on other sites More sharing options...
A.Kudrjashov Posted March 16, 2020 Author Report Share Posted March 16, 2020 Выложил скомпилированное описание "Стиля программирования AutoLISP", а также электронные книги и документацию. Яндекс диск: https://yadi.sk/d/5_JWGHtOnsQ_HQ Google Disk: https://drive.google.com/drive/folders/1aJpLsgxlTtT24-do2h2Z3xJ4oEMA6pTG2020-03-16_Стиль программирования AutoLISP.docx 3 Quote Link to comment Share on other sites More sharing options...
A.Kudrjashov Posted March 17, 2020 Author Report Share Posted March 17, 2020 (edited) Так и не нашел нигде описание реализации DCL под nanoCAD ! На сайте утверждается, что все должно быть замечательно, но в реальности не получается. https://www.nanocad.ru/help/comparison/ Спойлер В nanoCAD не распознается :paragraph и :slider. Если первый можно заменить на :column, то второй отсутствует, как таковой. При заполнении fill_image, height воспринимается адекватно, как работает width я так и не понял. Вот, например, заполнение области с height = 1.0, width = 1.0 Спойлер А вот это заполнение области с height = 3.0, width = 10.0 Спойлер Примеры LISP/DCL куцые, без объяснений. P.S. Прикладываю пример. Неработающие строки DCL закомментированы. Пример взят отсюда:https://www.afralisp.net/dialog-control-language/tutorials/dialog-boxes-and-autolisp-part-4.phpsamp8.dcl samp8.lsp Edited March 17, 2020 by A.Kudrjashov 1 Quote Link to comment Share on other sites More sharing options...
ISL Posted March 17, 2020 Report Share Posted March 17, 2020 Реальность, она всегда посложней любой модели будет. Отсутствие поддержки некоторых элементов не означает, что нет поддержки DCL. Присылайте конкретные примеры, поставим в план развития. Quote Link to comment Share on other sites More sharing options...
A.Kudrjashov Posted March 17, 2020 Author Report Share Posted March 17, 2020 15 минут назад, ISL сказал: Реальность, она всегда посложней любой модели будет. Отсутствие поддержки некоторых элементов не означает, что нет поддержки DCL. Присылайте конкретные примеры, поставим в план развития. Примеры, выложил. Quote Link to comment Share on other sites More sharing options...
A.Kudrjashov Posted March 18, 2020 Author Report Share Posted March 18, 2020 (edited) Выложил файл с разнообразными ссылками на информационные ресурсы. Буду периодически обновлять. На Яндекс диске (там места много, опять же импортозамещение ) буду периодически выкладывать коды. Вечером выложу раздел Info с собранными статьями. Яндекс диск: https://yadi.sk/d/5_JWGHtOnsQ_HQ Google Disk: https://drive.google.com/drive/folders/1aJpLsgxlTtT24-do2h2Z3xJ4oEMA6pTGСсылки.xlsx Edited March 18, 2020 by A.Kudrjashov 2 Quote Link to comment Share on other sites More sharing options...
A.Kudrjashov Posted March 23, 2020 Author Report Share Posted March 23, 2020 (edited) 1. Не работают функции vla-startundomark и vla-endundomark. al-undomark.lsp добавлено через 6 минут 2. Для информации. Как выяснилось, под nanoCAD 11 не работает функция vla-getWidth ! Под nanoCAD 20 данная функция работает нормально. В процессе исполнения кода внутри какого-либо скриптового модуля, прерывания процесса не происходит ! Если попытаться протестировать функцию в командной строке, то получаем сообщение об ошибке: "Сервер ActiveX вернул ошибку: Несовпадение типов.". (Ниже выбираем любую полилинию) nanoCAD 20: Спойлер nanoCAD 11: Спойлер Edited March 23, 2020 by A.Kudrjashov Quote Link to comment Share on other sites More sharing options...
A.Kudrjashov Posted March 24, 2020 Author Report Share Posted March 24, 2020 (edited) Поскольку, похоже, есть проблемы с функциональной совместимостью AutoCAD/nanoCAD, а также по версиям, набросал небольшой пул функций получения информации об активном приложении. На данный момент примерно вот так, но я еще не программы обновил: Спойлер Пока не понял как достучаться до "сборки" nanoCAD. GetNCApplicationInfo.xlsx Upd. Добавил функцию выделения имени приложения из Caption GetCurentApplication.lsp Edited March 24, 2020 by A.Kudrjashov 1 Quote Link to comment Share on other sites More sharing options...
A.Kudrjashov Posted March 25, 2020 Author Report Share Posted March 25, 2020 Для информации. Еще обнаруженные расхождения в поведении программ. Ниже приложен небольшой файл формирования DCL диалога Списка. 1. В AutoCAD 2015 все выполняется нормально и результат выглядит следующим образом. Спойлер 2. В nanoCAD 11/20 не работает свойство "alignment=top". Вываливается ошибка выполнения. 3. В nanoCAD 11 кроме этого функция vl-filename-mktemp не понимает в аргументе directory значения nil. Приходится указывать конкретный путь. 4. Ну и в результате в nanoCAD 11/20 получаем при тех же самых расчетах несколько иную картинку ! Спойлер Собственно, файлы:MyDCL_AC.lsp MyDCL_NC11.lsp MyDCL_NC20.lsp Запускаем >(pl:test) Quote Link to comment Share on other sites More sharing options...
MCAD Posted March 26, 2020 Report Share Posted March 26, 2020 10 часов назад, A.Kudrjashov сказал: Ниже приложен небольшой файл формирования DCL диалога Списка. Уж если мы добрались до формирования диалогов, не могу не предложить альтернативный вариант "Пользовательских форм" И чего только не придумают лишь бы СПДС не покупать PS: Про формы можно посмотреть здесь 1 Quote Link to comment Share on other sites More sharing options...
A.Kudrjashov Posted March 26, 2020 Author Report Share Posted March 26, 2020 1 час назад, MCAD сказал: Уж если мы добрались до формирования диалогов, не могу не предложить альтернативный вариант "Пользовательских форм" Да, надо будет обязательно посмотреть. Я сейчас пытаюсь выяснить область применимости стандартной технологии. С учетом того, что обычный пользователь глубоко копать и ловить все эти нестыковки не будет, получается печально. Спотыкаешься на элементарных вещах. Quote Link to comment Share on other sites More sharing options...
MCAD Posted March 26, 2020 Report Share Posted March 26, 2020 21 минуту назад, A.Kudrjashov сказал: Я сейчас пытаюсь выяснить область применимости стандартной технологии Я всё хорошо понимаю и не призываю Вас отказаться от старых наработок и навыков. 21 минуту назад, A.Kudrjashov сказал: Спотыкаешься на элементарных вещах В Lisp'e легко и просто делать простые вещи. Однако требуются определённые навыки. В MechWizard (Мастере объектов) многие операции доступны простому пользователю БЕЗ опыта программирования. 2 Quote Link to comment Share on other sites More sharing options...
A.Kudrjashov Posted April 7, 2020 Author Report Share Posted April 7, 2020 Протестирован модуль PLTOOLS под nanoCAD. Выкладываю первое приближение. Первоисточник здесьhttps://dwg.ru/dnl/607https://www.caduser.ru/forum/topic47618.html Работа модуля проверена под AutoCAD 2015, nanoCAD 11/20. Постарался все максимально прокомментировать. Все команды работают, за исключением "C:PL-P90". Там есть принципиальные проблемы. Добавлена команда построения кратчайшего пути полилинией через центры выделенных объектов "C:CSPath".Логику работы команд пока не менял и не унифицировал, только добился принципиальной работоспособности и обозначил проблемные места.В целом, перечень проблем следующий: В nanoCAD не работает функция (ssget с параметром "_:L"... Вместо нее для nanoCAD подключаем функцию-обертку (nano:ssget-l ...). В дальнейшем необходимо проверить работу функции nano:ssget-l под AutoCAD и, возможно оставить только ее. В nanoCAD 11 проблема с функцией vla-getwidth. Если передаешь инициализированные переменные ширины, то получаешь сообщение, что "значение не может быть приведено к VARIANT с этим типом: 0.0" Если передаешь не инициализированные переменные ширины, то получаешь сообщение, что "Сервер ActiveX вернул ошибку: Несовпадение типов" Если передаешь переменные с nil ширины, то получаешь сообщение, что "Сервер ActiveX вернул ошибку: Parameter not optional" Не корректно отрабатывает команда назначения дополнительной UCS. Проблемные команды:C:R3P - Нарисовать прямоугольник по 3 точкам (В nanoCAD использована команда FRAME)C:PL-P90 - Рисовать перпендикулярными линиями. Команду под nanoCAD надо принципиально переписывать Переменная ORTHOMODE при получении значения (1) не включает режим "ОРТО" ! При включении/отключении режима "ОРТО" значение переменной ORTHOMODE выставляется правильно. Отсутствует системная переменная EXPERT. Обращения к ней закоментированы. В nanoCAD некорректно работает функция vl-cmdf, вместо нее приходится использовать COMMAND. Однако, если команде COMMAND необходимо передать переменное число параметров, то сделать это не получается. К примеру, формирование полилинии с произвольным числом вершин было выполнено не через COMMAND, а через entmake. В nanoCAD некорректно работают функции vla-startundomark и vla-endundomark Их пришлось обойти. Файлы:pltools_nano_2020-04-07_01.lspReadme.txt 4 Quote Link to comment Share on other sites More sharing options...
A.Kudrjashov Posted April 22, 2020 Author Report Share Posted April 22, 2020 Для библиотеки PLTOOLS переделаны иконки. Ранее существующие у меня очень плохо отображаются в nanoCAD. Они сохранены в подкаталоге "\BMP\ARC". Для нормального отображения иконок необходимо проверить настройку путей к .BMP в файле "pltools.cuix.cfg" ! Процедура подключения описана в "2020-04_Readme_NC.txt". Предыдущие Readme также сохранены. Спойлер PLTOOLS_NC.ZIP 3 Quote Link to comment Share on other sites More sharing options...
aerohost Posted May 1, 2020 Report Share Posted May 1, 2020 (edited) В 22.04.2020 в 09:26, A.Kudrjashov сказал: Для библиотеки PLTOOLS переделаны иконки. Ранее существующие у меня очень плохо отображаются в nanoCAD. Они сохранены в подкаталоге "\BMP\ARC". Для нормального отображения иконок необходимо проверить настройку путей к .BMP в файле "pltools.cuix.cfg" ! Процедура подключения описана в "2020-04_Readme_NC.txt". Предыдущие Readme также сохранены. Скриншот (Показать контент) PLTOOLS_NC.ZIP 322 \u043a\u0411 · 1 загрузка Спойлер Как вывести такие же палитры как выше ? что я делаю не так, или их сам набираешь ? Edited May 1, 2020 by aerohost Quote Link to comment Share on other sites More sharing options...
A.Kudrjashov Posted May 3, 2020 Author Report Share Posted May 3, 2020 В 11.03.2020 в 15:33, EdwardSt сказал: PS. Кстати, может стоить попробовать осуществить запуск из лиспа досовской команды "CMD>hh.exe …". Вроде в акаде такая конструкция была осуществима Я посмотрю, но позже, после 11.05. Там просто надо сесть и разобраться. Quote Link to comment Share on other sites More sharing options...
bgrt21 Posted May 31, 2021 Report Share Posted May 31, 2021 Добрый час. Как подключить к версии 20.1? Застрял на шаге "Командой НПИ подгрузить файл pltools.cuix.cfg из папки распаковки" В 20.1 подключение делается, как я понял, по другому. Quote Link to comment Share on other sites More sharing options...
bgrt21 Posted May 31, 2021 Report Share Posted May 31, 2021 В автокаде сообщество придумало очень полезный лисп "Создание группы видовых экранов в одной вкладке листа" К сожалению в нанокад 20.1 не работает. Может подсказать кто то, как сделать, что бы он работал? Lisp прилагаю AVP.LSP Quote Link to comment Share on other sites More sharing options...
A.Kudrjashov Posted May 31, 2021 Author Report Share Posted May 31, 2021 40 минут назад, bgrt21 сказал: Добрый час. Как подключить к версии 20.1? Застрял на шаге "Командой НПИ подгрузить файл pltools.cuix.cfg из папки распаковки" В 20.1 подключение делается, как я понял, по другому. Вроде как всё аналогично. После подключения конфигурационного файла он копируется в профиль пользователя, а после перегрузки nanoCAD появляются панели PLTOOLS. 1. Настройка Общих папок Спойлер 2. Проверка правильности пути к Иконкам Спойлер 3. Автозагрузка PLTOOLS.lsp Спойлер 4. Подключение файла конфигурации (НПИ) Спойлер 5. Панели инструментов Спойлер 1 3 Quote Link to comment Share on other sites More sharing options...
aerohost Posted May 31, 2021 Report Share Posted May 31, 2021 1 час назад, A.Kudrjashov сказал: Вроде как всё аналогично. После подключения конфигурационного файла он копируется в профиль пользователя, а после перегрузки nanoCAD появляются панели PLTOOLS. 1. Настройка Общих папок Настройка Общих папок (Показать контент) 2. Проверка правильности пути к Иконкам Проверка пути (Показать контент) 3. Автозагрузка PLTOOLS.lsp PLTOOLS.lsp (Показать контент) 4. Подключение файла конфигурации (НПИ) НПИ (Показать контент) 5. Панели инструментов Панели инстументов (Показать контент) Gif инструкция. Почему иконки не подгружаются ? 1 Quote Link to comment Share on other sites More sharing options...
A.Kudrjashov Posted May 31, 2021 Author Report Share Posted May 31, 2021 24 минуты назад, aerohost сказал: Почему иконки не подгружаются ? В файле Readme_NC.txt написано, что надо проверить пути к иконкам в config файле. Я прописывал в d:\Program Files\Nanosoft\PLTOOLS\BMP\ Выше скриншот под п.2 На GIF все мельтешит, отследить не успеваю. Но я проверял в разных местоположениях, просто менял пути и все иконки срабатывали. Quote Link to comment Share on other sites More sharing options...
aerohost Posted May 31, 2021 Report Share Posted May 31, 2021 3 минуты назад, A.Kudrjashov сказал: В файле Readme_NC.txt написано, что надо проверить пути к иконкам в config файле. Я прописывал в d:\Program Files\Nanosoft\PLTOOLS\BMP\ Выше скриншот под п.2 На GIF все мельтешит, отследить не успеваю. Но я проверял в разных местоположениях, просто менял пути и все иконки срабатывали. Я изменил файл pltools.cuix.cfg, который лежит C:\Users\msipc\AppData\Roaming\Nanosoft\nanoCAD x64 21.0\Config с BitmapDll=sd:\Program Files\Nanosoft\Pltools\BMP\ХХХ на BitmapDll=sc:\Program Files\Nanosoft\Pltools\BMP\ХХХ , но почему не работает. все правильно сделал ? 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.