当前位置:首页 > 帮助文档 > 安卓开发 > 参数化绘图
简介绘制直线绘制多段线绘制样条线绘制圆绘制圆弧绘制椭圆绘制椭圆弧绘制文字插入图片绘制块引用对象
简介

参数化绘图可以帮助我们极大缩短设计时间,用户可以按照设计意图控制绘图对象,这样即使对象发生了变化,具体的关系和测量数据仍将保持不变,能够对几何图形和标注进行控制,可以帮助用户应对耗时的修改工作。在此演示中,我们绘制了直线、多段线、点、样条线、圆、圆弧、椭圆、椭圆弧等实体。

绘制直线

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


主要用到函数说明:


MxLibDraw.drawLine


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


参数 说明

double dDx1

直线的开始点x坐标

double dDy1

直线的开始点y坐标

double dDx2

直线的结束点x坐标

double dDy2

直线的结束点y坐标


MxLibDraw.addLinetype


增加一个线型定义。详细说明如下:


参数 说明

String pszName

线型名

String pszLineDefine

线定义字符串

float dScale

缩放比例


代码实现说明:


MxFunction.openFile("");

// 设置画图颜色.
long[] rgb = new long[3];
rgb[0] = 255;
rgb[1] = 0;
rgb[2] = 0;

MxLibDraw.setDrawColor(rgb);

MxLibDraw.setLineWidth(10);

MxLibDraw.drawLine(10,10,200,300);

MxLibDraw.addLinetype("MyLine","20,-10",1);

MxLibDraw.setLineType("MyLine");
MxLibDraw.setLineWidth(5);

MxLibDraw.drawLine(10,300,200,10);

MxFunction.zoomAll();


效果展示:


通过点击绘制直线按钮,控件视区将显示在代码中设置好的直线。如下图所示:


drawline.png

绘制多段线

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


主要用到函数说明:


MxLibDraw.pathMoveTo


把路径的开始位置移动指定的点。详细说明如下:


参数说明

double dX

点的X坐标

double dY

点的Y坐标


MxLibDraw.pathLineTo


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


参数说明

double dX

点的X坐标

double dY

点的Y坐标


MxLibDraw.drawPathToPolyline


把路径变成一个Polyline。


代码实现说明:


MxFunction.openFile("");
MxLibDraw.pathMoveTo(10,10);
MxLibDraw.pathLineTo(10,20);
MxLibDraw.pathLineTo(20,20);
MxLibDraw.pathLineTo(20,10);
MxLibDraw.drawPathToPolyline();
MxFunction.zoomAll();


效果展示:


通过点击绘制多段线按钮,可以在控件视区绘制所需的多段线。如下图所示:


drawpl.png

绘制样条线

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


主要用到函数说明:


MxLibDraw.pathMoveTo


把路径的开始位置移动指定的点。详细说明如下:


参数说明

double dX

点的X坐标

double dY

点的Y坐标


MxLibDraw.pathLineTo


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


参数说明

double dX

点的X坐标

double dY

点的Y坐标


MxLibDraw.drawPathToSpline


把路径变成一个样条线。


代码实现说明:


MxFunction.openFile("");
MxLibDraw.pathMoveTo(10,10);
MxLibDraw.pathLineTo(10,20);
MxLibDraw.pathLineTo(20,20);
MxLibDraw.pathLineTo(20,10);
MxLibDraw.drawPathToSpline();
MxFunction.zoomAll();


效果展示:


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


drawsp.png

绘制圆

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


主要用到函数说明:


MxLibDraw.drawCircle


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


参数说明

double dCenterX

圆的中心X值

double dCenterY

圆的中心Y值

double dRadius

圆的半径


代码实现说明:


MxFunction.openFile("");

MxLibDraw.drawCircle(10,10,100);

MxFunction.zoomAll();


效果展示:


通过点击绘制圆按钮,控件视区将显示在代码中设置好的圆。如下图所示:


drawcri.png

绘制圆弧

主要用到函数说明:


MxLibDraw.drawArc


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


参数 说明

double dCenterX

圆弧的中心X值

double dCenterY

圆弧的中心Y值

double dRadius

圆弧的半径

double dStartAng

圆弧的开始角

