AutoCAD塊屬性提取

使用Visual studio c#爲例

首先在項目資源窗口右鍵選Referece添加AutoCAD 2018 Type Library

添加後using AutoCAD

using AutoCAD;

跟塊相關的代碼核心如下

AcadApplication acad = (AcadApplication)Marshal.GetActiveObject("AutoCAD.Application");
AcadDocument doc = acad.ActiveDocument;
AcadModelSpace mspace = doc.ModelSpace;
AcadEntity ent;

foreach (AcadEntity elem in mspace)     //遍歷所有的Entity
{
    if (elem.ObjectName == "AcDbBlockReference")    //如果是Block的話 
    {
        AcadBlockReference blk = (AcadBlockReference)elem;
        if (blk.Name.Contains("Drawing.Infor"))    //如果Block的定義名稱包含Drawing.Info
        {
            object[] oAtts = (object[])blk.GetAttributes();
            foreach (object oAtt in oAtts)        //遍歷Block每一個Tag
            {
                AcadAttributeReference att = (AcadAttributeReference)oAtt;
                Console.WriteLine(att.TagString + '\t' + att.TextString);
                if (att.Ta
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章