梦想CAD控件在com开发时如何参数化绘图

简介

控件提供了一堆简单易用的绘图函数,用来参数化绘图,在此示例中绘制了直线、多段线、点、样条线、圆、圆弧、椭圆、椭圆弧等实体。

绘图函数详细参数说明,参考MxDraw5.2Help.chm,如下图:

drawfun.png

在调用绘图函数之前,可以设置如下属性:

DrawCADColor:设置绘图颜色,CAD的颜色

DrawCADColorIndex:设置绘图颜色,CAD的颜色索引

DrawColor: 设置绘图颜色,OLE颜色

LayerName:绘图函数使用图层名

LineType:绘图函数使用的线型

LineWidth:绘图函数使用的线宽

PatternDefinition:绘图函数使用的图案定义

TextStyle:绘图函数使用的文字样式

绘制直线

用户可以在CAD控件视区任意位置绘制直线。

主要用到函数说明:

函数名:_DMxDrawX::DrawLine

绘制一个直线。详细说明如下:

参数说明
DOUBLE dX1 直线的开始点x坐标
DOUBLE dY1 直线的开始点y坐标
DOUBLE dX2 直线的结束点x坐标
DOUBLE dY2 直线的结束点y坐标

C#中实现代码说明:

  private void Drawline()
  {
   
  //把颜色改回黑白色
  axMxDrawX1.DrawCADColorIndex = 0;
   
  //把线型改成实线
  axMxDrawX1.LineType = "";
   
  //设置线宽4
  axMxDrawX1.LineWidth = 0;
   
  //创建一个图层,名为“LineLayer”
  axMxDrawX1.AddLayer("LineLayer");
   
  //绘制一个实线
  axMxDrawX1.DrawLine(0, 0, 100, 0);
   
  //绘制一个虚线
  //定义虚线数据,“MyLineType”是线型名,“6, -8”是虚线的一个单位定义,6是实线长,-8是空格长度。
  axMxDrawX1.AddLinetype("MyLinetype", "6, -8");
   
  //设计当前线型为“MyLineType”
  axMxDrawX1.LineType = "MyLineType";
   
  //绘制一个虚线
  axMxDrawX1.DrawLine(0, 30, 100, 30);
   
  //绘制一个斜虚线
  axMxDrawX1.DrawLine(200, 30, 300, 130);
   
  /*---------------------------------------------------------------------*/
  //修改线的颜色为16711680(蓝色),16711680转换成16精致是0xFF 00 00,其中FF是蓝色,00是绿色,第二个00是红色。
  axMxDrawX1.DrawCADColor = 16711680;
   
  //绘制一个蓝色的虚线
  axMxDrawX1.DrawLine(0, 60, 100, 60);
   
  //绘制一个蓝色的斜虚线
  axMxDrawX1.DrawLine(200, 60, 300, 160);
   
   
  /*--------------------------------------------------------------------*/
  //把线颜色改回黑色
  axMxDrawX1.DrawCADColor = 0;
   
  //线型改成实线
  axMxDrawX1.LineType = "";
   
  //设置线宽为4
  axMxDrawX1.LineWidth = 4;
   
  //绘制一个带宽度的直线
  axMxDrawX1.DrawLine(0, 90, 100, 90);
   
  //绘制一个带宽度的斜直线
  axMxDrawX1.DrawLine(200, 90, 300, 90);
   
  /*-------------------------------------------------------------------*/
  //绘制一个点划线虚线
  axMxDrawX1.AddLinetype("MyLinetype2", "10, -2, 3, -4");
   
  //把线型改成点划线
  axMxDrawX1.LineType = "MyLinetype2";
   
  //修改绘线的颜色为255(红色),255转成16进制是0x00 00,其中00是蓝色,第二个00是绿色,FF是红色。
  axMxDrawX1.DrawCADColor = 255;
   
  //绘制一个带宽度的红色点划线
  axMxDrawX1.DrawLine(0, 120, 100, 120);
   
  //绘制一个宽度红色点划斜线
  axMxDrawX1.DrawLine(200, 120, 300, 220);
   
  /*----------------------------------------------------------------*/
  //增加一个带有形的线型
  axMxDrawX1.AddTextStyle1("MyLineTextStyle", "txt.shx", "hztxt.shx", 1);
  axMxDrawX1.AddLinetypeEx("MyLineType3", "12.7, (\"T=MxDraw\", \"s=2.54\", \"L=-5.08\", \"R=0.0\",\"X=-2.54\",\"Y=-1.27\"), -10.08)", "MyLineTypeTextStyle");
   
  axMxDrawX1.LineType = "MyLineType3";
   
  axMxDrawX1.LineWidth = 0;
   
  //绘制一个带宽度的红色点划线
  axMxDrawX1.DrawLine(300, 120, 600, 120);
   
  //绘制一个带宽度红色点划斜线
  axMxDrawX1.DrawLine(400, 120, 600, 220);
   
  //把所有实体都放到当前显示视区
  axMxDrawX1.ZoomAll();
   
  //更新视区显示
  axMxDrawX1.UpdateDisplay();
  }

效果展示:

通过点击绘制直线按钮,触发DrawLine()事件,CAD控件视区将显示在c#中设置好的直线。如下图所示:

C#drawline.png

 
 
绘制多线段

多段线又被称为多义线,表示一起画的都是连在一起的一个复合对象,可以是直线也可以是圆弧并且它们还可以加不同的宽度。

主要用到函数说明:

函数名:_DMxDrawX::PathLineTo

把路径下一个点移到指定位置。详细说明如下:

参数说明
DOUBLE dX 点的X坐标
DOUBLE dY 点的Y坐标

函数名:_DMxDrawX::DrawPathToPolyline

把路径变成一个Polyline。

C#中实现代码说明:

  private void DrawPolyline()
  {
  //Polyline 又称多义线,就是可以绘制多条首尾相连的线,也可以是圆弧相连,同是可以制定线的开始和结束宽
  //把颜色改回成黑白色
  axMxDrawX1.DrawCADColorIndex = 0;
   
  //把线型改成实线
  axMxDrawX1.LineType = "";
   
  //设置线宽 4
  axMxDrawX1.LineWidth = 4;
   
  //创建一个图层,名为"PolylineLayer"
  axMxDrawX1.AddLayer("PolylineLayer");
   
  //设置当前图层为"PolylineLayer"
  axMxDrawX1.LayerName = ("PolylineLayer");
   
  /*--------------------------------------------------*/
  //用Polyline显示绘制矩形框
   
  //定义下一个路径的开始点
  axMxDrawX1.PathMoveTo(0, 300);
   
  //路径的下一个点
  axMxDrawX1.PathLineTo(100, 300);
   
  //路径的下一个点
  axMxDrawX1.PathLineTo(100, 400);
   
  //路径的下一个点
  axMxDrawX1.PathLineTo(0, 400);
   
  //把路径设置成闭合
  axMxDrawX1.PathMakeClosed();
   
  //把路径闭合,生成一个举行框
  axMxDrawX1.DrawPathToPolyline();
   
  /*--------------------------------------------------*/
  //绘制一个有宽度,带线型的矩形框
  //定义一个路径的开始点
  axMxDrawX1.PathMoveTo(200, 300);
   
  //路径的下一个点
  axMxDrawX1.PathLineTo(300, 300);
   
  //路径的下一个点
  axMxDrawX1.PathLineTo(300, 400);
   
  //路径的下一个点
  axMxDrawX1.PathLineTo(200, 400);
   
  axMxDrawX1.AddLinetype("MyLineType3", "30, -10");
   
  axMxDrawX1.LineType = "MyLineType3";
   
  axMxDrawX1.DrawCADColorIndex = 255;
   
  axMxDrawX1.LineWidth = 5;
   
  //把路径设置成闭合
  axMxDrawX1.PathMakeClosed();
  //把路径闭合,生成一个举行框
  axMxDrawX1.DrawPathToPolyline();
   
  /*--------------------------------------------------*/
  //绘制一个有宽度的矩形框
  //定义路径的开始点
  axMxDrawX1.PathMoveTo(400, 300);
  //定义路径的下一个点
  axMxDrawX1.PathLineTo(500, 300);
  //定义路径的下一个点
  axMxDrawX1.PathLineTo(500, 400);
  //定义路径的下一个点
  axMxDrawX1.PathLineTo(400, 400);
  //把路径设置成闭合
  axMxDrawX1.PathMakeClosed();
  //修改颜色
  axMxDrawX1.DrawCADColor = 65280;
  //把线型设置成实线
  axMxDrawX1.LineType = "";
  //设置线宽
  axMxDrawX1.LineWidth = 4;
  //把闭合路径设置成一个矩形框
  axMxDrawX1.DrawPathToPolyline();
   
  /*--------------------------------------------------*/
  //绘制一个有宽度的,不闭合的矩形框
  //定义一个路径的起始点
  axMxDrawX1.PathMoveTo(600, 300);
  //定义下一个点
  axMxDrawX1.PathLineTo(700, 300);
  //定义下一个点
  axMxDrawX1.PathLineTo(700, 400);
  //定义下一个点
  axMxDrawX1.PathLineTo(600, 400);
  //设置线的颜色
  axMxDrawX1.DrawCADColor = 255;
  //设置线型为实线
  axMxDrawX1.LineType = "";
  //设置线宽10
  axMxDrawX1.LineWidth = 10;
  //把闭合路径设置成一个矩形框
  axMxDrawX1.DrawPathToPolyline();
  /*--------------------------------------------------*/
  //绘制一个有宽度的三角形
  //定义路径的起始点
  axMxDrawX1.PathMoveTo(800, 300);
  //定义下一个点
  axMxDrawX1.PathLineTo(900, 300);
  //定义下一个点
  axMxDrawX1.PathLineTo(900, 400);
  //闭合路径
  axMxDrawX1.PathMakeClosed();
  //设置线的颜色
  axMxDrawX1.DrawCADColor = 62580;
  //设置线型为实线
  axMxDrawX1.LineType = "";
  //设置线宽10
  axMxDrawX1.LineWidth = 5;
  //闭合路径,把闭合路径设置成一个三角形
  axMxDrawX1.DrawPathToPolyline();
  /*--------------------------------------------------*/
  //绘制一个箭头
  axMxDrawX1.PathMoveToEx(1000, 300, 10, 10, 0);
  //设置路径下一点
  axMxDrawX1.PathLineToEx(1000, 500, 30, 0, 0);
  //设置路径下一点
  axMxDrawX1.PathLineTo(1000, 530);
  //闭合路径,把闭合路径设置成一个箭头
  axMxDrawX1.DrawPathToPolyline();
   
  /*--------------------------------------------------*/
  //绘制一个虚线箭头
  axMxDrawX1.PathMoveToEx(1100, 300, 10, 10, 0);
  //设置路径下一点
  axMxDrawX1.PathLineToEx(1100, 500, 30, 0, 0);
  //设置路径下一点
  axMxDrawX1.PathLineTo(1100, 580);
  //设置线型为实线“MyLineType3”
  axMxDrawX1.LineType = "MyLineType3";
  //闭合路径,把闭合路径设置成一个虚线箭头
  axMxDrawX1.DrawPathToPolyline();
   
  /*--------------------------------------------------*/
  //绘制一个圆弧箭头
  axMxDrawX1.PathMoveToEx(1200, 300, 10, 10, -0.34);
  //设置路径下一点
  axMxDrawX1.PathLineToEx(1200, 500, 30, 0, 0.34);
  //设置路径下一点
  axMxDrawX1.PathLineTo(1200, 600);
  //设置线的颜色
  axMxDrawX1.DrawCADColor = 255;
  //设置线型为实线“MyLineType3”
  axMxDrawX1.LineType = "MyLineType3";
  //闭合路径,把闭合路径设置成一个圆弧箭头
  axMxDrawX1.DrawPathToPolyline();
   
  //把所有实体都放到当前显示视区
  axMxDrawX1.ZoomAll();
   
  //更新视区显示
  axMxDrawX1.UpdateDisplay();
  }

