梦想CAD控件安卓参数绘图

一、简介

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

二、绘制直线

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

1、主要用到函数说明:MxLibDraw.drawLine

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

参数说明

double dDx1

直线的开始点x坐标

double dDy1

直线的开始点y坐标

double dDx2

直线的结束点x坐标

double dDy2

直线的结束点y坐标

2、MxLibDraw.addLinetype

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

参数说明

String pszName

线型名

String pszLineDefine

线定义字符串

float dScale

缩放比例

代码实现说明:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

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();

3、效果展示:

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

drawline.png

三、绘制多段线

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

1、主要用到函数说明:

MxLibDraw.pathMoveTo

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

参数说明

double dX

点的X坐标

double dY

点的Y坐标

2、MxLibDraw.pathLineTo

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

参数说明

double dX

点的X坐标

double dY

点的Y坐标

3、MxLibDraw.drawPathToPolyline

把路径变成一个Polyline。

代码实现说明:

1

2

3

4

5

6

7

MxFunction.openFile("");

MxLibDraw.pathMoveTo(10,10);

MxLibDraw.pathLineTo(10,20);

MxLibDraw.pathLineTo(20,20);

MxLibDraw.pathLineTo(20,10);

MxLibDraw.drawPathToPolyline();

MxFunction.zoomAll();

4、效果展示:

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

drawpl.png

四、绘制样条线

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

1、主要用到函数说明:

MxLibDraw.pathMoveTo

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

参数说明

double dX

点的X坐标

double dY

点的Y坐标

2、MxLibDraw.pathLineTo

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

参数说明

double dX

点的X坐标

double dY

点的Y坐标

3、MxLibDraw.drawPathToSpline

把路径变成一个样条线。

代码实现说明:

1

2

3

4

5

6

7

MxFunction.openFile("");

MxLibDraw.pathMoveTo(10,10);

MxLibDraw.pathLineTo(10,20);

MxLibDraw.pathLineTo(20,20);

MxLibDraw.pathLineTo(20,10);

MxLibDraw.drawPathToSpline();

MxFunction.zoomAll();

4、效果展示:

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

drawsp.png

五、绘制圆

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

1、主要用到函数说明:

MxLibDraw.drawCircle

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

参数说明

double dCenterX

圆的中心X值

double dCenterY

圆的中心Y值

double dRadius

圆的半径

代码实现说明:

1

2

3

4

5

MxFunction.openFile("");

 

MxLibDraw.drawCircle(10,10,100);

 

MxFunction.zoomAll();

2、效果展示:

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

drawcri.png

六、绘制圆弧

1、主要用到函数说明:

MxLibDraw.drawArc

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

参数说明

double dCenterX

圆弧的中心X值

double dCenterY

圆弧的中心Y值

double dRadius

圆弧的半径

double dStartAng

圆弧的开始角

double dEndAng

圆弧的结束角

代码实现说明:

1

2

3

MxFunction.openFile("");

MxLibDraw.drawArc(10,10,200,0,45 * 3.14159265/ 180.0);

MxFunction.zoomAll();

2、效果展示:

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

drawarc.png

七、绘制椭圆

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

1、主要用到函数说明:

MxLibDraw.drawEllipse

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

参数说明

double dCenterX

椭圆的中心点X坐标

double dCenterY

椭圆的中心点Y坐标

double dMajorAxisX

椭圆的主轴向量X值

double dMajorAxisY

椭圆的主轴向量Y值

double dRadiusRatio

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

代码实现说明:

1

2

3

4

5

MxFunction.newFile();

 

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

 

MxFunction.zoomAll();

2、效果展示:

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

drawelp.png

八、绘制椭圆弧

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

1、主要用到函数说明:

_DMxDrawX::DrawEllipseArc

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

参数说明

DOUBLE dCenterX

椭圆的中心点X坐标

DOUBLE dCenterY

椭圆的中心点Y坐标

DOUBLE dMajorAxisX

椭圆的主轴向量X值

DOUBLE dMajorAxisY

椭圆的主轴向量Y值

DOUBLE dRadiusRatio

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

DOUBLE dStartAng

椭圆弧的开始角度

DOUBLE dEndAng

椭圆弧的结束角度

js中实现代码说明:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

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();

}

2、效果展示:

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

drawelparc.png

九、绘制文字

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

1、主要用到函数说明:

MxLibDraw.drawText

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

参数说明

double dDx

>文字的位置的X坐标

double dDy

文字的位置的Y坐标

double height

文字高度

String sTxt

文字内容字符串

代码实现说明:

1

MxLibDraw.drawText(193,198,500,"测试Test");

2、效果展示:

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

drawtext.png

十、插入图片

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

1、主要用到函数说明:

MxFunction.drawImageMarkEx

绘制一个图象标记对象。详细说明如下:

参数说明

String imageFile

标记文件名

double dDx

绘制位置,是图片的中心点X

double dDy

绘制位置,是图片的中心点y

double dScale

缩放比例,如果输入负数时,表示图片随视区大小缩放,负数的决对值表示图片的高度,图片宽度自动计算

int iAttachment

对齐方式

代码实现说明:

1

2

MxFunction.openCurrentLayer();

MxFunction.drawImageMarkEx("location2.png",19354.596193,19813.267774,0.5,MxFunction.ImageAttachment.kBottomCenter);

2、效果展示:

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

J8PM(KOQ0JBZY~`%UVWA6UK.png

十一、绘制块引用对象

1、主要用到函数说明:

MxLibDraw.drawBlockReference

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

参数说明

double dPosX

插入点的X坐标

double dPosY

插入点的Y坐标

String pszBlkName

图块名

double dScale

图块缩放比例

double dAng

图块的旋转角度

代码实现说明:

1

2

3

4

5

6

7

8

9

10

11

12

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();

2、效果展示:

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

drawbak.png

 

梦想CAD是专业的CAD插件(控件),可轻松在网页、手机及BS/CS程序中浏览编辑DWG文件,不需安装AutoCAD即可运行。经十余年累积已非常稳定可靠,有关键的空间搜索算法,并使用汇编优化,可同时处理50万级实体,有非常高的图形显示和处理效率。

联系我

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值