CAD二次开发命令窗口交互(COM接口c#语言)

1.介绍

c#用COM接口实现在CAD中窗口交互有多种方式,比如,选择集,输入参数等,本次主要讲utility方法下的属性;

2.详细介绍

//获取CAD应用程序,调用COM
AcadApp = (AcadApplication)System.Runtime.InteropServices.Marshal.GetActiveObject("AutoCAD.Application");
//获取当前活动文档
AcadDoc = AcadApp.ActiveDocument;
//定义一个点
double[] arrary=new double[] { 0, 0, 0 };
double[] arrary1=new double[] { 10, 10, 0 };
object pickpoint=arrary;
object pickpoint=arrary1;
object returnObj, pickPoint;
string pickPrompt1 = "选取物体对象!";
double[] pickPointArray;
object pickPrompt = "输入长度";
object pickPrompta = "指定插入点";
//获取直线与 X 坐标轴的夹角,输入的两个点为直线的两个端点
double angle1= AcadDoc.Utility.AngleFromXAxis(arrary,arrary1);
//获取用户输入的尺寸,此处pickpoint为初始点,也可以通过在绘图区域点击一个点,函数计算初始点到点击点的距离,此处必须赋值为数组或集合,不可省略
double length= Math.Round(AcadDoc.Utility.GetDistance(pickpoint,pickPrompt),1, MidpointRounding.AwayFromZero);
//获取图形中一点坐标,为三维坐标
object insertPoint = AcadDoc.Utility.GetPoint(pickpoint,pickPrompta);
//获取图元,因为参数中有out参数只定义,returnObj表示在CAD中获取的对象,pickPoint表示在CAD中点击的坐标位置
AcadDoc.Utility.GetEntity(out returnObj, out pickPoint, pickPrompt1);
//所获取的可能CAD对象见下表
AcadObject returnCADObj = (AcadObject)returnObj;
pickPointArray =(Double[])pickPoint;
MessageBox.Show("选取对象为:" + returnCADObj.ObjectName.ToString());
MessageBox.Show("点击位置:X=" + pickPointArray[0].ToString() + ",Y=" +
pickPointArray[1].ToString() + ",Z=" + pickPointArray[2].ToString());
//获取用户输入的一个整数,并返回一个整数
int number=AcadDoc.Utility.GetInteger( Prompt);
//获取用户输入的一个关键词并返回字符串
string stringnum=AcadDoc.Utility.GetKeyword( Prompt);

3. CAD中常用图形对象名称

序号 名称 对象名称 CAD中对应的命令
1 直线 AcDbLine LINE
2 多段线 AcDb2dPolyline PLINE
3 二维多段线 AcDb2dPolyline PLINE
4 样条曲线 AcDb3dPolyline SPLINE
5 三维多段线 AcDb3dPolyline 3DPOLY
6 AcDbCircle CIRCLE
7 圆弧 AcDbArc ARC
8 AcDbPoint POINT
9 当行文本 AcDbLine DTEXT
10 多行文本 AcDbMText MTEXT
11 面域 AcDbRegion REGION
12 图案填充 AcDbHatch BHATCH
13 块对象 AcDbBlockReference BLOCK
14 面片 AcDbFace 3DFACE

你可能感兴趣的:(CAD自动绘图,交互,c#,开发语言)