|
||
| Правила | Регистрация | Пользователи | Сообщения за день | | Поиск | | Справка по форуму | Файлообменник | |
|
![]() |
Поиск в этой теме |
![]() |
#1 | |
NanoCAD 23.1 и MS Visual Studio 2022 - первые шаги
г. Норильск
Регистрация: 15.08.2005
Сообщений: 613
|
||
Просмотров: 6910
|
|
||||
КЖ; C# Регистрация: 03.11.2005
Санкт-Петербург
Сообщений: 2,611
|
Тут все очень подробно. просто нужно вместо автокадовских библиотек подключить библиотеки нанокада |
|||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,377
|
Если писать под наник версий до 22 включительно - то да.
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,377
|
?? А какое это имеет отношение к "началу разработки"?
Offtop: Тем не менее, по состоянию на сегодня: Сильно низкой активностью. Практически половина вопросов закрывается не разработчиками. Хреновенькая документация (почти все разыскивается в гугле с заменой nanocad на autocad). По мне этого уже достаточно.
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,377
|
Каэшн нет! Почти всурьез раздумываю то ли ролик запилить, то ли статью
![]()
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Инженер-философ Регистрация: 24.04.2019
Хабаровск
Сообщений: 2,055
|
Шагов там сильно меньше:
Поэтому я свои команды писал под пятый нанокад, потому что он загружается моментально. А уже отлаженное можно собрать под другие кады. |
|||
![]() |
|
||||
Дополню малехо
Цитата:
Если будем использовать мультикад, то нужен минимум Net framework 4.5 Начиная с нанокад 23 библиотека классов . NET Версия 6
__________________
Мастерская СПДС |
||||
![]() |
|
||||
Регистрация: 10.08.2013
Сообщений: 11,499
|
с другой стороны, это дисциплинирует - заставляет продумывать структуру кода, а не как во встроенных языках - написал кусочек кода и сразу тестить)
|
|||
![]() |
|
||||
Если ресурсов достаточно, можно и так
Запустил несколько кадов и подключайся по очереди тести))) Кончаются еще назапускал
__________________
Мастерская СПДС Последний раз редактировалось doctorraz, 16.03.2024 в 09:42. |
||||
![]() |
|
||||
Регистрация: 10.08.2013
Сообщений: 11,499
|
Цитата:
В .Net проще - можно те же диалоги, взаимодействие с внешними хранилищами (БД) и т.д. отладить во вспомогательном десктопном приложении (включить в решение WinForms|WPF приложение). А в самом *каде отлаживать зависимый от него код, а файлы с уже рабочим кодом из десктопного вспомогательного приложения подключить через ссылки внутри решения и только вызывать в *кад коде. |
|||
![]() |
|
||||
Цитата:
В ком строке видны последние команды Ну и студия не пересоберет сборку, пока не закроешь кад в котором тестил, так то проблема надумана ----- добавлено через ~2 мин. ----- Цитата:
Файлами в декстопном только заглушки кад вызовов
__________________
Мастерская СПДС |
||||
![]() |
|
||||
Регистрация: 10.08.2013
Сообщений: 11,499
|
ссылки в отладочный исполняемый файл?
взаимодействие с *кадом выделить в отдельное пространство. Ну будут некоторая потеря производительности и ресурсов на передачу данных между интерфейсной (GUI) и *кадной частью, но учитывая производительность .Net - в большинстве случаев некритично, имхо. |
|||
![]() |
|
||||
Да link *. cs
----- добавлено через ~4 мин. ----- Ну в решении для кад одни CS В отладочном другие CS, иногда надо, в форму вернуть что-то из кад Заглушка эмулирует этот возврат, чисто для отладки интерфейса
__________________
Мастерская СПДС |
||||
![]() |
|
||||
Цитата:
Offtop: Я только разбираюсь, поэтому формулировки могут быть неточны)
__________________
Мастерская СПДС |
||||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,377
|
Offtop: На раздраконивание : https://autolisp.ru/2024/03/17/pervo...ya-nanocad-23/
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,377
|
Вроде да, а что?
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,377
|
Для корпоративных клиентов, насколько я слышал. Частные лица под подобные ограничения не попадают вроде бы.
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Не проверял, но вроде чот такое наши сделали
https://gitflic.ru/public/project
__________________
Мастерская СПДС |
||||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,377
|
Да, я видел - но пока не тестировал, не регистрировался, не смотрел. Китайские варианты смотреть как-то не хоцца.
----- добавлено через ~10 мин. ----- То ли лыжи, то ли я - но отправить в туда репозиторий у меня не получилось. Так что пока похороню этот вариант
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Offtop: Решать вопросы по мере поступления
Иначе ваще ни на что время не хватит
__________________
Мастерская СПДС |
||||
![]() |
|
||||
Регистрация: 15.08.2005
г. Норильск
Сообщений: 613
|
а) А если у меня в VS только ".NET 8.0" доступен, мне ".NET 6.0" доустановить нужно?
б) Где в VS можно изменить цвет экрана с черного на другой и увеличить размер шрифта в поле ввода текста программы?
__________________
Счастливо, Алексей! Последний раз редактировалось ===AAA===, 18.03.2024 в 08:31. |
|||
![]() |
|
||||
Цитата:
Цитата:
Средства->параметры Окружение-общие (там тема) Шрифты и цвета там шрифты и цвета ну и поиск по настройкам работает И из самой IDE работает поиск в том числе и по параметрам
__________________
Мастерская СПДС |
||||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,377
|
Если NET6 не установлен, то надо запустить Visual Studio Installer, нажать кнопку "Изменить" - и дальше "Дополнительные компоненты". Ну или отдельно скачивать NET6 SDK и пытаться его воткнуть. Но вариант установки через студию ИМХО самый простой.
Оформление студии - чистой воды вкусовщина. Просто я подустал от светлого фона в VBA и VLIDE ![]()
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Регистрация: 08.08.2019
Сообщений: 21
|
Объектную модель для мультикада можно выдернуть при помощи ILSpy из соответствующих dll. Там даже комментарии в коде кое где есть.
На работе мне VS никто бы не поставил, так что приходилось код писать в Notepad++ и батником компилировать ![]() Код:
|
|||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,377
|
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Регистрация: 18.12.2010
Сообщений: 5,101
|
Цитата:
|
|||
![]() |
|
||||
Регистрация: 15.08.2005
г. Норильск
Сообщений: 613
|
Добрался до момента, когда только средствами LISP задачу в nanoCAD решить не получится.
Нужно создать аналог функции (dos_processes) из библиотеки DOSLIB. Функция запускается без параметров и возвращает список работающих в данный момент приложений Windows, типа: (... "msedge.exe" "ShellExperienceHost.exe" "RuntimeBroker.exe" "UcMapi.exe" "plan.exe" "EXCEL.EXE" "NOTEPAD.EXE" "splwow64.exe" "DllHost.exe" "msedge.exe" "WINPROJ.EXE" "iexplore.exe" "IEXPLORE.EXE" "IESettingSync.exe" "lynchtmlconv.exe" "msedge.exe" "SearchProtocolHost.exe" "acad.exe" ну и т.д.) который может быть передал в программу на LISP и обработан. Сформулируем так: нужно из программы на LISP узнать, запущен ли "Блокнот" и если да, то сколько копий его сейчас открыто.
__________________
Счастливо, Алексей! |
|||
![]() |
|
||||
__________________
Мастерская СПДС |
||||
![]() |
|
||||
Регистрация: 15.08.2005
г. Норильск
Сообщений: 613
|
Цитата:
Это для меня пока вообще тёмный лес от слова "совсем". :-) Я только на ЛИСПе умею. ----- добавлено через ~3 мин. ----- Отсутствие этого атрибута в 23-й нане не позволяет запустить из лиспа программу на дотнет или передать в неё полученные данные? Если только второе - не беда. Пусть в файл результат выбросит, я из него заберу.
__________________
Счастливо, Алексей! |
|||
![]() |
|
||||
Регистрация: 10.08.2013
Сообщений: 11,499
|
ветка .Net все таки - поэтому тыц, и там смотрим метод GetProcessesByName(String) и пример к нему.
|
|||
![]() |
|
||||
Offtop: Да будет так...
Шарп учи, и тогда так будет и лисп не сильно нужен будет Если уж. kpblc Гуру лиспа Шарп учит, остальным тем более)) не помешает
__________________
Мастерская СПДС |
||||
![]() |
|
||||
Регистрация: 15.08.2005
г. Норильск
Сообщений: 613
|
Насчёт необходимости изучения C# согласен, поэтому и тему эму создал.
Возможно, что она со временем даже превратится в "песочницу", подобную теме, висящую в топе подфорума "программирование на LISP" :-) Поясните, плиз, базовую вещь - на C# возможно создать для nanoCAD 23.1 DLL-ку, содержащую функции, которые, будучи вызванными из программы на лиспе, смогут возвращать в неё информацию или для этого нужен nanoCAD 24+ ? Т.е. будет ли работать в nanoCAD 23.1 конструкция типа: (defun a1 () (setq b1 5 b2 (функция_из_dll b1)) (print b2) ) ? Цель - "для начала" мне нужно написать (с помощью уважаемых гуру форума) некоторые функции, ранее присутствовавшие в DOSLIB, но которые стали недоступны в nanoCAD'e. В основном это функции интерфейса, работы с внешним окружением nanoCAD'a и другие вещи, которые невозможно сделать на Лиспе.
__________________
Счастливо, Алексей! |
|||
![]() |
|
||||
Регистрация: 10.08.2013
Сообщений: 11,499
|
Ну если
то уже не будет "естественного" вызова в лиспе методов, определенных в .Net сборках. Но если методы в .Net сборке оформлены как команды - ничто не мешает их из комстроки в лиспе вызвать) Если нанокадовцы это реализовали, конечно... Последний раз редактировалось Сергей812, 23.03.2024 в 13:08. |
|||
![]() |
|
||||
Команды реализовали, иначе б обсуждать было бессмысленно
----- добавлено через ~2 мин. ----- Цитата:
Это будет работать значительно быстрее
__________________
Мастерская СПДС |
||||
![]() |
|
||||
Регистрация: 15.08.2005
г. Норильск
Сообщений: 613
|
Цитата:
Когда и если научусь писать на C# так же быстро и легко, как на Лиспе. :-) Пока же стоит задача перетащить из Автокада в наноКад уже сделанное. Однако я так и не понял из обсуждения выше - версия nanoCAD 23.1 уже позволяет делать связки LISP + C# или нужен 24+ ? Можно просто - "да" или "нет" ? :-)
__________________
Счастливо, Алексей! Последний раз редактировалось ===AAA===, 23.03.2024 в 14:51. |
|||
![]() |
|
||||
Цитата:
Функции возврат значения в липсе - нет Но ты выше писал что тебя устроит возврат значения в файл, тоже - да
__________________
Мастерская СПДС |
||||
![]() |
|
||||
Регистрация: 15.08.2005
г. Норильск
Сообщений: 613
|
Хорошо. Тогда ещё одно уточнение.
Эту новую команду из LISP функции, как я понимаю, нужно будет запускать через (command ...) ? А последующие строчки функции, "дождутся", пока эта dll-команда отработает, запишет информацию в файл и закроет его или они начнут выполняться раньше, чем файл-передатчик будет сформирован?
__________________
Счастливо, Алексей! |
|||
![]() |
|
||||
Думаю дождутся))
Если специально не запускать в асинхронном режиме Все будет идти по очереди, Т. Е. По окончании работы команды DLL, можно поднимать файл и вынимать из него инфу.. Но как тэ это очень уж костыльно(( На net можно делать много круче вещи чем лисп , единственное неудобство по сравнению с лисп и vbs, надо компилировать
__________________
Мастерская СПДС Последний раз редактировалось doctorraz, 23.03.2024 в 17:22. |
||||
![]() |
|
||||
Инженер-философ Регистрация: 24.04.2019
Хабаровск
Сообщений: 2,055
|
Есть вариант на плюсах писать. Там точно можно создавать команды, которые работают из-под лиспа, в том числе возвращая значение. Но это если удастся их освоить за 21 день.
Код:
|
|||
![]() |
|
||||
Регистрация: 15.08.2005
г. Норильск
Сообщений: 613
|
Кстати, да - DOSLIB же на плюсах написана. И даже было
сообщение, что автор исходник в публичный доступ отдал. Где-то в сети лежит... И функция, выдающая список работающих в данный момент приложений Windows в ней есть.
__________________
Счастливо, Алексей! Последний раз редактировалось ===AAA===, 24.03.2024 в 07:54. |
|||
![]() |
|
||||
Инженер-философ Регистрация: 24.04.2019
Хабаровск
Сообщений: 2,055
|
Проблема только в том, что она под нанокад не собрана?
Сама-то она вроде на гитхабе лежит: https://github.com/dalefugier/DOSLib А так там и добавлять нечего, только запустить надо? |
|||
![]() |
|
||||
Регистрация: 10.08.2013
Сообщений: 11,499
|
|
|||
![]() |
|
||||
Регистрация: 10.08.2013
Сообщений: 11,499
|
которые с вероятностью 99% реализованы в .Net. Не хотите учить .Net - перетаскивайте из акада в нано урезанный вариант готового кода с исключением вызовов функций DosLib. Ну или ждать перехода на 24 нано, чтобы хотя бы весь код не переписывать, а только вставки на .Net сделать. Хотя для этого все равно придется основы .Net изучить.
|
|||
![]() |
|
||||
Инженер-философ Регистрация: 24.04.2019
Хабаровск
Сообщений: 2,055
|
Посмотрел. Технически оно собирается под нанокад с небольшими правками. Местами пришлось откатить код под старые стандарты плюсов и поправить макросы. Некоторые части пришлось закомментировать, потому что в пятом нанокаде не были реализованы полностью функции автокада. В результате потеряны dos_lisplist, dos_cleardbmod, dos_summaryinfo, dos_custominfo, dos_olelist, dos_proxycount, dos_proxyclean. Возможно, в более поздних версиях нанокада оно заведется. Остальное на первый взгляд работает, но без гарантий, все надо тестить.
У меня есть только старая бесплатная пятерка, современных 23-24 нет ни самих, ни их SDK. Даже если соберу - проверить не смогу. SDK под плюсы (папки include и lib) под 23 ставятся с программой, или их надо качать отдельно? На сайте нет ссылок, только регистрация со сдачей анализов и обещанием рассмотреть их в течение года. Если есть возможность закинуть архив с SDK куда-нибудь, саму сборку можно сделать быстро. |
|||
![]() |
|
||||
Инженер-философ Регистрация: 24.04.2019
Хабаровск
Сообщений: 2,055
|
Чота собралося. Пришлось закомментировать:
* GetOSDisplayString, IsVistaOrHigher (в vs2022 почему-то недоступны функуции GetVersionEx. Кто знает, что случилось - старые версии SDK надо ставить, или еще что?) * ads_dos_cleardbmod (использует недокументированную функцию акада, которой, видимо, в нанокаде нет) Остальное без изменений, теперь надо тестить. В комплекте слегка поправленные исходники и проект под vs2022. |
|||
![]() |
|
||||
Регистрация: 15.08.2005
г. Норильск
Сообщений: 613
|
Замечательный комплект!
Нубий-IV - огромное спасибо! Из того, что проверил, запустилось всё, кроме (dos_progbar p1 p2), где p1 и p2 - аргументы. Без аргументов работает штатно. Если "коллективный разум" сумеет допилить эту библиотеку, будет вообще круто!
__________________
Счастливо, Алексей! |
|||
![]() |
![]() |
|
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Помогите вернуть обычный AutoLisp вместо Visual Studio Code | МишаИнженер | LISP | 2 | 04.12.2022 16:06 |
Первые шаги в мир программирования под nanoCAD | dows | Другие CAD системы | 15 | 26.05.2022 19:38 |
Как Visual Studio создавая проект библиотеки классов (dotnet.dll) подключить форму (Windows Forms) | gizmo_zx | Программирование | 4 | 17.02.2015 10:35 |
Поссорились Visual Studio 2010 и Acad 2013 | gizmo_zx | Программирование | 3 | 12.02.2014 10:05 |
Microsoft Visual Studio: Инициатива по лицензированию разработчиков ПО | Кулик Алексей aka kpblc | Разное | 6 | 05.09.2009 18:16 |