[AI CC2022] Скрипт - удаление объектов в Illustrator

Borikus

Участник
Топикстартер
Сообщения
7
Реакции
0
Добрый день.
Подскажите пожалуйста как лучше всего поступить в Illustrator. Есть много файлов, в которых есть текстовые поля, стоящие на одном и том же месте, которые необходимо удалить.
Наверное лучший способ был бы используя координаты - как описано в теме [AI CC-CC2020] - Найти векторный объект по координатам .
Может быть подскажете что необходимо прописать для удаления объекта по заданным координатам. Или хотя бы ткните носом где и что почитать.
Спасибо.
 

_MBK_

Пикирующий бомбардировщик
15 лет на форуме
Сообщения
33 228
Реакции
10 851
Ну так в той теме достаточно все разжеванно помоему. Или я не понял вашего вопроса?
 

Borikus

Участник
Топикстартер
Сообщения
7
Реакции
0
Ну вот видимо что-то я не учел.
Есть объекты с опорными точками (11,85;267,45) и (150,55; 360,70)
написал такой скрипт, но не работает...

Код:
for ( var i = 0; i < activeDocument.pageItems.length; i++ ) {
if ( !(activeDocument.pageItems.left == 11,85 && activeDocument.pageItems.top == 267,45) )
  {activeDocument.pageItems.remove();}
if ( !(activeDocument.pageItems.left == 150,55 && activeDocument.pageItems.top == 360,70) )
  {activeDocument.pageItems.remove();}
}
 

densen

15 лет на форуме
Сообщения
753
Реакции
642
Последнее редактирование:

Borikus

Участник
Топикстартер
Сообщения
7
Реакции
0
все равно не хочет удалять...
Код:
for ( var i = 0; i < activeDocument.pageItems.length; i++ ) {
if ( !(activeDocument.pageItems[i].left == 11,85 && activeDocument.pageItems[i].top == 67,8) )
  {activeDocument.pageItems[i].remove();}
}
 

Вложения

  • pic.png
    pic.png
    6.8 КБ · Просм.: 119

_MBK_

Пикирующий бомбардировщик
15 лет на форуме
Сообщения
33 228
Реакции
10 851
А чего у вас десятичный разделитель запятая ? %8 'fp'
 

Borikus

Участник
Топикстартер
Сообщения
7
Реакции
0
Исправил на точки. Но теперь удаляет другие объекты, а который нужно на месте остается...
 

Borikus

Участник
Топикстартер
Сообщения
7
Реакции
0
вот что после этого скрипта происходит... что я не учел еще?
 

Вложения

  • было.PNG
    было.PNG
    23.9 КБ · Просм.: 143
  • стало.PNG
    стало.PNG
    15.8 КБ · Просм.: 131

_MBK_

Пикирующий бомбардировщик
15 лет на форуме
Сообщения
33 228
Реакции
10 851
Вообще говоря, если вы оперируете числами с плавающей точкой никогда нельзя указывать в условии полное равенство. В большинстве случаев полное равенство не достижимо никогда в силу самого представления десятичной дроби в компьютере
И кстати да, у вас же удаляет именно по неравенству
 
Последнее редактирование:

Borikus

Участник
Топикстартер
Сообщения
7
Реакции
0
Попробовал переписать через position. Тоже самое
Код:
for ( var i = 0; i < activeDocument.pageItems.length; i++ ) {
if ( !( activeDocument.pageItems[i].position == (11.85,67.8) ))
  activeDocument.pageItems[i].remove();
}
 

Borikus

Участник
Топикстартер
Сообщения
7
Реакции
0
Тогда какой еще может быть вариант удаления объектов стоящих на одном и том же месте на множестве листов?
 

_MBK_

Пикирующий бомбардировщик
15 лет на форуме
Сообщения
33 228
Реакции
10 851
Попробовал переписать через position. Тоже самое
Код:
for ( var i = 0; i < activeDocument.pageItems.length; i++ ) {
if ( !( activeDocument.pageItems[i].position == (11.85,67.8) ))
  activeDocument.pageItems[i].remove();
}
Вы, наверное, не поняли что я вам сказал?
1) Точное равенство на числа с плавающей точкой никогда не работает
2) У вас проверка на НЕРАВЕНСТВО
3) position совсем не в тему
 

dik973

15 лет на форуме
Сообщения
578
Реакции
77
! обозначает отрицание
 

~RA~

Одарённая.
12 лет на форуме
Сообщения
11 886
Реакции
3 457
Меж тем.
1652444605503.png
 

almastu

15 лет на форуме
Сообщения
535
Реакции
90
ну это вы читер) степень двойки на меньшую степень двойки и в двоичной и в десятиричной будет делиться нацело... Тут что представление чисел что способ их хранения роли ведь не играют?
.. до предела переполнения, конечно
 
Последнее редактирование:
  • Спасибо
Реакции: _MBK_

~RA~

Одарённая.
12 лет на форуме
Сообщения
11 886
Реакции
3 457
1652447347349.png

Но в адобовском интерпретаторе может быть иначе. Да и не кузяво так делать, конечно.
 

~RA~

Одарённая.
12 лет на форуме
Сообщения
11 886
Реакции
3 457
И в хроме.
1652447565026.png
 

almastu

15 лет на форуме
Сообщения
535
Реакции
90
1 == 2^0
8 == 2^3
а в адобе же еще и координаты могут на базе пунктов пересчитываться - тогда совсем швах, там даже просто целых днем с огнем...