Перейти к содержимому


Первые шаги в мир программирования под nanoCAD


Сообщений в теме: 224

#201 doctorraz

    Активист

  • Пользователи
  • PipPipPipPip
  • 1 160 сообщений
  • Пол:Мужчина
  • Город:Волгоград
  • Интересы:всё понемногу

Отправлено 19 Январь 2018 - 12:06

Подскажите пожалуйста будет ли это реализовано в платформе в обозримом будущем?
Скрытый текст


#202 doctorraz

    Активист

  • Пользователи
  • PipPipPipPip
  • 1 160 сообщений
  • Пол:Мужчина
  • Город:Волгоград
  • Интересы:всё понемногу

Отправлено 19 Январь 2018 - 12:48

поясню зачем это надо:
методом server.query невозможно получить коллекцию только "Универсальных маркеров", невозможно сделать выборку с определенных слоев
этот метод работает только на активном пространстве, т.е. с неактивной вкладки или документа коллекцию этим методом не получить.
все эти задачи и многие другие прекрасно решаются методом SelectionSets платформы, но в патформе не реализован механизм передачи указателя на объект между нанокад и МсСом

#203 Robink

    Активист

  • Пользователи
  • PipPipPipPip
  • 411 сообщений
  • Пол:Мужчина
  • Город:Казань
  • Интересы:САПРостроение

Отправлено 19 Январь 2018 - 12:56

Просмотр сообщенияdoctorraz (19 Январь 2018 - 12:48) писал:

поясню зачем это надо:
методом server.query невозможно получить коллекцию только "Универсальных маркеров", невозможно сделать выборку с определенных слоев
этот метод работает только на активном пространстве, т.е. с неактивной вкладки или документа коллекцию этим методом не получить.
все эти задачи и многие другие прекрасно решаются методом SelectionSets платформы, но в патформе не реализован механизм передачи указателя на объект между нанокад и МсСом
За COM не знаю на .NET можно, через .ID.ToOldIdPtr() потом из него получить ObjectId, вот как получить handle в MC не нашел.

#204 doctorraz

    Активист

  • Пользователи
  • PipPipPipPip
  • 1 160 сообщений
  • Пол:Мужчина
  • Город:Волгоград
  • Интересы:всё понемногу

Отправлено 19 Январь 2018 - 13:00

Этот код отрабатывает в AutoCad и не работает в NanoCAD (не реализовано)
Скрытый текст


#205 Witcher13

    Посетитель

  • Пользователи
  • PipPip
  • 30 сообщений

Отправлено 20 Июль 2018 - 11:11

Здравствуйте!
Переходим всей организацией на нанокад. В связи с чем возникает несколько вопросов.
В принципе функционал "Геоники" устраивает, но остались достаточно нужные полезные лиспы с автокадовских времен (корректно работают под версии 2004, 2007, 2010 но уже не все)
В нанокаде не работает полноценно никакой из них. например функция не определена ENAME , MODES,ошибка в функции *error* наверная функция и тому подобное.
Насколько я смог узнать не все лисп функции автокада есть в нанокаде. Проблема в этом?

Либо я что то не подгрузил. Например согласно учебнику Н.Полещука в автокаде для работы грузятся функции activX
Вот такой код предшествует подгрузке других лиспов при работе в автокад.

;***БАЗОВАЯ ФУНКЦИЯ ДОСТУПА К ТЕХНОЛОГИИ ActiveX
; Глобальные переменные:
; acad_application-указатель корневого объекта иерархии AutoCAD
; active_document-указатель открытого документа
; model_space-указатель пространства модели рисунка
; paper_space-указатель пространства листа документа
(DEFUN begin_actvex ( /)
(vl-load-com)
(setq acad_application(VLAX-GET-ACAD-OBJECT))
(setq active_document(VLA-GET-ACTIVEDOCUMENT acad_application))
(setq model_space(vla-get-modelspace active_document))
(setq paper_space(vla-get-paperspace active_document))
);end
;---------

(begin_actvex )

Нужен ли код подобного плана для нанокад?
Либо подгрузка библиотек каких либо?
Или может проще эти лиспы переписать под с++? он более функционален? и в принципе как выбрать язык под себя и свои задачи?
Нанокад версии 8.5

P.S. Не программист (но ручки тянутся разбираться), новичок, энтузиаст.

#206 Ivanco

    Дилер

  • Дилеры
  • PipPipPipPip
  • 344 сообщений
  • Пол:Мужчина
  • Город:Красноярск
  • Интересы:САПР

Отправлено 20 Июль 2018 - 11:36

Просмотр сообщенияWitcher13 (20 Июль 2018 - 11:11) писал:

Насколько я смог узнать не все лисп функции автокада есть в нанокаде. Проблема в этом?
не все. от версии к версии поддержка LISP растет.

Просмотр сообщенияWitcher13 (20 Июль 2018 - 11:11) писал:

Или может проще эти лиспы переписать под с++? он более функционален? и в принципе как выбрать язык под себя и свои задачи?
по этому куску вырванного из контекста, не понятно, что там проще или сложнее.
по языкам ИМХО:
LISP - кроме автокад/нанокад, почти нигде не понадобиться. и поддержка в нано его насколько понимаю, еще далека от автокад.для староверов и любителей функционального программирования.
Jscript/vbscript - весело и просто. для начинающих норм. не все есть правда. для небольших скриптов и быстрого прототипирования.
C#/MultiCAD/.NET - серъезный инструмент с большими возможностями. порог входа - выше чем в предыдущем. Для полноценных приложений.
C++ - this party is hard. планируете разрабатывать высокопроизводительные промышленные приложения? - Вам сюда. Высокий порог входа. для настоящих джедаев.
"ИнфоИндастри" г.Красноярск,г.Иркутск,г.Владивосток-официальный дилер Нанософт
YouTube,GitHub - Ivanco21, using:C#/MultiCAD.NET

#207 Witcher13

    Посетитель

  • Пользователи
  • PipPip
  • 30 сообщений

Отправлено 20 Июль 2018 - 16:28

Спасибо за ответ, стало понятнее в какую сторону смотреть! Судя по всему на с++ замахиватся не стоит.

Однако про входной лисп (по аналогии с тем что был в сообщении выше) вопрос остался открыт. Нужен ли он в подобном виде для нано?Или все должно работать так?
Лисперы отзовитесь=)

#208 Henrydub

    Новичок

  • Пользователи
  • Pip
  • 9 сообщений

Отправлено 21 Март 2019 - 06:02

Если у кого-то есть в электроннном виде книги по программированию до Windows CE или по программированию под Windows с использованием MFC, поделитесь, пожалуйста.

#209 Ivanco

    Дилер

  • Дилеры
  • PipPipPipPip
  • 344 сообщений
  • Пол:Мужчина
  • Город:Красноярск
  • Интересы:САПР

Отправлено 21 Март 2019 - 07:13

Просмотр сообщенияHenrydub (21 Март 2019 - 06:02) писал:

Если у кого-то есть в электроннном виде книги по программированию до Windows CE или по программированию под Windows с использованием MFC, поделитесь, пожалуйста.
здесь как бы форум совсем не про форум. литературы по общесистемному программированию, огромное кол-во в т.ч. в свободном доступе.
так что чем могу, полезная ссылка ниже)

_http://g.zeos.in/?q=Windows%20CE%20programming%20books
"ИнфоИндастри" г.Красноярск,г.Иркутск,г.Владивосток-официальный дилер Нанософт
YouTube,GitHub - Ivanco21, using:C#/MultiCAD.NET

#210 dromandon

    Активист

  • Пользователи
  • PipPipPipPip
  • 225 сообщений
  • Пол:Мужчина
  • Город:Калининград

Отправлено 05 Апрель 2019 - 10:46

Добрые люди, есть ли у кого програмка под нано или лисп для объединения штриховок?
Нашёл пару лиспиков в сети, но нано их не хочет запускать корректно.
Пользуюсь Нанокад СПДС 6.0
Михаил Давтян. Проектирование общественных и жилых зданий.
Обладаю навыком упрощения долгой и скучной работы.

ткнуть тут

