NanoCAD 23.1 и MS Visual Studio 2022 - первые шаги - Страница 3
| Правила | Регистрация | Пользователи | Сообщения за день |  Справка по форуму | Файлообменник |

Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > .NET > NanoCAD 23.1 и MS Visual Studio 2022 - первые шаги

NanoCAD 23.1 и MS Visual Studio 2022 - первые шаги

Ответ
Поиск в этой теме
Непрочитано 15.03.2024, 16:50
NanoCAD 23.1 и MS Visual Studio 2022 - первые шаги
===AAA===
 
г. Норильск
Регистрация: 15.08.2005
Сообщений: 616

Всем привет!

Писал я под AutoCAD на LISP'е всё, что нужно было, использовал
библиотеку DOSLIB и всё было замечательно.

Но пришлось переходить на nanoCAD - тут всё и началось... :-(

Видимо, дальше нужно будет использовать C#

Теперь вопрос - как начать (да, просто начать !) писать программы
в этой самой MS VS 2022 ?

Вот прямо по шагам.

0. Запустил /это я уже умею/.

А дальше?

Нужно выбрать в VS какой-то шаблон, куда-то установить поставляемый
c nanoCAD'ом SDK, добраться до окна, куда буду вводить текст программы,
скомпилировать его, как загружаемое в nanoCAD приложение...

Т.е. нужны эти 10 ... 15 начальных шагов, чтобы потом просто ввести в командную
строку nanoCAD'а новую команду "new_command" и там же получить в ответ
"Привет, мир!" :-)))
__________________
Счастливо, Алексей!
Просмотров: 8267
 
Автор темы   Непрочитано 23.03.2024, 14:40
#41
===AAA===


 
Регистрация: 15.08.2005
г. Норильск
Сообщений: 616


Цитата:
Имха проще сделать реализацию полностью на net
Это будет работать значительно быстрее
Совсем новые вещи - почему бы и нет.

Когда и если научусь писать на C#
так же быстро и легко, как на Лиспе. :-)

Пока же стоит задача перетащить из
Автокада в наноКад уже сделанное.

Однако я так и не понял из обсуждения
выше - версия nanoCAD 23.1 уже позволяет
делать связки LISP + C# или нужен 24+ ?

Можно просто - "да" или "нет" ? :-)
__________________
Счастливо, Алексей!

Последний раз редактировалось ===AAA===, 23.03.2024 в 14:51.
===AAA=== вне форума  
 
Непрочитано 23.03.2024, 15:37
1 | #42
doctorraz

электрик
 
Регистрация: 19.02.2010
Волгоград
Сообщений: 2,298
Отправить сообщение для doctorraz с помощью Skype™


Цитата:
Сообщение от ===AAA=== Посмотреть сообщение
версия nanoCAD 23.1 уже позволяет
делать связки LISP + C# или нужен 24+ ?
Команды с ключами - да
Функции возврат значения в липсе - нет
Но ты выше писал что тебя устроит возврат значения в файл, тоже - да
__________________
Мастерская СПДС
doctorraz вне форума  
 
Автор темы   Непрочитано 23.03.2024, 16:45
1 | #43
===AAA===


 
Регистрация: 15.08.2005
г. Норильск
Сообщений: 616


Хорошо. Тогда ещё одно уточнение.

Эту новую команду из LISP функции, как я понимаю,
нужно будет запускать через (command ...) ?

А последующие строчки функции, "дождутся", пока эта
dll-команда отработает, запишет информацию в файл и
закроет его или они начнут выполняться раньше, чем
файл-передатчик будет сформирован?
__________________
Счастливо, Алексей!
===AAA=== вне форума  
 
Непрочитано 23.03.2024, 17:02
#44
doctorraz

электрик
 
Регистрация: 19.02.2010
Волгоград
Сообщений: 2,298
Отправить сообщение для doctorraz с помощью Skype™


