|
||
| Правила | Регистрация | Пользователи | Сообщения за день | | Поиск | | Справка по форуму | Файлообменник | |
|
![]() |
Поиск в этой теме |
![]() |
#1 | |
AutoCAD + Delphi
МЧС
Подольск
Регистрация: 21.08.2009
Сообщений: 4
|
||
Просмотров: 6714
|
|
||||
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-приложения как процесса. |
|||
![]() |
|
||||
Продуман Регистрация: 22.02.2007
Питер
Сообщений: 2,839
|
Ну самое простое через функцию (startapp ...), но ихмо это чесание левой ногой правого уха - если надо обратиться из внешнего приложения к объектам автокада это одно, а изнутри акада обращаться к своим же объектам посредством внешнего приложения??? - я так понимаю что Вы хорошо знаете Delphi - а акад не очень - Вам все равно придеться изучать его методы - если нужно приложение внутри посмотрите заодно с методами VB или LISP.
__________________
Когда в руках молоток все вокруг кажется гвоздями. |
|||
![]() |
|
||||
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 средство - наиболеемощное, но и достаточно сложное в освоении.
|
|||
![]() |
|
||||
Регистрация: 25.02.2008
Сообщений: 9
|
Может быть глупый вопрос, но я сам что-то не могу найти.
Как из Дельфи, используя OleVariant, управлять вслывающими окошками? Я открываю Автокад, вызывая CreateOleObject, потом пытаюсь открыть dwg методом Application.Open, но он говорит "отказано в доступе". А всё потому, что при открытии AutoCad вслывает окошко, вроде приветствия, и это окошко надо как-то закрыть. Вот как это сделать из Дельфи, я и не пойму... |
|||
![]() |
|
||||
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, например, можно - формы всякие хитрые, визуальная работа с БД и т.п. |
|||
![]() |
|
||||
Регистрация: 25.02.2008
Сообщений: 9
|
Проблема в том, что у меня основной является именно дельфийская программа. Того требует постановка задачи.
Требуется открыть автокад из дельфи, импортировать оттуда информацию об объектах, и закрыть автокад. Короче, прочитать dwg с помощью автокада. Автокад я открываю вообще как невидимое приложение, т.е. при нажатии "импорт" пользователь вообще не узнает о том, что открывался автокад. Поэтому проедусмотреть все варианты здесь как раз очень просто. Всё зависит от версии автокада. Но по-моему почти во всех версиях появляется первичное окошко приветствия. |
|||
![]() |
|
||||
Thượng Tá Quân Đội Nhân Dân Việt Nam Регистрация: 14.03.2005
44d32'44"С, 33d26'51"В
Сообщений: 13,372
|
Цитата:
Цитата:
А сплэш убирается просто - аргументом командной строки AutoCAD. |
|||
![]() |
|
||||
Регистрация: 25.02.2008
Сообщений: 9
|
Цитата:
![]() Конечно можно сделать так: пользователь открывает автокад, запускает встроенный макрос, жмёт кнопочку, и получает какой-нибудь новый файл MyModel.mmm, где в своём формате хранится драввинг. А потом уже с этим MyModel.mmm делай чего хочется. Но требуется сделать именно красиво, чтобы вся работа была с отдельной программой, без явно видимого участия автокада. Сейчас я делаю по черновому варианту - вручную открываю автокад, закрываю все окошки, потом импортирую. Но это не годится. Цитата:
P. S. Я думал, это легко, и в автокаде есть стандартная процедура, типа "Привести приложение к виду "готов к работе". P.P.S. Цитата:
Как говорится, юзер всегда прав, и чем ему удобнее, тем лучше программа. Красота требует жертв ![]() |
|||
![]() |
|
||||
Регистрация: 06.04.2009
Сообщений: 702
|
А как же библиотека типов? Без самого автокада ее можно зарегистрировать?
__________________
КазнитьØнельзяØпомиловать:eek: |
|||
![]() |
![]() |
|
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Видеоуроки 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 |