poshuixukong 发表于 2016-6-21 19:55:28

尺寸标注华印专版----全新源码



尺寸标注华印专版----全新源码。基本上重新写过,修正了标注不在外框中心的BUG.

poshuixukong 发表于 2016-6-21 20:01:59

本帖最后由 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 20:46:27

本帖最后由 QQ1750706198 于 2016-6-21 21:09 编辑

看这个箭头更漂亮了,把文件文本方式吧,复制的用不了

368222352 发表于 2016-6-21 21:06:52

不错,挺实用的,制图标示方便多了.

小辉数码 发表于 2016-6-21 21:25:00

确实挺方便,建议楼主写出适合那些版本,方便大家有需要的下载。

poshuixukong 发表于 2016-6-21 22:08:53

小辉数码 发表于 2016-6-21 21:25
确实挺方便,建议楼主写出适合那些版本,方便大家有需要的下载。

应该啥版本都 吧

vion222 发表于 2016-6-22 07:00:13

这个比cad更简单明了,符合我们的习惯

W。 发表于 2016-6-22 08:22:18

很实用
脚本.jsx应该哪个版本都能用的

秋东 发表于 2016-6-22 08:43:32

不错,一直在用CADTOOL,下来玩玩,

开心就好 发表于 2016-6-22 09:17:56

购买了,不能用啊(和3楼一样的提示)
页: [1] 2 3 4 5 6 7 8 9 10
查看完整版本: 尺寸标注华印专版----全新源码