如题  
我已经在delphi中用createoleobject打开了autocad,但怎样画线,多义线,拟和曲线,  
标注,填充,复制,如何处理错误,如何添加菜单啊?  
有delphi如何用vba操作autocad的书吗?  
谢谢!!!分不够我会再加的! ......,
麻烦各位大侠了.

解决方案 »

  1.   

    找一下AutoCAD二次开发方面的书吧,这儿有几篇文章给你参考一下
    http://www.adi-xz.com.cn/gotocad/articleold/index.asp-classid=4&Nclassid=7.htm
      

  2.   

    在画线之前,好像得先引用autocad的库函数,把ACAD.TLB生成AUTUCAD_TLB.PAS,怎么做啊?
      

  3.   

    要引入类型库啊.
    用Project/import type library菜单项就可以实现引入类型库
      

  4.   

    你引入类库后,生成的PAS文件中不是有函数声明之类的么,试一下吧,我也不是很清楚
      

  5.   

    用Project/import type library菜单项实现引入类型库后,在AUTUCAD_TLB.PAS中有命令:
    如: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???
    请各位大侠帮忙解答!谢谢!!!
    最好给些调试通过后的代码!!!!!!
      

  6.   

    a:=Acad.ActiveDocument.ModelSpace;
    a.AddCircle
    多添加个ActiveDocument才能制图,OleObject不能支持修改和添加功能
      

  7.   

    你还要源代码吗? 我可以给你 要自己找我[email protected] 可以画简单的东西 复杂的我没时间去画
      

  8.   

    procedure TForm1.Button1Click(Sender: TObject);
    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控件更好操作一些,一组有两个控件。
      

  9.   

    CAD.tlb自动生成delphi控件怎么有三个“AcadDataBase”"AcadDocument""AcadLayerStateManager"