[AI CC-CC2021] как скруглить только острые углы?

  • Автор темы Удалённый пользователь 10719
  • Дата начала
Статус
Закрыто для дальнейших ответов.

_MBK_

Пикирующий бомбардировщик
15 лет на форуме
Сообщения
33 235
Реакции
10 852
Fog_patcher post: 885219 сказал(а):
То, что не должен правильный пацанский Offset path отрезать острые углы, не по понятиям это
 

Fog_patch

12 лет на форуме
Сообщения
3 163
Реакции
998
@_MBK_, Там есть настройки. Хочешь отрезаешь, хочешь не отрезаешь. Я предложил не отрезать! У меня "отрезает" сама обводка при икспенде. Кривая остаётся на своем месте с точностью, которую дает программа. Углы, которые меньше скольки-то градусов (это можно тонко настроить) обрезаются на заданную глубину. Глубина задаётся толщиной обводки.
 

-Moh-

15 лет на форуме
Сообщения
1 680
Реакции
499
Плагин Xtream Path Вам в помощь.
 
Последнее редактирование:
  • Спасибо
Реакции: NecroZoider и Slx1

Fog_patch

12 лет на форуме
Сообщения
3 163
Реакции
998
Xtream Path лютый плуг, но в былые дни он не мог скруглять вот такие углы:
upload_2016-10-9_14-5-48.png

а свежие версии иллюстратора – без проблем. Как сейчас – не знаю.
Ну и ценничек у него нехилый.
 

Slx1

15 лет на форуме
Сообщения
944
Реакции
106
"ищите, и найдете; стучите, и отворят вам" '))'
 

Вложения

  • Xtreampath.png
    Xtreampath.png
    73.6 КБ · Просм.: 833

_MBK_

Пикирующий бомбардировщик
15 лет на форуме
Сообщения
33 235
Реакции
10 852
Гм, меня терзают смутные сомнения, что после скругления кривая превращается в пресловутый Plugin object со всеми вытекающими ништяками? 'hmmm'
 

Gadalka

R.I.P.
Сообщения
2 530
Реакции
869
Действительно интересный плагин.
И действительно решает поставленную задачу.

Только вот правильно ли поставлена задача -- не знаю. В своё время (путём некоторых нехитрых манипуляций) ухитрялись резать 12 пунктовый текст на отнюдь не новом плоттере. И проблему острых углов решали НЕ скруглением (на самом деле острый угол вырезать проще, чем скруглённый).
 
У

Удалённый пользователь 10719

Гость
Топикстартер
Действительно интересный плагин.
И действительно решает поставленную задачу.

Только вот правильно ли поставлена задача -- не знаю. В своё время (путём некоторых нехитрых манипуляций) ухитрялись резать 12 пунктовый текст на отнюдь не новом плоттере. И проблему острых углов решали НЕ скруглением (на самом деле острый угол вырезать проще, чем скруглённый).
мне не уточнили всех тонкостей, просто попросили сделать острые углы круглыми. Там фреза или нож, я не знаю точно, режут тонкий пластик. На острых углах получался брак.
 

Gadalka

R.I.P.
Сообщения
2 530
Реакции
869

_MBK_

Пикирующий бомбардировщик
15 лет на форуме
Сообщения
33 235
Реакции
10 852
Чтобы доказать Анечке, что я добрый и пушистый, демонстрирую аттракцион невиданной щедрости:
Код:
if ( app.documents.length > 0 ) {
 
 if ((!app.selection.length) || (app.selection[0].typename!="PathItem"))
 {
   alert("No path selected!");
 } else
  {
     var pi=app.selection[0];
     for (var i=0;i<pi.pathPoints.length;i++)
     {
       pi.pathPoints[i].selected=PathPointSelection.NOSELECTION;;
      }
   
     for (var i=0;i<pi.pathPoints.length;i++)
     {
       var pp=pi.pathPoints[i];
     
       var xa=pp.anchor[0];
       var ya=pp.anchor[1];
       var xb=pp.leftDirection[0];
       var yb=pp.leftDirection[1];
       if ((xa==xb) && (ya==yb))
       {
         if (i>0)
         {
           xb=pi.pathPoints[i-1].anchor[0];
           yb=pi.pathPoints[i-1].anchor[1];
         } else
         {
           xb=pi.pathPoints[pi.pathPoints.length-1].anchor[0];
           yb=pi.pathPoints[pi.pathPoints.length-1].anchor[1];
         }

       }
       var xc=pp.rightDirection[0];
       var yc=pp.rightDirection[1];
       if ((xa==xc) && (ya==yc))
       {
         if (i<pi.pathPoints.length-1)
         {
           xc=pi.pathPoints[i+1].anchor[0];
           yc=pi.pathPoints[i+1].anchor[1];
         } else
         {
           xc=pi.pathPoints[0].anchor[0];
           yc=pi.pathPoints[0].anchor[1];
         }

       }
       var cosalpha=Math.abs(((xb-xa)*(xc-xa)+(yb-ya)*(yc-ya))/
 (Math.sqrt(((xb-xa)*(xb-xa)+(yb-ya)*(yb-ya))*((xc-xa)*(xc-xa)+(yc-ya)*(yc-ya)))));
      // alert(cosalpha);
       if (cosalpha>0.93969262)  // cos (20 grad)
       {
         pp.selected=PathPointSelection.ANCHORPOINT;
       } else
       {
 //        pp.selected=PathPointSelection.NOSELECTION;
       }

     }
  }
} else alert("No document!");
Данный скрипт выделяет все черезчур острые углы выделенного объекта (острее 20 градусов, константу можно переставить на свое усмотрение)
Скруглить выделенные данным скриптом углы можно, например, вот этим скриптом.
 

Linxy

Девушка с битой
10 лет на форуме
Сообщения
2 277
Реакции
3 836
Статус
Закрыто для дальнейших ответов.