Сообщество программистов Autodesk в СНГ

ADN Club => AutoCAD .NET API => Тема начата: Алексей (IdeaSoft) от 23-10-2015, 16:00:14

Название: AutoCAD как плагин для своего приложения
Отправлено: Алексей (IdeaSoft) от 23-10-2015, 16:00:14
Вопрос касается для версий от AutoCAD 2013
Чаще разработчик делает плагин для AutoCAD.
А если есть потребность сделать плагином сам AutoCAD для своего приложения.
Приложение, которое я хочу сделать
будет использовать AutoCAD как плагин,
и будет разрабатываться на WPF.

В WPF у классов Window и Frame есть свойство Сontent типа Object
в который можно поместить в теории что угодно раз это Object.

Возможно ли в Window.content поместить содержимое
главной формы AutoCAD?
Название: Re: AutoCAD как плагин для своего приложения
Отправлено: Александр Ривилис от 23-10-2015, 16:19:46
Можно использовать AutoCAD в качестве WCF-сервера: http://adndevblog.typepad.com/autocad/2013/12/connecting-an-autocad-plug-in-to-an-external-application-using-wcf.html


Название: Re: AutoCAD как плагин для своего приложения
Отправлено: Александр Ривилис от 23-10-2015, 16:20:31
Возможно ли в Window.content поместить содержимое
главной формы AutoCAD?
Что такое "главная форма AutoCAD"?
Название: Re: AutoCAD как плагин для своего приложения
Отправлено: Алексей (IdeaSoft) от 23-10-2015, 16:36:16
Что такое "главная форма AutoCAD"?

"Главная форма AutoCAD", ну это в понимании программирования объект представляющий
экземпляр некоторого класса, который описывает форму приложения AutoCAD.

Я вот, что подумал, может не обязательно даже загружать к себе приложение
всю главную форму AutoCAD, может ограничится формой документа, т.е. ,
то что содержит пространство модели чертежа.

Т.е. поместить к себе содержимое чертежа, что бы с ним что-то можно было делать пользователю.
Название: Re: AutoCAD как плагин для своего приложения
Отправлено: Александр Ривилис от 23-10-2015, 16:43:01
Я думаю, что это путь в никуда.
Название: Re: AutoCAD как плагин для своего приложения
Отправлено: Алексей (IdeaSoft) от 23-10-2015, 17:01:38
Я думаю, что это путь в никуда.

К примеру есть уже проработанный и удобный интерфейс какого-то приложения, данные для работы которого содержит DWG-файл.
Подгрузить данные из dgw можно без труда. Но пользователю нужно время от времени что-то менять в DWG имея вид чертежа его перед глазами.
Можно конечно решить вопрос по другому пользователи либо работают с двумя мониторами
или если большой монитор размещают два окна на экране монитора. Но так не всегда.
Почему в никуда, что такого если окно AutoCAD можно поместить в свое окно или в окно интернет браузера?
 
Название: Re: AutoCAD как плагин для своего приложения
Отправлено: Александр Ривилис от 23-10-2015, 18:20:59
Почему в никуда, что такого если окно AutoCAD можно поместить в свое окно или в окно интернет браузера?
Я обычно стараюсь не обсуждать эргономику. Я писал лишь о практической (с точки зрения программиста) возможности это реализовать.  Внедрить просмотр dwg-файла в своё приложение (через acCtrl от Dwg True View) - это возможно. А вот всунуть туда редактор AutoCAD целиком - это (IMHO) нереально. Если бы это было возможно, то об этом бы уже везде писали.
Название: Re: AutoCAD как плагин для своего приложения
Отправлено: bargool от 27-10-2015, 10:44:01
А вот всунуть туда редактор AutoCAD целиком - это (IMHO) нереально
AutoCAD OEM не подойдёт? Хотя не очень понятно, что это такое..
Название: Re: AutoCAD как плагин для своего приложения
Отправлено: Александр Ривилис от 28-10-2015, 20:14:47
Хотя не очень понятно, что это такое..
Это "обрезанный" AutoCAD. Недешевое удовольствие.
Название: Re: AutoCAD как плагин для своего приложения
Отправлено: Привалов Дмитрий от 25-11-2015, 14:17:02
Возможно ли в Window.content поместить содержимое
главной формы AutoCAD?

Наверное это возможно, через технологию OLE.
Насколько понимаю вставка Excel в автокаде так работает.
Видел подобное для Mapinfo. Реализовано было через OLE automation.
В Winforms отображалось окно Mapinfo и управлялось через OLE.

Общий смысл такой.
1. Естественно приложение(Autocad) должно быть установлено на компьютере.
2. Autocad через OLE запустится в памяти и будет invisible. Вывод будет только в Ваше окно.
3. Все управление зум, редактирование объектов пойдет через передачу команд OLE.

Попробуйте изучить пример MapBasic
http://www.mapbasic.ru/soft/mapbasic_12_5.zip
Установите MapBasic
в папке C:\Program Files (x86)\MapInfo\MapBasic\Samples\DELPHI\TABMAP
смотрите пример и исходники на Delphi
чтоб руками пощупать, нужно ставить Mapinfo

//Создание OLE объекта
oleMapInfo := CreateOLEObject('MapInfo.Application');

//Send a message to run the Zoom-Out tool
oleMapInfo.RunMenuCommand(1706);

примерно так

Читаем вики
В 1996 году Microsoft переименовала технологию OLE 2.0 в ActiveX
Теперь читаем хэлп из ObjectARX Documentation
arxdev.chm
Using COM for ObjectARX Development -> COM and ActiveX Automation  там много чего.

ObjectARX\samples\com может там что-то найдется из примеров ;-)

Отправная точка для изучения есть, больше подсказать ничего не смогу
Удачного изучения, встретимся через пол года))))