You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何在Illustrator CC ExtendScript中使用厘米单位绘制矩形?

解决Illustrator CC ExtendScript中厘米单位绘制矩形的问题

Hey Fransua, 我完全懂你遇到的困扰——明明已经在Illustrator首选项里把单位设成了厘米,但用ExtendScript画矩形时,设置的myWidthmyHeight却不按厘米来生效。核心原因其实是:Illustrator的ExtendScript API默认以「点(points)」作为所有尺寸参数的单位,不管你在首选项里设置了什么单位

下面给你两种靠谱的解决方案,帮你精准用厘米绘制矩形:

方法1:手动单位转换

因为1厘米约等于28.3465点,你可以直接把厘米数值乘以这个系数转换成点值,再传给矩形创建方法:

// 定义你需要的厘米尺寸
var targetWidthCm = 5;
var targetHeightCm = 3;

// 转换为点单位
var widthPt = targetWidthCm * 28.3465;
var heightPt = targetHeightCm * 28.3465;

// 获取当前活动文档,绘制矩形(参数顺序:top, left, width, height,均为点单位)
var activeDoc = app.activeDocument;
var newRect = activeDoc.pathItems.rectangle(200, 100, widthPt, heightPt);

方法2:用内置UnitValue类(更推荐)

Illustrator的ExtendScript提供了UnitValue类,可以直接处理不同单位的转换,精度更高也更灵活:

// 直接用厘米定义尺寸
var rectWidth = new UnitValue(5, "cm");
var rectHeight = new UnitValue(3, "cm");

// 转换为点单位(或者直接在方法里用 rectWidth.as("pt"))
var widthPt = rectWidth.as("pt");
var heightPt = rectHeight.as("pt");

// 绘制矩形,如果连定位坐标也想用厘米,同样可以转换
var topPos = new UnitValue(8, "cm").as("pt");
var leftPos = new UnitValue(4, "cm").as("pt");

var activeDoc = app.activeDocument;
var newRect = activeDoc.pathItems.rectangle(topPos, leftPos, widthPt, heightPt);

额外提醒

pathItems.rectangle()方法的前两个参数topleft也是以点为单位的,所以如果需要用厘米定位画布上的矩形,记得也要做同样的单位转换哦。

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

火山引擎 最新活动