基于Visual C#的AutoCAD开发——实例1 基本例子

实例1 基本例子

 

1、新建项目

启动Visual Studio 2005,新建一个项目,命名为“CAD开发”,如下图所示:

2、添加引用

添加AutoCAD的引用AutoCAD 2007 Type LibraryAutoCAD/ObjectDBX Common 17.0 Type Library,如下图所示:

3、全局变量定义

在全局变量中定义如下:

        Autodesk.AutoCAD.Interop.AcadApplication AcadApp;

        Autodesk.AutoCAD.Interop.AcadDocument AcadDoc;

其中,AcadApplicationCAD对象接口,AcadDocumentCAD文件。

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”,如下图所示:

你可能感兴趣的:(CAD)