Визуальное "подсвечивание" вершин полилинии
| Правила | Регистрация | Пользователи | Сообщения за день |  Справка по форуму | Файлообменник |

Вернуться   Форум DWG.RU > Программное обеспечение > AutoCAD > Визуальное "подсвечивание" вершин полилинии

Визуальное "подсвечивание" вершин полилинии

Ответ
Поиск в этой теме
Непрочитано 26.05.2021, 11:50 #1
Визуальное "подсвечивание" вершин полилинии
San-Miguel
 
Регистрация: 06.08.2019
Сообщений: 56

Прошу подсказать есть ли способ созданий или редактирование построенных полилиний, чтобы полилиния, не будучи выделенной, в верщинах чем-то подсвечивалась или маркировалась (кружочек или чем-то). И чтобы при создании или изменении числа вершин - новые также подсвечивались или маркировались. не нумерация интересует, а именно визуальное подсвечивание вершин полилинии.
Просмотров: 3314
 
Непрочитано 26.05.2021, 13:59
#2
Сергей812


 
Регистрация: 10.08.2013
Сообщений: 11,499


штатных средств нет, но есть в инете лиспы по расстановке тех же блоков в узлах полилиний..
Сергей812 вне форума  
 
Автор темы   Непрочитано 26.05.2021, 14:54
#3
San-Miguel


 
Регистрация: 06.08.2019
Сообщений: 56


Цитата:
Сообщение от Сергей812 Посмотреть сообщение
штатных средств нет, но есть в инете лиспы по расстановке тех же блоков в узлах полилиний..
Есть автоматическая нумерация, но не совсем удобный инструмент для моего случая.

https://xn--80afgnnlcnwk.xn--p1ai/%D...D%D0%B8%D0%B8/

https://appsforcad.ru/app1-3/

Какие лиспы посоветуете конкретно?
San-Miguel вне форума  
 
Непрочитано 26.05.2021, 15:30
2 | #4
Boxa

КЖ; C#
 
Регистрация: 03.11.2005
Санкт-Петербург
Сообщений: 2,611


Штатных средств нет, но если говорить про удобства, то я бы смотрел не в сторону лиспов, а в сторону .NET и работу с классом DrawableOverrule.
Вот как то так:
Код:
[Выделить все]
using App = Autodesk.AutoCAD.ApplicationServices;
using cad = Autodesk.AutoCAD.ApplicationServices.Application;
using Db = Autodesk.AutoCAD.DatabaseServices;
using Rtm = Autodesk.AutoCAD.Runtime;
using Gi = Autodesk.AutoCAD.GraphicsInterface;

[assembly: Rtm.CommandClass(typeof(RebarLinks.Commands))]

namespace RebarLinks
{
  public class Commands
  {
    [Rtm.CommandMethod("ShowPolyLineVertixTag")]
    public static void ShowPolyLineVertixTag()
    {
      Rtm.Overrule.AddOverrule(Rtm.RXObject.GetClass(typeof(Db.Polyline)),
                                DrawableOverrulePL.Instance(),
                                true);
      Rtm.Overrule.Overruling = true;
      cad.DocumentManager.MdiActiveDocument.Editor.Regen();
    }

    [Rtm.CommandMethod("HidePolyLineVertixTag")]
    public void HidePolyLineVertixTag()
    {
      Rtm.Overrule.RemoveOverrule(Rtm.RXObject.GetClass(typeof(Db.Polyline)),
                                  DrawableOverrule.Instance());
      cad.DocumentManager.MdiActiveDocument.Editor.Regen();
    }
  }

  public class DrawableOverrulePL : Gi.DrawableOverrule
  {
    protected static DrawableOverrulePL _drawableOverrule;
    public static DrawableOverrulePL Instance()
    {
      return _drawableOverrule ?? (_drawableOverrule = new DrawableOverrulePL());
    }
    public override bool WorldDraw(Gi.Drawable drawable, Gi.WorldDraw wd)
    {
      if (drawable.Id.ObjectClass == Rtm.RXClass.GetClass(typeof(Db.Polyline)))
      {
        var ent = drawable as Db.Polyline;
        var ModelSpaceId = Db.SymbolUtilityServices.GetBlockModelSpaceId(ent.Database);
        if (ent != null &&
            ent.ObjectId != Db.ObjectId.Null &&
            ent.OwnerId == ModelSpaceId)
        {
          var view = App.Application.DocumentManager.MdiActiveDocument.Editor.GetCurrentView();
          for (int i = 0; i < ent.NumberOfVertices; i++)
          {
              wd.Geometry.Circle(ent.GetPoint3dAt(i), 10, view.ViewDirection);
              wd.SubEntityTraits.FillType = Gi.FillType.FillNever;
          }
        }
      }
      return base.WorldDraw(drawable, wd);
    }
  }
}
Boxa вне форума  
 
Автор темы   Непрочитано 26.05.2021, 15:48
#5
San-Miguel


 
Регистрация: 06.08.2019
Сообщений: 56


Boxa,

Спасибо. Не соображаю в этом - как внедрять эти коды...
Чем поможете "чайнику"?
San-Miguel вне форума  
 
Непрочитано 26.05.2021, 15:51
1 | #6
trir


 
Регистрация: 18.12.2010
Сообщений: 5,107


Цитата:
Чем поможете "чайнику"?
https://download.microsoft.com/docum...n/c_sharp2.pdf
trir вне форума  
 
Непрочитано 26.05.2021, 15:55
#7
Сергей812


 
Регистрация: 10.08.2013
Сообщений: 11,499


Цитата:
Сообщение от San-Miguel Посмотреть сообщение
чтобы полилиния, не будучи выделенной, в верщинах чем-то подсвечивалась или маркировалась (кружочек или чем-то).
если бы "активную" полилинию - то можно было бы "подрисовывать", а непонятное количество "пассивных" полилиний...
Сергей812 вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > AutoCAD > Визуальное "подсвечивание" вершин полилинии



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Интерполяция отметок вершин полилинии между двумя заданными точками Кочетков Андрей Программирование 7 22.07.2019 20:14
LISP. Удаление совпадающих вершин в полилинии (вариант). Пример использования. Profan Готовые программы 4 17.09.2018 06:41
AutoLISP. Как получить координаты двух соседних вершин выбранного фрагмента полилинии? MrBrown LISP 15 06.07.2015 07:55
Как увеличить точность отображения координат вершин полилинии ? swkx Программирование 8 25.04.2013 15:27
Изменение отметки Z вершин полилинии Mazai Программирование 5 27.05.2008 03:35