illustrator插件--常用功能开发--生成出血线--js脚本开发--AI插件--动作--菜单

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

var doc = app.activeDocument;
var u = Number("");
var arrGi = new Array(0);
var ab = doc.artboards;
var abIndex = "";
var arrAb = [];
var blValue = "";
var jsFilePath = new File($.fileName);
var jsFolderPath = jsFilePath.parent.fsName;
var jsfileNameExt = jsFilePath.fsName.slice(jsFolderPath.length + 1, jsFilePath.fsName.length);
var jsfileName = jsFilePath.fsName.slice(jsFolderPath.length + 1, jsFilePath.fsName.length - 4);
var f = new File(jsFolderPath + "/" + jsfileName + ".cjt");
f.hidden = false;
f.encoding = "UTF-8";
f.open("r");
var result = f.read();
var arr1 = new Array(0);
arr1 = result.split("*");
f.close();
f.hidden = true;
if (doc.selection.length == 0)
{
    alert("请选取刀线");
}
else
{
    if (doc.selection.length > 0)
    {
        var win = new Window("dialog", "刀线生成出血线", undefined,
        {
closeButton: false
        });
        win.alignment = ["fill", "fill"];
        var giIcon = win.add("group");
        giIcon.orientation = "row";
        giIcon.alignment = "center";
        var abIcon = "?PNG\r\n�\n\rIHDR���+v���tEXtSoftwareAdobe ImageReadyqée<�?IDATxú?U?o�E�tüc?Tμ?nò′Na�ò?4
                     \nwS¤&$U ?
                     �4�Q5�\"?? Q\t$B?� ??��RsB�RA?(�P?KI??l�i�?èaE′`?L?¨5N?í??cgwy??&\n?qàIogf?ì÷?yó??\r5?n·??aè?m±tùl6?�U×???-μU3x???Cd�t???�???a?+`é�jJyAR??úy?o£yeatww÷?ììLê?&n÷`Z8�Y?�G?I?O�?3μμ?`??!'\t ? � ? °Ca8n¨ ? üù ?? % Mó ? ��zDúd ?? àssà ? �lìx ? ��'-fì±ˉ?�We\"3¢ ùù?�?küéayvAe �??�?ó???y?�?�??�?ì?$3
                     ? i / ? ági ?? �ò ? v′ ?? ? % ?? ` | C ? e ? � ? Lμ ?? ��e′b ? �iù3a ? 13[ì ? h ? | ? � ? °0 ? ¢° ? k8 ? ^�ójR, 3·àg� ? < ° ?? ?
                                é�Dqu�c ?? ? CAN ?? k ? h ? 3C6 ?? Eó ? ú�1Fêê ? vX ? N ?? c� ? � >? ]$rMìn\nuc\r ?
                     a ? b� ? y�) ? 2ˉtB ? ±±±X(� ? �úu3e*úT� ? 6� ?? è ?? � ? �&p12z ? è ? uíte$� ?? � ? � | � ?? ?? ? ha / àDY ? Váy ? k\\�í§ ?; pM ?? � ? á�3�k ? ·\\ ? E ?? á ? 0�é ? � ?? êo ? uvba� ?? ?? & ? ¢ ?? Ge_ ? ó / ? C× ? _ST ?? _ = u * VQr ?; �t9x ?? + ? e ??
    } ? � ? eE ? �ü�O < �gàê ? ��j ?? aa
    �£T ? G~ ? kà ? W÷ ? f | {Uà§� ?? ? q�;
                                 ·. | ¨ ? ('?ú???ü??TDF�h�áDZà?èNdó�~Ox±×?
                                         o ? �oZ� ? x ? Dáé�� ? · ?? ? | 6y ? 2 ?? ? 2íb ?? ° ? #± ? Js ? 4Eú\rédPQa > ò��0oB1 / ? × ? 1IEND ? B` ? ";
                                         var img1 = giIcon.add("image", undefined, abIcon);
                                         img1.alignment = "center";
                                         var st1 = giIcon.add("statictext", undefined, "刀线生成出血线");
                                         var spacePan1 = win.add("panel", [0, 0, 0, 4], "");
                                         spacePan1.alignment = "fill";
                                         var gi4 = win.add("group");
                                         gi4.alignment = "left";
                                         var st41 = gi4.add("statictext", undefined, "对象:");
                                         var ddl41 = gi4.add("dropdownlist", undefined, [" 将全部选取视为整体一次处理", " 将选取以编组为对象分别处理"]);
                                         ddl41.selection = arr1[0];
                                         if (ddl41.selection == "")
{
    ddl41.selection = 0;
}
var gi2 = win.add("group");
          gi2.alignment = "left";
          var imgBleed = "?PNG\r\n�\n\rIHDR���1J??�tEXtSoftwareAdobe ImageReadyqée<�?IDATxúì?;n?@�?�#D��V�ZZ:Z(?���?�e8�ün?n¤��q�ì�?*@? 2~Xú ? 0��í &Dí� ? ? ¨ ?? b, ? d�F ?? ?? -~6cyg ?? éè ? (#êòh ?? \"??�`�F[W(?ò�???§\"??%�@2i�?ív|AI?tP6?üZ?μ/_D�×? �?L{.�??xò]???¢?|ó?\t?\\?\"�?°C§lJ?*�Ztà8Qioús?�kF£ú3·?$?N?I?|c?\r?$�?Wj\n?|r?J??′�?y�?¢?\tIe??2?÷�?g??8??'ü?7?�[,�?�`$Y?m?y9�IEND?B`?";
                                         var img21 = gi2.add("image", undefined, imgBleed);
                                         var st21 = gi2.add("statictext", undefined, "出血:");
                                         var et21 = gi2.add("edittext", [0, 0, 55, 23], arr1[1]);
                                         if (et21.text == "")
{
    et21.text = 3;
}
et21.active = true;
              var st52 = gi2.add("statictext", undefined, "粗细:");
              var et52 = gi2.add("edittext", [0, 0, 52, 23], arr1[13]);
              if (et52.text == "")
{
    et52.text = 0.1;
}
var gi3 = win.add("group");
          gi3.alignment = "left";
          var gi31 = gi3.add("group");
          gi31.orientation = "stack";
          var imgJoin1 = "?PNG\r\n�\n\rIHDR���1J??�tEXtSoftwareAdobe ImageReadyqée<�hIDATxúb```pa??à,@?áêê?aí?5′�!!!Lt�tμ?�?d}=�????$���?\r???f�è\"666���ò,SVtEo?@dQ}=i?}ù?àeù3�?~yú?e?í�é_???$�Bàà�L?`�_?~?0�d�?2??�3?~y�Có??2¨�??¨ü??±Z?í?7ó@v°P?o¢#\"±?���1���?�g?@^A>Vq?/~�1U-3·°à*~?t}0|ì2`�M?0�ˉˉè????�����.D�33c`°·?aù??��>~ü?!\t�'��>�y?�0� ?M\\ü�D?��f±àò?¥K?°?�C )BDBF??@|?�?\n??óTà)?%$^?é��0??�? ?à�ê-óe?\t|?�D!h`0?3oZ?*?988?KHHD?¢�/^0��üv??>�?Lcy?�??X' ? 52 ?? �\\_�μ�P - �OO@.�üTò ? � ?? à ? xàv ? - / ò�μ ? m - úT ?? ÷ ? �è ?? \r�ü~ ? é ? � ? �\nz�èt ? � ? 6�# ? 7 ?? ? 33 � ?? ? ��� ? �YN ? �{ˉ× ?? ¥óóéb±��� ^ ? : � ? �� ? h | � ? J¥ ?? xì ? òi ? é ? 8�]My~ ?? ? éN ?? ò\"T�í9on8Y1\\�gVv4[J?ùà???L|?
                                       aj�6ó ? �é�� ?? Ya ? j ? H ?? � >? ? �.y ?? B�8 : � ?? ? \r ? nu : H�jü &�U± ?? ?? ?? ? o ? èò�{ ? L(-� / eá ?? �\n
                                               °W* ? òù < ˉ¥Iú ? \"�N�WWúTìt¢>[jb????t�58emEF??{d�V?? ?ê§?88�?X3ùD8�6�?}??5?êdaêJ??????�?D??�q?\\3b±è^*7÷,??\t,S3�?r???ü|*}*�eA???�?j?,?íN33′????ò0??8?3??a?Y7�\r3?O>1?á??I_?ù�Rò_???S?�?|ìt÷?á′IEND?B`?";
                                               var img11 = gi1.add("image", undefined, imgThreshold);
                                               var st11 = gi1.add("statictext", undefined, "间隙闭合阈值:");
                                               var et11 = gi1.add("edittext", [0, 0, 45, 23], arr1[4]);
                                               if (et11.text == "")
{
    et11.text = 12;
}
et11.onChanging = function()
{
    if (ddl511.selection == 0 && et11.text > 25.4)
        {
            alert("设置已经超过软件默认值 25.4 mm (毫米)");
            et11.text = 12;
        }
        else if (ddl511.selection == 1 && et11.text > 1)
        {
            alert("设置已经超过软件默认值 1 inch (英寸)");
            et11.text = 0.47;
        }
        else
        {
            if (ddl511.selection == 2 && et11.text > 72)
            {
                alert("设置已经超过软件默认值 72 point (点)");
                et11.text = 34;
            }
        }
    };
    var st111 = gi1.add("statictext", undefined, arr1[22]);
                st111.text = "< = 25.4";
                var pan5 = win.add("panel", undefined, "其他选项");
                pan5.alignment = "fill";
                var gi51 = pan5.add("group");
                gi51.alignment = "left";
                var gi511 = gi51.add("group");
                gi511.orientation = "stack";
                var spotColorImg1 = "?PNG\r\n�\n\rIHDR�\r�?�ˉM�tEXtSoftwareAdobe ImageReadyqée<$PLTE?? ????```???
                                    ? @@@0005@x ? (0×� ? / @IDATxú | ?? ��D ?? ¤ ?? ? ¥aè ?? v | ? eDHtJ_ ?? ¢ ?? % P8�N�úír ? q~
                                                  } yéê{üíPW ? !àSê�\\ ? = ? £IEND ? B` ? ";
                                                          var img5111 = gi511.add("image", undefined, spotColorImg1);
                                                          var spotColorImg2 = "?PNG\r\n�\n\rIHDR\r\r�E5�N�tEXtSoftwareAdobe ImageReadyqée<�PLTEyyy���[????>>>??????óà[p:IDATxú??A� �AZA??c!DàèT&i�3áê?+ú�u·¨òr′�§?T/f¥???$,?�`??�?�???IEND?B`?";
                                                          var img5112 = gi511.add("image", undefined, spotColorImg2);
                                                          var spotColorImg3 = "?PNG\r\n�\n\rIHDR\r\r�E5�N�tEXtSoftwareAdobe ImageReadyqée<'PLTE?ó?#=�@@@??;??????*>�???��   \t�����??Q�CIDATxút??��D?JHü?÷\n#??ogf�0��/ú?[�W}a???P\\�.?è?!#ê??1?§ìe'j?Nc\n0XZ�??á??IEND?B`?";
                                                          var img5113 = gi511.add("image", undefined, spotColorImg3);
                                                          var spotColorImg4 = "?PNG\r\n�\n\rIHDR\r\r�E5�N�tEXtSoftwareAdobe ImageReadyqée<-PLTE?????Ga???s?90<@@@??????   #1000��\t�?D?AIDATxú|??��E?BTü??*?4rf{u�′??×GdE??bxb8?@?(zcd?W2Sí�·?£μùó\t?�K?�x?Z?�IEND?B`?";
                                                          var img5114 = gi511.add("image", undefined, spotColorImg4);
                                                          img5111.visible = eval(arr1[6]);
                                                          img5112.visible = eval(arr1[7]);
                                                          img5113.visible = eval(arr1[8]);
                                                          img5114.visible = eval(arr1[9]);
                                                          if (img5111.visible == "" && img5112.visible == "" && img5113.visible == "" && img5114.visible == "")
{
    img5112.visible = true;
}
var st51 = gi51.add("statictext", undefined, "颜色:");
           var ddl51 = gi51.add("dropdownlist", undefined, ["蓝", "红", "绿", "紫"]);
           ddl51.selection = arr1[5];
           if (ddl51.selection == "")
{
    ddl51.selection = 1;
}
var st511 = gi51.add("statictext", undefined, "单位:");
            var ddl511 = gi51.add("dropdownlist", undefined, ["mm", "in", "pt"]);
            ddl511.selection = arr1[21];
            if (ddl511.selection == "")
{
    ddl511.selection = 0;
}
if (arr1[21] == 0)
{
    st111.text = "< = 25.4";
}
else if (arr1[21] == 1)
{
    st111.text = "< = 1";
}
else
{
    if (arr1[21] == 2)
        {
            st111.text = "< = 72";
        }
    }
    ddl51.onChange = function()
    {
        if (ddl51.selection == 0)
        {
            img5112.visible = img5113.visible = img5114.visible = false;
            img5111.visible = true;
        }
        else if (ddl51.selection == 1)
        {
            img5111.visible = img5113.visible = img5114.visible = false;
            img5112.visible = true;
        }
        else if (ddl51.selection == 2)
        {
            img5112.visible = img5111.visible = img5114.visible = false;
            img5113.visible = true;
        }
        else
        {
            if (ddl51.selection == 3)
            {
                img5112.visible = img5113.visible = img5111.visible = false;
                img5114.visible = true;
            }
        }
    };
    ddl511.onChange = function()
    {
        if (ddl511.selection == 0)
        {
            st111.text = "< = 25.4";
            et11.text = 12;
            if (et11.text > 25.4)
            {
                alert("设置已经超过软件默认值 25.4 mm");
                et11.text = 12;
                return false;
            }
        }
        else if (ddl511.selection == 1)
        {
            st111.text = "< = 1";
            et11.text = 0.47;
            if (et11.text > 1)
            {
                alert("设置已经超过软件默认值 1 inch");
                et11.text = 0.47;
                return false;
            }
        }
        else
        {
            if (ddl511.selection == 2)
            {
                st111.text = "< = 72";
                et11.text = 34;
                if (et11.text > 72)
                {
                    alert("设置已经超过软件默认值 72 point");
                    et11.text = 34;
                    return false;
                }
            }
        }
    };
    var gi53 = pan5.add("group");
               gi53.alignment = "left";
               var cb54 = gi53.add("checkbox", [0, 0, 90, 25], "叠印描边");
               cb54.value = eval(arr1[17]);
               if (cb54.value == "")
{
    cb54.value = true;
}
cb54.enabled = false;
               var cb51 = gi53.add("checkbox", undefined, "同时建立参考线");
               cb51.value = eval(arr1[14]);
               cb51.alignment = "left";
               var gi5 = pan5.add("group");
               gi5.alignment = "left";
               var cb52 = gi5.add("checkbox", [0, 0, 90, 25], "置于新图层");
               cb52.value = eval(arr1[15]);
               if (cb52.value == "")
{
    cb52.value = true;
}
var cb53 = gi5.add("checkbox", undefined, "移除旧出血图层");
           cb53.value = eval(arr1[16]);
           var gi55 = pan5.add("group");
           gi55.alignment = "left";
           var cb55 = gi55.add("checkbox", [0, 0, 150, 25], "画板适合出血边界");
           cb55.value = eval(arr1[20]);
           var spacePan2 = win.add("panel", [0, 0, undefined, 4], "");
           spacePan2.alignment = "fill";
           var info = win.add("button", undefined, "重要使用信息,请先点击阅览");
           info.onClick = function()
{
    alert("1. 本脚本适合同AutoCad软件建立之复杂、未闭合、断线且不规则形状的刀線。\n\n2. 若是一般自绘之簡易刀線,请直接使用软件提供的\"偏移路径\"菜单命令即可,以免耗费更多时间处理。\n\n3. 运行是以编组为对象,所以請事先将处理对象个别编组后再运行脚本。\n\n\n[ CPC中文印刷社区:calvin530126 ]");
    };
    var spacePan2 = win.add("panel", [0, 0, 0, 4], "");
                    spacePan2.alignment = "fill";
                    spacePan2.margins = 0;
                    var exeBtn = win.add("group");
                    exeBtn.alignment = "center";
                    var defaultBtn = exeBtn.add("button", [0, 0, 60, 28], "默认值");
    var okBtn = exeBtn.add("button", undefined, "运行", {
name: "ok"
    });
    var cancelBtn = exeBtn.add("button", [0, 0, 60, 28], "取消", {
name: "cancel"
    });
    var giSign = win.add("group");
    var cpcImg = "?PNG\r\n�\n\rIHDR(��d×=-�tEXtSoftwareAdobe ImageReadyqée<�?IDATxúìV?O�a��?ú??ù\n�?m?CY?\\l?�y?¤ü�[I??òxE?�@à`D��!h4áe¤aá.^@\"?
    ? �8l�° ? a#�Z� ?? ?? ¥ ? - ? � ? | ù ? {ío~ó ? ù\np ? - +ua^ ? ]� ? �������G� ?? §} ? �S ?? ??; a~:; ?? ?? s6 ?? g~ ? \t > f2� ?? .ütWˉTsE ? b ? ° ? ��D ?? : ? y\"?Tú\n?o�/\t?�?l�+++3¢�
    Be + � % pvv ?? �7� ?? êa * (++S ? í ? be�÷ ?? � ? X, ?? {
        ? i\t ? i ? 4pgo\r ? \"E??k??�ó|| ???a??3X,¢?μ?è�íí??G??�£HD�&?74?L§[?á?è�E??i.;!-�?÷T$p??ù??��±D-?Ot�?¤¤1?úZ@|é~���?ííoàè8???�0??X6�¢ubZ?p3P?<_ò�zo?@a?sL??!è|F?k2ù?>?,°?/??á\r2?hfN??`w8′9L%???á?�y~?7�?ˉG\"?F5?6k?B;,Zy0l�?×\nVY???o.>é&y)k�L&?�??Wó�0?�Y?òòrD[?qM5\n��??$é???££ú�ó|@?=??xSül�{hn?á�?à¥?��]:�?dT0?ECìD£Qè??×?H�¨30T?d÷?`AI?::ò:B?!m?±y??Q�???áKa\t?-,(?g$�?i/�8,�úêz?cU-T??�??úU�??��u??i�^?]??�(?||/n?,?�????:?C�P �? êP5é `¨ˉ?n?ò??�S?Ràp]D�?8u??I�F??.?l�à¤è·\n???\n¤ˉ?;é}?.m�?.�K??�8?á??óê??B?··\t�?ˉ?1?ú�K£???T�Tli!\r\n8'?f�¥A-?�£�ˉ�ìY[-eì??pWjV??¢a??ê??d?êìv0?1ì°?ˉ?mR_�f?>?ˉ?μ�e�k4�\rμ?�ìò4è?\"÷e?�?μêz%?(μ�TBà??}S??ct>A?KyR?¨xh??&3zO�¥l 7w?'&××�??ó???£¤?1GO?ì?{@§X??T?\t(?£&?NO�5fj?$\r�?ò ?]??32\\ab}?W??4?!u?6�?+??�°/z�,N?y�` ?2???oèIEND?B`?";
        var imgSign = giSign.add("image", undefined, cpcImg);
        var stSign = giSign.add("statictext", undefined, "CPC中文印刷社区");
        var stSign2 = win.add("statictext", undefined, "by calvin530126(#CJJS011S)");
        defaultBtn.onClick = function()
        {
            ddl41.selection = 0;
            et21.text = "3";
            ddl31.selection = 1;
            et22.text = "10";
            et11.text = "12";
            ddl51.selection = 1;
            img5111.visible = img5113.visible = img5114.visible = false;
            img5112.visible = true;
            img312.visible = true;
            img311.visible = false;
            img313.visible = false;
            et52.text = "0.1";
            cb51.value = cb52.value = cb55.value = cb53.value = false;
            cb54.value = true;
            ddl511.selection = 0;
            st111.text = "< = 25.4";
            cb52.value = true;
        };
        okBtn.onClick = function()
        {
            blValue = 0;
            DoAction_DisableRemenberPasteLayer160408();
            app.redraw();
            ClearErrorActionFile();
            if (cb52.value == false && ddl41.selection == 1)
            {
                blValue = 1;
                DoAction_DisableRemenberPasteLayer160408();
            }
            else
            {
                blValue = 0;
                DoAction_DisableRemenberPasteLayer160408();
            }
            var result21 = et21.text.match( / [ ^ 0 - 9, .] / g);
            var result22 = et22.text.match( / [ ^ 0 - 9, .] / g);
            var result23 = et11.text.match( / [ ^ 0 - 9, .] / g);
            var result24 = et52.text.match( / [ ^ 0 - 9, .] / g);
            if (result21 != null || result22 != null || result23 != null || result24 != null)
            {
                alert("请勿输入非数字字符或正负值");
                return false;
            }
            if (et21.text == "0" || et22.text == "0" || et11.text == "0" || et52.text == "0")
            {
                alert("请勿输入无意义的\"0\"值");
                return false;
            }
            if (et21.text == "" || et22.text == "" || et11.text == "" || et52.text == "")
            {
                alert("请勿输入无意义的空值");
                return false;
            }
            else
            {
                var f = new File(jsFolderPath + "/" + jsfileName + ".cjt");
                f.hidden = false;
                f.encoding = "UTF-8";
                f.open("w");
                f.write(ddl41.selection + "*");
                f.write(et21.text + "*");
                f.write(ddl31.selection + "*");
                f.write(et22.text + "*");
                f.write(et11.text + "*");
                f.write(ddl51.selection + "*");
                f.write(img5111.visible + "*");
                f.write(img5112.visible + "*");
                f.write(img5113.visible + "*");
                f.write(img5114.visible + "*");
                f.write(img311.visible + "*");
                f.write(img312.visible + "*");
                f.write(img313.visible + "*");
                f.write(et52.text + "*");
                f.write(cb51.value + "*");
                f.write(cb52.value + "*");
                f.write(cb53.value + "*");
                f.write(cb54.value + "*");
                f.write(st23.enabled + "*");
                f.write(et22.enabled + "*");
                f.write(cb55.value + "*");
                f.write(ddl511.selection + "*");
                f.write(st111.text + "*");
                f.close();
                f.hidden = true;
                var colorForAction = new CMYKColor();
                if (ddl51.selection == 0)
                {
                    colorForAction.magenta = colorForAction.black = colorForAction.yellow = 0;
                    colorForAction.cyan = 100;
                }
                else if (ddl51.selection == 1)
                {
                    colorForAction.cyan = colorForAction.black = 0;
                    colorForAction.yellow = colorForAction.magenta = 100;
                }
                else if (ddl51.selection == 2)
                {
                    colorForAction.black = colorForAction.magenta = 0;
                    colorForAction.cyan = 50;
                    colorForAction.yellow = 100;
                }
                else
                {
                    if (ddl51.selection == 3)
                    {
                        colorForAction.black = colorForAction.yellow = 0;
                        colorForAction.cyan = 60;
                        colorForAction.magenta = 100;
                    }
                }
                var newGlobalColor = doc.spots.add();
                newGlobalColor.colorType = ColorModel.SPOT;
                newGlobalColor.color = colorForAction;
                for (a = doc.swatches.length - 1; a >= 0; a--)
                {
                    if (doc.swatches[a].name == "ColorForAction")
                    {
                        doc.swatches[a].remove();
                    }
                }
                newGlobalColor.name = "ColorForAction";
                if (cb53.value == true)
                {
                    for (j = doc.layers.length - 1; j >= 0; j--)
                    {
                        if (doc.layers[j].name == "BleedLayer")
                        {
                            doc.layers[j].remove();
                        }
                    }
                }
                if (cb52.value == true)
                {
                    var bleedLayer = doc.layers.add();
                    bleedLayer.name = "BleedLayer";
                }
                if (ddl511.selection == 0)
                {
                    u = Number(2.834646);
                }
                else if (ddl511.selection == 1)
                {
                    u = Number(72.000001);
                }
                else
                {
                    if (ddl511.selection == 2)
                    {
                        u = Number(1.000001);
                    }
                }
                if (ddl41.selection == 0)
                {
                    app.executeMenuCommand("copy");
                    doc.selection = null;
                    if (cb52.value == true)
                    {
                        doc.activeLayer = doc.layers.BleedLayer || doc.activeLayer = doc.layers[0];
                    }
                    app.executeMenuCommand("pasteFront");
                    if (cb55.value == true)
                    {
                        getAllAbOfSelection();
                    }
                    main();
                    app.redraw();
                    if (arrAb.length > 1 && cb55.value == true)
                    {
                        var retainAbName = ab[abIndex].name;
                        for (n = ab.length - 1; n >= 0; n--)
                        {
                            for (var m = 0; m < arrAb.length; m += 1)
                            {
                                if (ab[n].name == arrAb[m] && ab[n].name != retainAbName)
                                {
                                    ab[n].remove();
                                }
                            }
                        }
                    }
                    doc.selection = null;
                    win.close();
                }
                else
                {
                    if (ddl41.selection == 1)
                    {
                        if (cb52.value == true)
                        {
                            app.executeMenuCommand("copy");
                            doc.selection = null;
                            doc.activeLayer = doc.layers.BleedLayer || doc.activeLayer = doc.layers[0];
                            app.executeMenuCommand("pasteFront");
                        }
                        else
                        {
                            if (cb52.value == false)
                            {
                                app.executeMenuCommand("copy");
                                doc.selection = null;
                                app.executeMenuCommand("pasteFront");
                            }
                        }
                        for (var i = 0; i < doc.selection.length; i += 1)
                        {
                            arrGi.push(doc.selection[i]);
                        }
                        doc.selection = null;
                        for (var j = 0; j < arrGi.length; j += 1)
                        {
                            arrGi[j].selected = true;
                            main();
                            doc.selection = null;
                            app.redraw();
                            win.update();
                        }
                    }
                }
                win.close();
            }
            blValue = 0;
            DoAction_DisableRemenberPasteLayer160408();
        };
        win.center();
        win.show();
    }
                                 }

    function main()
    {
        app.executeMenuCommand("ungroup");
        app.executeMenuCommand("ungroup");
        app.redraw();
        app.executeMenuCommand("ungroup");
        app.executeMenuCommand("ungroup");
        app.redraw();
        app.executeMenuCommand("ungroup");
        app.executeMenuCommand("ungroup");
        app.redraw();
        app.executeMenuCommand("noCompoundPath");
        app.executeMenuCommand("noCompoundPath");
        app.redraw();
        for (var i = 0; i < doc.selection.length; i += 1)
        {
            doc.selection[i].filled = false;
            doc.selection[i].stroked = false;
        }
        app.executeMenuCommand("group");
        ClosePathStep1_1();
        app.redraw();
        doc.activeLayer.pageItems[0].selected = true;
        ClosePathStep1_2();
        app.redraw();
        doc.activeLayer.pageItems[0].selected = true;
        ClosePathStep2();
        app.redraw();
        doc.activeLayer.pageItems[0].selected = true;
        ClosePathStep3();
        app.redraw();
        app.executeMenuCommand("ungroup");
        app.executeMenuCommand("ungroup");
        app.executeMenuCommand("ungroup");
        app.executeMenuCommand("ungroup");
        app.executeMenuCommand("ungroup");
        app.executeMenuCommand("ungroup");
        app.executeMenuCommand("ungroup");
        app.executeMenuCommand("ungroup");
        app.executeMenuCommand("ungroup");
        for (i = doc.selection.length - 1; i >= 0; i--)
        {
            if (doc.selection[i].filled == false)
            {
                doc.selection[i].remove();
            }
        }
        app.executeMenuCommand("group");
        app.executeMenuCommand("Live Pathfinder Divide");
        app.executeMenuCommand("Live Pathfinder Add");
        app.executeMenuCommand("expandStyle");
        app.executeMenuCommand("ungroup");
        app.executeMenuCommand("ungroup");
        for (var i = 0; i < doc.selection.length; i += 1)
        {
            doc.selection[i].filled = false;
            doc.selection[i].stroked = true;
            doc.selection[i].strokeColor = doc.swatches.ColorForAction.color;
            doc.selection[i].strokeWidth = et21.text * 2 * u;
            if (ddl31.selection == 0)
            {
                doc.selection[i].strokeCap = StrokeCap.BUTTENDCAP;
                doc.selection[i].strokeJoin = StrokeJoin.MITERENDJOIN;
                doc.selection[i].strokeMiterLimit = Number(et22.text);
            }
            else if (ddl31.selection == 1)
            {
                doc.selection[i].strokeCap = StrokeCap.ROUNDENDCAP;
                doc.selection[i].strokeJoin = StrokeJoin.ROUNDENDJOIN;
            }
            else
            {
                if (ddl31.selection == 2)
                {
                    doc.selection[i].strokeCap = StrokeCap.PROJECTINGENDCAP;
                    doc.selection[i].strokeJoin = StrokeJoin.BEVELENDJOIN;
                }
            }
            doc.selection[i].strokeDashes = [];
            doc.selection[i].strokeOverprint = true;
            doc.selection[i].fillColor = NoColor;
        }
        app.executeMenuCommand("group");
        app.executeMenuCommand("OffsetPath v22");
        app.executeMenuCommand("Live Pathfinder Divide");
        app.executeMenuCommand("Live Pathfinder Add");
        app.executeMenuCommand("expandStyle");
        app.executeMenuCommand("noCompoundPath");
        app.executeMenuCommand("Live Pathfinder Divide");
        app.executeMenuCommand("Live Pathfinder Add");
        app.executeMenuCommand("expandStyle");
        app.executeMenuCommand("ungroup");
        app.redraw();
        for (var i = 0; i < doc.selection.length; i += 1)
        {
            doc.selection[i].filled = false;
            doc.selection[i].stroked = true;
            doc.selection[i].strokeColor = doc.swatches.ColorForAction.color;
            doc.selection[i].strokeWidth = et52.text * u;
            doc.selection[i].strokeDashes = [];
            doc.selection[i].strokeOverprint = true;
            doc.selection[i].fillColor = NoColor;
        }
        app.executeMenuCommand("group");
        app.executeMenuCommand("sendToBack");
        app.executeMenuCommand("copy");
        doc.selection = null;
        if (cb51.value == true || cb55.value == true)
        {
            blValue = 1;
            app.executeMenuCommand("pasteBack");
            app.executeMenuCommand("ungroup");
            app.executeMenuCommand("ungroup");
            app.redraw();
            app.executeMenuCommand("ungroup");
            app.executeMenuCommand("ungroup");
            app.redraw();
            app.executeMenuCommand("ungroup");
            app.executeMenuCommand("ungroup");
            app.redraw();
            app.executeMenuCommand("noCompoundPath");
            app.executeMenuCommand("noCompoundPath");
            app.redraw();
            if (cb51.value == true)
            {
                for (var k = 0; k < doc.selection.length; k += 1)
                {
                    doc.selection[k].filled = doc.selection[k].stroked = false;
                    doc.selection[k].guides = true;
                }
                app.executeMenuCommand("group");
                if (cb55.value == true)
                {
                    app.executeMenuCommand("copy");
                    doc.selection = null;
                    app.executeMenuCommand("pasteBack");
                    app.executeMenuCommand("releaseguide");
                }
            }
            else
            {
                for (var k = 0; k < doc.selection.length; k += 1)
                {
                    doc.selection[k].filled = doc.selection[k].stroked = false;
                }
                app.executeMenuCommand("group");
            }
            if (cb55.value == true)
            {
                getAbIndexOfSelectAndFit();
            }
        }
    }

    function ClosePathStep1_1()
    {
        var set = "Set_ClosePath1_1";
        var action1 = "Action_ClosePath1_1";
        var actionStr1 = ["/version 3", "/name [ 16", "5365745f436c6f736550617468315f31", "]", "/isOpen 1", "/actionCount 1", "/action-1 {", "/name [ 19", "416374696f6e5f436c6f736550617468315f31", "]", "/keyIndex 0", "/colorIndex 0", "/isOpen 1", "/eventCount 1", "/event-1 {", "/useRulersIn1stQuadrant 0", "/internalName (ai_plugin_planetx)", "/localizedName [ 12", "e5ae9ee697b6e4b88ae889b2", "]", "/isOpen 0", "/isOn 1", "/hasDialog 0", "/parameterCount 1", "/parameter-1 {", "/key 1835363957", "/showInPalette -1", "/type (enumerated)", "/name [ 6", "e5bbbae7ab8b", "]", "/value 1", "}", "}", "}"].join("\n");
        createAction(actionStr1, set);
        app.loadAction(f1_1);
        f1_1.remove();
        app.doScript(action1, set);
        app.unloadAction(set, "");

        function createAction(act, set)
        {
            f1_1 = new File("~/Desktop/" + set + ".aia");
            f1_1.open("w");
            f1_1.write(act);
            f1_1.close();
            f1_1.hidden = true;
        }
    }

    function ClosePathStep1_2()
    {
        var set = "Set_ClosePath1_2";
        var action1 = "Action_ClosePath1_2";
        var actionStr1 = ["/version 3", "/name [ 16", "5365745f436c6f736550617468315f32", "]", "/isOpen 1", "/actionCount 1", "/action-1 {", "/name [ 19", "416374696f6e5f436c6f736550617468315f32", "]", "/keyIndex 0", "/colorIndex 0", "/isOpen 1", "/eventCount 1", "/event-1 {", "/useRulersIn1stQuadrant 0", "/internalName (ai_plugin_planetx)", "/localizedName [ 12", "e5ae9ee697b6e4b88ae889b2", "]", "/isOpen 0", "/isOn 1", "/hasDialog 1", "/showDialog 0", "/parameterCount 3", "/parameter-1 {", "/key 1835363957", "/showInPalette -1", "/type (enumerated)", "/name [ 6", "e98089e9a1b9", "]", "/value 4", "}", "/parameter-2 {", "/key 1734632308", "/showInPalette -1", "/type (boolean)", "/value 1", "}", "/parameter-3 {", "/key 1735616890", "/showInPalette -1", "/type (unit real)", "/value " + (et11.text * u), "/unit 592476268", "}", "}", "}"].join("\n");
        createAction(actionStr1, set);
        app.loadAction(f1_2);
        f1_2.remove();
        app.doScript(action1, set);
        app.unloadAction(set, "");

        function createAction(act, set)
        {
            f1_2 = new File("~/Desktop/" + set + ".aia");
            f1_2.open("w");
            f1_2.write(act);
            f1_2.close();
            f1_2.hidden = true;
        }
    }

    function ClosePathStep2()
    {
        var set = "Set_ClosePath2";
        var action1 = "Action_ClosePath2";
        var actionStr1 = ["/version 3", "/name [ 14", "5365745f436c6f73655061746832", "]", "/isOpen 1", "/actionCount 1", "/action-1 {", "/name [ 17", "416374696f6e5f436c6f73655061746832", "]", "/keyIndex 0", "/colorIndex 0", "/isOpen 1", "/eventCount 2", "/event-1 {", "/useRulersIn1stQuadrant 0", "/internalName (ai_plugin_setColor)", "/localizedName [ 12", "e8aebee7bdaee9a29ce889b2", "]", "/isOpen 0", "/isOn 1", "/hasDialog 0", "/parameterCount 2", "/parameter-1 {", "/key 1768186740", "/showInPalette -1", "/type (ustring)", "/value [ 12", "e5a1abe58585e9a29ce889b2", "]", "}", "/parameter-2 {", "/key 1718185068", "/showInPalette -1", "/type (boolean)", "/value 1", "}", "}", "/event-2 {", "/useRulersIn1stQuadrant 0", "/internalName (ai_plugin_swatches)", "/localizedName [ 6", "e889b2e69dbf", "]", "/isOpen 0", "/isOn 1", "/hasDialog 0", "/parameterCount 1", "/parameter-1 {", "/key 1937204072", "/showInPalette -1", "/type (ustring)", "/value [ 14", "436f6c6f72466f72416374696f6e", "]", "}", "}", "}"].join("\n");
        createAction(actionStr1, set);
        app.loadAction(f2);
        f2.remove();
        app.doScript(action1, set);
        app.unloadAction(set, "");

        function createAction(act, set)
        {
            f2 = new File("~/Desktop/" + set + ".aia");
            f2.open("w");
            f2.write(act);
            f2.close();
            f2.hidden = true;
        }
    }

    function ClosePathStep3()
    {
        var set = "Set_ClosePath3";
        var action1 = "Action_ClosePath3";
        var actionStr1 = ["/version 3", "/name [ 14", "5365745f436c6f73655061746833", "]", "/isOpen 1", "/actionCount 1", "/action-1 {", "/name [ 17", "416374696f6e5f436c6f73655061746833", "]", "/keyIndex 0", "/colorIndex 0", "/isOpen 1", "/eventCount 1", "/event-1 {", "/useRulersIn1stQuadrant 0", "/internalName (ai_plugin_planetx)", "/localizedName [ 12", "e5ae9ee697b6e4b88ae889b2", "]", "/isOpen 0", "/isOn 1", "/hasDialog 0", "/parameterCount 1", "/parameter-1 {", "/key 1835363957", "/showInPalette -1", "/type (enumerated)", "/name [ 6", "e689a9e5b195", "]", "/value 3", "}", "}", "}"].join("\n");
        createAction(actionStr1, set);
        app.loadAction(f3);
        f3.remove();
        app.doScript(action1, set);
        app.unloadAction(set, "");

        function createAction(act, set)
        {
            f3 = new File("~/Desktop/" + set + ".aia");
            f3.open("w");
            f3.write(act);
            f3.close();
            f3.hidden = true;
        }
    }

    function ClearErrorActionFile()
    {
        var newFolder = Folder.desktop;
        var newFiles = newFolder.getFiles("*.aia");
        for (i = newFiles.length - 1; i >= 0; i--)
        {
            if (newFiles[i].displayName.search("Set_ClosePath") != -1 || newFiles[i].displayName.search("Set_DisableRemenberPasteLayer160408") != -1)
            {
                newFiles[i].remove();
            }
        }
    }

    function DoAction_DisableRemenberPasteLayer160408()
    {
        var set = "Set_DisableRemenberPasteLayer160408";
        var action = "Action_DisableRemenberPasteLayer160408";
        var actionStr = ["/version 3", "/name [ 35", "5365745f44697361626c6552656d656e62657250617374654c61796572313630", "343038", "]", "/isOpen 1", "/actionCount 1", "/action-1 {", "/name [ 38", "416374696f6e5f44697361626c6552656d656e62657250617374654c61796572", "313630343038", "]", "/keyIndex 0", "/colorIndex 0", "/isOpen 1", "/eventCount 1", "/event-1 {", "/useRulersIn1stQuadrant 0", "/internalName (ai_plugin_Layer)", "/localizedName [ 6", "e59bbee5b182", "]", "/isOpen 0", "/isOn 1", "/hasDialog 0", "/parameterCount 3", "/parameter-1 {", "/key 1836411236", "/showInPalette -1", "/type (integer)", "/value 11", "}", "/parameter-2 {", "/key 1953458028", "/showInPalette -1", "/type (boolean)", "/value " + blValue, "}", "/parameter-3 {", "/key 1851878757", "/showInPalette -1", "/type (ustring)", "/value [ 15", "e7b298e8b4b4e697b6e8aeb0e4bd8f", "]", "}", "}", "}"].join("\n");
        createAction(actionStr, set);
        app.loadAction(f5);
        f5.remove();
        app.doScript(action, set);
        app.unloadAction(set, "");

        function createAction(act, set)
        {
            f5 = new File("~/Desktop/" + set + ".aia");
            f5.open("w");
            f5.write(act);
            f5.close();
            f5.hidden = true;
        }
    }

    function getAbIndexOfSelectAndFit()
    {
        app.redraw();
        var sel = doc.selection;
        var obj = sel[0];
        var arrSel = [];
        app.userInteractionLevel = UserInteractionLevel.DISPLAYALERTS;
        for (var i = 0; i < ab.length; i += 1)
        {
            ab.setActiveArtboardIndex(i);
            doc.selectObjectsOnActiveArtboard();
            if (obj.selected == true)
            {
                abIndex = i;
                arrSel.push(obj);
            }
        }
        doc.selection = null;
        arrSel[0].selected = true;
        doc.fitArtboardToSelectedArt(abIndex);
        doc.selection[0].remove();
    }

    function getAllAbOfSelection()
    {
        var arrSel = [];
        var sel = doc.selection;
        for (var j = 0; j < sel.length; j += 1)
        {
            arrSel.push(sel[j]);
        }
        doc.selection = null;
        for (var m = 0; m < arrSel.length; m += 1)
        {
            arrSel[m].selected = true;
            app.redraw();
            for (var i = 0; i < ab.length; i += 1)
            {
                doc.artboards.setActiveArtboardIndex(i);
                doc.selectObjectsOnActiveArtboard();
                if (arrSel[m].selected == true)
                {
                    arrAb.push(ab[i].name);
                }
            }
            doc.selection = null;
        }
        for (var m = 0; m < arrSel.length; m += 1)
        {
            arrSel[m].selected = true;
        }
    }

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

文章引用至 作者知了-联系方式1

文章引用至 作者知了-联系方式2

你可能感兴趣的:(illustrator插件--常用功能开发--生成出血线--js脚本开发--AI插件--动作--菜单)