AutoCAD + Delphi
| Правила | Регистрация | Пользователи | Сообщения за день |  Справка по форуму | Файлообменник |

Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > AutoCAD + Delphi

AutoCAD + Delphi

Ответ
Поиск в этой теме
Непрочитано 21.08.2009, 12:12 #1
AutoCAD + Delphi
QWERTY12244
 
МЧС
 
Подольск
Регистрация: 21.08.2009
Сообщений: 4

Доброго времени суток, у меня такой вопрос, хочу написать макрос на delphi, как сконектить делфи и автокад вроде ясно
(Сорри за бредовый вопрос, если кто так подумает)) я в написании макросов, новичок))


Function GetAcadApplication(Visible: Boolean): IAcadApplication;
var
v : OleVariant;
begin
Try
v := GetActiveOleObject('AutoCAD.Application');

а как в автокаде, заставить работать сам макрос написанный на делфи???
Просмотров: 6715
 
Непрочитано 21.08.2009, 13:59
#2
ShaggyDoc

Thượng Tá Quân Đội Nhân Dân Việt Nam
 
Регистрация: 14.03.2005
44d32'44"С, 33d26'51"В
Сообщений: 13,372


Что за новинка - "макрос, написанный на делфи"?
Вот приложения, написанные на Delphi, могут использоваться для работы с AutoCAD по следующим схемам:

1. Delphi-приложение обращается к объектной модели AutoCAD и выполняет его методы (а также свойства устанавливает и прочее)

2. Delphi-приложение разрабатывается в виде COM-сервера, и уже из программ, работающих внутри AutoCAD, идет обращение к объектам сервера.

Ну, и примитивные варианты - запуск Delphi-приложения как процесса.
ShaggyDoc вне форума  
 
Автор темы   Непрочитано 22.08.2009, 08:36
#3
QWERTY12244

МЧС
 
Регистрация: 21.08.2009
Подольск
Сообщений: 4
<phrase 1=


ShaggyDoc, я думаю 1-й и последний пункт мне интересны))
но вопрос остается открытым как, запустить это приложение в автокаде???
QWERTY12244 вне форума  
 
Непрочитано 22.08.2009, 11:22
#4
Дима_

Продуман
 
Регистрация: 22.02.2007
Питер
Сообщений: 2,839


Цитата:
Сообщение от QWERTY12244 Посмотреть сообщение
ShaggyDoc, я думаю 1-й и последний пункт мне интересны))
но вопрос остается открытым как, запустить это приложение в автокаде???
Ну самое простое через функцию (startapp ...), но ихмо это чесание левой ногой правого уха - если надо обратиться из внешнего приложения к объектам автокада это одно, а изнутри акада обращаться к своим же объектам посредством внешнего приложения??? - я так понимаю что Вы хорошо знаете Delphi - а акад не очень - Вам все равно придеться изучать его методы - если нужно приложение внутри посмотрите заодно с методами VB или LISP.
__________________
Когда в руках молоток все вокруг кажется гвоздями.
Дима_ вне форума  
 
Автор темы   Непрочитано 22.08.2009, 14:41
#5
QWERTY12244

МЧС
 
Регистрация: 21.08.2009
Подольск
Сообщений: 4
<phrase 1=


Дима_ спасибо) попробую
но разве для автокада на делфи нельзя писать такие же небольшие приложения как на vb и lispe?и с таким же успехом их использовать?
или это очень неудобно, я слышал для автокада можно и на с++
кодить...
QWERTY12244 вне форума  
 
Непрочитано 22.08.2009, 17:47
#6
ShaggyDoc

Thượng Tá Quân Đội Nhân Dân Việt Nam
 
Регистрация: 14.03.2005
44d32'44"С, 33d26'51"В
Сообщений: 13,372


VBA и LISP - "встроенные" в AutoCAD системы. Delphi - нет. На C++ разрабатываются приложения для AutoCAD с использованием библиотек ObjectARX. Это также специально предназначеное для AutoCAD средство - наиболеемощное, но и достаточно сложное в освоении.
ShaggyDoc вне форума  
 
Автор темы   Непрочитано 22.08.2009, 21:34
#7
QWERTY12244

МЧС
 
Регистрация: 21.08.2009
Подольск
Сообщений: 4
<phrase 1=


ShaggyDoc спасибо, ObjectARX я нашел в автокаде, это уже интересней)
я думаю тему можно закрывать)
QWERTY12244 вне форума  
 
Непрочитано 25.08.2009, 13:53
#8
Зойберг


 
Регистрация: 25.02.2008
Сообщений: 9


Может быть глупый вопрос, но я сам что-то не могу найти.

Как из Дельфи, используя OleVariant, управлять вслывающими окошками? Я открываю Автокад, вызывая CreateOleObject, потом пытаюсь открыть dwg методом Application.Open, но он говорит "отказано в доступе". А всё потому, что при открытии AutoCad вслывает окошко, вроде приветствия, и это окошко надо как-то закрыть. Вот как это сделать из Дельфи, я и не пойму...
Зойберг вне форума  
 
Непрочитано 25.08.2009, 14:12
#9
ShaggyDoc

Thượng Tá Quân Đội Nhân Dân Việt Nam
 
