批量导出CAD属性块信息生成到excel——CAD C#二次开发(插件实现)
本插件可实现批量导出文件夹内大量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:遍历图形中的块参照并提取属性值
******
}
插件获取方式:↓↓↓