Hallo an alle,
ich habe ein großes Problem wenn ich von Delphi auf AutoCAD zugreifen möchte. Ich habe dir Typenbibliothek usw in Delphi eingebunden und folgenden Code erstellt um eine Zeichnung in ACAD zu öffnen.
Eigentlich möchte ich sie mit
Acad.Application.ActiveDocument.Database.Blocks.Add(vpoint,'c:\z1.dwg');
einfügen aber da bekomme ich eine Fehlermeldung OLE.... mit der ich nichts anfangen kann.
Dann habe ich es mit einem "schlichten" open probiert und funktioniert leider auch nicht.
Der komplette Code ist folgender:
var
Acad2000 : Variant;;
Acad: AcadApplication;
vpoint : Variant;
acade : AcadEntity;
acadblockref : AcadBlockReference;
ablock : AcadBlock;
atest : AcadDocument;
st : string;
begin
try
Acad2000 := GetActiveOleObject('AutoCAD.Application.15');
except
try
ShowMessage('kein connect');
Acad2000 := CreateOleObject('AutoCAD.Application.15');
except
ShowMessage('kein create moeglich');
Exit;
end;
end;
Acad := IDispatch(Acad2000) As AcadApplication;
Acad2000.Visible := True;
Acad.ActiveDocument.Activate;
// Meine Variable für die Koordinaten als OLEVariant
vPoint := VarArrayCreate([0,2], varVariant);
vPoint[0] := 1.0; vPoint[1] := 1.0; vPoint[2] := 1.0;
// Testbefehle die funktioniern !!! sendcommand geht auch
st := string(acad.Application.Caption);
showmessage(st);
// Egal welchen der Befehle ich verwende
// beim Aufruf kommt ein "schwerer" Fehler
Acad.Application.ActiveDocument.Open('c:\test.dwg');
oder
Acad.ActiveDocument.Import('c:\test.dwg',vpoint,10);
oder
Acad.ActiveDocument.ModelSpace.InsertBlock (vpoint,'c:\z1.dwg',0,0,0,0);
end;
(Ich benutze AutoCad 2000 und Borland Delphi 7.0)
Vielleicht mache ich einen grundsätzlichen Fehler?!?
Für jeden möglichen Lösungsvorschlag wäre ich sehr dankbar.
Gruß
Jürgen
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP