Jump to content

Recommended Posts

35 минут назад, EdwardSt сказал:

Кстати, может стоить попробовать осуществить запуск из лиспа досовской команды "CMD>hh.exe …".

Вроде в акаде такая конструкция была осуществима


Это понятно. В крайнем случае можно получить доступ через VBA. Правда там придется для CHM городить MAP и ALIAS.

Я пробую понять что именно работает и как-то все становится все более печально. Если функция не работает, то зачем она показана ?
В NC20 появились новые функции, которых не было в NC11. Сомнительно, чтобы это было сделано случайно. Видимо, кто-то этим занимался, ставил "галочки" на подключение .... но описания этих функций нет и в помине.

Один хороший человек сказал, что нельзя быть САПРовцем и не быть программистом. Похоже, что разработчики nanoCAD с этим категорически не согласны.

 

49 минут назад, EdwardSt сказал:

Не знаю, в этом ли дело, но команда (acad_helpdlg) в справке указана как "externally defined function".

Т.е. она не является внутренней командой акада.

Команда (help) действительно неопределенна, о чем честно написано в справке по лиспу для нанокада.


 Это в какой именно Справке ?

Link to comment
Share on other sites

14 минут назад, A.Kudrjashov сказал:

Это в какой именно Справке ?

 

Справку по функции (acad_helpdlg) я прочитал тут,  в ремарках.

Команда (help) отсутствует в справочном файле по нано ncLISP_ref.chm из комплекта для разработки

 

 

Link to comment
Share on other sites

1 минуту назад, EdwardSt сказал:

Справку по функции (acad_helpdlg) я прочитал тут,  в ремарках.


С AutoCAD все понятно. Там и та и другая функция отлично работают. У (help) есть дополнительный бонус, но я его не проверял.

 

3 минуты назад, EdwardSt сказал:

Команда (help) отсутствует в справочном файле по нано ncLISP_ref.chm из комплекта для разработки


Я там тоже смотрел.
Является ли отсутствие функции в списке основанием считать ее не реализованной - вопрос ?
image.png.31f64d09d78436ac2b8d7c0f5b566cef.png
 

Link to comment
Share on other sites

17 минут назад, A.Kudrjashov сказал:

Является ли отсутствие функции в списке основанием считать ее не реализованной - вопрос ?

 

Я, конечно, понимаю! Всякое бывает (могли упустить, глюкнул ворд при верстке и т.п.).

Но отсутствие в списке однозначно не может быть основанием, что функция реализована))) Хотя...

Link to comment
Share on other sites

Выложил скомпилированное описание "Стиля программирования AutoLISP", а также электронные книги и документацию.

Яндекс диск:

https://yadi.sk/d/5_JWGHtOnsQ_HQ


Google Disk:

https://drive.google.com/drive/folders/1aJpLsgxlTtT24-do2h2Z3xJ4oEMA6pTG

2020-03-16_Стиль программирования AutoLISP.docx

  • Like 3
Link to comment
Share on other sites

Так и не нашел нигде описание реализации DCL под nanoCAD !
На сайте утверждается, что все должно быть замечательно, но в реальности не получается.

https://www.nanocad.ru/help/comparison/

Спойлер

image.thumb.png.fca56b29520b40dda7bef58d0bee38bb.png

 

В nanoCAD не распознается :paragraph и :slider. Если первый можно заменить на :column, то второй отсутствует, как таковой.
При заполнении fill_image, height воспринимается адекватно, как работает width я так и не понял.

Вот, например, заполнение области с height = 1.0, width = 1.0

Спойлер

image.png.3b21d6e442a7893baf2dbfef8f41c356.png


А вот это заполнение области с height = 3.0, width = 10.0

Спойлер

image.png.5a1041173f917fd904dcbb0e3b59cecd.png


Примеры LISP/DCL куцые, без объяснений.

P.S.
Прикладываю пример. Неработающие строки DCL закомментированы.
Пример взят отсюда:
https://www.afralisp.net/dialog-control-language/tutorials/dialog-boxes-and-autolisp-part-4.php

samp8.dcl

samp8.lsp

 

Edited by A.Kudrjashov
  • Like 1
Link to comment
Share on other sites

Реальность, она всегда посложней любой модели будет. Отсутствие поддержки некоторых элементов не означает, что нет поддержки DCL. Присылайте конкретные примеры, поставим в план развития.

Link to comment
Share on other sites

15 минут назад, ISL сказал:

Реальность, она всегда посложней любой модели будет. Отсутствие поддержки некоторых элементов не означает, что нет поддержки DCL. Присылайте конкретные примеры, поставим в план развития.


Примеры, выложил.

Link to comment
Share on other sites

Выложил файл с разнообразными ссылками на информационные ресурсы.
Буду периодически обновлять.

На Яндекс диске (там места много, опять же импортозамещение :) ) буду периодически выкладывать коды.

Вечером выложу раздел Info с собранными статьями.

Яндекс диск:

https://yadi.sk/d/5_JWGHtOnsQ_HQ


