美文网首页
AutoCAD .NET 建立第一个项目

AutoCAD .NET 建立第一个项目

作者: DavidShawn | 来源:发表于2021-09-05 11:41 被阅读0次

AutoCAD的二次开发支持多种语言,比如Autolisp, VB, C#, Javascript。
在这里,我们将介绍如何用c#,在.NET框架下,建立第一个项目。


一 . 新建项目

  1. 启动Visual Studio 2019


    启动Visual Studio
  2. 创建新项目


    创建新项目
  3. 选择类库模板


    选择类库模板
  1. 命名项目
    给项目取个名称 MyFirstProject1,项目位置可以自定义。
    image.png
    点击创建,完成项目的创建。

二. 引用AutoCAD.NET API文件

  1. 找到解决方案资源管理器
    解决方案资源管理器

如果默认界面没有显示这个管理器的话,可以在菜单栏打开显示:


image.png
  1. 添加引用
    引用上右键,选择添加项目引用
    添加项目引用
  1. 选择文件
    在弹出的窗口中点击浏览。
    添加项目引用
    我们的目的是要引用AcMgd.dllAcDbMgd.dllAcCoreMgd.dll这三个文件。他们的位置在AutoCAD的安装目录下,比如:C:\Program Files\Autodesk\AutoCAD 2020
    在文件夹下,用ctrl键将三个文件同时选中,添加。
    如果引用过一次,会有记录,下次加载会更加方便
image.png
  1. 设置不复制到本地
    导入成功后,可以在依赖项->程序集中看到引入的dll文件。
    同时选中三个程序集,在下面的属性中,将复制本地的项设置为否。
    官方的解释是,如果复制本地,程序导出后会附带这三个dll文件。再加载到AutoCAD中时,会与CAD本身的三个dll文件产生冲突,从而产生未知错误。因此这里最好设置为否。
    image.png

三. 创建命令

环境已经搭建好了,下面我们可以写命令了。
在默认的Class1.cs文件中,你能看到下面这段已经存在的代码:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace MyFirstProject1
{
    public class Class1
    {
    }
}

我们开始写下面这段代码:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

using Autodesk.AutoCAD.Runtime;
using Autodesk.AutoCAD.ApplicationServices;
using Autodesk.AutoCAD.DatabaseServices;

namespace MyFirstProject1
{
    public class Class1
    {
        [CommandMethod("Greeting")]
        public void Greeting()
        {
            // 获取当前文档和数据库
            Document acDoc = Application.DocumentManager.MdiActiveDocument;
            Database acCurDb = acDoc.Database;

            // 启动事务
            using (Transaction acTrans = acCurDb.TransactionManager.StartTransaction())
            {
                // 打开一个Block Table记录
                BlockTable acBlkTb1 = acTrans.GetObject(acCurDb.BlockTableId, OpenMode.ForRead) as BlockTable;
                // 开辟一个可供写的模型空间
                BlockTableRecord acBlkTblRec = acTrans.GetObject(acBlkTb1[BlockTableRecord.ModelSpace], OpenMode.ForWrite) as BlockTableRecord;

                // 创建一个文字对象
                using (MText objText = new MText())
                {
                    // 位置
                    objText.Location = new Autodesk.AutoCAD.Geometry.Point3d(0, 0, 0);
                    // 内容
                    objText.Contents = "Hello, Welcome to AutoCAD .NET";

                    // 将文字对象加入到之前开辟的模型空间
                    acBlkTblRec.AppendEntity(objText);

                    // 加入事务
                    acTrans.AddNewlyCreatedDBObject(objText, true);
                }
                acTrans.Commit();
            }
        }
    }
}

四. 生成解决方案并才AutoCAD中执行

我们已经写好了一段命令,但是如何在AutoCAD中执行呢?

  1. 生成解决方案
    在Visual Studio的菜单栏中,选择生成->生成解决方案

    生成解决方案
    在最下面的输出状态栏中,可以看到成功提示信息。
    输出状态栏
    说明生成解决方案成功。生在的文件在我们的vs项目文件夹下。
    image.png
  2. 在AutoCAD中操作
    启动AutoCAD

    启动AutoCAD
    在CAD的命令行输入栏中,输入netload
    NETLOAD
    在弹出的对话框中,找到并选择MyFirstProject1.dll文件
    MyFirstProject1.dll

选择始终加载


加载确认

此时,我们可以输入之前在代码中设定的命令名称greeting,回车或空格确认

image.png

在cad中缩放视图,可以看到在坐标0点附近,出现了一行文字Hello, Welcom to AutoCAD .NET

image.png

到此,我们的第一个项目就建立并运行成功了!

相关文章

网友评论

      本文标题:AutoCAD .NET 建立第一个项目

      本文链接:https://www.haomeiwen.com/subject/ficjwltx.html