Оффтопик. Изучаем C#

Автор Тема: Оффтопик. Изучаем C#  (Прочитано 689736 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн avc

  • ADN Club
  • *****
  • Сообщений: 863
  • Карма: 173
    • Мои плагины к Автокаду
Re: Оффтопик. Изучаем C#
« Ответ #285 : 11-02-2026, 15:53:21 »
Как получить текстовое значение и XY координаты всех указателей мультивыноски с помощью C# ?

Код - C# [Выбрать]
  1.     /// <summary>
  2.     /// Куда указывает первая стрелка. Может вернуть Point3dExt.NanPoint
  3.     /// </summary>
  4.     /// <param name="ml"></param>
  5.     public static Point3d
  6.     FirstArrow(this MLeader ml)
  7.     {
  8.       int index = ml.FirstArrowIndex();
  9.       if (index < 0) return Point3dExt.Null;
  10.       return ml.GetFirstVertex(index);
  11.     }
  12.  
  13.     /// <summary>
  14.     /// Куда указывают все стрелки. Может вернуть пустой список
  15.     /// </summary>
  16.     /// <param name="ml"></param>
  17.     public static List<Point3d>
  18.     Arrows(this MLeader ml)
  19.     {
  20.       if (ml is null || ml.IsErased) return new List<Point3d>();
  21.       ArrayList arr = ml.GetLeaderIndexes();
  22.       if (arr.Count == 0) return new List<Point3d>(); //можно нарисовать MLeader вообще без стрелок!
  23.       List<Point3d> ret = new(arr.Count);
  24.       foreach (object i in arr)
  25.       {
  26.         ArrayList arr1 = ml.GetLeaderLineIndexes((int)i);
  27.         if (arr1.Count == 0) continue;
  28.         foreach (object j in arr1)
  29.           ret.Add(ml.GetFirstVertex((int)j));
  30.       }
  31.       return ret;
  32.     }
  33.  
  34.     /// <summary>
  35.     /// Получить текст из текстовой выноски или из единственного атрибута блока
  36.     /// </summary>
  37.     public static string
  38.     GetContents(this MLeader ml, bool fieldCodes, Transaction tr)
  39.     {
  40.       if (ml.ContentType == ContentType.BlockContent)
  41.         return ml.GetBlockAttribute("", fieldCodes, tr);
  42.  
  43.       if (ml.HasContent() && ml.ContentType == ContentType.MTextContent)
  44.         try
  45.         {
  46.           using MText mt = ml.MText; // бывает InvalidOperationException
  47.           if (fieldCodes) return mt?.GetMTextWithFieldCodes() ?? "";
  48.           return mt?.Text ?? "";
  49.         }
  50.         catch { }
  51.       return "";
  52.     }
  53.  
  54.  
А что вы стесняетесь спрашивать в новой теме? Ваш вопрос не по C#, а по API - поднимайте новую тему, не делайте бардак.

Оффлайн Electric

  • ADN OPEN
  • **
  • Сообщений: 77
  • Карма: 10
Re: Оффтопик. Изучаем C#
« Ответ #286 : 11-02-2026, 15:55:04 »
А что вы стесняетесь спрашивать в новой теме? Ваш вопрос не по C#, а по API - поднимайте новую тему, не делайте бардак.

Ок, учту это. Обычно на форумах Оффтопик - место для бардака :)

Оффлайн avc

  • ADN Club
  • *****
  • Сообщений: 863
  • Карма: 173
    • Мои плагины к Автокаду
Re: Оффтопик. Изучаем C#
« Ответ #287 : 11-02-2026, 15:59:17 »
Ок, учту это. Обычно на форумах Оффтопик - место для бардака :)
тут конкретная тема оффтопика: Изучаем C#. Оффтопик в смысле не про AutoCAD