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

  • Автор темы Автор темы lmn1
  • Дата начала Дата начала

lmn1

Топикстартер
20 лет на форуме
Сообщения
577
Реакции
264
Есть много разных объектов. Надо найти объекты, расстояния между которыми меньше, чем 0,25 мм. И эти объекты подправить так, чтобы расстояние между ними стало 0,25.
В Esko DeskPack есть модуль Thin Parts, который ищет сами объекты размером меньше указанного и пытается их исправить.
А вот как исправить расстояния между объектами? В моем примере найти объекты (б) и (в) слева и исправить их так, как показано справа.
1711029573894.png
 
Есть много разных объектов. Надо найти объекты, расстояния между которыми меньше, чем 0,25 мм. И эти объекты подправить так, чтобы расстояние между ними стало 0,25.
В Esko DeskPack есть модуль Thin Parts, который ищет сами объекты размером меньше указанного и пытается их исправить.
А вот как исправить расстояния между объектами? В моем примере найти объекты (б) и (в) слева и исправить их так, как показано справа.
Посмотреть вложение 164561
Дело в том, что для иллюстратора посчитать минимальное расстояние между обьектами это почти нетривиальная задача, которую даже заскриптовать чертовски сложно.
 
Я думал, что есть что-то вроде Esko DeskPack Thin Parts но для пробелов. А пока попробую сделать "инверсию". Положить большой прямоугольник под все объекты, вырезать в нем эти объекты. Получится, что пробелы - это теперь объекты. Далее Esko DeskPack - Thin Part - подправить объекты до нужных размеров. И потом обратная "инверсия" для превращения пробелов в объекты и объектов в пробелы.
 
Я думал, что есть что-то вроде Esko DeskPack Thin Parts но для пробелов. А пока попробую сделать "инверсию". Положить большой прямоугольник под все объекты, вырезать в нем эти объекты. Получится, что пробелы - это теперь объекты. Далее Esko DeskPack - Thin Part - подправить объекты до нужных размеров. И потом обратная "инверсия" для превращения пробелов в объекты и объектов в пробелы.
Исходные объекты изменят форму. Если были круги - будут срезанные круги (((. Если это не страшно - прикольный ход
 
Я думал, что есть что-то вроде Esko DeskPack Thin Parts но для пробелов. А пока попробую сделать "инверсию". Положить большой прямоугольник под все объекты, вырезать в нем эти объекты. Получится, что пробелы - это теперь объекты. Далее Esko DeskPack - Thin Part - подправить объекты до нужных размеров. И потом обратная "инверсия" для превращения пробелов в объекты и объектов в пробелы.
Не совсем понял. Если вырезать в прямоугольнике обьекты, то получится один дырявый прямоугольник - как работает дескпаковский Thin Part?
 
Не совсем понял. Если вырезать в прямоугольнике обьекты, то получится один дырявый прямоугольник - как работает дескпаковский Thin Part?
допустим, есть 3 объекта шириной 15, 7, 9. Я хочу получить объекты шириной не менее 10. Thin Part предлагает сделать так:
1711098108632.png
Конечно, не всегда у него получается хорошо, меняется форма объекта и т.д. Но он это делает быстро, автоматически, и всегда можно поправить.
 
Т.е. он просто утолщает узкие места, не трогая остальные?
Если бы картинка была растровая, алгоритм был бы такой:
1) Расширяем все обьекты на тестируемое расстояние
2) Затем полученное сужаем обратно
3) Вычитаем из полученного исходное - остаются только зазоры между обьектами меньше тестируемого расстояния.
4) Расширяем их на нужное расстояние
5) Вычитаем из исходного - слишком близко стоящие обьекты обрежутся так, что расстояние между ними станет достаточным.
 
А мне нужно не объекты менять, а расстояния между ними. И не придумал ничего лучше, чем "инверсионный метод" :) (см. выше).
Вот пример "инверсионного метода"(расстояния 5.3 мм нужно превратить в не менее 8):
1711099108561.png
Не круто, но уже что-то. Может, есть способ получше?
 
А мне нужно не объекты менять, а расстояния между ними. И не придумал ничего лучше, чем "инверсионный метод" :) (см. выше).
Вот пример "инверсионного метода"(расстояния 5.3 мм нужно превратить в не менее 8):
Посмотреть вложение 164580
Не круто, но уже что-то. Может, есть способ получше?
Этот способ лучше, при моем внутренние края обьектов будут жестко "выгрызаны"