效果展示:

通过点击绘制多段线按钮,触发DrawPolyline()事件,则用户可以在CAD控件视区绘制所需的多段线。如下图所示:

C#drawpl.png

 
 
绘制点

点在CAD中的作用除了可以分割对象外,还能测量对象,点不仅表示一个小的实体,而且通过点作为绘图的参考标记。pdmode是一个控制point的形式的系统变量,当pdmode=0时是可见的一个点,当pdmode=1时是一个不可见的点,但仍存在。pdmode=2时是一个十字,pdmode=3时是一个叉子,将值指定为 32、64 或 96,除了绘制通过点的图形外,还可以选择在点的周围绘制形。PDSIZE是设置点对象的显示大小。正的PDSIZE值指定点图形的绝对尺寸。负值将解释为视口大小的百分比。重生成图形时将重新计算所有点的尺寸。

主要用到函数说明:

函数名:_DMxDrawX::DrawPoint

绘制一个点。详细说明如下:

参数说明
OUBLE dX 点的X坐标
DOUBLE dY 点的Y坐标

C#中实现代码说明:

  private void DrawPoint()
  {
  //清空当前显示内容
  axMxDrawX1.NewFile();
  //把颜色改回黑白色
  axMxDrawX1.DrawCADColorIndex = 0;
  // 设置点样式,具体的值,可以看autocad帮助
  //pdmode是一个控制point的形式的系统变量,当pdmode=0时是可见的一个点,
  // 当pdmode=1时是一个不可见的点,但仍存在。pdmode=2时是一个十字,pdmode=3时是一个叉子
  //将值指定为 32、64 或 96,除了绘制通过点的图形外,还可以选择在点的周围绘制形。
  axMxDrawX1.SetSysVarLong("PDMODE", 0);
  // 设置点大小,0.0表示它随屏幕
  axMxDrawX1.SetSysVarDouble("PDSIZE", 15.0);
  axMxDrawX1.DrawPoint(0, 50);
  //-----------------------------------------------------------------------------------------------
  axMxDrawX1.SetSysVarLong("PDMODE", 67);
  // 设置点大小,0.0表示它随屏幕
  axMxDrawX1.SetSysVarDouble("PDSIZE", 15.0);
  axMxDrawX1.DrawPoint(50, 50);
  //-----------------------------------------------------------------------------------------------
  axMxDrawX1.SetSysVarLong("PDMODE", 3);
  // 设置点大小,0.0表示它随屏幕
  axMxDrawX1.SetSysVarDouble("PDSIZE", 15.0);
  axMxDrawX1.DrawPoint(100, 50);
  //-----------------------------------------------------------------------------------------------
  axMxDrawX1.SetSysVarLong("PDMODE", 2);
  // 设置点大小,0.0表示它随屏幕
  axMxDrawX1.SetSysVarDouble("PDSIZE", 15.0);
  axMxDrawX1.DrawPoint(150, 50);
  axMxDrawX1.ZoomAll();
  axMxDrawX1.UpdateDisplay();
  }