#211 todesengel

    Новичок

  • Пользователи
  • Pip
  • 9 сообщений

Отправлено 12 Июль 2019 - 05:10

всем доброе утро. никогда ранее не делал ничего под нано-кад, да и сам продукт увидел впервые два дня назад. но интерес есть. хочу попробовать. с чего начать? есть: сам нано-кад, МС вижуал студия 2017, опыт написания .NET сборок для автокада, опыт работы с ObjectARX. как оказалось этого мало. даже начать не могу. код для автокада тут не работает.
помогите с быстрым стартом плиз.

#212 Laziz

    Посетитель

  • Пользователи
  • PipPip
  • 24 сообщений

Отправлено 12 Июль 2019 - 09:49

Просмотр сообщенияtodesengel (12 Июль 2019 - 05:10) писал:

помогите с быстрым стартом плиз.
Для начало можете изучить эти посты
https://habr.com/ru/...rget_type=posts
Сам по ним изучал

#213 todesengel

    Новичок

  • Пользователи
  • Pip
  • 9 сообщений

Отправлено 12 Июль 2019 - 09:51

спасибо, это уже неплохо для начала. но все же, а есть какое-то централизованное описалово по multicad,.net? это же не секретный продукт.

#214 Kreator

    Активист

  • Пользователи
  • PipPipPipPip
  • 872 сообщений
  • Пол:Мужчина
  • Город:Краснодар

Отправлено 12 Июль 2019 - 09:56

Есть SDK, его можно получить, зарегистрировавшись в Клубе разработчиков. Там же можно получить бессрочную лицензию для разработки на 3 машины.
В SDK есть скромные примеры на всех поддерживаемых языках.

Сообщение отредактировал Kreator: 12 Июль 2019 - 09:56

Полховский А.В. Проектирование железнодорожных путей
nanoCAD Plus 11.0.4752.7008 (сборка 4857); MultiCAD.NET

#215 todesengel

    Новичок

  • Пользователи
  • Pip
  • 9 сообщений

Отправлено 12 Июль 2019 - 09:57

вот это уже дело. попробую. хотя довольно странно, что SDK распространяется на таких странных условиях.

#216 todesengel

    Новичок

  • Пользователи
  • Pip
  • 9 сообщений

Отправлено 12 Июль 2019 - 12:53

а можно сюда как-то выложить хотя бы help по multicad.net AIP? хотя бы видеть какие классы за что отвечают.

#217 Kreator

    Активист

  • Пользователи
  • PipPipPipPip
  • 872 сообщений
  • Пол:Мужчина
  • Город:Краснодар

Отправлено 12 Июль 2019 - 13:35

А в чём трудности скачать всё? Справка не исчерпывающая, на ней одной не напишете, скорее всего.
Полховский А.В. Проектирование железнодорожных путей
nanoCAD Plus 11.0.4752.7008 (сборка 4857); MultiCAD.NET

#218 Александр_

    Новичок

  • Пользователи
  • Pip
  • 8 сообщений

Отправлено 13 Июль 2019 - 08:44

Если есть опыт писания под AutoCad то трудностей быть не должно. Расположение/назначение классов, методов и т. д. очень схожи.

Ниже инфа от 2014 года, но возможно еще актуальна:
Здесь я писал где я искал инфу (в том числе SDK который устанавливается на ПК + доступен на фопуме разработчиков)
http://forum.nanocad...indpost&p=28401

Даю для примера куски кода на C# (код не идеален, но для примера думаю сойдет)
подключения к нанокаду
			/// <summary> запуск и связь с Nanocad
			///
			/// </summary>
			/// <returns></returns>
			public static nanoCAD.Application nanocad_service_run()
			{
				nanoCAD.Application nc_app = null;
				try
				{
					object processSW = System.Activator.CreateInstance(System.Type.GetTypeFromProgID("NanoCad.Application"));
					nc_app = (nanoCAD.Application)processSW;
				}
				catch
				{
					nc_app = new nanoCAD.Application();
				}
				if (nc_app.Documents.Count == 0)
				{
					nc_app.Documents.Add(@"c:\Program Files (x86)\Nanosoft\nanoCAD en 5.0\UserDataCache\Templates\Default.dwt");
				}
				return nc_app;
			}

