是不是看了上面的东西觉得有点难?(呵呵,如果你要弄清楚什么块表、块表记录、事务处理的,你得先了解AutoCAD内在的一些东西,这我会在以后讲)不就是加入一个圆吗?要这么复杂?!为了让初学者快速地进入.net开发AutoCAD的世界,我给大家编了一个库ZHFARX,你可以通过这个库来简化上面的程序(关于ZHFARX库,你可以在附件中下载。关于这个库的详细介绍请大家看我下一期的文章)。下面是引用ZHFARX库后加入圆的代码:
using System;
using Autodesk.AutoCAD.DatabaseServices;
using Autodesk.AutoCAD.Runtime;
using Autodesk.AutoCAD.Geometry;
using Autodesk.AutoCAD.ApplicationServices;
using Autodesk.AutoCAD.EditorInput;
using DBTransMan=Autodesk.AutoCAD.DatabaseServices.TransactionManager;
using ZHFARX;//这是引用的ZHFARX库
namespace Example
{
public class Class1
{
[CommandMethod("Test")]
public void Test()
{
Point3d center=new Point3d(100,100,0);
double radius=50;
//Circles是ZHFARX库中对应于Circle类的类
Circles circle=new Circles(center,radius);
//Entities是ZHFARX库中用来向AutoCAD中加入图形的一个类
Entities.AddEntity(circle);
}
}
}
呵呵,是不是简单了许多。
下面的代码是根据用户在命令行中的选择来改变圆的颜色。
//Editor代表AutoCAD命令行
Editor ed=Entities.Editor;
// PromptKeywordOptions定义一个关键字列表选项
PromptKeywordOptions opt=
new PromptKeywordOptions("选择颜色[绿色(G)/蓝色(B)]<红色(R)>");
//加入关键字列表
opt.Keywords.Add("R");
opt.Keywords.Add("G");
opt.Keywords.Add("B");
//获取用户输入的关键字
PromptResult result=ed.GetKeywords(opt);
//判断是否输入了定义的关键字
if (result.Status==PromptStatus.OK)
{
//根据用户选择的关键字,来改变圆的颜色
switch(result.StringResult) {
case "R":
// PutColorIndex是ZHFARX库中改变对象颜色的函数
Entities.PutColorIndex(circle,1);
break;
case "G":
Entities.PutColorIndex(circle,3);
break;
case "B":
Entities.PutColorIndex(circle,5);
break;
}
}
编译这个程序,生成Example.dll文件,这就是你编写的
完整的源程序放在附件中。
4.打开AutoCAD,在命令行中输入NETLOAD命令。在弹出的对话框中选择刚才生成的Example.dll。接下来请在命令行中输入在程序中定义的命令的名字Test,好了应该可以看到一个圆了。这时命令行中出现 选择颜色[绿色(G)/蓝色(B)]<红色(R)>[R/G/B] 的提示,你可以键入R,则圆变为红色;键入G,圆变为绿色;键入B,圆变为蓝色。
好了,今天就介绍到这里。 |