You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Adobe Illustrator脚本矩形剪切蒙版调整尺寸数值不符问题求助

问题原因

  • 代码中存在未定义变量center_point,对应修改元素位置的两行代码执行异常,导致组内元素偏移,最终统计的组整体高度不符合预期
  • 使用executeMenuCommand("selectall")全选文档元素逻辑错误,会将文档内除了目标图形、新建矩形之外的其他元素也加入编组,拉高整体尺寸
  • if (found = true)为赋值操作而非判断操作,即使未找到目标图形也会执行后续逻辑,存在风险
  • 直接修改剪切蒙版组的height属性时,Illustrator默认会对组内所有元素(包括剪切路径、内部图形)同步执行等比缩放,未关闭等比缩放的前提下调整高度会同步拉伸宽度,也会导致最终尺寸不符合预期

修正后代码

var doc = app.activeDocument; 
var layers = doc.layers;  
var myLayer = layers["Layer 1"]; 

var vals = 0;
var tzim = 0;
var side = 0; //width || height
var targetGroup = null;

// mm转点单位转换
function mm(n) {return n * 2.83464566929134;}

doc.selection = null; 

var found = false;
for(var a=0 ;a<myLayer.groupItems.length; a++)
{
    if (myLayer.groupItems[a].name == "fish400") {
        vals = mm(400); 
        tzim = mm(18); 
        side = 1; 
        found = true;
        targetGroup = myLayer.groupItems[a];
    }
}

if (found)
{
    // 仅选中目标图形和新建矩形,避免混入其他元素
    var rect = myLayer.pathItems.rectangle(0,0,vals,vals);
    doc.selection = [targetGroup, rect];

    var groupItem = doc.groupItems.add();
    var count = selection.length;
    for(var i = 0; i < count; i++) 
    {
        var item = selection[selection.length - 1];
        item.moveToBeginning(groupItem);
    }

    // 开启剪切蒙版
    groupItem.clipped = true;
    
    // 调整尺寸:需要剪切后整体缩放至指定高度用以下逻辑
    if (side == 1) {
        // 关闭等比缩放避免宽度同步变化
        groupItem.scalingUniform = false;
        groupItem.height = vals - tzim;
    } else if (side == 0) {
        groupItem.scalingUniform = false;
        groupItem.width = vals - tzim;
    }
    
    // 若不需要缩放内部内容,仅调整剪切边界高度,可把上面的调整逻辑替换为以下代码
    // var clipPath = groupItem.pathItems[0];
    // if (side == 1) {
    //     clipPath.height = vals - tzim;
    // } else {
    //     clipPath.width = vals - tzim;
    // }
}

额外注意事项

  • 运行前请确认文档的标尺单位设置为点,避免单位转换出现偏差
  • 若调整后位置偏移,可以根据实际需求提前定义center_point坐标值,再添加组位置调整逻辑

内容的提问来源于stack exchange,提问作者goamalo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.06 21:54:01