zoukankan      html  css  js  c++  java
  • PCB Genesis脚本 C#调用Javascript

    曾经用node.js测试写Genesis脚本失败了,这次借助开发PCB规则引擎的机会(基于JS V8引擎与.net深度交互性), 验证一下Javascript是否可用于写Genesis脚本.

    一.测试Javascript更改单位

    var unit = gen.COM('get_units');
    console.log('更改前单位:' +unit);
    if (unit == 'mm')
    {
        gen.COM('units,type=inch');
    }
    else
    {
        gen.COM('units,type=mm');
    }
    unit = gen.COM('get_units');
    console.log('更改后单位:' +unit);

    二.测试Javascript 增加PAD

    orignP = new Object();
    orignP.x = 0;
    orignP.y = 0;
    gen.COM('add_pad,attributes=no,x='+ orignP.x +',y='+ orignP.y +',symbol=r2018');
    
    MoveP = new Object();
    for (var i=1;i<= 12;i++)
    {
        MoveP.x = orignP.x + 5 * Math.cos(i * 30 * Math.PI / 180);
        MoveP.y = orignP.y + 5 * Math.sin(i * 30 * Math.PI / 180);
        gen.COM('add_pad,attributes=no,x='+ MoveP.x +',y='+ MoveP.y +',symbol=r2018');
        console.alert('第'+ i +'孔坐标: X ' +  Math.round(MoveP.x,3)  + ': Y ' +  Math.round(MoveP.y))
    }

    三.测试Javascript 执行COM指令效率

    var date1 =new Date(); 
    var StartTime =date1.getSeconds() * 1000 + date1.getMilliseconds();
    orignP = new Object();
    orignP.x = 0;
    orignP.y = 0;
    gen.COM('add_pad,attributes=no,x='+ orignP.x +',y='+ orignP.y +',symbol=r2018');
    MoveP = new Object();
    for (var j=1;j<= 100;j++)
    {
        for (var i=1;i<= 12;i++)
        {
            MoveP.x = orignP.x + 5 * Math.cos(i * 30 * Math.PI / 180);
            MoveP.y = orignP.y + 5 * Math.sin(i * 30 * Math.PI / 180);
            gen.COM('add_pad,attributes=no,x='+ MoveP.x +',y='+ MoveP.y +',symbol=r2018');
        }
    }
    var date2=new Date(); 
    var EndTime =date2.getSeconds() * 1000 + date2.getMilliseconds();
    var CountTime = EndTime - StartTime;
    console.alert('总耗时:' + CountTime);

     显示层,加120个PAD耗时1.8秒

     影藏层,加1200个PAD耗时3.9秒

  • 相关阅读:
    POJ 3635 Full Tank?
    ZOJ 2112 Dynamic Rankings
    POJ 3468 A Simple Problem with Integers (2)
    FJOI2007 轮状病毒
    HDU 3308 LCIS
    POJ 2449 Remmarguts' Date
    Adroid平台图表案例源码
    Android项目——实现时间线程源码
    关于Ubuntu上Eclipse不显示手机设备
    自定义ListView下拉弹起效果
  • 原文地址:https://www.cnblogs.com/pcbren/p/9819806.html
Copyright © 2011-2022 走看看