乐筑天下

搜索
欢迎各位开发者和用户入驻本平台 尊重版权,从我做起,拒绝盗版,拒绝倒卖 签到、发布资源、邀请好友注册,可以获得银币 请注意保管好自己的密码,避免账户资金被盗
查看: 83|回复: 2

图层状态图层状态关闭/打开/冻结

[复制链接]

129

主题

422

帖子

5

银币

中流砥柱

Rank: 25

铜币
936
发表于 2020-3-21 01:47:11 | 显示全部楼层 |阅读模式
谁知道如果有一种方法来检查开/关/ f

本帖以下内容被隐藏保护;需要你回复后,才能看到!

游客,如果您要查看本帖隐藏内容请回复
回复

使用道具 举报

15

主题

687

帖子

169

银币

中流砥柱

Rank: 25

铜币
582
发表于 2020-3-21 14:12:08 | 显示全部楼层
嗨,你可以得到ACAD _层状态字典,它是层表扩展字典的一个条目。它包含每个图层状态的Xrecord,在Xrecord的数据中,有一个类型值(代码90 ),该值是一个整数,是使用以下值之和的位代码: 1 = IsOff  2 = is frozen  4 = is locked  8 = is printable。   静态字典 TryGetLayerStateInfo(数据库数据库,字符串名称)。
{。
使用(var tr = new OpenCloseTransaction())。
{。
var layerTable = (LayerTable)tr,GetObject(db,LayerTableId,OpenMode。for read);。
var xDictId = layerTable,extension字典;。
if (xDictId,IsNull)。
返回null。
var xDict = (DBDictionary)tr,GetObject(xdictd,OpenMode。for read);。
如果(!xDict,包含(" ACAD _图层状态")。
返回null。
var dict = (DBDictionary)tr,GetObject(xDict,GetAt(" ACAD _图层状态"),OpenMode。for read);。
如果(!迪克特,包含(名称))。
返回null。
var xrec = (Xrecord)tr,GetObject(dict,GetAt(名称),OpenMode。for read);。
var data = xrec,数据;。
如果(数据为空)。
返回null。
变量值=数据,as array();。
var result = new Dictionary ();。
for(int I = 0;我。
{。
var val = values[I];。
if (val,TypeCode == 330)。
{。
var layer = (LayerTableRecord)tr,GetObject((ObjectId)val,值,OpenMode。for read);。
结果[图层,name]= new layer info((int)values[I+1],值);。
}。
}。
返回结果;。
}。
}。

结构层信息。
{。
public bool IsOff { get}。
public bool IsFrozen { get}。
公共布尔值被锁定{ get}。
public bool IsPrintable { get}。
public layer info(int flags)。
{。
IsOff =(flags & 1)= = 1;。
is frozen =(flags & 2)= = 2;。
is locked =(flags & 4)= = 4;。
is printable =(flags & 8)= = 8;。
}。
}使用示例:   [command method(" TEST ")]。
公共静态void测试()。
{。
var doc =应用,document manager . MdiActiveDocument;。
var db = doc,数据库;。
var ed = doc,编辑;。
var pr = ed,GetString(" \ n输入图层状态名称:");。
如果(pr,地位!=提示状态,好)。
返回;。
string name = pr,StringResult。
var layerStateInfo = TryGetLayerStateInfo(db,name);。
if(layerStateInfo = = null)。
{。
ed,write message($ " \ n找不到层状态“{ name }”);。
返回;。
}。
{。
foreach(layerStateInfo中的变量条目)。
{。
变量信息=条目,价值;。
ed,WriteMessage($"\n{entry,Key} IsOff: {info。IsOff} IsFrozen: {info,IsFrozen} " +。
$ "被锁定:{info,IsLocked} IsPrintable: {info,IsPrintable }”);。
}。
}。
}。
回复

使用道具 举报

129

主题

422

帖子

5

银币

中流砥柱

Rank: 25

铜币
936
发表于 2020-3-25 02:31:36 | 显示全部楼层
谢谢吉尔斯
回复

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

QQ|关于我们|小黑屋|乐筑天下 繁体中文

GMT+8, 2025-2-4 03:51 , Processed in 0.184365 second(s), 58 queries .

© 2020-2025 乐筑天下

联系客服 关注微信 帮助中心 下载APP 返回顶部 返回列表