梦想CAD控件图块COM接口知识点
图块是将多个实体组合成一个整体,并给这个整体命名保存,在以后的图形编辑中图块就被视为一个实体。一个图块包括可见的实体如线、圆、圆弧以及可见或不可见的属性数据。图块的运用可以帮助用户更好的组织工作,快速创建与修改图形,减少图形文件的大小。
一、定义图块
1、c#将选中的实体做成块实现代码:
|
|
|
2、js将选中的实体做成块实现代码:
|
二、绘制块引用对象
1、主要用到函数说明:_DMxDrawX::DrawBlockReference
绘制块引用对象。详细说明如下:
参数 | 说明 |
DOUBLE dPosX | 插入点的X坐标 |
DOUBLE dPosY | 插入点的Y坐标 |
BSTR pszBlkName | 图块名 |
DOUBLE dScale | 图块缩放比例 |
DOUBLE dAng | 图块的旋转角度 |
2、C#中实现代码说明:
|
3、js中实现代码说明:
|
三、动态绘制块
1、主要用到函数说明:_DMxDrawX::DrawBlockReference
绘制块引用对象。详细说明如下:
参数 | 说明 |
DOUBLE dPosX | 插入点的X坐标 |
DOUBLE dPosY | 插入点的Y坐标 |
BSTR pszBlkName | 图块名 |
DOUBLE dScale | 图块缩放比例 |
DOUBLE dAng | 图块的旋转角度 |
2、js中实现代码说明:
动态拖放时的绘制事件:
|
动态插入图块:
|
四、修复块中心点
1、主要用到函数说明:IMxDrawEntity::GetBoundingBox
返回实体的最小矩形框外包。详细说明如下:
参数 | 说明 |
[out] IMxDrawPoint** minPoint | 外包框的左下角点 |
[out] IMxDrawPoint** maxPoint | 外包框的右上角点 |
2、c#中实现代码说明:
|
3、js中实现代码说明:
|
五、打碎块
1、主要用到函数说明:IMxDrawBlockReference::Explode
打碎块引用,被打碎的引用对象还在,打碎的实体是新生成的。详细说明如下:
参数 | 说明 |
[out,retval] IMxDrawResbuf** newIds | 返回打碎后新生成的实体id数组 |
2、c#中实现代码说明:
{
|
3、js中实现代码说明:
|
六、改变块的颜色
1、颜色
(1)实体的颜色可以通过0~256的数字值来指定和读取,也可以通过 McCmColor 类的实例来指定和读取,McCmColor类可以用来扩展颜色模型。McCmColor类可以用来表示真彩色中的任何一种色彩。
(2)颜色值1~7代表的标准颜色如下:
颜色值 | 1 | 2 | 3 | 4 | 5 | 6 | 7 |
颜色 | 红 | 黄 | 绿 | 青 | 蓝 | 紫红 | 白或黑 |
(3)颜色值7对应的颜色与控件背景颜色有关。如果背景是黑,则7对应的颜色是白,反之则对应的颜色是黑。
js中使用如下:
|
七、读取属性块
c#中使用如下:
|
js中使用如下:
|
八、修改属性块
js中使用如下:
|
九、得到所有图块名
js中使用如下:
|
十、将图块替换成dwg文件
js中使用如下:
|
十一、插入图块前修改图块文字
c#中使用如下:
|
js中使用如下:
|
十二、获取块文字信息
js中使用如下:
|
十三、修改块指定文字
js中使用如下:
|
十四、根据块名过滤
js中使用如下:
|