效果展示:

通过点击绘制点按钮,触发DrawPoint()事件,CAD控件视区将显示在C#中设置好的点。如下图所示:

C#drawpoint.png

 
 
绘制样条线

在CAD设计时,需要绘制样条线,用户可以设置样条线线重及颜色等属性。

主要用到函数说明:

函数名:_DMxDrawX::PathLineTo

把路径下一个点移到指定位置。详细说明如下:

参数说明
DOUBLE dX 点的X坐标
DOUBLE dY 点的Y坐标

函数名:_DMxDrawX::DrawPathToSpline

把路径变成一个样条线。

C#中实现代码说明:

  private void DrawSpline()
  {
   
  //把颜色改回黑白色
  axMxDrawX1.DrawCADColorIndex = 0;
   
  //把线型改成实线
  axMxDrawX1.LineType = "";
   
  //设置线宽 4
  axMxDrawX1.LineWidth = 0;
   
  //创建一个图层,名为"SplinelineLayer"
  axMxDrawX1.AddLayer("SplinelineLayer");
   
  //设置当前图层为"SplinelineLayer"
  axMxDrawX1.LayerName = "SplinelineLayer";
   
   
  //《---------------------------------------》
  //用绘制一个实线的样条线
   
  //定义一个路径的开始点
  axMxDrawX1.PathMoveTo(0, 1700);
   
  //路径的一下个点
  axMxDrawX1.PathLineTo(100, 1700);
   
  //路径的一下个点
  axMxDrawX1.PathLineTo(100, 1800);
   
  //路径的一下个点
  axMxDrawX1.PathLineTo(0, 1800);
   
  //把路径拟合成一个样线
  axMxDrawX1.DrawPathToSpline();
   
   
   
  //《---------------------------------------》
  //用绘制一个虚线的样条线
  axMxDrawX1.AddLinetype("MySplineType", "30,-10");
   
  axMxDrawX1.LineType = ("MySplineType");
   
  axMxDrawX1.DrawCADColor = 255;
   
  axMxDrawX1.LineWidth = 5;
   
  //定义一个路径的开始点
  axMxDrawX1.PathMoveTo(200, 1700);
   
  //路径的一下个点
  axMxDrawX1.PathLineTo(300, 1700);
   
  //路径的一下个点
  axMxDrawX1.PathLineTo(300, 1800);
   
  //路径的一下个点
  axMxDrawX1.PathLineTo(400, 1800);
   
  axMxDrawX1.DrawPathToSpline();
   
  axMxDrawX1.ZoomAll();
   
  axMxDrawX1.UpdateDisplay();
  }

