【问题标题】:Get Mtext data from dwg file从 dwg 文件中获取 Mtext 数据
【发布时间】:2013-07-02 04:00:47
【问题描述】:
我有一些有趣的任务。在其中一张图中,我有一个 MText 字段。所以,我的插件需要知道如何从这张图和其他图中准确地获取该字段。
有什么属性或smth,我可以用什么来确定不同图纸上的Mtext字段?
【问题讨论】:
标签:
c#
.net
autocad
dwg
autocad-plugin
【解决方案1】:
我想这可能就是你要找的……
using Autodesk.AutoCAD.ApplicationServices;
using Autodesk.AutoCAD.DatabaseServices;
using Autodesk.AutoCAD.Runtime;
using AcApplication = Autodesk.AutoCAD.ApplicationServices.Application;
public static Document acDoc {
get {
return Autodesk.AutoCAD.ApplicationServices.Application.DocumentManager.MdiActiveDocument;
}
}
public static MText getMTextObj(string TextYouNeed)
{
var ed = acDoc.Editor;
var selMText = new TypedValue[1];
selMText.SetValue(new TypedValue(0,"MTEXT"),0);
var MTextObjs = ed.SelectAll(new SelectionFilter(selMText));
using (var Transaction = acDoc.Database.TransactionManager.StartTransaction()) {
foreach (ObjectId MTextObjId in MTextObjs.Value.GetObjectIds()) {
var current_MTextObj = Transaction.GetObject(MTextObjId,OpenMode.ForWrite) as MText;
if(current_MTextObj.Text.Equals(TextYouNeed))
// return current_MTextObj;
// or
// do somehting else
}
}
Transaction.Commit(); // if you change something.
}