找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 1949|回复: 4

[分享] 统一文字样式,字高及宽高比

[复制链接]

已领礼包: 19个

财富等级: 恭喜发财

发表于 2015-4-3 13:34:12 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
  1. [CommandMethod("WZXG")]
  2.         public void WZG()
  3.         {
  4.             Database db = HostApplicationServices.WorkingDatabase;
  5.             Document doc = Autodesk.AutoCAD.ApplicationServices.Application.DocumentManager.MdiActiveDocument;
  6.             Editor ed = Autodesk.AutoCAD.ApplicationServices.Application.DocumentManager.MdiActiveDocument.Editor;
  7.             PromptSelectionOptions options = new PromptSelectionOptions();
  8.             SelectionFilter fil = new SelectionFilter(new TypedValue[] { new TypedValue(0, "*text,mtext") });
  9.             options.MessageForAdding = "\n选择文字:";
  10.             OpenTextStyle.ss1  = ed.GetSelection(options, fil);
  11.             OpenTextStyle opentextstyle = new OpenTextStyle();
  12.             Autodesk.AutoCAD.ApplicationServices.Application.ShowModalDialog(opentextstyle);
  13.         }

  14.     public partial class OpenTextStyle : Form
  15.     {
  16.         public static PromptSelectionResult ss1;
  17.         public OpenTextStyle()
  18.         {
  19.             InitializeComponent();
  20.         }

  21.         private void button1_Click(object sender, EventArgs e)
  22.         {
  23.             this.Hide();
  24.             Database db = HostApplicationServices.WorkingDatabase;
  25.             Document doc = Autodesk.AutoCAD.ApplicationServices.Application.DocumentManager.MdiActiveDocument;
  26.             Editor ed = Autodesk.AutoCAD.ApplicationServices.Application.DocumentManager.MdiActiveDocument.Editor;
  27.             using (Transaction tr = db.TransactionManager.StartOpenCloseTransaction())
  28.             {
  29.                 SelectionSet ss = ss1.Value;
  30.                 if (ss1.Status != PromptStatus.OK) return;
  31.                 if (ss1.Status == PromptStatus.Cancel) return;
  32.                 ObjectIdCollection objectId1 = new ObjectIdCollection();
  33.                 ObjectIdCollection objectId2 = new ObjectIdCollection();
  34.                 using (Transaction tr1 = doc.TransactionManager.StartTransaction())
  35.                 {
  36.                     foreach (ObjectId id in ss.GetObjectIds())
  37.                     {
  38.                         Entity entity = tr.GetObject(id, OpenMode.ForRead) as Entity;
  39.                         if (entity.GetType().Name == "DBText")
  40.                         {
  41.                             objectId1.Add(id);
  42.                         }
  43.                         else if (entity.GetType().Name == "MText")
  44.                         {
  45.                             objectId2.Add(id);
  46.                         }
  47.                     }
  48.                     tr1.Commit();
  49.                 }
  50.                 using (Transaction tr2 = doc.TransactionManager.StartTransaction())
  51.                 {
  52.                     foreach (ObjectId textId in objectId1)
  53.                     {
  54.                         DBText dText = tr2.GetObject(textId, OpenMode.ForWrite) as DBText;
  55.                             using (Transaction tr3 = db.TransactionManager.StartTransaction())
  56.                             {
  57.                                 TextStyleTable st = (TextStyleTable)db.TextStyleTableId.GetObject(OpenMode.ForRead);
  58.                                 foreach (ObjectId td in st)
  59.                                 {
  60.                                     TextStyleTableRecord textR = tr.GetObject(td, OpenMode.ForRead) as TextStyleTableRecord;
  61.                                     if (textR.Name == this.comboBox1.SelectedItem.ToString())
  62.                                     {
  63.                                         dText.TextStyleId = td;
  64.                                     }
  65.                                 }
  66.                                 tr3.Commit();
  67.                             }
  68.                             dText.Height = Convert.ToDouble(this.textBox1.Text.ToString());
  69.                             dText.WidthFactor = Convert.ToDouble(this.textBox2.Text.ToString());
  70.                             dText.DowngradeOpen();
  71.                     }

  72.                     foreach (ObjectId textId1 in objectId2)
  73.                     {
  74.                         MText Mtext = tr2.GetObject(textId1, OpenMode.ForWrite) as MText;
  75.                             using (Transaction tr4 = db.TransactionManager.StartTransaction())
  76.                             {
  77.                                 TextStyleTable st = (TextStyleTable)db.TextStyleTableId.GetObject(OpenMode.ForRead);
  78.                                 foreach (ObjectId td in st)
  79.                                 {
  80.                                     TextStyleTableRecord textR = tr.GetObject(td, OpenMode.ForWrite) as TextStyleTableRecord;
  81.                                     if (textR.Name == this.comboBox1.SelectedItem.ToString())
  82.                                     {

  83.                                         textR.XScale = Convert.ToDouble(this.textBox2.Text.ToString());
  84.                                         Mtext.TextStyleId = td;
  85.                                         textR.DowngradeOpen();
  86.                                     }
  87.                                 }
  88.                                 tr4.Commit();
  89.                             }
  90.                             Mtext.TextHeight = Convert.ToDouble(this.textBox1.Text.ToString());
  91.                             Mtext.DowngradeOpen();
  92.                     }
  93.                     tr2.Commit();
  94.                 }
  95.                 tr.Commit();
  96.             }
  97.             this.Close();
  98.         }

  99.         private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
  100.         {

  101.         }

  102.         private void OpenTextStyle_Load(object sender, EventArgs e)
  103.         {
  104.             Database db = HostApplicationServices.WorkingDatabase;
  105.             List<string> comString = new List<string>();
  106.             using (Transaction tr = db.TransactionManager.StartTransaction())
  107.             {
  108.                 TextStyleTable st = (TextStyleTable)db.TextStyleTableId.GetObject(OpenMode.ForRead);
  109.                 foreach (ObjectId tId in st)
  110.                 {
  111.                     TextStyleTableRecord textR = tr.GetObject(tId, OpenMode.ForRead) as TextStyleTableRecord;
  112.                     comString.Add(textR.Name);
  113.                 }
  114.                 this.comboBox1.DataSource = comString;
  115.                 tr.Commit();
  116.             }
  117.         }

  118.         private void button2_Click(object sender, EventArgs e)
  119.         {
  120.             this.Close();
  121.         }
  122.     }
jdfw.gif
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

已领礼包: 3199个

财富等级: 富可敌国

发表于 2015-4-4 12:39:08 | 显示全部楼层
楼主把编译的也发出来吧

点评

星期一吧,现在放假中  详情 回复 发表于 2015-4-4 14:32
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 19个

财富等级: 恭喜发财

 楼主| 发表于 2015-4-4 14:32:07 | 显示全部楼层
lucas3 发表于 2015-4-4 12:39
楼主把编译的也发出来吧

星期一吧,现在放假中
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 7个

财富等级: 恭喜发财

发表于 2017-7-28 14:08:20 | 显示全部楼层
有用,感谢分享
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|申请友链|Archiver|手机版|小黑屋|辽公网安备|晓东CAD家园 ( 辽ICP备15016793号 )

GMT+8, 2024-11-17 21:52 , Processed in 0.194219 second(s), 40 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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