• 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秒

  • 相关阅读:
    Oracle进程
    Oracle 内存管理
    oracle 数据文件管理
    Oracle表空间
    EM配置问题
    Oracle 常用命令
    Oracle体系结构
    Orcale 数据加载
    Oracle学习笔记(1)
    设计模式-23种参考模式
  • 原文地址:https://www.cnblogs.com/pcbren/p/9819806.html
Copyright © 2020-2023  润新知