效果展示:

用户可以通过点击绘制样条线按钮,用户可以在CAD控件视区显示C#中设置好的样条线。如下图所示:

C#drawsp.png

 
 
绘制圆

CAD绘制图像的过程中,画圆的情况是非常常见的,用户可以设置圆的圆心位置及半径属性。

主要用到函数说明:

函数名:_DMxDrawX::DrawCircle

绘制一个圆。详细说明如下:

参数说明
DOUBLE dCenterX 圆的中心X值
DOUBLE dCenterY 圆的中心Y值
DOUBLE dRadius 圆的半径

C#中实现代码说明:

  private void DrawCircle()
  {
  //清空当前显示内容
  axMxDrawX1.NewFile();
   
  //把颜色改回黑白色
  axMxDrawX1.DrawCADColorIndex = 0;
   
  //把线型改成实线
  axMxDrawX1.LineType = "";
   
  //设置线宽 4
  axMxDrawX1.LineWidth = 0;
   
  //创建一个图层,名为"CircleLayer"
  axMxDrawX1.AddLayer("CircleLayer");
   
  //设置当前图层为"CircleLayer"
  axMxDrawX1.LayerName = "CircleLayer";
   
  //《---------------------------------------》
  //绘制一个实线黑色的圆
  axMxDrawX1.DrawCircle(0, 800, 70);
   
  //《---------------------------------------》
  //绘制一个带颜色的圆
  axMxDrawX1.AddLinetype("CircleLineType", "");
   
  //设计当前线型为"CircleLineType"
  axMxDrawX1.LineType = ("CircleLineType");
  axMxDrawX1.DrawCADColor = 255;
  axMxDrawX1.DrawCircle(200, 800, 70);
   
  //《---------------------------------------》
  //绘制一个虚线线的圆
  axMxDrawX1.AddLinetype("CircleLineType", "30,-5,7,-7");
   
  //设计当前线型为"CircleLineType"
  axMxDrawX1.LineType = ("CircleLineType");
   
  axMxDrawX1.DrawCADColor = 255;
   
  axMxDrawX1.DrawCircle(400, 800, 70);
   
  //《---------------------------------------》
  //绘制一个带有宽度的圆
  axMxDrawX1.AddLinetype("CircleLineType", "30,-5,7,-7");
   
  //设计当前线型为"CircleLineType"
  axMxDrawX1.LineType = ("CircleLineType");
   
  axMxDrawX1.LineWidth = 40;
   
  axMxDrawX1.DrawCADColor = 255;
   
  axMxDrawX1.DrawCircle(600, 800, 70);
   
  //把所有的实体都放到当前显示视区
  axMxDrawX1.ZoomAll();
   
  //更新视区显示
  axMxDrawX1.UpdateDisplay();
  }