double dEndAng

圆弧的结束角


代码实现说明:


MxFunction.openFile("");
MxLibDraw.drawArc(10,10,200,0,45 * 3.14159265/ 180.0);
MxFunction.zoomAll();


效果展示:


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


drawarc.png

绘制椭圆

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


主要用到函数说明:


MxLibDraw.drawEllipse


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


参数说明

double dCenterX

椭圆的中心点X坐标

double dCenterY

椭圆的中心点Y坐标

double dMajorAxisX

椭圆的主轴向量X值

double dMajorAxisY

椭圆的主轴向量Y值

double dRadiusRatio

椭圆的副轴长度与主轴长度的比值


代码实现说明:


MxFunction.newFile();

MxLibDraw.drawEllipse(0,0,100,100,0.5);

MxFunction.zoomAll();

效果展示:


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


drawelp.png

绘制椭圆弧

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


主要用到函数说明:


_DMxDrawX::DrawEllipseArc


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


参数说明

DOUBLE dCenterX

椭圆的中心点X坐标

DOUBLE dCenterY

椭圆的中心点Y坐标

DOUBLE dMajorAxisX

椭圆的主轴向量X值

DOUBLE dMajorAxisY

椭圆的主轴向量Y值

DOUBLE dRadiusRatio

椭圆的副轴长度与主轴长度的比值

DOUBLE dStartAng

椭圆弧的开始角度

DOUBLE dEndAng

椭圆弧的结束角度


js中实现代码说明:


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


效果展示:


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


drawelparc.png

绘制文字

在cad设计时,需要绘制文字,用户可以设置设置绘制文字的高度等属性。


主要用到函数说明:


MxLibDraw.drawText


绘制一个单行文字。详细说明如下:


参数说明

double dDx

>文字的位置的X坐标

double dDy

文字的位置的Y坐标

double height

文字高度

String sTxt

文字内容字符串


代码实现说明:


MrxDbgUiPrPoint getPoint = new MrxDbgUiPrPoint();
getPoint.setMessage("点取文字插入点");
if(getPoint.go() != MrxDbgUiPrPoint.Status.kOk)
{
    return;
}

McGePoint3d pt = getPoint.value();


MxLibDraw.drawText(pt.x,pt.y,500,"测试Test");


效果展示:


用户可以通过点击绘制文字按钮,控件视区将显示在代码中设置好的文字。如下图所示:


drawtext.png

插入图片

111

绘制块引用对象

主要用到函数说明:


MxLibDraw.drawBlockReference


绘制块引用对象。详细说明如下:


参数 说明

double dPosX

插入点的X坐标

double dPosY

插入点的Y坐标

String pszBlkName

图块名

double dScale

图块缩放比例

double dAng

图块的旋转角度


代码实现说明:


MxFunction.newFile();

Log.e("isModifyed",MxFunction.isModifyed() ? "Y" : "N");

String sFileName = MxFunction.getWorkDir() + "/tree.dwg";
String sBlkName = "tree";
MxLibDraw.insertBlock(sFileName,sBlkName);

// drawBlockReference(double dPosX, double dPosY, String pszBlkName, double dScale, double dAng);
MxLibDraw.drawBlockReference(0,0,sBlkName,1,0);

MxFunction.zoomAll();


效果展示:


用户可以通过点击绘制图块按钮,将在代码中设置的图块插入到控件视区。如下图所示:


drawbak.png

梦想CAD是专业的CAD插件(控件),可轻松在网页、手机及BS/CS程序中浏览编辑DWG文件,不需安装AutoCAD即可运行。经十余年累积已非常稳定可靠,有关键的空间搜索算法,并使用汇编优化,可同时处理50万级实体,有非常高的图形显示和处理效率。
联系我们
TEL:400-888-5703
185-8173-1060
客服I QQ: 3570505660
技术I QQ: 827867134
技术II QQ:6884123
VIP服务购买
销售TEL:156-8136-8971
销售QQ:710714273
用户交流
控件QQ交流群1:73281982
控件QQ交流群2:112199959
MxCAD软件群 1:515771658
技术I:QQ
827867134
客服I:QQ
3570505660
销售QQ
710714273
联系电话400-888-5703