Перейти к содержанию

Рекомендуемые сообщения

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

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

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


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

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

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

 

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

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

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

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


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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
14 минут назад, A.Kudrjashov сказал:

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

 

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

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

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
1 минуту назад, EdwardSt сказал:

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


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

 

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

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


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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
17 минут назад, A.Kudrjashov сказал:

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

 

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

Яндекс диск:

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


Google Disk:

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Так и не нашел нигде описание реализации 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

 

Изменено пользователем A.Kudrjashov

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
15 минут назад, ISL сказал:

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


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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

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

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

Яндекс диск:

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


Google Disk:

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

Ссылки.xlsx

Изменено пользователем A.Kudrjashov

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

 

Изменено пользователем A.Kudrjashov

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

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

Спойлер

image.thumb.png.83024a24983932c4d8123e84dbbd65f3.png

 

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

 

GetNCApplicationInfo.xlsx


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

GetCurentApplication.lsp

 

Изменено пользователем A.Kudrjashov

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для информации.
Еще обнаруженные расхождения в поведении программ. Ниже приложен небольшой файл формирования 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)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
10 часов назад, A.Kudrjashov сказал:

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

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

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
1 час назад, MCAD сказал:

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


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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
21 минуту назад, A.Kudrjashov сказал:

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

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

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

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Протестирован модуль 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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

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

 

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

 

Спойлер

image.png.fa4a3e4022b68d7d04e7a9eb137f9aec.png

 

PLTOOLS_NC.ZIP

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
В 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
 

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

Изменено пользователем aerohost

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
В 11.03.2020 в 15:33, EdwardSt сказал:

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

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


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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Восстановить форматирование

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

Загрузка...

×
×
  • Создать...