Render.ru

Используемые цвета

#1
Очень часто при работе возникает потребность в помещении используемых цветов в работе в палитру swatches аля FreeHand'овского: Name All Colors.
Thanks.
 
#2
Думаю, только через скрипт. При желании мог бы написать. Только вот, в каком случае бывает необходима такая процедура, я не пойму.
 
#4
угу хорошая штука думаю в 11 будет а для 10 скрипт не помешает
и название сватчей что-бы нормальные были типа как в ИнДезе
 
#5
название сватчей что-бы нормальные были типа как в ИнДезе...

можно просто изменить вид отображения палитры Swatches - поставить как List -
не подойдет?
 
#6
нет 8)
если взять обьект и перетащить на палитру сватч то в Илее будет New Swatch № а в ИнДе СМИК составляющие
 
#7
>> если взять обьект и перетащить на палитру сватч то в Илее будет New
>> Swatch № а в ИнДе СМИК составляющие

А если он в режиме HSB или RGB, то как называть?
И ещё, нужно ли скриптом автоматически удалять неиспользуемые сватчи?
 
#8
низнаю для меня это не актуально что народ скажет
я думаю что нет
я например по окончании работы неиспользуемые сватчи убираю
что коллеги думают?
 
#9
Muchacho wrote:

> И ещё, нужно ли скриптом автоматически удалять неиспользуемые
> сватчи?

есть же собственное илловское средство. правда, оно зависит от использования этих цветов в кистях и стилях.
так что я, например, просто сделал себе экшен, который одним нажатием весь этот мусор из чужих документов "в трэш" вытряхивает. )) в моих-то документах всего этого изначально нет - подправлен CMYK startup, - да как и у многих здесь, наверное.

а вот именование свочей по индизовскому типу - рулит. только может возникнуть вопрос с апдейтом имени после корректировки цвета своча. это реально - скриптом?
 
#10
Попробуйте вот эту штучку. Сразу говорю, что на слабых компьютерах илл может на некоторое время призадуматься (особенно, если в файле много текста), т.к. кроме прочего, проверяется и цвет каждого слова в текстовых объектах. Вешчь эта пока не обкатанная, так что, обо всех пожеланиях и жалобах сообщайте.

function zapArray(col){
with (Math){
nam=false;
switch(col.color){
case 1:
col1=col.cmyk;
nam='C='+round(col1.cyan)+' '+'M='+round(col1.magenta)+' '+'Y='+round(col1.yellow)+' '+'K='+round(col1.black);
break;
case 2:
col1=col.gray;
nam='Gray='+round(col1.gray);
break;
case 3:
col1=col.rgb;
nam='R='+round(col1.red)+' '+'G='+round(col1.green)+' '+'B='+round(col1.blue);
break;
case 4:
col1=col.spot;
nam=col1.spot.name;
break;
case 5:
col1=col.pattern;
break;
case 6:
col1=col.gradient;
break;
}
sovpad=false;

for(q=0;q<mySw.length;q++){
try{
if(col.color==mySw[q].color.color){
switch(col.color){
case 1:
myCo=mySw[q].color.cmyk;
c=col.cmyk;
if((round(c.cyan)==round(myCo.cyan))&&(round(c.magenta)==round(myCo.magenta))&&(round(c.yellow)==round(myCo.yellow))&&(round(c.black)==round(myCo.black))){
sovpad=true
}
break;
case 2:
myCo=mySw[q].color.gray;
c=col.gray;
if(round(c.gray)==round(myCo.gray)){
sovpad=true
}
break;
case 3:
myCo=mySw[q].color.rgb;
c=col.rgb;
if((round(c.red)==round(myCo.red))&&(round(c.green)==round(myCo.green))&&(round(c.blue)==round(myCo.blue))){
sovpad=true
}
break;
case 4:
myCo=mySw[q].color.spot;
c=col.spot;
if((c.spot==myCo.spot)&&(round(c.tint)==round(myCo.tint))){
sovpad=true
}
break;
case 5:
myCo=mySw[q].color.pattern;
c=col.pattern;
if(c.pattern==myCo.pattern){
sovpad=true
}
break;
case 6:
myCo=mySw[q].color.gradient;
c=col.gradient;
if(c.gradient==myCo.gradient){
sovpad=true
}
break;
}
}
}catch(exc){
continue}
}
if(!sovpad){
newSw=mySw.add();
newSw.color=col;
if(nam){
newSw.name=nam
}
}
}
};

function between(obj){
if(obj.filled){
zapArray(obj.fillColor);
}
if(obj.stroked){
zapArray(obj.strokeColor);
}
};

pgItems = activeDocument.pageItems;
if (pgItems.length>0){
mySw=activeDocument.swatches;
for(i=0;i<pgItems.length;i++){
if(pgItems.typename=='TextArtItem'){
textR=pgItems.textRange();
wor=textR.words;
for(a=0;a<wor.length;a++){
between(wor[a])
}
}else{
obj=pgItems;
between(obj)
}
}
for(i=2;i<mySw.length;i++){
sw=mySw;
for(q=2;q<mySw.length;q++){
currSw=mySw[q];
if(i!=q){
if ((sw.name==currSw.name)&&(sw.color.color!=4)){
currSw.remove();
q--
}
}
}
}
}else{}
 
#11
а можно скрипт модифицировать так чтобы свотчи создаваемые были глобальными? чтобы последующую перекраску облегчить
 
#12
Чёт я слышал что не все проги корректно дружат с глобальными цветами (например, говорят про Кварк). Думаю, для этой цели лучше какой-нибудь отдельный скрипт написать.
 
#16
> а можно скрипт модифицировать так чтобы свотчи создаваемые были глобальными

Выдели вручную все нужные тебе Swatch-и, из меню палитры вызови Swatch Options, и выстави нужные тебе атрибуты.
Не думаю, что есть необходимость прописывать эту операцию в скрипт.
 
#17
Paavels wrote:
>
> was is das?
> an internal error occurred: PARM
> Line: 120
> ->
> скипт супер!
> СПАСИБО!

Действительно, была такая мулька :(
Ну теперь я, вроде как от неё "защитился" :)

Вот немного доделанный скрипт, т.к. сказать, версия 1.1 :)

function zapArray(col){
with (Math){
nam=false;
switch(col.color){
case 1:
col1=col.cmyk;
nam='C='+round(col1.cyan)+' '+'M='+round(col1.magenta)+' '+'Y='+round(col1.yellow)+' '+'K='+round(col1.black);
break;
case 2:
col1=col.gray;
nam='Gray='+round(col1.gray);
break;
case 3:
col1=col.rgb;
nam='R='+round(col1.red)+' '+'G='+round(col1.green)+' '+'B='+round(col1.blue);
break;
case 4:
col1=col.spot;
nam=col1.spot.name;
break;
case 5:
col1=col.pattern;
break;
case 6:
col1=col.gradient;
break;
}
sovpad=false;

for(q=0;q<mySw.length;q++){
try{
if(col.color==mySw[q].color.color){
switch(col.color){
case 1:
myCo=mySw[q].color.cmyk;
c=col.cmyk;
if((round(c.cyan)==round(myCo.cyan))&&(round(c.magenta)==round(myCo.magenta))&&(round(c.yellow)==round(myCo.yellow))&&(round(c.black)==round(myCo.black))){
sovpad=true
}
break;
case 2:
myCo=mySw[q].color.gray;
c=col.gray;
if(round(c.gray)==round(myCo.gray)){
sovpad=true
}
break;
case 3:
myCo=mySw[q].color.rgb;
c=col.rgb;
if((round(c.red)==round(myCo.red))&&(round(c.green)==round(myCo.green))&&(round(c.blue)==round(myCo.blue))){
sovpad=true
}
break;
case 4:
myCo=mySw[q].color.spot;
c=col.spot;
if((c.spot==myCo.spot)&&(round(c.tint)==round(myCo.tint))){
sovpad=true
}
break;
case 5:
myCo=mySw[q].color.pattern;
c=col.pattern;
if(c.pattern==myCo.pattern){
sovpad=true
}
break;
case 6:
myCo=mySw[q].color.gradient;
c=col.gradient;
if(c.gradient==myCo.gradient){
sovpad=true
}
break;
}
}
}catch(exc){
continue}
}
if(!sovpad){
newSw=mySw.add();
newSw.color=col;
if(nam){
newSw.name=nam
}
}
}
};

function between(obj){
if(obj.filled){
zapArray(obj.fillColor);
}
if(obj.stroked){
zapArray(obj.strokeColor);
}
};

pgItems = activeDocument.pageItems;
if (pgItems.length>0){
mySw=activeDocument.swatches;
for(i=0;i<pgItems.length;i++){
if(pgItems.typename=='TextArtItem'){
textR=pgItems.textRange();
wor=textR.words;
for(a=0;a<wor.length;a++){
between(wor[a])
}
}else{
obj=pgItems;
between(obj)
}
}
for(i=2;i<mySw.length;i++){
sw=mySw;
for(q=2;q<mySw.length;q++){
currSw=mySw[q];
if(i!=q){
try{
if ((sw.name==currSw.name)&&(sw.color.color!=4)){
currSw.remove();
q--
}
}catch(exc){
continue
}
}
}
}
}else{}
 
#18
Да, скрипт полезный, ничего не скажешь.
Одно пожелание есть. Мне кажется, что формат записи цвета не очень удобочитаемый: C=50 M=0 Y=23 K=65. Много лишних символов. Не лучше было бы так: 50-0-23-65? Воспринимается легче, одним взглядом. В принципе, это, наверное, многие могут подправить в скрипте, но ведь не все. Как думаете?

Вместо:

nam='C='+round(col1.cyan)+' '+'M='+round(col1.magenta)+' '+'Y='+round(col1.yellow)+' '+'K='+round(col1.black);

так:

nam='round(col1.cyan)+'-'+'round(col1.magenta)+'-'+round(col1.yellow)+'-'+round(col1.black);

ну, и с RGB аналогично...
правильно я понимаю? ))
 
#19
arhip wrote:

> nam='round(col1.cyan)+'-'+'round(col1.magenta)+'-'+round(col1.yellow)+'-'+round(col1.black);

Лишиние кавычки не убрал. :(( Следует читать так:

nam=round(col1.cyan)+'-'+round(col1.magenta)+'-'+round(col1.yellow)+'-'+round(col1.black);
 
Сверху