梦想CAD控件在com开发时如何参数化绘图
简介
控件提供了一堆简单易用的绘图函数,用来参数化绘图,在此示例中绘制了直线、多段线、点、样条线、圆、圆弧、椭圆、椭圆弧等实体。
绘图函数详细参数说明,参考MxDraw5.2Help.chm
,如下图:
在调用绘图函数之前,可以设置如下属性:
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#中设置好的直线。如下图所示:
多段线又被称为多义线,表示一起画的都是连在一起的一个复合对象,可以是直线也可以是圆弧并且它们还可以加不同的宽度。
主要用到函数说明:
函数名:_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控件视区绘制所需的多段线。如下图所示:
点在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#中设置好的点。如下图所示:
在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#中设置好的样条线。如下图所示:
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#中设置好的圆。如下图所示:
在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控件视区绘制圆弧。如下图所示:
在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控件视区绘制椭圆。如下图所示:
在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控件视区的任何位置绘制椭圆弧。如下图所示: