批量导出CAD属性块信息生成到excel——CAD C#二次开发(插件实现)

发布于:2025-06-02 ⋅ 阅读:(17) ⋅ 点赞:(0)

本插件可实现批量导出文件夹内大量dwg文件的指定块名的属性信息到excel,效果如下:

插件界面:

 dll插件如下:

使用方法:

1、获取此dll插件。 

2、cad命令行输入netload ,加载此dll(要求AutoCAD,2018-2024版本).

3、cad命令行输入K2E,根据弹出界面内容提示,输入块名和并选择dwg文件,生成excel即可。

附部分代码:

     public static void Demo2()
     {
         Document doc = Autodesk.AutoCAD.ApplicationServices.Application.DocumentManager.MdiActiveDocument;
         Database db = doc.Database;
         Editor ed = doc.Editor;

         string defaultValue = "新块";
         string promptMsg = $"\n请输入要提取属性的块参照名称 [{defaultValue}]";
         // 创建提示选项
         PromptStringOptions pso = new PromptStringOptions(promptMsg);
         pso.AllowSpaces = true;  // 允许输入包含空格
         PromptResult pr = ed.GetString(pso);
         if (pr.Status != PromptStatus.OK) return;
         // 获取用户输入并处理默认值
         string userInput = pr.StringResult.Trim();
         string targetBlockName = string.IsNullOrEmpty(userInput)? defaultValue: userInput;

         // 步骤2:获取目标块定义的属性标签
         List<string> targetAttrTags = GetBlockAttributeTags(db, targetBlockName);
         if (targetAttrTags.Count == 0)
         {
             ed.WriteMessage("\n目标块定义中没有属性或块不存在!");
             return;
         }

         //步骤3:创建Excel并写入数据
         Microsoft.Office.Interop.Excel.Application excelApp = new Microsoft.Office.Interop.Excel.Application();
         Workbook workbook = excelApp.Workbooks.Add(XlWBATemplate.xlWBATWorksheet);
         Worksheet worksheet = (Worksheet)workbook.Worksheets[1];
         excelApp.Visible = true; // 设置Excel可见

         // 写入表头(序号+属性标签)
         List<string> headers = new List<string> { "序号" };
         headers.AddRange(targetAttrTags);
         for (int col = 1; col <= headers.Count; col++)
         {
             worksheet.Cells[1, col] = headers[col - 1];
         }

         // 步骤4:遍历图形中的块参照并提取属性值
******
}

插件获取方式:↓↓↓


网站公告

今日签到

点亮在社区的每一天
去签到