你了解CAD吗
Acaddocument是你在ACAD中操作的文档,DataBase是Cad中的DataBase
另外一个应是层管理器

解决方案 »

  1.   

    到AUTOACD的网站上下载开发文档,其实和VAB差不多,但你得先学会CAD才能看懂文档。
      

  2.   

    我对vba比较熟,关键是如何在delphi中用组件建立acadapp对象
      

  3.   

    用调用CAD的方法也可以,先用DELPHI把CAD语句作好,然后导入到CAD里去生成图形,可以做比较多的图形编辑,但是有一些小的变动,还是要在CAD里直接做!
      

  4.   

    还有要对CAD语句、命令要熟悉才可以做!
      

  5.   

    回答的乱七八糟,怎么没人举例说明一下AcadDatabase/AcadDocument/AcadLayerStateManager三个组件如何使用?
      

  6.   

    关于AcadDatabase/AcadDocument/AcadLayerStateManager三个组件的使用,在这里讲还不如自己去看相关的资料,那里讲的更详细,这里篇幅有限啊!那样自己可以得到更好的理解,别人直接告诉你,你不一定可以理解,到时候会遇到很多麻烦的! steelxu5(人间漫步)已经跟你讲过他们的意义,AcadDocument是绘图文档,绘图区,绘图块;AcadDatabase是数据组件,从数据库取数据时用得上;AcadLayerStateManager是层管理器,设置图层用的,可以查看CAD自带的开发人员文档,那是有用VBA编程用的资料,也可以转为DELPHI来开发!还有就是楼主的脾气不要太大了!!!
      

  7.   

    一声叹息,我只是想让兄弟们给我举个例子,却惹出那么多麻烦,真对不起了!
    能否给我举出一个例子,利用以上3个组件,写个打开一个dwg文件,然后,在其中画一个圆即可,谢谢啊!
      

  8.   

    给你一些代码吧!自己看懂再去做!但是我没有用到你说的那三个组件!
    uses comOBJ,ActiveX;//一定要加入ComObj,ActiveX两个单元procedure TForm1.FormCreate(Sender: TObject);
    begin
     try
       AcadApp:= GetActiveOleObject('AutoCad.Application'); //取得当前打开的autocad对象
     except
       AcadApp:=CreateOleObject('AutoCad.Application');  //没有创建新的autocad对象
     end;
       AcadDoc:=AcadApp.ActiveDocument; //当前图纸文件
       AcadMS:=AcadDoc.ModelSpace;       //模型空间
       Mpath:=ExtractFilePath(Application.ExeName);//获取主文件路径
    end;procedure TForm1.Button1Click(Sender: TObject);
    var
     insPoint:Variant;
     textHeight:integer;
     textStr:string;
    begin
      insPoint:=VarArrayCreate([0,2],VT_R8); //定义插入点 (维数,类型)VT_8代表8字节的实型数
      insPoint[0]:=2.0; //定义插入点X坐标
      insPoint[1]:=4.0; //定义插入点Y坐标
      insPoint[2]:=0.0; //定义插入点Z坐标
      textHeight:=50;//文本高度
      textStr:='Hello World!';//插入的文本字符
      edit1.text:='Hello World!';
      AcadApp.Visible:=True; //打开Autocad,使之可见
      AcadMS.addText(textStr,varArrayRef(insPoint),textHeight);//将定义好的文本插入模型空间(文本,点指针,高度)
      AcadDoc.SaveAS(Mpath+'hello.dwg');   //保存文件
      {点评:在AutoCad的模型空间中,点是按照三维坐标进行定义的,即一个点由三个双精度数组成的
      数组来定义。但由于Delphi是通过automation和autocad来进行通讯的,所以不能直接向autocad传
      双精度数。}
    end;
      

  9.   

    画圆就用
    AcadMS.addCircle(圆心坐标(X,Y),半径);
      

  10.   

    补充一下grjs2004(在岸边钓不到大鱼,只好下水去摸虾米!)兄给出的给你一些代码吧!自己看懂再去做!但是我没有用到你说的那三个组件!
    uses comOBJ,ActiveX;//一定要加入ComObj,ActiveX两个单元procedure TForm1.FormCreate(Sender: TObject);
    begin
     try
       AcadApp:= GetActiveOleObject('AutoCad.Application'); //取得当前打开的autocad这段代码很全,
    但如果有问题的话,你查看一下你的ACAD版接口字,我记得ACAD2004是 AutoCad.Application16 ,也就是
      AcadApp:= GetActiveOleObject('AutoCad.Application'); 这一句括号中的参数
      

  11.   

    谢谢 grjs2004(在岸边钓不到大鱼,只好下水去摸虾米!) 的回答,但现在还是那个问题,3个组件如何使用?其实我是想自动弹出属性、方法等,解决后立即给分!
      

  12.   

    关注!我正想请教能否在delphi中打开autocad并使用呢