明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1588|回复: 3

请教delphi控制AutoCAD问题

[复制链接]
发表于 2007-4-12 21:44:00 | 显示全部楼层 |阅读模式
我用VB写了一段代码,望能将其转换成delphi代码,如下:
Sub AddPath()
  dim AcadApp as Object
  dim CurPath As Variant
  dim Path as string
  Path="c:\wmz"
 set AcadApp=CreatObject("AutoCAD.Application.16)
     AcadApp.Visible=True
  AcadApp.Application.Preferences.Files=Path & ";" &  AcadApp.Application.Preferences.Files
     AcadApp.Quit
end Sub
注:以上代码是将路径为"c:\wmz"的加到AutoCAD的支持路径的最前面中去
 楼主| 发表于 2007-4-13 19:17:00 | 显示全部楼层
在网上搜索了一下,终于找到可以和前面VB代码有相同作用的delphi代码了,不知可不可行:
procedure TForm1.Button1Click(Sender: TObject);
  var
    MyReg : TRegistry;
    f:string;
begin
  MyReg := TRegistry.Create;
  MyReg.RootKey := HKEY_CURRENT_USER;
  try
   if  MyReg.OpenKey('\Software\Autodesk\AutoCAD\R16.0\ACAD-201:804\Profiles\<<未命名配置>>\General',true) then
       begin
        f:= 'c:\wmz;' + MyReg.ReadString('ACAD');
        MyReg.WriteString('ACAD',f);
        MyReg.CloseKey;
       end;
  finally
    MyReg.Free;
  end;
发表于 2007-4-17 01:05:00 | 显示全部楼层

我这里有一段给你参考吧

procedure TForm1.Button4Click(Sender: TObject);
var
    vCadApp:Variant;
    vActiveDoc:Variant;
    sfilename,cmdsfile:string;
    i : integer;
begin
    sfilename := ParamStr(1); //取运行参数,也就是带处理的dwg文件
    vCadApp := CreateOleObject('autoCad.Application');
    vCadApp.Visible := true;
    vActiveDoc :=  vCadApp.ActiveDocument;

    cmdsfile := ExtractFileDir(Application.ExeName)+'\zn_main_s.fas';
    cmdsfile := StringReplace(cmdsfile,'\','\\', [rfReplaceAll]);
    vActiveDoc.SendCommand('(load "'+cmdsfile+'")'+#13);
    vActiveDoc.SendCommand('(print "\n欢迎使用室内分布系统CAD辅助画图软件,版权属于50868,\nEmail:050868@163.com,陈海容2006年11月11日"  )'+#13);
    cmdsfile := ExtractFileDir(Application.ExeName);
    cmdsfile := StringReplace(cmdsfile,'\','\\', [rfReplaceAll]);
    vActiveDoc.SendCommand('(zn_main_s_t "'+cmdsfile + '")'+#13);
    vActiveDoc.SendCommand('(repeat 400(print  ))'+#13);
 end;

 楼主| 发表于 2007-4-17 13:35:00 | 显示全部楼层
非常感谢,就本问题而言,我只要下面这两句就够了
 vActiveDoc :=  vCadApp.ActiveDocument;
 vActiveDoc.SendCommand('(load "'+cmdsfile+'")'+#13);
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-11-26 16:25 , Processed in 0.157183 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表