明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 2229|回复: 7

cad文字求和 如何用c#来实现

[复制链接]
发表于 2011-11-5 22:36 | 显示全部楼层 |阅读模式
cad文字求和 如何用c#来实现
 楼主| 发表于 2011-11-7 15:54 | 显示全部楼层
哪位大哥能给点提示?谢谢了
发表于 2011-11-7 16:19 | 显示全部楼层
读取内容,转换成数字,然后计算,然后写入文字中
 楼主| 发表于 2011-11-8 11:25 | 显示全部楼层
能给点代码提示么?
发表于 2011-11-8 23:37 | 显示全部楼层
  1. [CommandMethod("t4")]
  2.         public void Test4()
  3.         {
  4.             Document doc = Application.DocumentManager.MdiActiveDocument;
  5.             Database db = doc.Database;
  6.             Editor ed = doc.Editor;
  7.             SelectionFilter selectFilter = new SelectionFilter(new TypedValue[] { new TypedValue(0, "Text") });
  8.             PromptSelectionOptions selectOptions = new PromptSelectionOptions();
  9.             selectOptions.MessageForAdding="\n框选求和文字";
  10.             selectOptions.MessageForRemoval = "\n框选求和文字";
  11.             PromptSelectionResult selectResult = ed.GetSelection(selectOptions, selectFilter);
  12.             if (selectResult.Status != PromptStatus.OK) return;
  13.             Transaction tr=doc.TransactionManager.StartTransaction();
  14.             double sumNumber = 0;
  15.             using (tr)
  16.             {           
  17.             foreach (ObjectId textId in selectResult.Value.GetObjectIds())
  18.             {
  19.                 DBText selectText = tr.GetObject(textId, OpenMode.ForRead) as DBText;
  20.                 string selectString = selectText.TextString;
  21.                 System.Text.RegularExpressions.MatchCollection mc =System.Text.RegularExpressions.Regex.Matches(selectString, @"\d+\.\d+|\d+");
  22.                 if (mc.Count > 0)
  23.                 {
  24.                     foreach (System.Text.RegularExpressions.Match m in mc)
  25.                     {
  26.                         sumNumber += double.Parse(m.ToString());
  27.                     }
  28.                 }
  29.             }
  30.             ed.WriteMessage(sumNumber.ToString());
  31.             }            
  32.         }
发表于 2011-11-17 18:10 | 显示全部楼层
可以把你要求和的文字放在一个图层内,然后对这个图层内的所有文字进行求和。
 楼主| 发表于 2011-11-22 13:19 | 显示全部楼层
System.Text.RegularExpressions.MatchCollection mc =System.Text.RegularExpressions.Regex.Matches(selectString, @"\d+\.\d+|\d+");
这句话怎么理解?
发表于 2011-11-24 00:06 | 显示全部楼层
正则表达式
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-4-29 01:52 , Processed in 2.832981 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表