Таскание надписи с координатами за курсором.

Автор Тема: Таскание надписи с координатами за курсором.  (Прочитано 6141 раз)

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

Оффлайн LemieuxАвтор темы

  • ADN OPEN
  • ****
  • Сообщений: 389
  • Карма: 21
Исходя из этой темы https://adn-cis.org/forum/index.php?topic=9638.0 , возник вопрос, а возможно ли средствами .NET сделать такой же эффект как на видео, где за курсором движется текст с координатами. Если я правильно понимаю, то во время вызова *jig туда передаётся текст, а уже в текст мы отправляем то, что нам нужно. После операции текст удаляется. Отработать пока что не могу, так как на основной работе, дома буду экспериментировать.

Отмечено как Решение Lemieux 13-04-2020, 14:01:06

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13882
  • Карма: 1787
  • Рыцарь ObjectARX
  • Skype: rivilis
Так же как и в ObjectARX в .NET следует воспользоваться DrawJig. А для того, чтобы учитывались привязки еще и событием Editor.PointMonitor
Если же примитив не нужен, а нужно просто отображение текста, то достаточно использовать Editor.PointMonitor.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн LemieuxАвтор темы

  • ADN OPEN
  • ****
  • Сообщений: 389
  • Карма: 21
Если же примитив не нужен, а нужно просто отображение текста, то достаточно использовать Editor.PointMonitor.
Я как обычно ничего не понял в теории, поэтому буду практиковаться  8) Спасибо!

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13882
  • Карма: 1787
  • Рыцарь ObjectARX
  • Skype: rivilis
Пример для изучения:
Код - C# [Выбрать]
  1. using System;
  2. using Autodesk.AutoCAD.Runtime;
  3. using Autodesk.AutoCAD.ApplicationServices;
  4. using Autodesk.AutoCAD.DatabaseServices;
  5. using Autodesk.AutoCAD.Geometry;
  6. using Autodesk.AutoCAD.EditorInput;
  7.  
  8. // This line is not mandatory, but improves loading performances
  9. [assembly: CommandClass(typeof(TextNearCursor.MyCommands))]
  10.  
  11. namespace TextNearCursor
  12. {
  13.   public class MyCommands
  14.   {
  15.     [CommandMethod("TestPT")]
  16.     public void TestPTHandler()
  17.     {
  18.       Document doc = Application.DocumentManager.MdiActiveDocument;
  19.       if (doc == null) return;
  20.       Editor ed = doc.Editor;
  21.       ed.PointMonitor += Ed_PointMonitor;
  22.       PromptPointResult rs;
  23.       PromptPointOptions opt =
  24.         new PromptPointOptions("Укажите очередную точку (ENTER - завершение): ");
  25.       opt.AllowNone = true;
  26.       do {
  27.         rs = ed.GetPoint(opt);
  28.       } while (rs.Status == PromptStatus.OK);
  29.       ed.PointMonitor -= Ed_PointMonitor;
  30.     }
  31.  
  32.     private void Ed_PointMonitor(object sender, PointMonitorEventArgs e)
  33.     {
  34.       if (e.Context.PointComputed) {
  35.         double height = (double)Application.GetSystemVariable("VIEWSIZE") * 0.02;
  36.         string s = string.Format("{0},{1},{2}",
  37.         e.Context.ComputedPoint.X, e.Context.ComputedPoint.Y, e.Context.ComputedPoint.Z);
  38.         Autodesk.AutoCAD.GraphicsInterface.TextStyle style =
  39.           new Autodesk.AutoCAD.GraphicsInterface.TextStyle();
  40.         style.FromTextStyleTableRecord(HostApplicationServices.WorkingDatabase.Textstyle);
  41.         style.TextSize = height;
  42.         e.Context.DrawContext.Geometry.Text(
  43.         e.Context.ComputedPoint + new Vector3d(height, height, 0),
  44.         e.Context.DrawContext.Viewport.ViewDirection,
  45.         Vector3d.XAxis,
  46.         s, false, style);
  47.       }
  48.     }
  49.   }
  50. }
  51.  

Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн LemieuxАвтор темы

  • ADN OPEN
  • ****
  • Сообщений: 389
  • Карма: 21
Круто, спасибо большое!