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

eugeny

Топикстартер
15 лет на форуме
Сообщения
855
Реакции
210
Всех приветствую!
Столкнулся с такой проблемой: создаю фигуру, крашу ее в пантон 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.
Вопрос, как получить корректно все цвета без ручной корректировки фигур?
 

dastin

Некромант-любитель
12 лет на форуме
Сообщения
2 131
Реакции
2 027
м.б. из-за этого флага
Property UseExtrudeColorForBevel As Boolean
1544770689891.png
 

_MBK_

Пикирующий бомбардировщик
15 лет на форуме
Сообщения
33 138
Реакции
10 835
Странно, у меня в X6 все в порядке
1544771567096.png

1544771643985.png

1544771682150.png
 
Последнее редактирование:

eugeny

Топикстартер
15 лет на форуме
Сообщения
855
Реакции
210
Странно, у меня в X6 все в порядке
Если задавать переход, то все нормально выводит.
Screenshot_34.jpg


если делать так: создать фигуру, добавить extrude, на вкладке цвета сделать solid и выбрать другой цвет, то не работает.
Screenshot_35.jpg
 

_MBK_

Пикирующий бомбардировщик
15 лет на форуме
Сообщения
33 138
Реакции
10 835
И вправду.
А вы берите цвет с shTmp.Shapes(1) - там правильный
1544773059604.png
 
Последнее редактирование:

eugeny

Топикстартер
15 лет на форуме
Сообщения
855
Реакции
210
Нашел закономерность.
Не важно что ты ставишь при включенной галке solid fill, на экране будет отображаться все нормально, какой выберешь цвет. Но в объект запишутся те данные, что находятся при включении галки Shade.
Т.е. нажимаешь Edit, ставишь галку Shade, смотришь, что за цвета там, не применяешь Shade к объекту, оставляя solid. Вот эти и будет показывать код. Они записываются в объект.
 

_MBK_

Пикирующий бомбардировщик
15 лет на форуме
Сообщения
33 138
Реакции
10 835

eugeny

Топикстартер
15 лет на форуме
Сообщения
855
Реакции
210
И вправду.
А вы берите цвет с shTmp.Shapes(1) - там правильный
так shTmp вроде же один shape? У меня ругается, что индекс за пределами. Я его выделяю на экране (shTmp ) это Control Curve.
 

_MBK_

Пикирующий бомбардировщик
15 лет на форуме
Сообщения
33 138
Реакции
10 835
А вы не контрольный берите, а сам эффект
1544774237888.png
 

eugeny

Топикстартер
15 лет на форуме
Сообщения
855
Реакции
210
А вы не контрольный берите, а сам эффект
Что-то не понимаю немного.
У меня есть shape -- shTmp. У него я нашел эффект : if shTmp.Effects(i).Type = cdrExtrude then.
беру эффект shTmp.Effects(i), но у него нахожу только shTmp.Effects.Item(1).Extrude.BevelColor.Name -- но это как понимаю не то.
 

_MBK_

Пикирующий бомбардировщик
15 лет на форуме
Сообщения
33 138
Реакции
10 835
У shTmp есть дочерние шейпы - грани экструда
 
  • Спасибо
Реакции: eugeny

_MBK_

Пикирующий бомбардировщик
15 лет на форуме
Сообщения
33 138
Реакции
10 835
похоже я не тот объект рассматриваю.
Да
Да
берем эффект shTmp: shTmp.Effects(i) у него не нахожу
Нет
Берите не контрольный шейп а ШЕЙП САМОГО ЭФФЕКТА
У него тип соответствующий должен быть
 
  • Спасибо
Реакции: eugeny

eugeny

Топикстартер
15 лет на форуме
Сообщения
855
Реакции
210
Да
Берите не контрольный шейп а ШЕЙП САМОГО ЭФФЕКТА
У него тип соответствующий должен быть
Но чтобы его взять, мне же надо от чего-то оттолкнуться. На данный момент выбран shTmp -- отправная точка. У него есть shTmp.Effects.ExtrudeEffect. Как выбрать шейп самого эффекта? это можно сделать оттолкнувшись от shTmp ?
 

_MBK_

Пикирующий бомбардировщик
15 лет на форуме
Сообщения
33 138
Реакции
10 835
Давайте по порядку
Когда я выделяю группу вытягивания, в Selection сидит два шейпа. Первый - это сама группа тип у нее cdrExtrudeGroupShape - он нам и нужен, в моем случае он содержит два дочерних шейпа - грани которые покрашены в нужный цвет.
Второй выделенный объект - контрольная кривая типа cdrRectangleShape - судя по всему вы пытаетесь обрабатывать именно ее
 
  • Спасибо
Реакции: eugeny

eugeny

Топикстартер
15 лет на форуме
Сообщения
855
Реакции
210
Давайте по порядку
Второй выделенный объект - контрольная кривая типа cdrRectangleShape - судя по всему вы пытаетесь обрабатывать именно ее
Спасибо большое, всё нашел. Мне надо было выбирать: shTmp.Effects(i).Extrude.ExtrudeGroup
И у него получается отдельные item это все грани экструзии. Соответственно, если задан Shade смотрим fill Fountain, если solid --UniformColor