0
点赞
收藏
分享

微信扫一扫

illustrator插件--常用功能开发--删除所选锚点--js脚本开发--AI插件

Go_Viola 2022-02-15 阅读 61

  illustrator是矢量编辑软件,画板是绘制处理的重要容器,在印刷方面的一个重要功能就是删除所选锚点,开发一个删除所选锚点功能,以下功能仅用于学习交流,请勿用于非法用途和商业用途,源代码如下所示:

var PMSLibs = confirm("此脚本用于删除所选锚点\n用自由选择工具选择要删除的锚点并运行本脚本\n脚本会删除所选锚点并连接所选锚点两端的锚点\n\插件定制,手机微信:18928899728");

main();
function main(){
  if(documents.length < 1) return;

  var s = activeDocument.selection;
  if(!(s instanceof Array) || s.length < 1) return;

  var pathes = [];
  extractPathes(s, 0, pathes);

  var p, j;
  for(var i = pathes.length - 1; i >= 0; i--){
    p = pathes[i].pathPoints;
    for(j = p.length - 1; j >= 0; j--){
      if(isSelected(p[j])){
        if(p.length < 2) break;
        p[j].remove();
      }
    }
    if(p.length < 2 && isSelected(p[0])) pathes[i].remove();
  }
  redraw();
}

// ----------------------------------------------
function isSelected(p){ // PathPoint
  return p.selected == PathPointSelection.ANCHORPOINT;
}

// --------------------------------------
function extractPathes(s, pp_length_limit, pathes){
  for(var i = 0; i < s.length; i++){
    if(s[i].typename == "PathItem"){

      if(pp_length_limit > 0
         && s[i].pathPoints.length <= pp_length_limit) continue;
      pathes.push( s[i] );

    } else if(s[i].typename == "GroupItem"){
      extractPathes( s[i].pageItems, pp_length_limit, pathes);

    } else if(s[i].typename == "CompoundPathItem"){
      extractPathes( s[i].pathItems, pp_length_limit, pathes);
    }
  }
}

  合理的脚本代码可以有效的提高工作效率,减少重复劳动。

  欢迎光临知了软件开发网络平台,本公司定制开发各类软件,主要方向为桌面专业软件开发和插件定制开发,桌面软件主要包括文字图形识别类软件,信息管理类软件,3D打印类软件,视频类软件以及其它涉及专业的各类图形图像处理软件。插件包含AE插件,AI插件,PS插件,PDF插件,3DMAX插件以及Word,Excel等Office插件开发。详情请咨询,微信QQ:312117271,手机:18928899728. 公司网址:http://www.zhiliaos.com

举报

相关推荐

0 条评论