Поменять цвет Curve, Segment без создания слоев.

Автор Тема: Поменять цвет Curve, Segment без создания слоев.  (Прочитано 5300 раз)

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

Тема содержит сообщение с Решением. Нажмите здесь чтобы посмотреть его.

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

  • ADN OPEN
  • Сообщений: 29
  • Карма: 1
    • xzenter.com
  • Skype: xzenter
Добрый день!
Пожалуйста, подскажите есть ли возможность менять цвет сегмента или кривой так, чтобы не менялась при этом толщина линии,тип и слой.

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

Код - 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?


Оффлайн mikazakov

  • ADN
  • *
  • Сообщений: 752
  • Карма: 195
  • Skype: mikazakov@mail.ru
посмотрим щас

Оффлайн mikazakov

  • ADN
  • *
  • Сообщений: 752
  • Карма: 195
  • Skype: mikazakov@mail.ru
 Как то на глюк похоже, тут только назначать толщину как в свойствах слоя
DrawingCurve.LineWeight
Я понимаю это коряво

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

  • ADN OPEN
  • Сообщений: 29
  • Карма: 1
    • xzenter.com
  • Skype: xzenter
Причем, если поменять в окне на "Automatic" (см. картинку), то правило хорошо работает и curve меняет свой цвет без переопределения толщины линии и типа каждого сегмента входящего в curve.
А как из кода сделать такой же эффект нет понимания...
Почему-та такая команда "curve.Color.ColorSourceType=ColorSourceTypeEnum.kAutomaticColorSource" не работает

« Последнее редактирование: 10-03-2020, 20:03:26 от xzenter »

Оффлайн mikazakov

  • ADN
  • *
  • Сообщений: 752
  • Карма: 195
  • Skype: mikazakov@mail.ru
У объекта Color есть свойство ColorSourceType.
Может его попытаться после создания цвета через TransientObjects.CreateColor установить в:
Color.ColorSourceType=kAutomaticColorSource

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

  • ADN OPEN
  • Сообщений: 29
  • Карма: 1
    • xzenter.com
  • Skype: xzenter
Пробовал, но результат один и тот же... переопределяется толщина и тип линии.

Оффлайн mikazakov

  • ADN
  • *
  • Сообщений: 752
  • Карма: 195
  • Skype: mikazakov@mail.ru
Написал сегодня в девхэлп

Отмечено как Решение xzenter 18-04-2020, 09:59:08

Оффлайн mikazakov

  • ADN
  • *
  • Сообщений: 752
  • Карма: 195
  • Skype: mikazakov@mail.ru
ответ с девхэлпа
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. Поэтому проверить не могу.

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

  • ADN OPEN
  • Сообщений: 29
  • Карма: 1
    • xzenter.com
  • Skype: xzenter
mikazakov, подтверждаю, в 2021 версии стало работать!
Большое спасибо за помощь!