梦想CAD控件COM接口搜索图面上的文字
主要用到函数说明:
_DMxDrawX::NewSelectionSet
实例化一个构造选择集进行过滤,该类封装了选择集及其处理函数。
_DMxDrawX::NewResbuf
新创建IMxDrawResbuf对象,构造一个过滤链表。
IMxDrawResbuf::AddStringEx
向链表中增加一个string数据,比如:把文字对象,当着过滤条件。
spFilte.AddStringEx("TEXT,MTEXT",5020);
IMxDrawSelectionSet::Select2
根据指定的选择方式在图上构造选择集,详细说明如下:
参数 | 说明 |
---|---|
[in] MCAD_McSelect Mode |
构造选择集方式 |
[in] VARIANT point1 |
构造择择集时需要使用到的点对象 |
[in] VARIANT point2 |
构造择择集时需要使用到的点对象 |
[in,optional] VARIANT filterType |
构造选择集的过滤数据的类型 |
[in,optional] VARIANT filterData |
构造选择集的过滤数据 |
实例化一个构造选择集进行过滤,该类封装了选择集及其处理函数。将文字对象当作过滤条件,得到文字对象(此处可以是文字或多行文字)。遍历每个文字对象,将文字放到视区中间并绘制一个标记圆。
private void FineText()
{
// 创建选择集对象 MxDrawSelectionSet ss = new MxDrawSelectionSet(); // 创建过滤对象.
MxDrawResbuf spFilte = new MxDrawResbuf(); // 把文字对象,当着过滤条件.
spFilte.AddStringEx("TEXT,MTEXT", 5020); // 得到图上,所有文字对象.
ss.Select2(MCAD_McSelect.mcSelectionSetAll, null, null, null, spFilte); // 遍历每个文字.
bool bFind = false;
// 获得输入的文字
string str = textBox1.Text;
for (int i = 0; i < ss.Count; i++)
{
MxDrawEntity ent = ss.Item(i);
if (ent == null)
continue;
if (ent.ObjectName == "McDbText")
{
// 是一个文字
MxDrawText text = (MxDrawText)ent;
string sTxt = text.TextString; if (sTxt == str)
{
// 找到把文字放到视区中间.
axMxDrawX1.PutEntityInView(ent.ObjectID, 300); var dLen = axMxDrawX1.ViewLongToDocCoord(80); // 绘制一个标记圆.
axMxDrawX1.DrawVectorCircle(text.Position.x,
text.Position.y,
dLen, 65280);
bFind = true;
}
}
else if (ent.ObjectName == "McDbMText")
{
// 找到一个多行文字 MxDrawResbuf param = new MxDrawResbuf();
param.AddObjectId(ent.ObjectID);
MxDrawMText mtext = (MxDrawMText)ent; // 得到多行文字中的,文字内容.
MxDrawResbuf ret = (MxDrawResbuf)axMxDrawX1.CallEx("Mx_GetMTextContent", param);
if (ret.AtString(0) == "Ok")
{ if (ret.AtString(1) == str)
{
// 把文字放到视区.
axMxDrawX1.PutEntityInView(ent.ObjectID, 300); var dLen = axMxDrawX1.ViewLongToDocCoord(80); // 绘制一个标记圆.
axMxDrawX1.DrawVectorCircle(mtext.Location.x,
mtext.Location.y,
dLen, 65280);
bFind = true; break;
}
}
} }
if (bFind)
MessageBox.Show("找到文字");
else
MessageBox.Show("没有找到文字");
}
梦想CAD控件COM接口搜索图面上的文字的更多相关文章
- 梦想CAD控件网页版搜索图面上的文字
在网页中查找到CAD控件图纸上的文字.点击此处在线演示. 主要用到函数说明: _DMxDrawX::NewSelectionSet 实例化一个构造选择集进行过滤,该类封装了选择集及其处理函数. _DM ...
- 梦想CAD控件COM接口自定义命令
在CAD软件操作中,为方便使用者,使用自定义命令发出命令,完成CAD绘图,修改,保存等操作.点击此处下载演示实例. _DMxDrawX::RegistUserCustomCommand 向CAD控件注 ...
- 梦想CAD控件COM接口光栅图处理
在CAD操作过程中,我们在设计绘图时,光栅图像也就是我们常说的图片,应用非常广泛,在CAD中可以直接插入光栅图像,并且可以对光栅图像进行裁剪.透明度调整等一些操作,在网页可以快速实现我们所需功能. 一 ...
- 梦想CAD控件COM接口标注样式
增加标注样式 用户可以增加标注样式到数据库,具体实现c#代码如下: private void CreateDim() { //返回控件的数据库对象 MxDrawDatabase database = ...
- 梦想CAD控件com接口扩展数据
随着CAD应用软件的飞速发展,经常需要保存一些与图形可视性无关的数据,即非图形参数.例如在绘制化验样图中包含品位数据.MxCAD定义了一类参数——实体扩展数据.扩展数据与实体的可视性无关,而是用户根据 ...
- 梦想CAD控件COM接口文字样式
增加文字样式 用户可以增加文字样式到数据库,并设置其字体等属性,具体实现c#代码如下: private void CreateText() { MxDrawApplication app = new ...
- 梦想CAD控件图块COM接口知识点
梦想CAD控件图块COM接口知识点 图块是将多个实体组合成一个整体,并给这个整体命名保存,在以后的图形编辑中图块就被视为一个实体.一个图块包括可见的实体如线.圆.圆弧以及可见或不可见的属性数据.图块的 ...
- 梦想CAD控件图层COM接口知识点
梦想CAD控件图层COM接口知识点 一.新建图层 主要用到函数说明: _DMxDrawX::AddLayer 增加新的图层.详细说明如下: 参数 说明 BSTR pszName 图层名 c#中实现代码 ...
- 如何在网页中浏览和编辑DWG文件 梦想CAD控件
如何在网页中浏览和编辑DWG文件 梦想CAD控件 www.mxdraw.com 梦想绘图控件5.2 是国内最强,最专业的CAD开发组件(控件),不需要AutoCAD就能独立运行.控件使用VC 201 ...
随机推荐
- 使用带粒子效果的 CAEmitterLayer
1.用CAEmitterLayer产生粒子效果 2.封装CAEmitterLayer 3.封装下雪.下雨的粒子效果控件 一.用CAEmitterLayer产生粒子效果 - (void)emitterL ...
- 跟踪oracle中sql语句运行过程及相关知识拓展
select * from v$sqlarea; select * from v$sqlarea where first_load_time>'2010-11-27/09:30:00'; 这种方 ...
- Noip模拟 Day6.12
第一题:贪吃蛇(snake) 本题其实就是判断一个有向图中有没有环,做一次拓扑排序就可以了,如果所有点都入队了,就表示没有环,否则就有环.或者就是dfs一次,每个点只需要被访问一次,这样也是O(n)的 ...
- SpringMVC_2
web.xml <?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi=" ...
- android 使用AlarmManager定时启动service
private static AlarmManager am; private static PendingIntent pendingIntent; /** * 使用 AlarmManager 来 ...
- bzoj1999 (洛谷1099) 树网的核——dfs
题目:https://www.lydsy.com/JudgeOnline/problem.php?id=1999 https://www.luogu.org/problemnew/show/P109 ...
- nginx开发(二)配置mp4文件在线播放
1: 第一步先开打nginx的文件夹遍历功能 vi /usr/local/nginx/conf/nginx.conf #编辑配置文件,在http {下面添加以下内容: autoindex on; #开 ...
- Python 私有化类的属性
class MandgerSec: def __init__(self,name,gender,level): self.type=("fire",None) self.name= ...
- vue中子组件向父组件传值
1.子组件$emit()触发,父组件$on()监听 子组件:<template> <div class="hello"> <button v-on:c ...
- ssm lodop打印图片不显示
在打印预览的时候图片就是不显示 最终解决方案就是修改过滤器