明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索

[图元] MText使用相关

  [复制链接]
发表于 2010-10-20 14:08:00 | 显示全部楼层
飞狐老师能给个修改图上!文字内容的代码不
 楼主| 发表于 2010-10-21 18:13:00 | 显示全部楼层
问题太笼统了哈
 楼主| 发表于 2010-12-26 19:41:34 | 显示全部楼层
去除格式的另一种实现
  1.         public static void ExplodeFragments<T>(this MText mt, T obj, Func<MTextFragment, T, MTextFragmentCallbackStatus> mTextFragmentCallback)
  2.         {
  3.             mt.ExplodeFragments(
  4.                 (f, o) => mTextFragmentCallback(f, (T)o),
  5.                 obj);
  6.         }

  7.         public static string GetUnFormatString(this MText mt)
  8.         {
  9.             List<string> strs = new List<string>();
  10.             mt.ExplodeFragments(
  11.                 strs,
  12.                 (f, o) =>
  13.                 {
  14.                     o.Add(f.Text);
  15.                     return MTextFragmentCallbackStatus.Continue;
  16.                 });
  17.             return string.Join("", strs.ToArray());
  18.         }
复制代码
发表于 2011-1-3 11:39:53 | 显示全部楼层
你们这个去格式的方法太复杂啦,MText类有自带的方法:
MText.Text ,它的Text属性就是去格式的内容。
发表于 2012-6-5 12:55:55 | 显示全部楼层
学习一下,
发表于 2012-6-5 13:06:52 | 显示全部楼层
雪山飞狐_lzh 发表于 2010-5-15 13:47
另外贴两个去除MText格式的函数

可以来个动态显示的图片吗
发表于 2012-6-5 13:08:04 | 显示全部楼层
楼主,可以不可以来个lisp的版本
发表于 2012-6-7 17:46:59 | 显示全部楼层
精品,顶一个~
发表于 2012-6-12 09:47:42 | 显示全部楼层
MakeScript在哪里实现的啊?初学者~~~
 楼主| 发表于 2012-7-15 21:05:27 | 显示全部楼层
本帖最后由 雪山飞狐_lzh 于 2012-7-17 08:09 编辑


  1.         /// <summary>
  2.         /// 单行文字分解
  3.         /// </summary>
  4.         [CommandMethod("t4")]
  5.         public static void Test4()
  6.         {

  7.             var ed = SystemManager.Editor;
  8.             var opts = new PromptEntityOptions("\n请选择文本:");
  9.             opts.SetRejectMessage("你选择的不是文本,请重新选择!");
  10.             opts.AddAllowedClass(typeof(DBText), false);
  11.             var res = ed.GetEntity(opts);
  12.             if (res.Status != PromptStatus.OK) return;

  13.             using (var tr = new DBTransaction())
  14.             {

  15.                 var btr =tr.OpenCurrentSpace(OpenMode.ForWrite);

  16.                 var txt = tr.GetObject<DBText>(res.ObjectId).Copy();
  17.                 var ext = txt.GeometricExtents;
  18.                 var pt = ext.MinPoint;
  19.                 var txts = new List<DBText>();

  20.                 int color = 1;
  21.                 foreach(char c in txt.TextString)
  22.                 {
  23.                     var s = c.ToString();
  24.                     var txtx =
  25.                         new DBText
  26.                         {
  27.                             TextString = s,
  28.                             TextStyleId = txt.TextStyleId,
  29.                             Height = txt.Height,
  30.                             Position = pt,
  31.                             ColorIndex = color ++
  32.                         };
  33.                     txtx.SetDatabaseDefaults();
  34.                     txts.Add(txtx);
  35.                     var width = AcUtils.GetTextExtents(txt.TextStyleId, s, txt.Height).X;
  36.                     pt += new Vector3d(width, 0, 0);
  37.                 }

  38.                 tr.AddEntity(btr, txts);

  39.                 //简单的拖动方式
  40.                 var ss = SelectionSet.FromObjectIds(txts.Select(t => t.ObjectId).ToArray());
  41.                 var ptBase = ext.MinPoint;
  42.                 var resDrag =
  43.                     ed.Drag(
  44.                         ss,
  45.                         "\n输入插入点",
  46.                         (Point3d p, ref Matrix3d m) =>
  47.                         {
  48.                             m = Matrix3d.Displacement(p - ptBase);
  49.                             return SamplerStatus.OK;
  50.                         });
  51.                 if (resDrag.Status == PromptStatus.OK)
  52.                 {
  53.                     var mat = Matrix3d.Displacement(resDrag.Value - ptBase);
  54.                     txts.ForEach(c => c.TransformBy(mat));
  55.                 }
  56.                 else
  57.                 {
  58.                     tr.Erase(txts);
  59.                 }

  60.             }
  61.         }

本帖子中包含更多资源

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

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

本版积分规则

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

GMT+8, 2024-11-15 12:23 , Processed in 0.157800 second(s), 17 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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