效果展示:

通过点击绘制圆按钮,触发DrawCircle()事件,CAD控件视区将显示在C#中设置好的圆。如下图所示:

c#drawc.png

 
 
绘制圆弧

在CAD设计时,需要绘制圆弧,用户可以在图面点圆弧起点,圆弧上的一点和圆弧的终点,这样就绘制出圆弧。

主要用到函数说明:

函数名:_DMxDrawX::DrawArc2

由圆弧上的三点绘制一个圆弧。详细说明如下:

参数说明
DOUBLE dStartPointX 开始点X坐标
DOUBLE dStartPointY 开始点Y坐标
DOUBLE dMidPointX 圆弧上的一点X坐标
DOUBLE dMidPointY 圆弧上的一点Y坐标
DOUBLE dEndPointX 结束点X坐标
DOUBLE dEndPointY 结束点Y坐标

C#中实现代码说明:

  private void DrawArc()
  {
  //清空当前显示内容
  axMxDrawX1.NewFile();
  //把颜色改回黑白色
  axMxDrawX1.DrawCADColorIndex = 0;
  //把线型改成实线
  axMxDrawX1.LineType = "";
  //设置线宽 4
  axMxDrawX1.LineWidth = 0;
  //创建一个图层,名为"ArcLayer"
  axMxDrawX1.AddLayer("ArcLayer");
  //设置当前图层为"ArcLayer"
  axMxDrawX1.LayerName = ("ArcLayer");
  //------------------------------------------------------------------------------------------------------------
  //绘制一个实线黑色的圆弧
  axMxDrawX1.DrawArc1(0, 1000, 100, 30, 200);
  //--------------------------------------------------------------------------------------------------------------
  //绘制一个虚线线的圆弧
  axMxDrawX1.AddLinetype("ArcLineType", "30,-5,7,-7");
  //设计当前线型为"ArcLineType"
  axMxDrawX1.LineType = "ArcLineType";
  axMxDrawX1.DrawCADColor = 435322;
  axMxDrawX1.DrawArc1(300, 1000, 100, 30, 200);
  //---------------------------------------------------------------------------------------------------------------
  //绘制一个有宽度的虚线线的圆弧
  axMxDrawX1.LineWidth = 15;
  axMxDrawX1.DrawCADColor = 6335;
  axMxDrawX1.DrawArc1(600, 1000, 100, 30, 200);
  //-----------------------------------------------------------------------------------------------------------------
  //由圆弧上三个点绘制圆弧
  axMxDrawX1.DrawArc2(800, 1000, 900, 1200, 1000, 900);
  //---------------------------------------------------------------------------------------------------------------
  //由圆弧上的开始点,结束度和凸度会圆弧
  axMxDrawX1.LineType = "";
  axMxDrawX1.LineWidth = 40;
  axMxDrawX1.DrawCADColor = 65280;
  axMxDrawX1.DrawArc3(1200, 1000, 1400, 1000, 0.6);
  //把所有的实体都放到当前显示视区
  axMxDrawX1.ZoomAll();
  //更新视区显示
  axMxDrawX1.UpdateDisplay();
  }

效果展示:

用户可以通过点击绘制圆弧按钮,在CAD控件视区绘制圆弧。如下图所示:

c#drawarc.png

 
 
绘制椭圆

在CAD设计时,需要绘制椭圆,用户可以设置椭圆的基本属性。

主要用到函数说明:

函数名:_DMxDrawX::DrawEllipse

绘制椭圆。详细说明如下:

参数说明
DOUBLE dCenterX 椭圆的中心点X坐标
DOUBLE dCenterY 椭圆的中心点Y坐标
DOUBLE dMajorAxisX 椭圆的主轴向量X值
DOUBLE dMajorAxisY 椭圆的主轴向量Y值
DOUBLE dRadiusRatio 椭圆的副轴长度与主轴长度的比值

