一、简介

在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、效果展示:

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

梦想CAD控件安卓参数绘图_控件

三、绘制多段线

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

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控件视区绘制所需的多段线。如下图所示:

梦想CAD控件安卓参数绘图_代码实现_02

四、绘制样条线

在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控件视区显示代码中设置好的样条线。如下图所示:

梦想CAD控件安卓参数绘图_代码实现_03

五、绘制圆

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控件视区将显示在代码中设置好的圆。如下图所示:

梦想CAD控件安卓参数绘图_控件_04

六、绘制圆弧

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控件视区绘制圆弧。如下图所示:

梦想CAD控件安卓参数绘图_代码实现_05

七、绘制椭圆

在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控件视区绘制椭圆。如下图所示:

梦想CAD控件安卓参数绘图_样条_06

八、绘制椭圆弧

在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控件视区的任何位置绘制椭圆弧。如下图所示:

梦想CAD控件安卓参数绘图_代码实现_07

九、绘制文字

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

1、主要用到函数说明:

MxLibDraw.drawText

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

参数

说明

double dDx

>文字的位置的X坐标

double dDy

文字的位置的Y坐标

double height

文字高度

String sTxt

文字内容字符串

代码实现说明:

1

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

2、效果展示:

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

梦想CAD控件安卓参数绘图_代码实现_08

十、插入图片

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

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控件视区将显示在代码中设置好的图片。如下图所示:

梦想CAD控件安卓参数绘图_控件_09

十一、绘制块引用对象

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控件视区。如下图所示:

梦想CAD控件安卓参数绘图_控件_10

 

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