Думаю дождутся))
Если специально не запускать в асинхронном режиме
Все будет идти по очереди,
Т. Е. По окончании работы команды DLL, можно поднимать файл и вынимать из него инфу..
Но как тэ это очень уж костыльно((
На net можно делать много круче вещи чем лисп , единственное неудобство по сравнению с лисп и vbs, надо компилировать
__________________
Мастерская СПДС

Последний раз редактировалось doctorraz, 23.03.2024 в 17:22.
doctorraz вне форума  
 
Непрочитано 23.03.2024, 19:43
#45
Нубий-IV

Инженер-философ
 
Регистрация: 24.04.2019
Хабаровск
Сообщений: 2,071


Есть вариант на плюсах писать. Там точно можно создавать команды, которые работают из-под лиспа, в том числе возвращая значение. Но это если удастся их освоить за 21 день.
Код:
[Выделить все]
 
#include <arxHeaders.h>

// Код команды
const int CMD_SUM = 0;

// Команда "Сумма"
int Sum()
{
	double result = 0.0;

	// Получение списка аргументов, переданных из лиспа
	struct resbuf* rb = acedGetArgs();
	
	// Перебор списка
	while(rb) {
		// Добавление очередного слагаемого
		switch(rb->restype) {
		case RTSHORT:
			result += rb->resval.rint;
			break;
		case RTLONG:
			result += rb->resval.rlong;
			break;
		case RTREAL:
			result += rb->resval.rreal;
			break;
		default:
			acutPrintf(_ACRX_T("; ошибка: неправильный тип аргумента"));
			acedRetVoid();
			return RTERROR;
		}
		// Следующий аргумент в списке
		rb = rb->rbnext;
	}

	// Возвращение результата
	acedRetReal(result);
	return RTNORM;
}

// Класс приложения
class CSum: public AcRxArxApp {
public:
	// Регистрация Лисп-команды при загрузке чертежа
	AcRx::AppRetCode On_kLoadDwgMsg(void *pkt) override
	{
		acedDefun(_ACRX_T("Sum"), CMD_SUM);
		return AcRx::kRetOK;
	}
	
	// Удаление регистрации Лисп-команды при выгрузке чертежа
	AcRx::AppRetCode On_kUnloadDwgMsg(void *pkt) override
	{
		acedUndef(_ACRX_T("Sum"), CMD_SUM);
		return AcRx::kRetOK;

	}
	
	// Обработка запроса на вызов команды из Лиспа
	AcRx::AppRetCode On_kInvkSubrMsg(void *pkt) override
	{
		if(acedGetFunCode() == CMD_SUM)
			Sum();
		return AcRx::kRetOK;
	}

	// ХЗ зачем, но надо
	void RegisterServerComponents() override {}
};

// Экспорт точки входа в DLL
IMPLEMENT_ARX_ENTRYPOINT(CTest)
Вообще, судя по наличию атрибута LispCommand, и на C# должно быть можно. Надо поискать такие же имена функций, и примеры под акад.
Миниатюры
Нажмите на изображение для увеличения
Название: nc5.PNG
Просмотров: 226
Размер:	40.4 Кб
ID:	262270  
Нубий-IV вне форума  
 
Автор темы   Непрочитано 24.03.2024, 07:24
#46
===AAA===


 
Регистрация: 15.08.2005
г. Норильск
Сообщений: 616


Кстати, да - DOSLIB же на плюсах написана. И даже было
сообщение, что автор исходник в публичный доступ отдал.
Где-то в сети лежит...

И функция, выдающая список работающих в данный момент
приложений Windows в ней есть.
__________________
Счастливо, Алексей!

Последний раз редактировалось ===AAA===, 24.03.2024 в 07:54.
===AAA=== вне форума  
 
Непрочитано 24.03.2024, 07:46
#47
Нубий-IV

Инженер-философ
 
Регистрация: 24.04.2019
Хабаровск
Сообщений: 2,071


Цитата:
Сообщение от ===AAA=== Посмотреть сообщение
DOSLIB
Проблема только в том, что она под нанокад не собрана?
Сама-то она вроде на гитхабе лежит: https://github.com/dalefugier/DOSLib
А так там и добавлять нечего, только запустить надо?
Нубий-IV вне форума  
 
Автор темы   Непрочитано 24.03.2024, 08:03
#48
===AAA===


 
Регистрация: 15.08.2005
г. Норильск
Сообщений: 616


Цитата:
Проблема только в том, что она под нанокад не собрана?
Именно так. Если бы кто-то, понимающий в этом деле, смог пересобрать её
под нанокад 23.1 - отпала бы куча проблем!
__________________
Счастливо, Алексей!
===AAA=== вне форума  
 
Непрочитано 24.03.2024, 10:02
#49
Сергей812


 
Регистрация: 10.08.2013
Сообщений: 11,499


Цитата:
Сообщение от ===AAA=== Посмотреть сообщение
Именно так. Если бы кто-то, понимающий в этом деле, смог пересобрать её
под нанокад 23.1 - отпала бы куча проблем!
ну так в чем проблемы: объявляете краудфандинг на адаптацию DOSLib, нанимаете профессионального программиста...
Сергей812 вне форума  
 
Автор темы   Непрочитано 24.03.2024, 10:23
#50
===AAA===


 
Регистрация: 15.08.2005
г. Норильск
Сообщений: 616


Ну, лично мне из неё и нужно-то менее десятка функций.
Какой там краудфандинг ...
__________________
Счастливо, Алексей!
===AAA=== вне форума  
 
Непрочитано 24.03.2024, 10:31
#51
Сергей812


 
Регистрация: 10.08.2013
Сообщений: 11,499


Цитата:
Сообщение от ===AAA=== Посмотреть сообщение
Ну, лично мне из неё и нужно-то менее десятка функций.
которые с вероятностью 99% реализованы в .Net. Не хотите учить .Net - перетаскивайте из акада в нано урезанный вариант готового кода с исключением вызовов функций DosLib. Ну или ждать перехода на 24 нано, чтобы хотя бы весь код не переписывать, а только вставки на .Net сделать. Хотя для этого все равно придется основы .Net изучить.
Сергей812 вне форума  
 
Непрочитано 24.03.2024, 13:15
1 | #52
Нубий-IV

Инженер-философ
 
Регистрация: 24.04.2019
Хабаровск
Сообщений: 2,071


Посмотрел. Технически оно собирается под нанокад с небольшими правками.
Местами пришлось откатить код под старые стандарты плюсов и поправить макросы. Некоторые части пришлось закомментировать, потому что в пятом нанокаде не были реализованы полностью функции автокада. В результате потеряны dos_lisplist, dos_cleardbmod, dos_summaryinfo, dos_custominfo, dos_olelist, dos_proxycount, dos_proxyclean. Возможно, в более поздних версиях нанокада оно заведется. Остальное на первый взгляд работает, но без гарантий, все надо тестить.

У меня есть только старая бесплатная пятерка, современных 23-24 нет ни самих, ни их SDK. Даже если соберу - проверить не смогу. SDK под плюсы (папки include и lib) под 23 ставятся с программой, или их надо качать отдельно? На сайте нет ссылок, только регистрация со сдачей анализов и обещанием рассмотреть их в течение года. Если есть возможность закинуть архив с SDK куда-нибудь, саму сборку можно сделать быстро.
Миниатюры
Нажмите на изображение для увеличения
Название: DL.PNG
Просмотров: 204
Размер:	37.8 Кб
ID:	262274  
Нубий-IV вне форума  
 
Автор темы   Непрочитано 26.03.2024, 05:28
#53
===AAA===


 
Регистрация: 15.08.2005
г. Норильск
Сообщений: 616


Добрый день!

Цитата:
Если есть возможность закинуть архив с SDK куда-нибудь, саму сборку можно сделать быстро.
Ответил в личку.
__________________
Счастливо, Алексей!
===AAA=== вне форума  
 
Непрочитано 26.03.2024, 08:40
#54
Нубий-IV

Инженер-философ
 
Регистрация: 24.04.2019
Хабаровск
Сообщений: 2,071


Чота собралося. Пришлось закомментировать:

* GetOSDisplayString, IsVistaOrHigher (в vs2022 почему-то недоступны функуции GetVersionEx. Кто знает, что случилось - старые версии SDK надо ставить, или еще что?)
* ads_dos_cleardbmod (использует недокументированную функцию акада, которой, видимо, в нанокаде нет)

Остальное без изменений, теперь надо тестить. В комплекте слегка поправленные исходники и проект под vs2022.
Вложения
Тип файла: zip DOSLib.zip (658.7 Кб, 10 просмотров)
Нубий-IV вне форума  
 
Автор темы   Непрочитано 26.03.2024, 14:09
#55
===AAA===


 
Регистрация: 15.08.2005
г. Норильск
Сообщений: 616


Замечательный комплект!
Нубий-IV - огромное спасибо!

Из того, что проверил, запустилось всё, кроме
(dos_progbar p1 p2), где p1 и p2 - аргументы.
Без аргументов работает штатно.

Если "коллективный разум" сумеет допилить
эту библиотеку, будет вообще круто!
__________________
Счастливо, Алексей!
===AAA=== вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > .NET > NanoCAD 23.1 и MS Visual Studio 2022 - первые шаги



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите вернуть обычный 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