团子 发表于 2019-12-16 19:03:55

AI自动新建画板

在AI里面新建画板是一件很恼火的事 需要自己手动去点击新建 对于我们做包装的来说 当一个文档有多款盒子的时候 需要做成多页的PDF就需要新建多个画板 但是用手点确实有点麻烦 自己研究了一个AI自动创建画板的动作 选中任何图形 都可以为它新建一个画板你们可以为这个动作赋予一个快捷键 每次使用快捷键就能新建 (AI自动新建画板动作版权:逆旅行人:lol)

sixuncle 发表于 2019-12-16 23:08:58

只针对图形吗?文字、图片、曲线支持否?

印刷人 发表于 2019-12-17 07:15:27

你这个和AI选择对象创建画板--支持蒙版,有什么区别呢?

团子 发表于 2019-12-17 08:01:43

sixuncle 发表于 2019-12-16 23:08
只针对图形吗?文字、图片、曲线支持否?

经过亲测 文字对象(未转曲) 图片 蒙版对象 曲线等均可为其新建画板

团子 发表于 2019-12-17 08:03:19

印刷人 发表于 2019-12-17 07:15
你这个和AI选择对象创建画板--支持蒙版,有什么区别呢?

AI里面自带的转为画板只能把矩形转为画板 圆形 多边形 异型等均不可以转为画板

印刷人 发表于 2019-12-17 08:05:21

本帖最后由 印刷人 于 2019-12-17 08:06 编辑

团子 发表于 2019-12-17 08:03
AI里面自带的转为画板只能把矩形转为画板 圆形 多边形 异型等均不可以转为画板 ...
AI选择对象创建画板--支持蒙版,也是个脚本文件。。。。。。。。

var doc = app.activeDocument;
var theSelect = doc.selection;

var objGBCheck = false; //几何边界与可视边界 切换 //true //false
var addLayerCheck = false; //是否新建图层
var addColorCheck = false; //边框是否填色
var layName = "边框图层"; //新建的图层名称

if (theSelect.length > 0) {
        for (i = 0; i < theSelect.length; i++) { //批处理多个选择物体
                var bound = NO_CLIP_BOUNDS(theSelect);
                var left = bound; //左
                var tops = bound; //上
                var width = bound - bound; //宽
                var height = bound - bound; //高
                if (addLayerCheck == true) {
                        try {
                        var newLayer = doc.layers; //查找图层
                        newLayer.locked = false;
                        newLayer.visible = true;
                } catch(err) {
                        var newLayer = doc.layers.add();//新建图层
                        newLayer.name = layName;
                }
                        var rect = newLayer.pathItems.rectangle(tops, left, width, height); //创建边框
                } else {
                        var rect = doc.activeLayer.pathItems.rectangle(tops, left, width, height); //创建边框
                }

                var newColor = new CMYKColor(); //创建 CMYK 颜色
                        newColor.cyan = 0;
                        newColor.magenta = 0;
                        newColor.yellow = 0;
                        newColor.black = 100;
                if (addColorCheck == true) {
                        rect.stroked = true; //描边
                        rect.strokeWidth = 0.25; //线粗
                        rect.strokeColor = newColor; //描边的颜色
                } else {
                        rect.stroked = false; //无描边
                }
                        rect.filled = false; //不填充
                        rect.fillColor = NoColor; //无填充色
                        rect.selected = true; //被选中
            doc.artboards.add(bound);
        }
} else {
        alert("唉吆!\n必须先选择对象文件哦!!", "错误提示");
}

function NO_CLIP_BOUNDS(the_obj) {
        var NO_CLIP_OBJECTS_AND_MASKS = new Array();
        GET_NO_CLIP_OBJECTS_AND_MASKS(the_obj);
        var v_left = new Array();
        var g_left = new Array();
        var v_top = new Array();
        var g_top = new Array();
        var v_right = new Array();
        var g_right = new Array();
        var v_bottom = new Array();
        var g_bottom = new Array();
        for (var i = 0; i < NO_CLIP_OBJECTS_AND_MASKS.length; i += 1) {
                g_left = NO_CLIP_OBJECTS_AND_MASKS.geometricBounds;
                v_left = NO_CLIP_OBJECTS_AND_MASKS.visibleBounds;
                g_top = NO_CLIP_OBJECTS_AND_MASKS.geometricBounds;
                v_top = NO_CLIP_OBJECTS_AND_MASKS.visibleBounds;
                g_right = NO_CLIP_OBJECTS_AND_MASKS.geometricBounds;
                v_right = NO_CLIP_OBJECTS_AND_MASKS.visibleBounds;
                g_bottom = NO_CLIP_OBJECTS_AND_MASKS.geometricBounds;
                v_bottom = NO_CLIP_OBJECTS_AND_MASKS.visibleBounds;
        }
       
        var GV_Bounds = objGBCheck ? "true": "false";
        switch (GV_Bounds) {
        case "true":
                var g_L = MIN_IN_ARRAY(g_left);
                var g_T = MAX_IN_ARRAY(g_top);
                var g_R = MAX_IN_ARRAY(g_right);
                var g_B = MIN_IN_ARRAY(g_bottom);
                return ;
                break;

        case "false":
                var v_L = MIN_IN_ARRAY(v_left);
                var v_T = MAX_IN_ARRAY(v_top);
                var v_R = MAX_IN_ARRAY(v_right);
                var v_B = MIN_IN_ARRAY(v_bottom);
                return ;
                break;
        }

        function GET_NO_CLIP_OBJECTS_AND_MASKS(the_obj) {
                if (IS_CLIP(the_obj)) {
                        NO_CLIP_OBJECTS_AND_MASKS.push(the_obj.pageItems);
                        return;
                }
                if (the_obj.constructor.name == "GroupItem") {
                        try {
                                var N_sub_obj = the_obj.pageItems.length;
                                for (var i = 0; i < N_sub_obj; i += 1) {
                                        GET_NO_CLIP_OBJECTS_AND_MASKS(the_obj.pageItems);
                                }
                        } catch(error) {

                        }
                        return;
                }
                NO_CLIP_OBJECTS_AND_MASKS.push(the_obj);
                return;
        }
}

function IS_CLIP(the_obj) {
        try {
                if (the_obj.constructor.name == "GroupItem") {
                        if (the_obj.clipped) {
                                return true;
                        }
                }
        } catch(error) {

        }
        return false;
}

function MAX_IN_ARRAY(the_array) {
        var MAX = the_array;
        for (var i = 0; i < the_array.length; i += 1) {
                if (the_array > MAX) {
                        MAX = the_array
                }
        }
        return MAX;
}

function MIN_IN_ARRAY(the_array) {
        var MIN = the_array;
        for (var i = 0; i < the_array.length; i += 1) {
                if (the_array < MIN) {
                        MIN = the_array
                }
        }
        return MIN;
}

团子 发表于 2019-12-17 08:12:04

印刷人 发表于 2019-12-17 08:05
AI选择对象创建画板--支持蒙版,也是个脚本文件。。。。。。。。

var doc = app.activeDocument;


我这个只是一个动作 跟这个脚本有区别的 功能肯定这个脚本比我的要强大

印刷人 发表于 2019-12-17 09:05:27

团子 发表于 2019-12-17 08:12
我这个只是一个动作 跟这个脚本有区别的 功能肯定这个脚本比我的要强大

不好意思,我认为是脚本了。。。。。。。。下载支持下。。。。。。。。。。

团子 发表于 2019-12-17 09:10:53

印刷人 发表于 2019-12-17 09:05
不好意思,我认为是脚本了。。。。。。。。下载支持下。。。。。。。。。。 ...

谢谢大佬支持 绝对童叟无欺{:4_330:}

印刷人 发表于 2019-12-17 09:34:33

团子 发表于 2019-12-17 09:10
谢谢大佬支持 绝对童叟无欺

对动作中AI群组有点怕,怕改变图层。。。。。。。。。
页: [1] 2
查看完整版本: AI自动新建画板