Регистрация: 14.03.2005
44d32'44"С, 33d26'51"В
Сообщений: 13,372


Таких случаев может быть много, и даже безо всяких окошек. Элементарно - панорамируют мышкой и забыли. И AutoCAD будет занят.

Предусмотреть все варианты невозможно. В этом, в том числе, заключается принципиальная порочность управления Автокадом из внешнего приложения. В том числе, написанного на Delphi.

Надо делать наоборот - основная программа работает внутри Автокада и, только при необходимости, обращается к сторонним приложениям. Лучше всего через COM. И только за теми делами, которые внутри AutoCAD сделать нельзя. А в Delphi, например, можно - формы всякие хитрые, визуальная работа с БД и т.п.
ShaggyDoc вне форума  
 
Непрочитано 03.09.2009, 11:46
#10
Зойберг


 
Регистрация: 25.02.2008
Сообщений: 9


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

Требуется открыть автокад из дельфи, импортировать оттуда информацию об объектах, и закрыть автокад. Короче, прочитать dwg с помощью автокада. Автокад я открываю вообще как невидимое приложение, т.е. при нажатии "импорт" пользователь вообще не узнает о том, что открывался автокад.

Поэтому проедусмотреть все варианты здесь как раз очень просто. Всё зависит от версии автокада. Но по-моему почти во всех версиях появляется первичное окошко приветствия.
Зойберг вне форума  
 
Непрочитано 03.09.2009, 15:00
#11
ShaggyDoc

Thượng Tá Quân Đội Nhân Dân Việt Nam
 
Регистрация: 14.03.2005
44d32'44"С, 33d26'51"В
Сообщений: 13,372


Цитата:
Проблема в том, что у меня основной является именно дельфийская программа. Того требует постановка задачи.
Того требует неправильная постановка задачи.

Цитата:
Поэтому проедусмотреть все варианты здесь как раз очень просто
Это очень наивное утверждение. Мягко говоря. И наивно надеяться на "невидимое" приложение AutoCAD. Это программу из Office или ещё какую другую "легкую" можно так запустить, или даже вообще в своё окно встроить.

А сплэш убирается просто - аргументом командной строки AutoCAD.
ShaggyDoc вне форума  
 
Непрочитано 04.09.2009, 13:05
#12
Зойберг


 
Регистрация: 25.02.2008
Сообщений: 9


Цитата:
Того требует неправильная постановка задачи.
Не я ставлю задачи Начальство сказало ясно: требуется программа, которая будет забирать dwg и потом обрабатывать его отдельно, независимо от автокада (например, сохранять модель в своём формате и работать с ней независимо от того, установлен ли автокад).

Конечно можно сделать так: пользователь открывает автокад, запускает встроенный макрос, жмёт кнопочку, и получает какой-нибудь новый файл MyModel.mmm, где в своём формате хранится драввинг. А потом уже с этим MyModel.mmm делай чего хочется. Но требуется сделать именно красиво, чтобы вся работа была с отдельной программой, без явно видимого участия автокада. Сейчас я делаю по черновому варианту - вручную открываю автокад, закрываю все окошки, потом импортирую. Но это не годится.

Цитата:
А сплэш убирается просто - аргументом командной строки AutoCAD.
Это как? Надо что-то где-то в каком-то файле дополнительно прописывать?

P. S. Я думал, это легко, и в автокаде есть стандартная процедура, типа "Привести приложение к виду "готов к работе".

P.P.S.
Цитата:
И наивно надеяться на "невидимое" приложение AutoCAD
Так ведь разницы почти никакой. Точно также вызывается CreateOleObject (при этом Windows запускает acad.exe), а потом просто выставляется Application.Visible := false и всё. Процесс acad.exe по-прежнему жив и готов к работе, просто не отображается на панели задач. Да даже и не обязательно невидимку. Пользователь не умрёт от того, что у него на секундочку выскочит автокад на панели задач. Он умрёт, если ему придётся самому этот автокад открывать, искать макрос, делать ещё кучк всяких сложных (для него) вещей...

Как говорится, юзер всегда прав, и чем ему удобнее, тем лучше программа. Красота требует жертв
Зойберг вне форума  
 
Непрочитано 08.01.2010, 10:48
#13
Segavj


 
Регистрация: 04.11.2009
Сообщений: 3


Доброе время суток !
Не подскажите как из Delphi в AutoCAD создать текст .

Последний раз редактировалось Segavj, 10.01.2010 в 21:08.
Segavj вне форума  
 
Непрочитано 12.01.2010, 14:57
#14
Сергей Дубина


 
Регистрация: 06.04.2009
Сообщений: 702


Цитата:
Сообщение от Зойберг Посмотреть сообщение
(например, сохранять модель в своём формате и работать с ней независимо от того, установлен ли автокад).
А как же библиотека типов? Без самого автокада ее можно зарегистрировать?
__________________
КазнитьØнельзяØпомиловать:eek:
Сергей Дубина вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > AutoCAD + Delphi



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Видеоуроки AutoCAD kosmax AutoCAD 173 17.02.2017 15:08
AutoCad и Delphi. Добавление точки Зойберг Программирование 15 28.02.2008 23:18
Delphi and AutoCAD John Ch. Программирование 4 31.01.2004 13:58