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

ADN Club => Inventor API => Тема начата: xzenter от 03-03-2020, 23:59:21

Название: Поменять цвет Curve, Segment без создания слоев.
Отправлено: xzenter от 03-03-2020, 23:59:21
Добрый день!
Пожалуйста, подскажите есть ли возможность менять цвет сегмента или кривой так, чтобы не менялась при этом толщина линии,тип и слой.

Думал, что так можно:

Код - vb.net [Выбрать]
  1. Dim drawDoc As DrawingDocument
  2. drawDoc = ThisApplication.ActiveDocument
  3.  
  4. Dim segment As DrawingCurveSegment
  5. segment = ThisApplication.CommandManager.Pick(SelectionFilterEnum.kDrawingCurveSegmentFilter, "Select a segment.")
  6.  
  7. Dim curve As DrawingCurve
  8. curve = segment.Parent
  9.  
  10. Dim newColor As Color
  11. newColor = ThisApplication.TransientObjects.CreateColor(255, 255, 200)
  12.  
  13. curve.Color=newColor
  14. ' Да, цвет меняет, но и меняет тип линии и толщину...

Или единственный выход создавать свои слои? Хочется добиться результата как на картинке, когда мы выбираем кривую и потом меняем ей цвет. Смущает то, что окно имеет заголовок Edge Properties... Может быть цвет надо менять как-то иначе через Edge?
(https://i.postimg.cc/6TVDTYcM/2020-03-03-23-52-00.png) (https://postimg.cc/6TVDTYcM)
Название: Re: Поменять цвет Curve, Segment без создания слоев.
Отправлено: mikazakov от 04-03-2020, 12:43:27
посмотрим щас
Название: Re: Поменять цвет Curve, Segment без создания слоев.
Отправлено: mikazakov от 04-03-2020, 13:21:55
 Как то на глюк похоже, тут только назначать толщину как в свойствах слоя
DrawingCurve.LineWeight
Я понимаю это коряво
Название: Re: Поменять цвет Curve, Segment без создания слоев.
Отправлено: xzenter от 10-03-2020, 16:58:53
Причем, если поменять в окне на "Automatic" (см. картинку), то правило хорошо работает и curve меняет свой цвет без переопределения толщины линии и типа каждого сегмента входящего в curve.
А как из кода сделать такой же эффект нет понимания...
Почему-та такая команда "curve.Color.ColorSourceType=ColorSourceTypeEnum.kAutomaticColorSource" не работает
(https://i.postimg.cc/0zw8TT3p/2020-03-10-16-53-56.png) (https://postimg.cc/0zw8TT3p)
Название: Re: Поменять цвет Curve, Segment без создания слоев.
Отправлено: mikazakov от 10-03-2020, 20:22:16
У объекта Color есть свойство ColorSourceType.
Может его попытаться после создания цвета через TransientObjects.CreateColor установить в:
Color.ColorSourceType=kAutomaticColorSource
Название: Re: Поменять цвет Curve, Segment без создания слоев.
Отправлено: xzenter от 11-03-2020, 19:12:39
Пробовал, но результат один и тот же... переопределяется толщина и тип линии.
Название: Re: Поменять цвет Curve, Segment без создания слоев.
Отправлено: mikazakov от 15-04-2020, 09:13:47
Написал сегодня в девхэлп
Название: Re: Поменять цвет Curve, Segment без создания слоев.
Отправлено: mikazakov от 16-04-2020, 16:03:32
ответ с девхэлпа
Issue is reproducible in Inventor 2020 and earlier versions. After checking in Inventor 2021,
issue is fixed and no changes in the thickness of drawing curve.
If you chance to check in Inventor 2021, please check and let me know.


У меня пока не установлен 2021. Поэтому проверить не могу.
Название: Re: Поменять цвет Curve, Segment без создания слоев.
Отправлено: xzenter от 18-04-2020, 10:00:11
mikazakov, подтверждаю, в 2021 версии стало работать!
Большое спасибо за помощь!