CAD参数绘制多段线(com接口)

点点圈 提交于 2020-03-08 06:13:14

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


主要用到函数说明:


_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();
}
标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!