CAD闪烁实体

在我们绘图过程中,我们希望某些指定的实体可以闪烁起来,以便我们更好直观的制图,下面以MxdrawCAD控件为例,介绍将dwg图纸的实体闪烁以及停止闪烁的方法。

1、闪烁实体

实现思路:首先我们可以GetEntity方法在视区选择我们需要闪烁的实体对象,然后通过ObjectID属性的到我们选择实体对象的id,最后调用TwinkeEnt方法是我们选择的实体闪烁起来,实现起来是不是很简单呢。

主要用到函数说明:

_DMxDrawX::TwinkeEnt

闪烁实体,详细说明如下:

参数 说明
LONGLONG lId

闪烁实体的id

 c#的实现代码如下:

MxDrawUtility mxUtility = new MxDrawUtility();

MxDrawPoint getPt;
MxDrawEntity ent = mxUtility.GetEntity(out getPt, "选择要闪烁的实体");
if (ent == null)
return;
Int64 id = ent.ObjectID;
ent.Close();
axMxDrawX1.TwinkeEnt(id);
 在网页实现代码如下:

// 与用户交在图面上选择需要闪烁的对象
var ent = mxOcx.GetEntity("选择实体:");

if (ent == null)
return;
var id = ent.ObjectID;
ent.Close();
mxOcx.TwinkeEnt(id);
 主要用到函数说明:

MxDrawXCustomFunction::Mx_TwinkeEnt

闪烁实体。详细说明如下:

参数 说明
McDbObjectId id

被闪烁的实体对象id

LONG lCount = -1

闪烁次数,默认为-1表示不限闪烁次数

我们有的时候需要设置实体对象的闪烁次数,下面的实现代码是我们通过Mx_TwinkeEnt方法实现控制实体闪烁次数的实现过程。 

js中使用如下:

var selEnt = mxOcx.NewComObject("IMxDrawUiPrEntity");

selEnt.message = "选择对象";
if (selEnt.go() != 1)
return;

var ent = selEnt.Entity();
if (ent == null)
return;
var param = mxOcx.NewResbuf();
param.AddString(ent.Handle);
param.AddLong(6); // 闪烁6次

mxOcx.CallEx("Mx_TwinkeEnt",param);
由于闪烁的默认颜色是红、绿、蓝,那么如果我们希望闪烁的颜色是其他的颜色,同样我们也可以设置其他的颜色。

实现思路:实现我们需要创建一个颜色链表,把我们想要的闪烁颜色添加到链表里面。再通过SetTwinkeColor方法设置闪烁颜色,这个方法是十分简单便捷的。

在网页中实现设置闪烁颜色的代码如下:

// 与用户交在图面上选择需要闪烁的对象
var ent = mxOcx.GetEntity("选择实体:");
if (ent == null)
return;
var id = ent.ObjectID;
ent.Close();
var param = mxOcx.NewResbuf();
param.AddLong(65535);
param.AddLong(16776960);
mxOcx.SetTwinkeColor(param);
mxOcx.TwinkeEnt(id);
2、停止闪烁

在我们使用过程中,我们可能希望有的实体对象不闪烁,下面介绍让实体对象停止闪烁的方法。

实现思路:首先我们可以GetEntity方法在视区选择我们需要停止闪烁的实体对象,然后通过ObjectID属性的到我们选择实体对象的id,最后调用StopTwinkeEnt方法是我们选择的实体停止闪烁。

主要用到函数说明:

_DMxDrawX::StopTwinkeEntEStopTwinkeEntnt

停止闪烁实体,详细说明如下:

参数 说明
LONGLONG lId

停止闪烁实体的id

 c#的实现代码如下:

MxDrawUtility mxUtility = new MxDrawUtility();

MxDrawPoint getPt;
MxDrawEntity ent = mxUtility.GetEntity(out getPt, "选择要停止闪烁的实体");
if (ent == null)
return;
Int64 id = ent.ObjectID;
ent.Close();

axMxDrawX1.StopTwinkeEnt(id);
在网页中实现代码如下:

// 与用户交在图面上选择需要停止闪烁的对象
var ent = mxOcx.GetEntity("选择实体:");

if (ent == null)
return;
var id = ent.ObjectID;
ent.Close();

mxOcx.StopTwinkeEnt(id);
总的来说,闪烁实体这个知识点还是比较简单易懂的,大家可以多试试就会了。 

posted on   梦想CAD控件  阅读(342)  评论(0编辑  收藏  举报

编辑推荐:
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· AI 智能体引爆开源社区「GitHub 热点速览」
· 写一个简单的SQL生成工具

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5
点击右上角即可分享
微信分享提示