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秒

 

转载于:https://www.cnblogs.com/pcbren/p/9819806.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值