[AI CC-CC2021] Задать имя монтажной области

Skvoznyak

15 лет на форуме
Сообщения
5 500
Реакции
2 168
с тем же успехом можно как раз хардкодить любые единицы
 

_MBK_

Пикирующий бомбардировщик
15 лет на форуме
Сообщения
33 198
Реакции
10 848
Ответ прост - я этот кусок сляпал на коленке с утюга по памяти, а он внезапно заработал ;)
Странно, как?
 

Skvoznyak

15 лет на форуме
Сообщения
5 500
Реакции
2 168
ну он брал единицы из пресета, а не от линеек. 'hz'
 

_MBK_

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

Skvoznyak

15 лет на форуме
Сообщения
5 500
Реакции
2 168
ну вот так в общем (убрал индусский if заодно, и из цикла его вынес).
Код:
if (documents.length) {

    with (app.activeDocument)
    {

  var c = 1;
  switch(rulerUnits)
{  
       case RulerUnits.Millimeters: c=25.4/72; break; 
        case RulerUnits.Centimeters: c=2.54/72; break; 
       case RulerUnits.Inches: c=1/72; break;                
       case RulerUnits.Picas: c=6/72; break;                                     
       case RulerUnits.Qs: c=25.4*4/72;
}

      for (var i=0;i<artboards.length;i++)
      {
        var art=artboards[i];
        var rect=art.artboardRect;
        var w=rect[2]-rect[0];
        var h=rect[1]-rect[3];

        art.name=Math.round(w*c)+"-"+Math.round(h*c);
      }
    }
}
 
Последнее редактирование:
  • Спасибо
Реакции: Slx1

Slx1

15 лет на форуме
Сообщения
944
Реакции
106
ну вот так в общем (убрал индусский if заодно, и из цикла его вынес).
Код:
if (documents.length) {

    with (app.activeDocument)
    {

  var c = 1;
  switch(rulerUnits)
{ 
       case RulerUnits.Millimeters: c=25.4/72; break;
        case RulerUnits.Centimeters: c=2.54/72; break;
       case RulerUnits.Inches: c=1/72; break;               
       case RulerUnits.Picas: c=6/72; break;                                    
       case RulerUnits.Qs: c=25.4*4/72;
}

      for (var i=0;i<artboards.length;i++)
      {
        var art=artboards[i];
        var rect=art.artboardRect;
        var w=rect[2]-rect[0];
        var h=rect[1]-rect[3];

        art.name=Math.round(w*c)+"-"+Math.round(h*c);
      }
    }
}

Круто! Еще о округляет математически правильно!!!
 

_MBK_

Пикирующий бомбардировщик
15 лет на форуме
Сообщения
33 198
Реакции
10 848
И все же, интересный теоретический вопрос - а что, так можно читать из любого класса? И какие значения будут?
 

Skvoznyak

15 лет на форуме
Сообщения
5 500
Реакции
2 168
И все же, интересный теоретический вопрос - а что, так можно читать из любого класса? И какие значения будут?

дефолтные (где они есть)

классов же в JS нет в обычном понимании, это все равно функции. .toSource() вот что показывает

(function DocumentPreset() { [native code] } )
 
Последнее редактирование:
  • Спасибо
Реакции: _MBK_

_MBK_

Пикирующий бомбардировщик
15 лет на форуме
Сообщения
33 198
Реакции
10 848
Все равно странно, что вообще работало, сейчас проверил, на CS6 DocumentPreset.rulerUnits всегда выдает поинты. Вообще говоря, чтобы получить независимые от документа установки, можно использовать например, preferences.getIntegerPreference("strokeUnits") //единицы измерения обводки
0-дюймы, 1-миллиметры. 2-пункты, 3-пики, 4-сантиметры и 6-пикселы
 

Skvoznyak

15 лет на форуме
Сообщения
5 500
Реакции
2 168
Так в твоем варианте и были всегда pt. Что странного?
А зачем получать независимые от документа, когда нужны текущие единицы с линеек, которые легко берутся из rulerUnits?
 

_MBK_

Пикирующий бомбардировщик
15 лет на форуме
Сообщения
33 198
Реакции
10 848
Так в твоем варианте и были всегда pt. Что странного?
А зачем получать независимые от документа, когда нужны текущие единицы с линеек, которые легко берутся из rulerUnits?
Например, если не открыто ни одного документа
 

_MBK_

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

Skvoznyak

15 лет на форуме
Сообщения
5 500
Реакции
2 168
Например, если не открыто ни одного документа

и какому артборду ты имя будешь менять? не говоря о том, что в начале сам же поставил проверку if(documents.length)

Странно что у топикстартера работало изначально

работало с pt независимо от установок линеек 'otbline''otbline''otbline''otbline'
 

_MBK_

Пикирующий бомбардировщик
15 лет на форуме
Сообщения
33 198
Реакции
10 848
и какому артборду ты имя будешь менять? не говоря о том, что в начале сам же поставил проверку if(documents.length)
Я не про этот конкретный случай, а вообще.
Сказал же что работало и перестало только при переходе на 2018 или я неправильно понял? 🤷‍♂️
 

Skvoznyak

15 лет на форуме
Сообщения
5 500
Реакции
2 168
да фиг знает, может только щас заметили