Разбить пунктир на отдельные отрезки в Illustrator

_MBK_

Пикирующий бомбардировщик
15 лет на форуме
Сообщения
33 138
Реакции
10 835
Как раз то и есть, только было это летом 2015. В Corel-е (13), кстати, через Trim все и решилось. Но на тот момент больше работ было в Illustrator (CS2), поэтому и встала такая задача, да и перекидывать постоянно из одной программы в другую...
Ну в иллюстраторе разве аналогично не получится?
 

drawline

10 лет с rudtp
Топикстартер
10 лет на форуме
Сообщения
99
Реакции
2
Ну в иллюстраторе разве аналогично не получится?
Вся фишка в том, что Corel-то "курвит" пунктир в группу объектов сразу (Convert Outline to Object), а в Illustrator-е Flatten Transparency это не явное преобразование для подобной разборки пунктира (речь о CS2, прошу заметить). В дополнение, Illustrator не понимает, как можно линию обрезать объектом, что легко можно сделать в Corel. Потому и геморрой. Но даже теперь, даже в CC без описанного алгоритма в некоторых случаях будет не обойтись. Надеюсь, кому-то пригодится.
 
Последнее редактирование:

_MBK_

Пикирующий бомбардировщик
15 лет на форуме
Сообщения
33 138
Реакции
10 835
В общем, самое дельное решение оттуда - назначить толщину 0.0001 pt и сделать Expand
 
Последнее редактирование модератором:

КоньЕстДетей

10 лет на форуме
Сообщения
1 804
Реакции
927
В общем, самое дельное решение оттуда - назначить толщину 0.0001 pt и сделать Expand

Оно вроде не всегда срабатывает. Там могут пропасть некоторые сегменты, насколько я помню, а некоторые так и остаться многоугольниками.
 
Последнее редактирование модератором:

drawline

10 лет с rudtp
Топикстартер
10 лет на форуме
Сообщения
99
Реакции
2
Оно вроде не всегда срабатывает.
Именно. Из-за особенностей математического выражения кривых в компьютерной графике.

Я бы оставил свой вариант и предложенный КоньЕстДетей с помощью Brush, остальное обсуждение просто не имеет смысла и практического применения.
К тому же первый способ, как мне кажется, достаточно легко может быть реализован с помощью скрипта, тем кто в этом спец, конечно.
Забавно, что такое, на первый взгляд, простое действие Разбить пунктирную линию на штрихи вызывает такие большие трудности и дискуссии.
 
Последнее редактирование:

_MBK_

Пикирующий бомбардировщик
15 лет на форуме
Сообщения
33 138
Реакции
10 835
Скриптом гораздо проще закодить преобразование экспандированной кривой в линию
 

Dmitrij M

15 лет на форуме
Сообщения
11 046
Реакции
5 944

_MBK_

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

_MBK_

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

drawline

10 лет с rudtp
Топикстартер
10 лет на форуме
Сообщения
99
Реакции
2
с адобовского форума?
Вот "оттуда":
"1- create a single line i.e. 12pt long 1pt thick
2- make a pattern brush from the line
3- In pattern brush options dialog box, put 50% in spacing box.
4- apply the pattern brush to your desired shape.
5- you can still adjust the gaps in spacing box and hit apply to stroke
6- You can also change stroke weight !
7- go to object -> expand appearance."

По сути, это просто чуть более расширенное пояснение третьего способа, но, "поигравшись" - появились вопросы:
  1. Почему не получается выставить в опциях Start и End? Хотелось бы иметь возможность начинать и заканчивать незамкнутую линию штрихом, а не промежутком;
  2. Не понял, чем отличаются Stretch Fit (Растягивать до заполнения) от Approximate Path (Усреднять путь).
    (прим. Add space to fit - Добавлять интервалы до заполнения - здесь все понятно).

    2018-09-30_13-07-00.png
 

~RA~

Одарённая.
12 лет на форуме
Сообщения
11 809
Реакции
3 434
Я, наверное, сейчас глупость спрошу, а как этот пунктир этот как в постскрипт записывается?
 

_MBK_

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

~RA~

Одарённая.
12 лет на форуме
Сообщения
11 809
Реакции
3 434
А в level 1? ;)
 

_MBK_

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

_MBK_

Пикирующий бомбардировщик
15 лет на форуме
Сообщения
33 138
Реакции
10 835
Не разумею, чем вам все таки не угодил данный способ?
  1. Set thickness of line to 0.0001 pt
  2. Menu Object > Expand (if greyed out, choose Object Expand Appearance first, as the object has appearance attributes applied to it)
  3. Set thickness back to original value

Проверил у себя - прекрасно разбивает на отрезки. Единственно что - потом надо полученную группу раскомбинировать и отрезки разомкнуть
 

Йожег

без телевизора
12 лет на форуме
Сообщения
8 829
Реакции
4 274
Ты просто не заметил что некоторые отрезки на самом деле фигуры с заливкой
 

drawline

10 лет с rudtp
Топикстартер
10 лет на форуме
Сообщения
99
Реакции
2
чем вам все таки не угодил данный способ?
Это скорее побочные эффекты "несовершенства", точнее особенностей алгоритма, так как Illustrator вроде не оперирует такими величинами - 0,000035 мм. Да и не только он. И ввиду того, что в подобных программах сплошь и рядом используется аппроксимация, такие величины просто будут местами "удалены" из-за сопоставимости с ее (аппроксимации) погрешностями, отчего, кстати, при булевых операциях можно наблюдать получающуюся разорванность контура.
По этим причинам, думаю, такой способ даже рассматривать не стОит. Это как с пунктиром точками несколько ранее в "Хитрости, приемы и советы" - вот задавать "0" для длины я бы скорее всего не стал "от греха подальше". Самую минимальную взял бы, ну например 0,001 достаточно.
Мне кажется, это несколько не комильфо. )) Скорее это баги программы. Как считаете?
 
Последнее редактирование:

Йожег

без телевизора
12 лет на форуме
Сообщения
8 829
Реакции
4 274
Типа того
вкцйкц.gif
 

_MBK_

Пикирующий бомбардировщик
15 лет на форуме
Сообщения
33 138
Реакции
10 835
Самую минимальную взял бы, ну например 0,001 достаточно.
Вот не надо самодеятельности, умные люди с адобовского комьюнити нашли за вас минимальный порог, начиная с которого данный метод работает
. It does NOT work with a thicker line (like 0.001)