实例1 基本例子
1、新建项目
启动Visual Studio 2005,新建一个项目,命名为“CAD开发”,如下图所示:
2、添加引用
添加AutoCAD的引用AutoCAD 2007 Type Library和AutoCAD/ObjectDBX Common 17.0 Type Library,如下图所示:
3、全局变量定义
在全局变量中定义如下:
Autodesk.AutoCAD.Interop.AcadApplication AcadApp;
Autodesk.AutoCAD.Interop.AcadDocument AcadDoc;
其中,AcadApplication是CAD对象接口,AcadDocument是CAD文件。
4、打开CAD文件
添加一个按钮,为按钮添加如下代码,实现打开一个CAD文件的功能:
private void button1_Click(object sender, EventArgs e)
{
OpenFileDialog pOpenDG = new OpenFileDialog();
pOpenDG.ShowDialog();
string filePath = pOpenDG.FileName;
AcadApp = new AcadApplication();
AcadApp.Application.Visible = true;
AcadDoc = AcadApp.Documents.Open(filePath,null,null);
}
程序运行结果如下图所示:
如果没有语句“AcadApp.Application.Visible = true;”则无法显示CAD软件界面,只能启动CAD在后台。通过“AcadApp = new AcadApplication();”是创建一个新的CAD对象,但是并不是每次都需要创建CAD对象,如CAD对象已经存在时就不需要再创建CAD对象。
5、定义启动CAD对象的函数
定义一个启动CAD对象的函数“启动CAD()”,代码如下:
private void 启动CAD()
{
try
{
AcadApp = (AcadApplication)System.Runtime.InteropServices.Marshal.GetActiveObject("AutoCAD.Application");
AcadDoc = AcadApp.ActiveDocument;
}
catch
{
OpenFileDialog pOpenDG = new OpenFileDialog();
pOpenDG.Filter = "CAD文件(*.dwg)|*.dwg|CAD图形文件(*.dxf)|*.dxf";
pOpenDG.Title = "打开CAD文件";
pOpenDG.ShowDialog();
string filePath = pOpenDG.FileName;
if (filePath == "")
{
MessageBox.Show("选择CAD文件无效!", "文件无效!");
Application.Exit();
}
AcadApp = new AcadApplication();
AcadDoc = AcadApp.Documents.Open(filePath, null, null);
}
AcadApp.Application.Visible = true;
Microsoft.VisualBasic.Interaction.AppActivate(AcadApp.Caption);
}
其中“Microsoft.VisualBasic.Interaction.AppActivate(AcadApp.Caption);”是使得CAD对象在最前面,要调用该函数还需要添加引用“Microsoft.VisualBasic”,如下图所示: