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

lipatkin

Топикстартер
12 лет на форуме
Сообщения
418
Оценка реакций
90
Всех приветствую!
Столкнулся с такой проблемой: создаю фигуру, крашу ее в пантон 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

Некромант-любитель
10 лет на форуме
Сообщения
876
Оценка реакций
688
м.б. из-за этого флага
Property UseExtrudeColorForBevel As Boolean
1544770689891.png
 

_MBK_

Пикирующий бомбардировщик
12 лет на форуме
Сообщения
25 258
Оценка реакций
8 554
Странно, у меня в X6 все в порядке
1544771567096.png

1544771643985.png

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

lipatkin

Топикстартер
12 лет на форуме
Сообщения
418
Оценка реакций
90
Странно, у меня в X6 все в порядке
Если задавать переход, то все нормально выводит.
Screenshot_34.jpg


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

_MBK_

Пикирующий бомбардировщик
12 лет на форуме
Сообщения
25 258
Оценка реакций
8 554
И вправду.
А вы берите цвет с shTmp.Shapes(1) - там правильный
1544773059604.png
 
Последнее редактирование:

lipatkin

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

lipatkin

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

_MBK_

Пикирующий бомбардировщик
12 лет на форуме
Сообщения
25 258
Оценка реакций
8 554
А вы не контрольный берите, а сам эффект
1544774237888.png
 

lipatkin

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

lipatkin

Топикстартер
12 лет на форуме
Сообщения
418
Оценка реакций
90
У shTmp есть дочерние шейпы - грани экструда
похоже я не тот объект рассматриваю.
shTmp - это Control Curve эффекта. У него пусто:
Screenshot_37.jpg

берем эффект shTmp: shTmp.Effects(i) у него не нахожу
Screenshot_38.jpg
 

_MBK_

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

lipatkin

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

_MBK_

Пикирующий бомбардировщик
12 лет на форуме
Сообщения
25 258
Оценка реакций
8 554
Давайте по порядку
Когда я выделяю группу вытягивания, в Selection сидит два шейпа. Первый - это сама группа тип у нее cdrExtrudeGroupShape - он нам и нужен, в моем случае он содержит два дочерних шейпа - грани которые покрашены в нужный цвет.
Второй выделенный объект - контрольная кривая типа cdrRectangleShape - судя по всему вы пытаетесь обрабатывать именно ее
 

lipatkin

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