(求助)特定文本查找显亮,并且 只显示有这些文字的图层
如题 :查找特定文字 显亮(可能是单行文字,多行文字,和属性块,块内文字),并且 只打开有这些文字的图层(关闭其他图层)例如查找整个图纸含有 FM 文本的,并且只打开含有FM文本的图层,关闭其他图层
我常规操作是利用cad自带的 FIND命令查找,然后选择集
最后再用图层工具关闭其他图层
ar r1 = Env.Editor.GetString("\n选择要查找的文字");
if (r1.Status != PromptStatus.OK)
return;
var str = r1.StringResult;
using var tr = new DBTrans();
HashSet<ObjectId> layerIdSet = new();
foreach (var btr in tr.BlockTable.GetRecords())
{
foreach (var ent in btr.GetEntities<Entity>())
{
if(ent is DBText ||ent is MText)
{
layerIdSet.Add(ent.LayerId);
}
else if(ent is BlockReference brf)
{
foreach (var att in brf.GetAttributes())
{
layerIdSet.Add(att.LayerId);
}
}
}
}
foreach (var ltr in layerIdSet.GetObject<LayerTableRecord>(OpenMode.ForWrite))
{
if(!ltr.IsOff)
ltr.IsOff = true;
}
因为没说什么语言,所以用了c# powered by ifox
d1742647821 发表于 2023-11-8 19:25
因为没说什么语言,所以用了c# powered by ifox
这个怎么使用呢?不太会。。我都是用的lisp 发错地方了。。。;P
页:
[1]