尺寸标注华印专版----全新源码
尺寸标注华印专版----全新源码。基本上重新写过,修正了标注不在外框中心的BUG.
本帖最后由 poshuixukong 于 2016-6-21 20:04 编辑
#target Illustrator
#targetengine main
var win = new Window ("palette {margins:['10', 15, '10', 10], \
ABPnl:Panel {text:'尺寸标注', alignment:['fill', 'fill'], margins:, \
xlong:Button {text:'标注 X', preferredSize:}, \
yhigh:Button {text:'标注 Y', preferredSize:}, \
sp0:Panel { isSeparator:true, }, \
longhigh:Button {text:'标注 X/&Y', preferredSize:}}, \
TEXT:StaticText {text:'★★华印专版★★', alignment:['right', 'center']}}");
var sp0 = win.ABPnl.sp0;
if (sp0.parent.orientation == 'column') { sp0.maximumSize = 1; sp0.alignment = ['fill', 'top']; } else { sp0.maximumSize = 1; sp0.alignment = ['left', 'fill']; };;
var TEXT = win.TEXT;
var gfx = TEXT.graphics;
gfx.foregroundColor = gfx.newPen(gfx.PenType.SOLID_COLOR, , 1);
win.ABPnl.xlong.onClick = function() {
var ABtwoMessage="drawSize(true,false)\n"+drawSize.toSource();
fMsg(ABtwoMessage);
}
win.ABPnl.yhigh.onClick = function() {
var ABtwoMessage="drawSize(false,true)\n"+drawSize.toSource();
fMsg(ABtwoMessage);
}
win.ABPnl.longhigh.onClick = function() {
var ABtwoMessage="drawSize(true,true)\n"+drawSize.toSource();
fMsg(ABtwoMessage);
}
win.show();
function fMsg(a) {
var b = new BridgeTalk;
b.target = "illustrator";
b.body = a;
b.send()
}
function drawSize(X, Y) {
unit = "mm";
if (unit == "mm") {
v = 72 / 25.4;
} else if (unit == "pt") {
v = 1;
}
l = 8 * v;
lineWidth = 0.3 * v;
dis1 = 0.5 * v;
dis2 = 0.1 * v;
arrSize = 4 * v;
fontSize = 6 * v;
arrScale = 1.5;
dotN = 2;
dotArr = ;
dotN = dotArr;
doc = app.activeDocument;
sel = doc.selection;
var layercheck = false;
for (var i = 0; i < doc.layers.length; i++) {
if (doc.layers.name == '尺寸标注') {
mylayer = doc.layers;
layercheck = true;
}
}
if (layercheck == false) {
mylayer = doc.layers.add();
mylayer.name = '尺寸标注';
mylayer.move(doc, ElementPlacement.PLACEATBEGINNING);
}
var kValue = 0,
cValue = 100,
mValue = 0,
yValue = 0;
vColor = new CMYKColor();
vColor.black = kValue - 0;
vColor.cyan = cValue - 0;
vColor.magenta = mValue - 0;
vColor.yellow = yValue - 0;
for (var i = 0; i < sel.length; i++) {
x = sel.geometricBounds;
y = sel.geometricBounds;
w = sel.width;
h = sel.height;
wArr = [
[
,
],
[
,
],
[
,
],
[
,
,
],
[
,
,
]
];
hArr = [
[
,
],
[
,
],
[
,
],
[
,
,
],
[
,
,
]
];
wPosition = ;
hPosition = ;
if (X == true) {
g = mylayer.groupItems.add();
for (var ii = 0; ii < wArr.length; ii++) {
var line = g.pathItems.add();
line.setEntirePath(wArr);
line.strokeColor = vColor;
line.filled = false;
}
var text = g.textFrames.add();
text.textRange.characterAttributes.size = fontSize;
text.textRange.characterAttributes.fillColor = vColor;
text.contents = Math.round(w / v * dotN) / dotN + unit;
text.left = wPosition - text.width / 2;
text.top = wPosition + text.height + dis2;
g.position = ;
}
if (Y == true) {
g = mylayer.groupItems.add();
for (var ii = 0; ii < hArr.length; ii++) {
var line = g.pathItems.add();
line.setEntirePath(hArr);
line.strokeColor = vColor;
line.filled = false;
}
var text = g.textFrames.add();
text.textRange.characterAttributes.size = fontSize;
text.textRange.characterAttributes.fillColor = vColor;
text.contents = Math.round(h / v * dotN) / dotN + unit;
text.rotate(90);
text.left = hPosition - text.width - dis2;
text.top = hPosition + text.height / 2;
g.position = ;
}
}
}
本帖最后由 QQ1750706198 于 2016-6-21 21:09 编辑
看这个箭头更漂亮了,把文件文本方式吧,复制的用不了 不错,挺实用的,制图标示方便多了. 确实挺方便,建议楼主写出适合那些版本,方便大家有需要的下载。 小辉数码 发表于 2016-6-21 21:25
确实挺方便,建议楼主写出适合那些版本,方便大家有需要的下载。
应该啥版本都 吧 这个比cad更简单明了,符合我们的习惯 很实用
脚本.jsx应该哪个版本都能用的 不错,一直在用CADTOOL,下来玩玩, 购买了,不能用啊(和3楼一样的提示)