安卓系统CAD开发的图形数据库,安卓中浏览和编辑DWG
图层
新建图层
CAD中我们设置好图层后除了我们平常的绘图时选择线段的颜色,线型,线宽等作用,而且我们还可以在出图时选择性显示图形,冻结图形,已达到我们想要的效果。
实现代码说明:
| //增加一个图层 参数为图层名 | |
| MxLibDraw.addLayer("AAA111"); | |
| //设置当前绘图函数使用的图层 参数为图层名字符串 | |
| MxLibDraw.setLayerName("AAA111"); |
得到所有图层名
实现代码说明:
| //得到所有图层 | |
| long[] ids = MxFunction.getAllLayer(); | |
| if(ids ==null) | |
| return; | |
| for(int i = 0; i < ids.length;i++) | |
| { | |
| McDbLayerTableRecord layer = new McDbLayerTableRecord(ids[i]); | |
| //返回符号表记录的名称 | |
| String sName = layer.getName(); | |
| Log.e("LayerName:",sName); | |
| } |
打开所有图层
实现代码说明:
| //得到所有图层 | |
| long[] ids = MxFunction.getAllLayer(); | |
| if(ids ==null) | |
| return; | |
| for(int i = 0; i < ids.length;i++) | |
| { | |
| McDbLayerTableRecord layer = new McDbLayerTableRecord(ids[i]); | |
| layer.setIsOff(false); | |
| } |
隐藏指定的图层
实现代码如下:
| // 隐藏指定的层。 | |
| //增加一个图层 参数为图层名 | |
| MxLibDraw.addLayer("AAA111"); | |
| //设置当前绘图函数使用的图层 参数为图层名字符串 | |
| MxLibDraw.setLayerName("AAA111"); | |
| long lId = MxLibDraw.drawLine(400,0,0,400); | |
| McDbLine line = new McDbLine(lId); | |
| line.setColorIndex(5); | |
| McDbLayerTableRecord layer = new McDbLayerTableRecord("AAA111"); | |
| layer.setIsOff(true); |
锁定所有图层
实现代码如下:
| //得到所有图层 | |
| long[] ids = MxFunction.getAllLayer(); | |
| if(ids ==null) | |
| return; | |
| for(int i = 0; i < ids.length;i++) | |
| { | |
| McDbLayerTableRecord layer = new McDbLayerTableRecord(ids[i]); | |
| layer.setIsLocked(true); | |
| } |
锁定指定图层
实现代码如下:
| //设置图层锁定状态 | |
| //增加一个图层 参数为图层名 | |
| MxLibDraw.addLayer("AAA111"); | |
| //设置当前绘图函数使用的图层 参数为图层名字符串 | |
| MxLibDraw.setLayerName("AAA111"); | |
| long lId = MxLibDraw.drawLine(400,0,0,400); | |
| McDbLine line = new McDbLine(lId); | |
| line.setColorIndex(5); | |
| McDbLayerTableRecord layer = new McDbLayerTableRecord("AAA111"); | |
| layer.setIsLocked(true); |
文字样式
增加文字样式
用户可以增加文字样式到数据库,并设置其字体等属性,具体实现代码如下:
| // 增加文字样式 | |
| //getCurrentDatabase()返回当前数据库对象 | |
| //getTextstyle()返回数据库中的文字样式表对象 | |
| McDbTextStyleTable txtstyleTable = MxFunction.getCurrentDatabase().getTextstyle(); | |
| //增加一个文字样式 | |
| //参数一为样式名;参数二为shx字体名;参数三为中文shx字体名;参数四为宽度比例 | |
| MxLibDraw.addTextStyle1("myshx","romans.shx","gbcbig.shx",0); | |
| //设置当前绘图函数使用的文字样式 | |
| MxLibDraw.setTextStyle("MyTextStyle"); |
得到文字样式名
用户可以得到所有文字样式名,具体实现代码如下:
| // 得到所有文字样式名称 | |
| //getCurrentDatabase()返回当前数据库对象 | |
| //getTextstyle()返回数据库中的文字样式表对象 | |
| McDbTextStyleTable txtstyleTable = MxFunction.getCurrentDatabase().getTextstyle(); | |
| //getAll()得到所有文字样式表中的文字样式对象 | |
| long[] allId = txtstyleTable.getAll(); | |
| for(int i = 0; i < allId.length;i++) | |
| { | |
| McDbTextStyleTableRecord textStyleRecord = new McDbTextStyleTableRecord(allId[i]); | |
| //getName()返回符号表记录名称 | |
| Log.e("textStyleRecord:",textStyleRecord.getName()); | |
| //返回文字样式的字体文件名,shx字体文件,fileName在不使用时需要调用Mx::mcutDelString函数释放内存 | |
| Log.e("fileName:",textStyleRecord.fileName()); | |
| //返回文字的big shx文件名 | |
| Log.e("bigFontFileName:",textStyleRecord.bigFontFileName()); | |
| } |
浙公网安备 33010602011771号