[AI CC2023] Изменить объекты, расстояния между которыми меньше заданного, так, чтобы эти расстояния увеличились до заданного

lmn1

Топикстартер
15 лет на форуме
Сообщения
530
Реакции
216
Есть много разных объектов. Надо найти объекты, расстояния между которыми меньше, чем 0,25 мм. И эти объекты подправить так, чтобы расстояние между ними стало 0,25.
В Esko DeskPack есть модуль Thin Parts, который ищет сами объекты размером меньше указанного и пытается их исправить.
А вот как исправить расстояния между объектами? В моем примере найти объекты (б) и (в) слева и исправить их так, как показано справа.
1711029573894.png
 

_MBK_

Пикирующий бомбардировщик
15 лет на форуме
Сообщения
33 229
Реакции
10 851
Есть много разных объектов. Надо найти объекты, расстояния между которыми меньше, чем 0,25 мм. И эти объекты подправить так, чтобы расстояние между ними стало 0,25.
В Esko DeskPack есть модуль Thin Parts, который ищет сами объекты размером меньше указанного и пытается их исправить.
А вот как исправить расстояния между объектами? В моем примере найти объекты (б) и (в) слева и исправить их так, как показано справа.
Посмотреть вложение 164561
Дело в том, что для иллюстратора посчитать минимальное расстояние между обьектами это почти нетривиальная задача, которую даже заскриптовать чертовски сложно.
 

lmn1

Топикстартер
15 лет на форуме
Сообщения
530
Реакции
216
Я думал, что есть что-то вроде Esko DeskPack Thin Parts но для пробелов. А пока попробую сделать "инверсию". Положить большой прямоугольник под все объекты, вырезать в нем эти объекты. Получится, что пробелы - это теперь объекты. Далее Esko DeskPack - Thin Part - подправить объекты до нужных размеров. И потом обратная "инверсия" для превращения пробелов в объекты и объектов в пробелы.
 

almastu

15 лет на форуме
Сообщения
535
Реакции
90
Я думал, что есть что-то вроде Esko DeskPack Thin Parts но для пробелов. А пока попробую сделать "инверсию". Положить большой прямоугольник под все объекты, вырезать в нем эти объекты. Получится, что пробелы - это теперь объекты. Далее Esko DeskPack - Thin Part - подправить объекты до нужных размеров. И потом обратная "инверсия" для превращения пробелов в объекты и объектов в пробелы.
Исходные объекты изменят форму. Если были круги - будут срезанные круги (((. Если это не страшно - прикольный ход
 

_MBK_

Пикирующий бомбардировщик
15 лет на форуме
Сообщения
33 229
Реакции
10 851
Я думал, что есть что-то вроде Esko DeskPack Thin Parts но для пробелов. А пока попробую сделать "инверсию". Положить большой прямоугольник под все объекты, вырезать в нем эти объекты. Получится, что пробелы - это теперь объекты. Далее Esko DeskPack - Thin Part - подправить объекты до нужных размеров. И потом обратная "инверсия" для превращения пробелов в объекты и объектов в пробелы.
Не совсем понял. Если вырезать в прямоугольнике обьекты, то получится один дырявый прямоугольник - как работает дескпаковский Thin Part?
 

lmn1

Топикстартер
15 лет на форуме
Сообщения
530
Реакции
216
Не совсем понял. Если вырезать в прямоугольнике обьекты, то получится один дырявый прямоугольник - как работает дескпаковский Thin Part?
допустим, есть 3 объекта шириной 15, 7, 9. Я хочу получить объекты шириной не менее 10. Thin Part предлагает сделать так:
1711098108632.png
Конечно, не всегда у него получается хорошо, меняется форма объекта и т.д. Но он это делает быстро, автоматически, и всегда можно поправить.
 

_MBK_

Пикирующий бомбардировщик
15 лет на форуме
Сообщения
33 229
Реакции
10 851
Т.е. он просто утолщает узкие места, не трогая остальные?
Если бы картинка была растровая, алгоритм был бы такой:
1) Расширяем все обьекты на тестируемое расстояние
2) Затем полученное сужаем обратно
3) Вычитаем из полученного исходное - остаются только зазоры между обьектами меньше тестируемого расстояния.
4) Расширяем их на нужное расстояние
5) Вычитаем из исходного - слишком близко стоящие обьекты обрежутся так, что расстояние между ними станет достаточным.
 

lmn1

Топикстартер
15 лет на форуме
Сообщения
530
Реакции
216
А мне нужно не объекты менять, а расстояния между ними. И не придумал ничего лучше, чем "инверсионный метод" :) (см. выше).
Вот пример "инверсионного метода"(расстояния 5.3 мм нужно превратить в не менее 8):
1711099108561.png
Не круто, но уже что-то. Может, есть способ получше?
 

_MBK_

Пикирующий бомбардировщик
15 лет на форуме
Сообщения
33 229
Реакции
10 851
А мне нужно не объекты менять, а расстояния между ними. И не придумал ничего лучше, чем "инверсионный метод" :) (см. выше).
Вот пример "инверсионного метода"(расстояния 5.3 мм нужно превратить в не менее 8):
Посмотреть вложение 164580
Не круто, но уже что-то. Может, есть способ получше?
Этот способ лучше, при моем внутренние края обьектов будут жестко "выгрызаны"
 

_MBK_

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