• AutoCAD.NET:第二章 Hello World


        在这一章中,我们将使用Visual Studio .NET来创建一个新的类库工程。通过这个工程,你可以创建一个能被AutoCAD装载的.NET dll文件。这个dll文件会向AutoCAD加入一个名为“HelloWorld”的新命令。当用户运行这个命令后,在AutoCAD 命令行上将显示“Hello World”文本。
    1) 新建类库。

    2) 使用AutoCAD .NET托管封装类。这些托管封装类包含在两个托管模块中。要加入对这两个托管模块的引用,请用鼠标右键单击”引用”然后选择”添加引用”。在弹出的”添加引用”对话框中选择”浏览”。在”选择组件”对话框中,选择AutoCAD 2006的安装目录(这里假定为C:\Program Files\AutoCAD 2006\),在这个目录下找到“acdbmgd.dll”和“acmgd.dll”然后选择并打开。当这两个组件被加入后,请单击”添加引用” 对话框中的”确定”按钮。正如它们的名字所表示的,acdbmgd.dll包含ObjectDBX托管类,而acmgd.dll包含AutoCAD托管类。

    3) 使用对象浏览器(Visual Studio.NET的”视图>对象浏览器”菜单项)来浏览加入的两个托管模块所提供的类。

    4) 导入ApplicationServices, EditorInput 和 Runtime命名空间。

    using Autodesk.AutoCAD.ApplicationServices;
    using Autodesk.AutoCAD.EditorInput;
    using Autodesk.AutoCAD.Runtime;
    5) 加入HelloWorld命令。要加入能在AutoCAD 中调用的命令,你必须使用“CommandMethod”属性。这个属性由Autodesk.AutoCAD.Runtime命名空间提供。
    [CommandMethod("HelloWorld")]
    public void HelloWorld()
    {
        Editor ed 
    = Application.DocumentManager.MdiActiveDocument.Editor;
        ed.WriteMessage(
    "Hello World");
    }

    6) 在AutoCAD中调试程序,让Visual Studio.NET启动一个AutoCAD进程。在解决方案管理器中右键单击“HelloWorld”,然后选择”属性”。在HelloWorld的属性页对话框中,选择” 配置属性>调试”。在”启动”项中,选择”调试模式”为”程序”,在”启动程序”的右边单击省略号按钮然后选择AutoCAD 2006安装目录下的acad.exe。设置好以后,按F5来启动一个AutoCAD进程。这样就会先编译你的程序,然后自动启动AutoCAD,而当编译后有错误的时候就会停止。

    7)手动加载类库:
    在AutoCAD命令行中输入NETLOAD,会出现”选择.NET组件”的对话框。选择上面生成的“HelloWorld.dll”然后打开它。

    8) 自动加载类库:
    (1) 工程属性对话框-->调试标签-->启动选项-->命令行参数中输入:
    /nologo /b "..\..\start.scr"
    让CAD自动在命令执行工程目录里的start.scr文件。
    (2) 然后就是在工程目录的根目录创建一个文本文件,名字取为“start.scr”,并在此文件中输入如下文本:
    netload "..\..\bin\debug\lubanren_2008.dll"
    (3) 按F5。

    9)在命令行中输入“HellowWorld”。如果一切顺利的话,命令行中将显示“Hello World”文本。切换到Visual Studio.NET,在ed.WriteMessage(“Hello World”);语句处加入一个断点。在AutoCAD中再次运行HelloWorld命令,你会注意到你可以跟踪代码的运行。Visul Studio.NET的”调试”菜单有好几项可以用来跟踪程序的运行。

  • 相关阅读:
    基于Laravel开发博客应用系列 —— 十分钟搭建博客系统
    基于 Laravel 开发博客应用系列 —— 从测试开始(二):使用Gulp实现自动化测试
    基于 Laravel 开发博客应用系列 —— 从测试开始(一):创建项目和PHPUnit
    基于 Laravel 开发博客应用系列 —— Homestead 和 Laravel 安装器
    listView当中有嵌套了有onClickListener的控件时ListView自身的onItemClick无响应的解决方案
    Java enum的用法详解[转]
    Android图片上传问题小结
    byte数组和File,InputStream互转
    工程
    获取到Android控件的高度
  • 原文地址:https://www.cnblogs.com/wf225/p/1219373.html
Copyright © 2020-2023  润新知