Контур форматки А4 на активном документе
		    /// <summary> контур А4 на активном документе
			///
			/// </summary>
			public static void nanocad_risuem_A4_kontur(nanoCAD.Application nc_app)
			{
				double[] point1 = { 0, 0, 0 }, point2 = { 0, 297, 0 }, point3 = { 210, 297, 0 }, point4 = { 210, 0, 0 };
				double[] point10 = { 20, 5, 0 }, point20 = { 20, 297 - 5, 0 }, point30 = { 210 - 5, 297 - 5, 0 }, point40 = { 210 - 5, 5, 0 };
				OdaX.AcadLine default_line = nc_app.ActiveDocument.ModelSpace.AddLine(point1, point2); default_line.LinetypeScale = 1; default_line.Lineweight = OdaX.ACAD_LWEIGHT.acLnWt000; default_line.Linetype = nc_app.ActiveDocument.Linetypes.Item(2).Name;
				default_line = nc_app.ActiveDocument.ModelSpace.AddLine(point2, point3); default_line.LinetypeScale = 1; default_line.Lineweight = OdaX.ACAD_LWEIGHT.acLnWt000; default_line.Linetype = nc_app.ActiveDocument.Linetypes.Item(2).Name;
				default_line = nc_app.ActiveDocument.ModelSpace.AddLine(point3, point4); default_line.LinetypeScale = 1; default_line.Lineweight = OdaX.ACAD_LWEIGHT.acLnWt000; default_line.Linetype = nc_app.ActiveDocument.Linetypes.Item(2).Name;
				default_line = nc_app.ActiveDocument.ModelSpace.AddLine(point4, point1); default_line.LinetypeScale = 1; default_line.Lineweight = OdaX.ACAD_LWEIGHT.acLnWt000; default_line.Linetype = nc_app.ActiveDocument.Linetypes.Item(2).Name;
				default_line = nc_app.ActiveDocument.ModelSpace.AddLine(point10, point20); default_line.LinetypeScale = 1; default_line.Lineweight = OdaX.ACAD_LWEIGHT.acLnWt030; default_line.Linetype = nc_app.ActiveDocument.Linetypes.Item(2).Name;
				default_line = nc_app.ActiveDocument.ModelSpace.AddLine(point20, point30); default_line.LinetypeScale = 1; default_line.Lineweight = OdaX.ACAD_LWEIGHT.acLnWt030; default_line.Linetype = nc_app.ActiveDocument.Linetypes.Item(2).Name;
				default_line = nc_app.ActiveDocument.ModelSpace.AddLine(point30, point40); default_line.LinetypeScale = 1; default_line.Lineweight = OdaX.ACAD_LWEIGHT.acLnWt030; default_line.Linetype = nc_app.ActiveDocument.Linetypes.Item(2).Name;
				default_line = nc_app.ActiveDocument.ModelSpace.AddLine(point40, point10); default_line.LinetypeScale = 1; default_line.Lineweight = OdaX.ACAD_LWEIGHT.acLnWt030; default_line.Linetype = nc_app.ActiveDocument.Linetypes.Item(2).Name;
			}

Сообщение отредактировал Александр_: 13 Июль 2019 - 08:45


#219 todesengel

    Новичок

  • Пользователи
  • Pip
  • 9 сообщений

Отправлено 14 Июль 2019 - 07:34

вот это уже что-то, спасибо. но больше интересует создание .NET DLL для загрузки из самого ПО. кое что уже получилось... но сюда даже код не могу вставить, странный интерфэйсл у форума....

#220 todesengel

    Новичок

  • Пользователи
  • Pip
  • 9 сообщений

Отправлено 14 Июль 2019 - 08:34

для начала, хотя бы, какие DLL подключать к сборке? видел ряд примеров, подключают файлы host* и mapi*. Там типа два фреймвока? Teigha и Multicad? по крайней мере вижу два namespace.





Количество пользователей, читающих эту тему: 1

0 пользователей, 1 гостей, 0 скрытых пользователей