如何在Illustrator CC ExtendScript中使用厘米单位绘制矩形?
解决Illustrator CC ExtendScript中厘米单位绘制矩形的问题
Hey Fransua, 我完全懂你遇到的困扰——明明已经在Illustrator首选项里把单位设成了厘米,但用ExtendScript画矩形时,设置的myWidth和myHeight却不按厘米来生效。核心原因其实是: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()方法的前两个参数top和left也是以点为单位的,所以如果需要用厘米定位画布上的矩形,记得也要做同样的单位转换哦。
内容的提问来源于stack exchange,提问作者fransua




