ADN Open CIS
Сообщество программистов Autodesk в СНГ

09/10/2013

Получение фрагментов текста из примитива MText

Используем метод “ExplodeFragments”, как показано ниже в коде, для разбивки текстовой строки MText на фрагменты. Функция обратного вызова, которая передается методу “ExplodeFragments” вызывается для каждого фрагмента текста примитива MText.

Код - C#: [Выделить]
  1. static public MTextFragmentCallbackStatus
  2.                         Fragments(MTextFragment Param, object data)
  3. {
  4.     string strText = Param.Text;
  5.  
  6.     // Покажем фрагмент текста
  7.     Application.ShowAlertDialog(strText);
  8.     return MTextFragmentCallbackStatus.Continue;
  9. }
  10.  
  11. [CommandMethod("ExplodeFragments")]
  12. static public void ExplodeFragments()
  13. {
  14.     Document doc = Application.DocumentManager.MdiActiveDocument;
  15.     Database db = doc.Database;
  16.     Editor ed = doc.Editor;
  17.  
  18.     PromptEntityOptions options =
  19.                new PromptEntityOptions("\nВыберите Mtext");
  20.     options.SetRejectMessage("\nВы выбрали не Mtext");
  21.     options.AddAllowedClass(typeof(MText), false);
  22.  
  23.     PromptEntityResult acSSPrompt = ed.GetEntity(options);
  24.  
  25.     if (acSSPrompt.Status != PromptStatus.OK)
  26.         return;
  27.  
  28.     using (Transaction tr = db.TransactionManager.StartTransaction())
  29.     {
  30.  
  31.         try
  32.         {
  33.             MText text = tr.GetObject(acSSPrompt.ObjectId,
  34.                                           OpenMode.ForRead) as MText;
  35.             text.ExplodeFragments(Fragments, "Test");
  36.             tr.Commit();
  37.         }
  38.         catch
  39.         {
  40.             tr.Abort();
  41.         }
  42.     }
  43. }

Источник: http://adndevblog.typepad.com/autocad/2012/06/getting-fragment-from-mtext-object.html

Обсуждение: http://adn-cis.org/forum/index.php?topic=238

Опубликовано 09.10.2013
Отредактировано 09.10.2013 в 10:54:31