在网页中查找到CAD控件图纸上的文字。点击此处在线演示

主要用到函数说明:

_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

构造选择集的过滤数据

实例化一个构造选择集进行过滤,该类封装了选择集及其处理函数。将文字对象当作过滤条件,得到文字对象(此处可以是文字或多行文字)。

// 创建选择集对象
ss = mxOcx.NewSelectionSet();
// 创建一个链表对象
var spFilte = mxOcx.NewResbuf();
// 把文字,多行文字当着过滤条件
spFilte.AddStringEx("TEXT,MTEXT",5020);
// 得到图上所有文字,5代码,全图选择
ss.Select2(5,null,null,null,spFilte);

遍历每个文字对象,将文字放到视区中间并绘制一个标记圆。

// 遍历每个文字.
var bFind = false; // 遍历选择集
for(var i = 0; i < ss.Count;i++)
{
// 得到选集中的实体
var ent = ss.Item(i);
if(ent == null)
continue;
if (ent.ObjectName == "McDbText") {
// 得到文字内容
var sTxt = ent.TextString; if (sTxt == txt) {
// 把文字放到视区中间.
mxOcx.PutEntityInView(ent.ObjectID, 300); var dLen = mxOcx.ViewLongToDocCoord(80); // 绘制一个标记圆.
mxOcx.DrawVectorCircle(ent.Position.x,
ent.Position.y,
dLen, 65280);
bFind = true;
}
}
else if (ent.ObjectName == "McDbMText") { var param = mxOcx.NewResbuf();
param.AddObjectId(ent.ObjectID);
// 得到多行文字中的文字本内容
var ret = mxOcx.CallEx("Mx_GetMTextContent", param);
if (ret.AtString(0) == "Ok") { if (ret.AtString(1) == txt) {
// 把文字放到视区.
mxOcx.PutEntityInView(ent.ObjectID, 300); var dLen = mxOcx.ViewLongToDocCoord(80); // 绘制一个标记圆.
mxOcx.DrawVectorCircle(ent.Location.x,
ent.Location.y,
dLen, 65280);
bFind = true; break;
}
}
}
ent = null;
} if (!bFind) {
alert("没有找到文字对象");
}
// 在这里必须显示释放控件的COM对象指针.
ss = null;
spFilte = null;
CollectGarbage();
}

梦想CAD控件网页版搜索图面上的文字的更多相关文章

  1. 梦想CAD控件COM接口搜索图面上的文字

    点击此处下载演示实例 主要用到函数说明: _DMxDrawX::NewSelectionSet 实例化一个构造选择集进行过滤,该类封装了选择集及其处理函数. _DMxDrawX::NewResbuf ...

  2. 梦想CAD控件网页版关于自定义命令

    在CAD控件操作中,为方便使用者,使用自定义命令发出命令,完成CAD绘图,修改,保存等操作.点击此处在线演示. _DMxDrawX::RegistUserCustomCommand 向CAD控件注册一 ...

  3. 梦想CAD控件网页版标注样式

    增加标注样式 _DMxDrawX::AddDimStyle 增加一个新的标注样式,如果当前已经有指定名的标注样式,就直接失败返回.详细说明如下: 参数 说明 BSTR pszName 新增加的标注样式 ...

  4. 梦想CAD控件网页版线型

    增加线型 主要用到函数说明: _DMxDrawX::AddLinetype 增加一个线型定义.详细说明如下: 参数 说明 BSTR pszName 线型名 BSTR pszLineDefine 线定义 ...

  5. 梦想CAD控件网页版文字样式

    增加文字样式 用户可以增加文字样式到数据库,并设置其字体等属性,具体实现js代码如下: function CreateText(){ //返回控件的数据库对象 var database =mxOcx. ...

  6. 梦想CAD控件网页版扩展数据

    随着基于CAD的应用软件飞速发展,经常需要保存一些与图形可视性无关的数据,即非图形参数.例如在绘制化验样图中包含品位数据.MxCAD定义一类新的参数——实体扩展数据.扩展数据与实体的可视性无关,而是用 ...

  7. 如何在网页中浏览和编辑DWG文件 梦想CAD控件

    如何在网页中浏览和编辑DWG文件 梦想CAD控件 www.mxdraw.com 梦想绘图控件5.2  是国内最强,最专业的CAD开发组件(控件),不需要AutoCAD就能独立运行.控件使用VC 201 ...

  8. 梦想CAD控件图块COM接口知识点

    梦想CAD控件图块COM接口知识点 图块是将多个实体组合成一个整体,并给这个整体命名保存,在以后的图形编辑中图块就被视为一个实体.一个图块包括可见的实体如线.圆.圆弧以及可见或不可见的属性数据.图块的 ...

  9. 梦想CAD控件图层COM接口知识点

    梦想CAD控件图层COM接口知识点 一.新建图层 主要用到函数说明: _DMxDrawX::AddLayer 增加新的图层.详细说明如下: 参数 说明 BSTR pszName 图层名 c#中实现代码 ...

随机推荐

  1. 《从零開始学Swift》学习笔记(Day67)——Cocoa Touch设计模式及应用之MVC模式

    原创文章,欢迎转载.转载请注明:关东升的博客   MVC(Model-View-Controller,模型-视图-控制器)模式是相当古老的设计模式之中的一个,它最早出如今Smalltalk语言中. 如 ...

  2. lambda和委托那点事

    Lambda 简介 Lambda 表达式是一种可用于创建委托或表达式目录树类型的一种匿名函数(匿名方法+Lambda).通过使用 lambda 表达式,可以写入可作为参数传递或作为函数 调用值返回的本 ...

  3. 修改版Putty,可保持密码

    修改版Putty,可保持密码: http://files.cnblogs.com/findumars/putty_v6.0.rar 转自: http://unmi.cc/putty-auto-logi ...

  4. Linux/Android——Input系统之InputMapper 处理 (八)【转】

    本文转载自:http://blog.csdn.net/jscese/article/details/43561773 前文Linux/Android——Input系统之InputReader (七)介 ...

  5. Ural 1382 2SAT

    ural1382 直接套用 2SAT模板 缩点 拓扑排序... #include<iostream> #include<cstdio> #include<cstdlib& ...

  6. Spark 分布式环境---slave节点无法启动(已解决)

    soyo@soyo-VPCCB3S1C:~$ start-slaves.sh soyo-slave01: starting org.apache.spark.deploy.worker.Worker, ...

  7. 配置URL

  8. EJB是什么?EJB的概念分析与理解(copy)

    [说明:转载于http://blog.csdn.net/jojo52013145/article/details/5783677] 1. 我们不禁要问,什么是"服务集群"?什么是& ...

  9. [Swift]Array数组的swapAt函数

    ★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★➤微信公众号:山青咏芝(shanqingyongzhi)➤博客园地址:山青咏芝(https://www.cnblogs. ...

  10. C#上机作业及代码Question1

    第一题创建控制台应用程序,利用下面的公式计算 q 的近似值,并运行出 k=10 时 q 的值. 本着开源的精神,献给各位,题目简单,随便写写,功能都实现了,不过现在先上传简单题,有一些难度的题目我先留 ...