whcjg 发表于 2010-10-20 14:08:00

飞狐老师能给个修改图上!文字内容的代码不

雪山飞狐_lzh 发表于 2010-10-21 18:13:00

问题太笼统了哈

雪山飞狐_lzh 发表于 2010-12-26 19:41:34

去除格式的另一种实现      public static void ExplodeFragments<T>(this MText mt, T obj, Func<MTextFragment, T, MTextFragmentCallbackStatus> mTextFragmentCallback)
      {
            mt.ExplodeFragments(
                (f, o) => mTextFragmentCallback(f, (T)o),
                obj);
      }

      public static string GetUnFormatString(this MText mt)
      {
            List<string> strs = new List<string>();
            mt.ExplodeFragments(
                strs,
                (f, o) =>
                {
                  o.Add(f.Text);
                  return MTextFragmentCallbackStatus.Continue;
                });
            return string.Join("", strs.ToArray());
      }

azbd 发表于 2011-1-3 11:39:53

你们这个去格式的方法太复杂啦,MText类有自带的方法:
MText.Text ,它的Text属性就是去格式的内容。

YAOSHIWEI 发表于 2012-6-5 12:55:55

学习一下,

YAOSHIWEI 发表于 2012-6-5 13:06:52

雪山飞狐_lzh 发表于 2010-5-15 13:47 static/image/common/back.gif
另外贴两个去除MText格式的函数

可以来个动态显示的图片吗

YAOSHIWEI 发表于 2012-6-5 13:08:04

楼主,可以不可以来个lisp的版本

ctgu123 发表于 2012-6-7 17:46:59

精品,顶一个~

ctgu123 发表于 2012-6-12 09:47:42

MakeScript在哪里实现的啊?初学者~~~

雪山飞狐_lzh 发表于 2012-7-15 21:05:27

本帖最后由 雪山飞狐_lzh 于 2012-7-17 08:09 编辑


      /// <summary>
      /// 单行文字分解
      /// </summary>
      
      public static void Test4()
      {

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

            using (var tr = new DBTransaction())
            {

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

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

                int color = 1;
                foreach(char c in txt.TextString)
                {
                  var s = c.ToString();
                  var txtx =
                        new DBText
                        {
                            TextString = s,
                            TextStyleId = txt.TextStyleId,
                            Height = txt.Height,
                            Position = pt,
                            ColorIndex = color ++
                        };
                  txtx.SetDatabaseDefaults();
                  txts.Add(txtx);
                  var width = AcUtils.GetTextExtents(txt.TextStyleId, s, txt.Height).X;
                  pt += new Vector3d(width, 0, 0);
                }

                tr.AddEntity(btr, txts);

                //简单的拖动方式
                var ss = SelectionSet.FromObjectIds(txts.Select(t => t.ObjectId).ToArray());
                var ptBase = ext.MinPoint;
                var resDrag =
                  ed.Drag(
                        ss,
                        "\n输入插入点",
                        (Point3d p, ref Matrix3d m) =>
                        {
                            m = Matrix3d.Displacement(p - ptBase);
                            return SamplerStatus.OK;
                        });
                if (resDrag.Status == PromptStatus.OK)
                {
                  var mat = Matrix3d.Displacement(resDrag.Value - ptBase);
                  txts.ForEach(c => c.TransformBy(mat));
                }
                else
                {
                  tr.Erase(txts);
                }

            }
      }
页: 1 [2] 3 4 5
查看完整版本: MText使用相关