Illustrator 脚本 - Java 脚本 - 如果条件不工作
Illustrator Script- Java script- If conditions not working
我正在尝试制作一个脚本来查找项目的宽度并检查所选项目的宽度是否相同,然后显示警报。
出于某种原因,即使满足所有条件,我的 if 条件也不起作用。
这是我的代码:
var doc = app.activeDocument;
function mm(n) {return n / 2.83464566929134;}
function pt(n) {return n * 2.83464566929134;}
//=====================
// Calculate Prisa
//=====================
var prisa = doc.pathItems.getByName("prisa");
var prisawidth = mm(prisa.geometricBounds[2]-prisa.geometricBounds[0]);
//=========================
// Calculate Selection
//=========================
var sel = doc.selection[0];
var selwidth = mm(sel.geometricBounds[2]-sel.geometricBounds[0]);
if (selwidth == prisawidth) {alert("Same Width");}
你可以试试这个:
if (Math.abs(selwidth - prisawidth) < .01) alert("About the same width");
我认为问题与数字的四舍五入有关。比如说,您可以看到“2 毫米”和“2 毫米”,但实际上有“2.00001 毫米”和“2.00002 毫米”之类的东西。所以它需要在比较之前对 fugures 进行四舍五入或者检查差异是否小于某个最小值。
我正在尝试制作一个脚本来查找项目的宽度并检查所选项目的宽度是否相同,然后显示警报。
出于某种原因,即使满足所有条件,我的 if 条件也不起作用。
这是我的代码:
var doc = app.activeDocument;
function mm(n) {return n / 2.83464566929134;}
function pt(n) {return n * 2.83464566929134;}
//=====================
// Calculate Prisa
//=====================
var prisa = doc.pathItems.getByName("prisa");
var prisawidth = mm(prisa.geometricBounds[2]-prisa.geometricBounds[0]);
//=========================
// Calculate Selection
//=========================
var sel = doc.selection[0];
var selwidth = mm(sel.geometricBounds[2]-sel.geometricBounds[0]);
if (selwidth == prisawidth) {alert("Same Width");}
你可以试试这个:
if (Math.abs(selwidth - prisawidth) < .01) alert("About the same width");
我认为问题与数字的四舍五入有关。比如说,您可以看到“2 毫米”和“2 毫米”,但实际上有“2.00001 毫米”和“2.00002 毫米”之类的东西。所以它需要在比较之前对 fugures 进行四舍五入或者检查差异是否小于某个最小值。