如题
我已经在delphi中用createoleobject打开了autocad,但怎样画线,多义线,拟和曲线,
标注,填充,复制,如何处理错误,如何添加菜单啊?
有delphi如何用vba操作autocad的书吗?
谢谢!!!分不够我会再加的! ......,
麻烦各位大侠了.
我已经在delphi中用createoleobject打开了autocad,但怎样画线,多义线,拟和曲线,
标注,填充,复制,如何处理错误,如何添加菜单啊?
有delphi如何用vba操作autocad的书吗?
谢谢!!!分不够我会再加的! ......,
麻烦各位大侠了.
http://www.adi-xz.com.cn/gotocad/articleold/index.asp-classid=4&Nclassid=7.htm
用Project/import type library菜单项就可以实现引入类型库
如:addcircle(p:olevariant;r:double);
可是我写了代码后总出现错误:参数错误?代码如下:
procedure TForm1.Button1Click(Sender: TObject);
var
cadapp:variant;
circleobj:variant;
p:olevariant;
r:double;
begin
cadapp:=CreateOleObject('AutoCAD.Application');
cadapp.visible:=true;
p:=VarArrayCreate([0,2],varVariant);
p[0]:=20;
p[1]:=30;
p[2]:=0;
r:=50;
circleobj:=cadapp.activedocument.modelspace.addcircle(p,r);
end;
why???
请各位大侠帮忙解答!谢谢!!!
最好给些调试通过后的代码!!!!!!
a.AddCircle
多添加个ActiveDocument才能制图,OleObject不能支持修改和添加功能
var
obj_ModelSpace, obj_Acad: OleVariant;
pnt_Start,pnt_end:OleVariant;
begin
//try
//obj_Acad:=GetActiveOleObject('AutoCAD.Application');
//except
obj_Acad:=CreateOleObject('AutoCad.Application');
//end;
// bringwindowtotop(obj_Acad);
// obj_Acad.Top:=115;
// obj_Acad.Left:=240;
//obj_Acad.Width:=566;
//obj_Acad.Height:=458;
obj_Acad.visible:=True;
obj_ModelSpace:=obj_Acad.ActiveDocument.ModelSpace;
//obj_ModelSpace.ModelSpace.AddLine(VarArrayRef(pnt_Start),VarArrayRef(pnt_end));
pnt_Start:=VarArrayCreate([0,2],varDouble);
pnt_end:=VarArrayCreate([0,2],varDouble);
pnt_end[0]:=100.0;
pnt_end[1]:=100.0;
pnt_end[2]:=0.0;
pnt_end[0]:=500.0;
pnt_end[1]:=500.0;
pnt_end[2]:=0.0;
obj_ModelSpace.AddCircle(VarArrayRef(pnt_Start), 100).Update;
obj_ModelSpace.Addline(VarArrayRef(pnt_Start),(pnt_end)).Update;
end;end.
不过要添加 uses comobj
这个代码可以直接用!
不过最好是让CAD.tlb自动生成delphi控件更好操作一些,一组有两个控件。