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

  • Автор темы Автор темы dredj
  • Дата начала Дата начала
Еще такой вопросик возник)

Можно сделать так чтобы размеры в текущих единицах измерения документа проставлялись
Например, если сейчас мм -- проставлялись мм, если поменялись на пункты -- проставлялись в пунктах?

А то что то под печать, а что то и под web готовим

Спасибо заранее, если так можно будет сделать
 
Да
 
'alil'
 
Теперь уже не раньше завтра
 
Конечно-конечно, когда будет удобно
 
Конечно-конечно, когда будет удобно
JavaScript:
if (documents.length > 0) {
 
    with (app.activeDocument)
    {

      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[3]-rect[1];         
        if (DocumentPreset.units==RulerUnits.Millimeters) c=25.4/72; else       
        if (DocumentPreset.units==RulerUnits.Centimeters) c=2.54/72; else       
        if (DocumentPreset.units==RulerUnits.Inches) c=1/72; else                       
        if (DocumentPreset.units==RulerUnits.Picas) c=6/72; else                       
        if (DocumentPreset.units==RulerUnits.Points) c=1; else                       
        if (DocumentPreset.units==RulerUnits.Pixels) c=1; else                       
        if (DocumentPreset.units==RulerUnits.Qs) c=25.4*4/72;
art.name=Math.floor(Math.abs(w)*c)+"-"+Math.floor(Math.abs(h)*c);
      }
    }
}
 
  • Спасибо
Реакции: Slx1
Преогромное спасибо!
 
JavaScript:
if (documents.length > 0) {

    with (app.activeDocument)
    {

      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[3]-rect[1];        
        if (DocumentPreset.units==RulerUnits.Millimeters) c=25.4/72; else      
        if (DocumentPreset.units==RulerUnits.Centimeters) c=2.54/72; else      
        if (DocumentPreset.units==RulerUnits.Inches) c=1/72; else                      
        if (DocumentPreset.units==RulerUnits.Picas) c=6/72; else                      
        if (DocumentPreset.units==RulerUnits.Points) c=1; else                      
        if (DocumentPreset.units==RulerUnits.Pixels) c=1; else                      
        if (DocumentPreset.units==RulerUnits.Qs) c=25.4*4/72;
art.name=Math.floor(Math.abs(w)*c)+"-"+Math.floor(Math.abs(h)*c);
      }
    }
}


В CS 2018 не работает((
не видит мм
 
Не видит чего?
 
Все в ПИКСЕЛЯХ пишет(
Даже если настройки линеек документа в мм
 
Последнее редактирование:
Это весьма странно, если он не определяет валидный RulerUnits то по идее просто ошибку должен выдавать а не в пикселах
замените всю конструкцию принудительно на
JavaScript:
c=25.4/72;
//if (DocumentPreset.units==RulerUnits.Millimeters) c=25.4/72; else       
//        if (DocumentPreset.units==RulerUnits.Centimeters) c=2.54/72; else       
//        if (DocumentPreset.units==RulerUnits.Inches) c=1/72; else                       
//        if (DocumentPreset.units==RulerUnits.Picas) c=6/72; else                       
//        if (DocumentPreset.units==RulerUnits.Points) c=1; else                       
//        if (DocumentPreset.units==RulerUnits.Pixels) c=1; else                       
//        if (DocumentPreset.units==RulerUnits.Qs) c=25.4*4/72;
 
  • Спасибо
Реакции: Slx1
Это весьма странно, если он не определяет валидный RulerUnits то по идее просто ошибку должен выдавать а не в пикселах
замените всю конструкцию принудительно на
JavaScript:
c=25.4/72;
//if (DocumentPreset.units==RulerUnits.Millimeters) c=25.4/72; else      
//        if (DocumentPreset.units==RulerUnits.Centimeters) c=2.54/72; else      
//        if (DocumentPreset.units==RulerUnits.Inches) c=1/72; else                      
//        if (DocumentPreset.units==RulerUnits.Picas) c=6/72; else                      
//        if (DocumentPreset.units==RulerUnits.Points) c=1; else                      
//        if (DocumentPreset.units==RulerUnits.Pixels) c=1; else                      
//        if (DocumentPreset.units==RulerUnits.Qs) c=25.4*4/72;


Так работает!
А чтобы понимал когда мм а когда пиксели не получиться сделать?
 
Не пойму, может в 2018 константу поменяли?
Поставьте alert(DocumentPreset.units); - что выдаст в окне?
 

Вложения

  • Снимок экрана 2019-10-31 в 16.48.07.png
    Снимок экрана 2019-10-31 в 16.48.07.png
    559.5 КБ · Просм.: 166
То есть получается, что при установленных миллиметрах все равно говорит что поинты??? Это явно баг какой то. А при установленных поинтах что говорит?
 
И если линейки поменять на ММ
То есть получается, что при установленных миллиметрах все равно говорит что поинты??? Это явно баг какой то. А при установленных поинтах что говорит?

это говорит и при мм и при поинтах
 
а какая религия не дает activeDocument.rulerUnits использовать?