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

ADN Club => AutoCAD .NET API => Тема начата: pavka_97 от 17-10-2018, 17:13:55

Название: Какой метод использовать для затемнение/подсвечивания областей?
Отправлено: pavka_97 от 17-10-2018, 17:13:55
Добрый день. При определении вида прямоугольной рамкой в Acad2016 подсвечивается выделенная область, а все вокруг затемняется. Каким методом достичь похожего эффекта? Сделал прямоугольный Jig, сохраняется вид, а вот как подсвечивать никак метода не найду подходящего (вероятно что-то с background?)
Название: Re: Какой метод использовать для затемнение/подсвечивания областей?
Отправлено: Александр Ривилис от 17-10-2018, 17:16:10
Каким методом достичь похожего эффекта?
Зачем? В AutoCAD .NET API нет подходящих методов. Разве что создать SOLID нужного цвета и менять его вершины. Но при этом он будет непрозрачный.
Название: Re: Какой метод использовать для затемнение/подсвечивания областей?
Отправлено: pavka_97 от 17-10-2018, 17:19:24
Для большей выразительности:). Жаль конечно. Вероятно в ObjectARX есть?
Название: Re: Какой метод использовать для затемнение/подсвечивания областей?
Отправлено: Александр Ривилис от 17-10-2018, 17:20:16
Для большей выразительности:). Жаль конечно. Вероятно в ObjectARX есть?
Я видимо не понял что тебе нужно.
Название: Re: Какой метод использовать для затемнение/подсвечивания областей?
Отправлено: Александр Пекшев aka Modis от 17-10-2018, 17:21:42
А речь не про это?

(https://i.postimg.cc/LhyWbWB9/2018-10-17-17-20-50-Autodesk-Auto-CAD-2019.png) (https://postimg.cc/LhyWbWB9)
Название: Re: Какой метод использовать для затемнение/подсвечивания областей?
Отправлено: pavka_97 от 17-10-2018, 17:32:10
Вроде нет. Требуется получить границы именованного вида прямоугольной рамкой.  Щелчок мыши по кнопке define view window дает приглашение на выделение требуемой области, запускается растягиваемая рамка (Jig), по второму щелчку по экрану, выделяемая область приобретает цвет отличный от остального пространства модели (цвет не закрашивает примитивы,все видно). Так в Net можно сделать?
Название: Re: Какой метод использовать для затемнение/подсвечивания областей?
Отправлено: Александр Пекшев aka Modis от 17-10-2018, 17:39:49
Можно. Примерно так:
Код - C# [Выбрать]
  1. short backupColor = wd.SubEntityTraits.Color;
  2. FillType backupFillType = wd.SubEntityTraits.FillType;
  3. wd.SubEntityTraits.FillType = FillType.FillAlways;
  4. wd.SubEntityTraits.Color = 150;
  5. wd.Geometry.Polygon(points);
  6. wd.SubEntityTraits.FillType = FillType.FillNever;
  7. // restore
  8. wd.SubEntityTraits.Color = backupColor;
  9. wd.SubEntityTraits.FillType = backupFillType;
wd - это WorldDraw. На сколько я помню цвет можно задать по HEX-коду, а в HEX-код можно задавать прозрачность
Название: Re: Какой метод использовать для затемнение/подсвечивания областей?
Отправлено: Александр Ривилис от 17-10-2018, 17:41:47
На сколько я помню цвет можно задать по HEX-коду, а в HEX-код можно задавать прозрачность
Нет. Так задаётся RGB-цвет. Прозрачность так не задаётся.
Название: Re: Какой метод использовать для затемнение/подсвечивания областей?
Отправлено: Александр Пекшев aka Modis от 17-10-2018, 17:44:00
На сколько я помню цвет можно задать по HEX-коду, а в HEX-код можно задавать прозрачность
Нет. Так задаётся RGB-цвет. Прозрачность так не задаётся.
Я в них до сих пор не разбираюсь))) ARGB значит надо. Или как они там называются...
Вот пример розового цвета с прозрачностью 0.5 - #81FF4081
Название: Re: Какой метод использовать для затемнение/подсвечивания областей?
Отправлено: Александр Ривилис от 17-10-2018, 17:46:40
На сколько я помню цвет можно задать по HEX-коду, а в HEX-код можно задавать прозрачность
Нет. Так задаётся RGB-цвет. Прозрачность так не задаётся.
Я в них до сих пор не разбираюсь))) ARGB значит надо. Или как они там называются...
Вот пример розового цвета с прозрачностью 0.5 - #81FF4081
SubEntityTraits.Transparency  - вот что можно попытаться использовать. Но это будет работать только внутри Jig. После завершения ничего не будет. А я так и не понял чего pavka_97 добивается.
Название: Re: Какой метод использовать для затемнение/подсвечивания областей?
Отправлено: Александр Ривилис от 17-10-2018, 17:53:46
Если нужно, чтобы эта область осталось на экране после завершения команды и была полупрозрачной, то нужно использовать Overrule. Как-то так: http://adndevblog.typepad.com/autocad/2012/05/creating-transparent-planes-like-section-plane-acdbsection.html