当前位置:   article > 正文

C# Cad2016二次开发选择文本信息导出(六)

C# Cad2016二次开发选择文本信息导出(六)
  1. //选文本信息导出
  2. [CommandMethod("getdata")]
  3. public void getdata()
  4. {
  5. // 获取当前文档和数据库
  6. Document doc = Autodesk.AutoCAD.ApplicationServices.Application.DocumentManager.MdiActiveDocument;
  7. Database db = doc.Database;
  8. Editor ed = doc.Editor;
  9. // 获取当前图形数据库的路径
  10. string path = db.Filename;
  11. // 提示用户选择文本
  12. PromptSelectionResult selectionResult = doc.Editor.GetSelection(new SelectionFilter(new TypedValue[] { new TypedValue((int)DxfCode.Start, "TEXT") }));
  13. if (selectionResult.Status == PromptStatus.OK)
  14. {
  15. using (Transaction trans = db.TransactionManager.StartTransaction())
  16. {
  17. SelectionSet selection = selectionResult.Value;
  18. StreamWriter mydata = new StreamWriter(path + "文字信息.csv", append: true, Encoding.Default);
  19. string value = "图层,名称,X,Y,字高,颜色\t,";
  20. mydata.WriteLine(value);
  21. // 遍历选择集中的文本对象
  22. foreach (ObjectId id in selection.GetObjectIds())
  23. {
  24. DBText text = trans.GetObject(id, OpenMode.ForRead) as DBText;
  25. if (text != null)
  26. {
  27. // 获取图层名称
  28. string layerName = text.Layer;
  29. //文本信息
  30. string textContent = text.TextString;
  31. // 获取文本坐标
  32. double xPos = text.Position.X;
  33. double yPos = text.Position.Y;
  34. // 获取文本颜色
  35. int colorIndex = text.Color.ColorIndex;
  36. // 获取文本字高
  37. double textHeight = text.Height;
  38. //拼接CSV字符串
  39. value = layerName + "," + textContent + "," + xPos + "," + yPos + "," + textHeight + "," + colorIndex + "\t,";
  40. // 打印输入输出
  41. ed.WriteMessage("\n" + value);
  42. mydata.WriteLine(value);
  43. }
  44. }
  45. mydata.Close();
  46. // 打印输入输出
  47. ed.WriteMessage("\n导出完成");
  48. trans.Commit();
  49. }
  50. }
  51. }

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/article/detail/40334
推荐阅读
相关标签
  

闽ICP备14008679号