一、参数绘制文字
1、在CAD设计时,需要绘制文字,用户可以设置设置绘制文字的高度等属性。
2、主要用到函数说明:
(1)_DMxDrawX::DrawText
绘制一个单行文字。详细说明如下:
参数 |
说明 |
DOUBLE dPosX |
文字的位置的X坐标 |
DOUBLE dPosY |
文字的位置的Y坐标 |
BSTR pszText |
文字内容字符串 |
DOUBLE dHeight |
文字高度 |
DOUBLE dRotation |
文字的旋转角度 |
SHORT horizontalMode |
文字的水平对齐方式,0=kTextLeft,1=kTextCenter,2=kTextRight |
SHORT verticalMode |
文字的竖直对齐方式,1=kTextBottom,2=kTextVertMid,3=kTextTop |
(2)_DMxDrawX::AddTextStyle1
向数据库中增加一个文字样式。详细说明如下:
参数 |
说明 |
BSTR pszName |
文字样式名称 |
BSTR pszFileName |
shx文件名 |
BSTR pszBigFontFileName |
big shx文件名 |
DOUBLE dXScale |
文字宽度缩放比例 |
3、c#中实现代码说明:
|
4、js中实现代码说明:
|
二、参数绘制多行文字
1、主要用到函数说明:
(1)_DMxDrawX::DrawMText
绘制一个多行文字。详细说明如下:
参数 |
说明 |
DOUBLE dPosX |
多行文字位置的X坐标 |
DOUBLE dPosY |
多行文字位置的Y坐标 |
BSTR pszContents |
多行文字的内容 |
DOUBLE dHeight |
多行文字的高度 |
DOUBLE dWidth |
多行文字的显示宽度 |
DOUBLE dRotation |
多行文字的旋转角度 |
SHORT iAttachment |
多行文字的对齐方式 |
可以取值 |
enum AttachmentPoint { kTopLeft = 1, kTopCenter = 2, kTopRight = 3, kMiddleLeft = 4, kMiddleCenter = 5, kMiddleRight = 6, kBottomLeft = 7, kBottomCenter = 8, kBottomRight = 9, |
(2)_DMxDrawX::AddTextStyle2
向数据库中增加一个TrueType文字样式。详细说明如下:
参数 |
说明 |
BSTR pszName |
文字样式名称 |
BSTR pszTrueTypeFontName |
TrueType字体名 |
DOUBLE dXScale |
文字宽度缩放比例 |
2、C#中实现代码说明:
|
3、js中实现代码说明:
|
三、交互绘制文字
1、主要用到函数说明:_DMxDrawX::DrawText
绘制一个单行文字。详细说明如下:
参数 |
说明 |
DOUBLE dPosX |
>文字的位置的X坐标 |
DOUBLE dPosY |
文字的位置的Y坐标 |
BSTR pszText |
文字内容字符串 |
DOUBLE dHeight |
文字高度 |
DOUBLE dRotation |
文字的旋转角度 |
SHORT horizontalMode |
文字的水平对齐方式,0=kTextLeft,1=kTextCenter,2=kTextRight |
SHORT verticalMode |
文字的竖直对齐方式,1=kTextBottom,2=kTextVertMid,3=kTextTop |
2、c#中实现代码说明:
动态拖放时的绘制事件:
|
动态绘制文字:
|
3、js中实现代码说明:
动态拖放时的绘制事件:
|
动态绘制文字:
|
四、查找文字
1、主要用到函数说明:
(1)_DMxDrawX::NewSelectionSet
实例化一个构造选择集进行过滤,该类封装了选择集及其处理函数。
(2)_DMxDrawX::NewResbuf
新创建IMxDrawResbuf对象,构造一个过滤链表。
(3)IMxDrawResbuf::AddStringEx
向链表中增加一个string数据,比如:把文字对象,当着过滤条件。
spFilte.AddStringEx("TEXT,MTEXT",5020);
(4)IMxDrawSelectionSet::Select2
根据指定的选择方式在图上构造选择集,详细说明如下:
参数 |
说明 |
[in] MCAD_McSelect Mode |
构造选择集方式 |
[in] VARIANT point1 |
构造择择集时需要使用到的点对象 |
[in] VARIANT point2 |
构造择择集时需要使用到的点对象 |
[in,optional] VARIANT filterType |
构造选择集的过滤数据的类型 |
[in,optional] VARIANT filterData |
构造选择集的过滤数据 |
2、实例化一个构造选择集进行过滤,该类封装了选择集及其处理函数。将文字对象当作过滤条件,得到文字对象(此处可以是文字或多行文字)。遍历每个文字对象,将文字放到视区中间并绘制一个标记圆。c#代码实现如下:
|
3、实例化一个构造选择集进行过滤,该类封装了选择集及其处理函数。将文字对象当作过滤条件,得到文字对象(此处可以是文字或多行文字)。js代码实现如下:
|
遍历每个文字对象,将文字放到视区中间并绘制一个标记圆:
|
五、将文字变成曲线
js中代码实现说明:
|
六、删除全部文字
js中代码实现说明:
|
七、修改文字
js中代码实现说明:
|
八、得到文字内容
js中代码实现说明:
|
九、得到多行文字内容
js中代码实现说明:
|
十、计算文字外包
c#中代码实现说明:
|
十一、增加文字样式
1、用户可以增加文字样式到数据库,并设置其字体等属性,具体实现c#代码如下:
|
2、具体实现js代码如下:
|
十二、得到文字样式
1、用户可以得到所有文字样式名,具体实现c#代码如下:
|
2、具体实现js代码如下:
|
十三、删除文字样式
1、用户可以删除某个文字样式,具体实现c#代码如下:
|
2、具体实现js代码如下:
|
十四、加粗文字
1、首先增加文字样式到数据库,如下代码所示:
|
2、将选中的文字样式设置为数据库中需要的文字样式名,如下代码所示:
|
十五、将文字变成曲线2
1、c#代码如下所示:
|
2、js代码如下所示:
|