Google Disk:

https://drive.google.com/drive/folders/1aJpLsgxlTtT24-do2h2Z3xJ4oEMA6pTG

Ссылки.xlsx

Edited by A.Kudrjashov
  • Like 2
Link to comment
Share on other sites

1. Не работают функции vla-startundomark и vla-endundomark.

al-undomark.lsp

добавлено через 6 минут

 

2. Для информации. Как выяснилось, под nanoCAD 11 не работает функция vla-getWidth !
Под nanoCAD 20 данная функция работает нормально.

 

В процессе исполнения кода внутри какого-либо скриптового модуля, прерывания процесса не происходит !

Если попытаться протестировать функцию в командной строке, то получаем сообщение об ошибке: "Сервер ActiveX вернул ошибку: Несовпадение типов.".

(Ниже выбираем любую полилинию)

nanoCAD 20:

Спойлер

image.png.395e4cf8b9291bb63b26b60f5dd7ca99.png


nanoCAD 11:

Спойлер

image.png.aec6781db291c95cba6bf3a9a3a3c572.png

 

Edited by A.Kudrjashov
Link to comment
Share on other sites

Поскольку, похоже, есть проблемы с функциональной совместимостью AutoCAD/nanoCAD, а также по версиям, набросал небольшой пул функций получения информации об активном приложении.

На данный момент примерно вот так, но я еще не программы обновил:

Спойлер

image.thumb.png.83024a24983932c4d8123e84dbbd65f3.png

 

Пока не понял как достучаться до "сборки" nanoCAD.

 

GetNCApplicationInfo.xlsx


Upd. Добавил функцию выделения имени приложения из Caption

GetCurentApplication.lsp

 

Edited by A.Kudrjashov
  • Like 1
Link to comment
Share on other sites

Для информации.
Еще обнаруженные расхождения в поведении программ. Ниже приложен небольшой файл формирования DCL диалога Списка.

 

1. В AutoCAD 2015 все выполняется нормально и результат выглядит следующим образом.

Спойлер

image.png.150fe760ebda9654af30bc7dd2466afb.png


2. В nanoCAD 11/20 не работает свойство "alignment=top". Вываливается ошибка выполнения.

 

3. В nanoCAD 11 кроме этого функция  vl-filename-mktemp не понимает в аргументе directory значения nil. Приходится указывать конкретный путь.

4. Ну и в результате в nanoCAD 11/20 получаем при тех же самых расчетах несколько иную картинку !

Спойлер

image.png.3aca69d639eb07fd80d952e498f4c8c6.png


Собственно, файлы:
MyDCL_AC.lsp

MyDCL_NC11.lsp

MyDCL_NC20.lsp

Запускаем >(pl:test)

Link to comment
Share on other sites

10 часов назад, A.Kudrjashov сказал:

Ниже приложен небольшой файл формирования DCL диалога Списка.

Уж если мы добрались до формирования диалогов, не могу не предложить альтернативный вариант "Пользовательских форм"

И чего только не придумают лишь бы СПДС не покупать

PS: Про формы можно посмотреть здесь

  • Like 1
Link to comment
Share on other sites

1 час назад, MCAD сказал:

Уж если мы добрались до формирования диалогов, не могу не предложить альтернативный вариант "Пользовательских форм"


Да, надо будет обязательно посмотреть.

Я сейчас пытаюсь выяснить область применимости стандартной технологии. С учетом того, что обычный пользователь глубоко копать и ловить все эти нестыковки не будет, получается печально. Спотыкаешься на элементарных вещах.

Link to comment
Share on other sites

21 минуту назад, A.Kudrjashov сказал:

Я сейчас пытаюсь выяснить область применимости стандартной технологии

Я всё хорошо понимаю и не призываю Вас отказаться от старых наработок и навыков. 

21 минуту назад, A.Kudrjashov сказал:

Спотыкаешься на элементарных вещах

В Lisp'e  легко и просто делать простые вещи. Однако требуются определённые навыки. В MechWizard (Мастере объектов) многие операции доступны простому пользователю БЕЗ опыта программирования.  

  • Like 2
Link to comment
Share on other sites

  • 2 weeks later...

Протестирован модуль PLTOOLS под nanoCAD. 
Выкладываю первое приближение.

Первоисточник здесь
https://dwg.ru/dnl/607
https://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.lsp

Readme.txt

  • Like 4
Link to comment
Share on other sites

  • 2 weeks later...

Для библиотеки PLTOOLS переделаны иконки. Ранее существующие у меня очень плохо отображаются в nanoCAD. Они сохранены в подкаталоге "\BMP\ARC".

Для нормального отображения иконок необходимо проверить настройку путей к .BMP в файле "pltools.cuix.cfg" !

 

Процедура подключения описана в "2020-04_Readme_NC.txt". Предыдущие Readme также сохранены.

 

Спойлер

image.png.fa4a3e4022b68d7d04e7a9eb137f9aec.png

 

PLTOOLS_NC.ZIP

 

  • Like 3
