[CDR X5-X8] Получить все цвета в Extrude

  • Автор темы Автор темы eugeny
  • Дата начала Дата начала

eugeny

Топикстартер
15 лет на форуме
Сообщения
932
Реакции
261
Всех приветствую!
Столкнулся с такой проблемой: создаю фигуру, крашу ее в пантон Purple (например), создаю у фигуры эффект Extrude, делаю его цвет solid Reflex Blue.
Запускаю код:
Код:
If shTmp.Effects(i).Type = cdrExtrude Then
MsgBox shTmp.Effects.ExtrudeEffect.Extrude.BaseColor.Name & " " & shTmp.Effects.ExtrudeEffect.Extrude.BevelColor.Name & " " & shTmp.Effects.ExtrudeEffect.Extrude.ShadingColor.Name
endif
Выводит цвета: Purple Purple Purple .
Вручную меняю цвет у Control Rectangle на P Yellow, например. Код выдает правильное: Yellow ReflexBlue Purple.
Вопрос, как получить корректно все цвета без ручной корректировки фигур?
 
м.б. из-за этого флага
Property UseExtrudeColorForBevel As Boolean
1544770689891.png
 
Странно, у меня в X6 все в порядке
1544771567096.png

1544771643985.png

1544771682150.png
 
Последнее редактирование:
Странно, у меня в X6 все в порядке
Если задавать переход, то все нормально выводит.
Screenshot_34.jpg


если делать так: создать фигуру, добавить extrude, на вкладке цвета сделать solid и выбрать другой цвет, то не работает.
Screenshot_35.jpg
 
И вправду.
А вы берите цвет с shTmp.Shapes(1) - там правильный
1544773059604.png
 
Последнее редактирование:
Нашел закономерность.
Не важно что ты ставишь при включенной галке solid fill, на экране будет отображаться все нормально, какой выберешь цвет. Но в объект запишутся те данные, что находятся при включении галки Shade.
Т.е. нажимаешь Edit, ставишь галку Shade, смотришь, что за цвета там, не применяешь Shade к объекту, оставляя solid. Вот эти и будет показывать код. Они записываются в объект.
 
И вправду.
А вы берите цвет с shTmp.Shapes(1) - там правильный
так shTmp вроде же один shape? У меня ругается, что индекс за пределами. Я его выделяю на экране (shTmp ) это Control Curve.
 
А вы не контрольный берите, а сам эффект
1544774237888.png
 
А вы не контрольный берите, а сам эффект
Что-то не понимаю немного.
У меня есть shape -- shTmp. У него я нашел эффект : if shTmp.Effects(i).Type = cdrExtrude then.
беру эффект shTmp.Effects(i), но у него нахожу только shTmp.Effects.Item(1).Extrude.BevelColor.Name -- но это как понимаю не то.
 
У shTmp есть дочерние шейпы - грани экструда
 
  • Спасибо
Реакции: eugeny
похоже я не тот объект рассматриваю.
Да
Да
берем эффект shTmp: shTmp.Effects(i) у него не нахожу
Нет
Берите не контрольный шейп а ШЕЙП САМОГО ЭФФЕКТА
У него тип соответствующий должен быть
 
  • Спасибо
Реакции: eugeny
Да
Берите не контрольный шейп а ШЕЙП САМОГО ЭФФЕКТА
У него тип соответствующий должен быть
Но чтобы его взять, мне же надо от чего-то оттолкнуться. На данный момент выбран shTmp -- отправная точка. У него есть shTmp.Effects.ExtrudeEffect. Как выбрать шейп самого эффекта? это можно сделать оттолкнувшись от shTmp ?
 
Давайте по порядку
Когда я выделяю группу вытягивания, в Selection сидит два шейпа. Первый - это сама группа тип у нее cdrExtrudeGroupShape - он нам и нужен, в моем случае он содержит два дочерних шейпа - грани которые покрашены в нужный цвет.
Второй выделенный объект - контрольная кривая типа cdrRectangleShape - судя по всему вы пытаетесь обрабатывать именно ее
 
  • Спасибо
Реакции: eugeny
Давайте по порядку
Второй выделенный объект - контрольная кривая типа cdrRectangleShape - судя по всему вы пытаетесь обрабатывать именно ее
Спасибо большое, всё нашел. Мне надо было выбирать: shTmp.Effects(i).Extrude.ExtrudeGroup
И у него получается отдельные item это все грани экструзии. Соответственно, если задан Shade смотрим fill Fountain, если solid --UniformColor