C#中实现代码说明:

  private void DrawEllipse()
  {
  //清空当前显示内容
  axMxDrawX1.NewFile();
  //把颜色改回黑白色
  axMxDrawX1.DrawCADColorIndex = 0;
  //把线型改成实线
  axMxDrawX1.LineType = "";
  //设置线宽 4
  axMxDrawX1.LineWidth = 0;
  //创建一个图层,名为"LineLayer"
  axMxDrawX1.AddLayer("LineLayer");
  //设置当前图层为"LineLayer"
  axMxDrawX1.LayerName = "LineLayer";
  // 直接绘制一个椭圆
  axMxDrawX1.DrawEllipse(0, 1400, 100, 0, 0.7);
  //------------------------------------------------------------------------------------------------------------
  //绘制一个倾斜的椭圆
  axMxDrawX1.AddLinetype("MyEllipseType", "6,-10");
  //设计当前线型为"MyEllipseType"
  axMxDrawX1.LineType = ("MyEllipseType");
  axMxDrawX1.DrawCADColor = 16711680;
  axMxDrawX1.DrawEllipse(200, 1400, 80, 30, 0.5);
  //把所有的实体都放到当前显示视区
  axMxDrawX1.ZoomAll();
  //更新视区显示
  axMxDrawX1.UpdateDisplay();
  }

效果展示:

用户可以通过点击绘制椭圆按钮,用户可以在CAD控件视区绘制椭圆。如下图所示:

c#drawe.png

 
 
绘制椭圆弧

在CAD设计时,需要绘制椭圆弧,用户可以设置椭圆弧基本属性。

主要用到函数说明:

函数名:_DMxDrawX::DrawEllipseArc

绘制椭圆弧。详细说明如下:

参数说明
DOUBLE dCenterX 椭圆的中心点X坐标
DOUBLE dCenterY 椭圆的中心点Y坐标
DOUBLE dMajorAxisX 椭圆的主轴向量X值
DOUBLE dMajorAxisY 椭圆的主轴向量Y值
DOUBLE dRadiusRatio 椭圆的副轴长度与主轴长度的比值
DOUBLE dStartAng 椭圆弧的开始角度
DOUBLE dEndAng 椭圆弧的结束角度

C#中实现代码说明:

  private void DrawEllipseArc()
  {
      //清空当前显示内容
      axMxDrawX1.NewFile();
      //把颜色改回黑白色
      axMxDrawX1.DrawCADColorIndex = 0;
      //把线型改成实线
      axMxDrawX1.LineType = "";
      //设置线宽 4
      axMxDrawX1.LineWidth = 0;
      //创建一个图层,名为"EllipseArcLayer"
      axMxDrawX1.AddLayer("EllipseArcLayer");
      //设置当前图层为"EllipseArcLayer"
      axMxDrawX1.LayerName = "EllipseArcLayer";
      //绘制椭圆弧
      //参数一为椭圆的中心点X坐标,参数二为椭圆的中心点Y坐标
      //参数三为椭圆的主轴向量X值,参数四为椭圆的主轴向量Y值
      //参数五为椭圆的副轴长度与主轴长度的比值
      //参数六为椭圆弧的开始角度,参数七为椭圆弧的结束角度
      axMxDrawX1.DrawEllipseArc(0, 1600, 80, 30, 0.4, 30, 200);
      //----------------------------------------------------------------------------------------------------------
      axMxDrawX1.AddLinetype("MyEllipseArcType", "6,-10");
      //设计当前线型为"MyEllipseArcType"
      axMxDrawX1.LineType = ("MyEllipseArcType");
      axMxDrawX1.DrawCADColor = 16711680;
      axMxDrawX1.DrawEllipseArc(200, 1600, -80, 30, 0.5, 60, 300);
      //把所有的实体都放到当前显示视区
      axMxDrawX1.ZoomAll();
      //更新视区显示
      axMxDrawX1.UpdateDisplay();
  }

效果展示:

用户可以通过点击绘制椭圆弧按钮,在CAD控件视区的任何位置绘制椭圆弧。如下图所示:

c#drawel.png

 

posted on 2021-06-04 14:06  梦想CAD控件  阅读(316)  评论(0)    收藏  举报

导航