在CAD绘图中,参数化绘图可以帮助我们极大缩短设计时间,用户可以按照设计意图控制绘图对象,这样即使对象发生了变化,具体的关系和测量数据仍将保持不变,能够对几何图形和标注进行控制,可以帮助用户应对耗时的修改工作。在此演示中,我们绘制了直线、多段线、点、样条线、圆、圆弧、椭圆、椭圆弧等实体。
用户可以在CAD控件视区任意位置绘制直线。
主要用到函数说明:
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();
效果展示:
通过点击绘制直线按钮,控件视区将显示在代码中设置好的直线。如下图所示:
多段线又被称为多义线,表示一起画的都是连在一起的一个复合对象,可以是直线也可以是圆弧并且它们还可以加不同的宽度。
主要用到函数说明:
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();
效果展示:
通过点击绘制多段线按钮,可以在CAD控件视区绘制所需的多段线。如下图所示:
在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();
效果展示:
用户可以通过点击绘制样条线按钮,可以在CAD控件视区显示代码中设置好的样条线。如下图所示:
CAD绘制图像的过程中,画圆的情况是非常常见的,用户可以设置圆的圆心位置及半径属性。
主要用到函数说明:
MxLibDraw.drawCircle
绘制一个圆。详细说明如下:
参数 | 说明 |
---|---|
double dCenterX | 圆的中心X值 |
double dCenterY | 圆的中心Y值 |
double dRadius | 圆的半径 |
代码实现说明:
MxFunction.openFile(""); MxLibDraw.drawCircle(10,10,100); MxFunction.zoomAll();
效果展示:
通过点击绘制圆按钮,CAD控件视区将显示在代码中设置好的圆。如下图所示:
主要用到函数说明:
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();
效果展示:
用户可以通过点击绘制圆弧按钮,在CAD控件视区绘制圆弧。如下图所示:
在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();
效果展示:
用户可以通过点击绘制椭圆按钮,可以在CAD控件视区绘制椭圆。如下图所示:
在cad设计时,需要绘制椭圆弧,用户可以设置椭圆弧基本属性。
主要用到函数说明:
_DMxDrawX::DrawEllipseArc
绘制椭圆弧。详细说明如下:
参数 | 说明 |
---|---|
DOUBLE dCenterX |
椭圆的中心点X坐标 |
DOUBLE dCenterY |
椭圆的中心点Y坐标 |
DOUBLE dMajorAxisX |
椭圆的主轴向量X值 |
DOUBLE dMajorAxisY |
椭圆的主轴向量Y值 |
DOUBLE dRadiusRatio |
椭圆的副轴长度与主轴长度的比值 |
DOUBLE dStartAng |
椭圆弧的开始角度 |
DOUBLE dEndAng |
椭圆弧的结束角度 |
效果展示:
用户可以通过点击绘制椭圆弧按钮,在CAD控件视区的任何位置绘制椭圆弧。如下图所示:
在cad设计时,需要绘制文字,用户可以设置设置绘制文字的高度等属性。
主要用到函数说明:
MxLibDraw.drawText
绘制一个单行文字。详细说明如下:
参数 | 说明 |
---|---|
double dDx | 文字的位置的X坐标 |
double dDy | 文字的位置的Y坐标 |
double height | 文字高度 |
String sTxt | 文字内容字符串 |
代码实现说明:
MxLibDraw.drawText(193,198,500,"测试Test");
效果展示:
用户可以通过点击绘制文字按钮,CAD控件视区将显示在代码中设置好的文字。如下图所示:
用户可以在控件视区任意位置绘制图片。
主要用到函数说明:
MxFunction.drawImageMarkEx
绘制一个图象标记对象。详细说明如下:
参数 | 说明 |
---|---|
String imageFile | 标记文件名 |
double dDx | 绘制位置,是图片的中心点X |
double dDy | 绘制位置,是图片的中心点y |
double dScale | 缩放比例,如果输入负数时,表示图片随视区大小缩放,负数的决对值表示图片的高度,图片宽度自动计算 |
int iAttachment | 对齐方式 |
代码实现说明:
MxFunction.openCurrentLayer(); MxFunction.drawImageMarkEx("location2.png",19354.596193,19813.267774,0.5,MxFunction.ImageAttachment.kBottomCenter);
效果展示:
通过点击插入图片按钮,CAD控件视区将显示在代码中设置好的图片。如下图所示:
主要用到函数说明:
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();
效果展示:
用户可以通过点击绘制图块按钮,将在代码中设置的图块插入到CAD控件视区。如下图所示: