Форум: "Основная";
Текущий архив: 2002.03.25;
Скачать: [xml.tar.bz2];
ВнизOleVariant (AutoCAD) Найти похожие ветки
← →
Milz (2002-03-11 10:49) [1]Скорее всего проблема в том, что ты работаешь с IAcadDocument и т.п., а нада с IAcadDocumentDisp и т.п. ведь ты работаешь через OLE ... по крайней мере у меня часто акад вылетал и глючил именно из-за этого.
Причём обрати внимание, что Mcad.ActiveDocument возвращает IMcadDocument, а надо IMcadDocumentDisp и т.п. ...
См. пример для МДТ
uses comobj,McadAuto_TLB,AutoCAD_TLB;
var Acad:IAcadApplicationDisp;
Mcad:IMcadApplicationDisp;
McadDoc:IMcadDocumentDisp;
procedure TForm1.Button1Click(Sender: TObject);
var MPart:IMcadPartDisp;
begin
try
// связываемся с запущенным автокадом
acad:=GetActiveOleObject("AutoCAD.Application") as IAcadApplicationDisp;
except
// возникла ошибка EOleSysError, значит с автокадом не удалось связаться - создаём объект - автокад
acad:=CreateOLEObject("AutoCAD.Application") as IAcadApplicationDisp;
end;
acad.Visible:=true; // иначе мы ничего не увидим ...
// связываемся с мдт через автокад
Mcad:=acad.GetInterfaceObject("Mcad.Application") as IMcadApplicationDisp;
// текущий документ мдт
McadDoc:=mcad.ActiveDocument as IMcadDocumentDisp;
// для примера добавим парт
MPart:=McadDoc.AddNewPart("MainPart") as IMcadPartDisp;
end;
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2002.03.25;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.004 c