题记:
昨天拿到的《AutoCAD VBA&VB.Net开发基础与实例教程》,然后就是很草率的下决心学习VB.Net对AutoCAD的二次开发。
上学的时候曾经学过AutoCAD的二次开发,当时比较感兴趣的是VBA,但是VBA有几个比较明显的弱点:一是VBA开发的程序都是开放源代码的,二是VBA功能上毕竟比较弱。
于是想使用Vb.Net进行AutoCAD的开发,于是就买了这本号称国内第一本的介绍AutoCAD VB.Net开发的书。
题记2:
看过两遍电影《朱莉与茱莉亚》,也想仿效朱莉把自己的学习动态记录下来。
声明:本人是纯种的编程爱好者,不是科班出身,说了什么行外话或者有什么错误,急切的请各位大虾们批评指正,不胜感激。
OK,开篇:Hello world!
《AutoCAD VBA&VB.Net开发基础与实例教程》前面多半是关于《VBA》的介绍,不是不感兴趣,是真的没时间去研究了,于是从第15章开始,也即从“.Net开发AutoCAD入门”一章开始。
书中用的.Net平台是Visual Studio 2005,AutoCAD版本是2007。我习惯使用Visual Studio 2008,而AutoCAD使用2006。大体上应该是一样的(我想)。
第一个程序的步骤是这样的:
1. 新建类库;
2. 加载引用:加载AutoCAD目录下的acdbmgd.dll和acmgd.dll两个程序集(组件),并将两个引用的“复制本地”属性设为False;
3. 在代码窗口顶部添加导入命名空间:
1 Imports Autodesk.AutoCAD.ApplicationServices
2 Imports Autodesk.AutoCAD.EditorInput
3 Imports Autodesk.AutoCAD.Runtime
4. 在Class1中添加代码:
Public Class Class1
<CommandMethod("Hello")> _
Public Sub Hello()
'获取当前活动文档的editor对象,也就是命令行
Dim Ed As Editor = Application.DocumentManager.MdiActiveDocument.Editor
'调用Editor对象的WriteMessge函数在命令行上显示文本
Ed.WriteMessage("欢迎进入.Net开发AutoCAD的世界!TranSteel")
End Sub
End Class
5. 运行:
5.1 启动外部程序:在本解决方案的属性中修改调试选项卡,在“启动操作”中选择启动外部程序按钮,并找到acad.exe文件。
5.2 运行程序,会自动启动AutoCAD,在AutoCAD中使用NetLoad命令,选择生成的Hello.dll文件(在..\Hello\bin\debug下),打开该dll,输入命令“Hello”,观看效果,若在AutoCAD的命令窗口中出现“欢迎进入.Net开发AutoCAD的世界!TranSteel”,则运行成功,否则肯定是哪里出错了。
以上便是教材中的标准步骤,在我操作的工程中,遇到了有关“托管代码”的问题。即
网络上随便搜搜,找到了解决方法(具体为什么,本着“好读书不求甚解”的精神,暂且放下,等咱成了.Net高手再返回头来深究):
菜单—调试—异常—Managed Debugging Assistants—LoaderLock的“引发”选择不选。
End