Link to comment
Share on other sites

  • 2 weeks later...
В 22.04.2020 в 09:26, A.Kudrjashov сказал:

Для библиотеки PLTOOLS переделаны иконки. Ранее существующие у меня очень плохо отображаются в nanoCAD. Они сохранены в подкаталоге "\BMP\ARC".

Для нормального отображения иконок необходимо проверить настройку путей к .BMP в файле "pltools.cuix.cfg" !

 

Процедура подключения описана в "2020-04_Readme_NC.txt". Предыдущие Readme также сохранены.

 

  Скриншот (Показать контент)

image.png.fa4a3e4022b68d7d04e7a9eb137f9aec.png

 

PLTOOLS_NC.ZIP 322 \u043a\u0411 · 1 загрузка

 

Спойлер

85184bf6ce1d6367c56b348b93b3e302.png
 

Как вывести такие же палитры как выше ? что я делаю не так, или их сам набираешь ? 

Edited by aerohost
Link to comment
Share on other sites

В 11.03.2020 в 15:33, EdwardSt сказал:

PS. Кстати, может стоить попробовать осуществить запуск из лиспа досовской команды "CMD>hh.exe …".

Вроде в акаде такая конструкция была осуществима


Я посмотрю, но позже, после 11.05. Там просто надо сесть и разобраться. :)

Link to comment
Share on other sites

  • 1 year later...

Добрый час. Как подключить к версии 20.1?

Застрял на шаге "Командой НПИ подгрузить файл pltools.cuix.cfg из папки распаковки"

В 20.1 подключение делается, как я понял, по другому.

Link to comment
Share on other sites

В автокаде сообщество придумало очень полезный лисп

"Создание группы видовых экранов в одной вкладке листа"

К сожалению в нанокад 20.1 не работает.

Может подсказать кто то, как сделать, что бы он работал?

Lisp прилагаю

AVP.LSP

Link to comment
Share on other sites

40 минут назад, bgrt21 сказал:

Добрый час. Как подключить к версии 20.1?

Застрял на шаге "Командой НПИ подгрузить файл pltools.cuix.cfg из папки распаковки"

В 20.1 подключение делается, как я понял, по другому.

 

Вроде как всё аналогично.

 

После подключения конфигурационного файла он копируется в профиль пользователя, а после перегрузки nanoCAD появляются панели PLTOOLS.

1. Настройка Общих папок

Спойлер

image.png.74a7a5052abf9473f1ad92182b68edf9.png

 

2. Проверка правильности пути к Иконкам

Спойлер

image.png.4809fe108888f7d3d80d1a80a3ec169d.png

 

3. Автозагрузка PLTOOLS.lsp

Спойлер

image.thumb.png.e8f4d6aa9c2a2b80a629677b8dc74ef6.png

 

4. Подключение файла конфигурации (НПИ)

Спойлер

image.png.d760c2ef298ae1e211f47800305d6da1.png

 

5. Панели инструментов

Спойлер

image.thumb.png.d8e1a818b167c5e2681092554778a8fc.png

 

 

 

 

  • Like 1
  • Thanks 3
Link to comment
Share on other sites

1 час назад, A.Kudrjashov сказал:

 

Вроде как всё аналогично.

 

После подключения конфигурационного файла он копируется в профиль пользователя, а после перегрузки nanoCAD появляются панели PLTOOLS.

1. Настройка Общих папок

  Настройка Общих папок (Показать контент)

image.png.74a7a5052abf9473f1ad92182b68edf9.png

 

2. Проверка правильности пути к Иконкам

  Проверка пути (Показать контент)

image.png.4809fe108888f7d3d80d1a80a3ec169d.png

 

3. Автозагрузка PLTOOLS.lsp

  PLTOOLS.lsp (Показать контент)

image.thumb.png.e8f4d6aa9c2a2b80a629677b8dc74ef6.png

 

4. Подключение файла конфигурации (НПИ)

  НПИ (Показать контент)

image.png.d760c2ef298ae1e211f47800305d6da1.png

 

5. Панели инструментов

  Панели инстументов (Показать контент)

image.thumb.png.d8e1a818b167c5e2681092554778a8fc.png

 

 

 

 

Gif инструкция.

 

Почему иконки не подгружаются ? 

Untitled Project.gif

  • Thanks 1
Link to comment
Share on other sites

24 минуты назад, aerohost сказал:

Почему иконки не подгружаются ? 

 

В файле Readme_NC.txt написано, что надо проверить пути к иконкам в config файле.
Я прописывал в d:\Program Files\Nanosoft\PLTOOLS\BMP\

Выше скриншот под п.2

На GIF все мельтешит, отследить не успеваю. Но я проверял в разных местоположениях, просто менял пути и все иконки срабатывали.

 

Link to comment
Share on other sites

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\ХХХ , но почему не работает. все правильно сделал ? 

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
 Share

  • Tell a friend

    Love Официальный форум компании Нанософт? Tell a friend!
×
×
  • Create New...