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秒

PCB Genesis脚本 C#调用Javascript的更多相关文章
- PCB Genesis脚本 C#调用Python
在PCB行业,Genesis的二次开发的编程脚本越来越丰富了啊,从一开始进入眼界的Genesis脚本语言是很少的,CSH,PERL, 再后来慢慢发展,VB,易语言,VB.NET,C#,Java,TCL ...
- PCB Genesis脚本C#使用WPF窗体实现方法
用C#写脚本做UI界面基本上都是用WinForm界面,如果想制作很漂亮动态的界面用WPF界面挺不错的选择, 这里介绍如何使用控制台程序调用WPF窗口 一.方法一 在控制台程序中,通过Main方法启动W ...
- 在<a></a>标签中调用javascript脚本
有时候,我们点击了<a></a>标签(除了跳转到指定链接外)想要它调用某个方法,及调用javascript脚本,该如何做: 方法1:<a href="javas ...
- webview调用javascript脚本无反应
最近遇到一个问题:在html中有一段javascript脚本定义了一个方法,在使用webview.loadUrl("javascript:方法名()")时方法未执行,后来 查资料发 ...
- Unity 3d C#和Javascript脚本互相调用 解决方案(非原创、整理资料,并经过实践得来)
Unity 3d C#和Javascript脚本互相调用 解决方案 1.背景知识 脚本的编译过程分四步: 1. 编译所有 ”Standard Assets”, “Pro Standard Assets ...
- [Swift通天遁地]一、超级工具-(6)通过JavaScript(脚本)代码调用设备的源生程序
★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★➤微信公众号:山青咏芝(shanqingyongzhi)➤博客园地址:山青咏芝(https://www.cnblogs. ...
- PCB Genesis 无需启动Xmanager图形窗口运行脚本 实现方法
从事PCB工程行业的都知道,启动Genesis需2个exe程序(Xmanager.exe与get.exe)需一起启动才可以打开我们熟悉的软件, 而Xmanager是图形窗口是给用户UI交互使用的,如果 ...
- 调用JavaScript
当webdriver 遇到没法完成的操作时,笔者可以考虑借用JavaScript 来完成,比下下面的例子,通过JavaScript 来隐藏页面上的元素.除了完成webdriver 无法完成的操作,如果 ...
- 转:python webdriver API 之调用 JavaScript
当 webdriver 遇到没法完成的操作时,笔者可以考虑借用 JavaScript 来完成,比下下面的例子,通过 JavaScript 来隐藏页面上的元素.除了完成 webdriver 无法完成的操 ...
随机推荐
- HDU4496 D-City【基础并查集】
Problem Description Luxer is a really bad guy. He destroys everything he met. One day Luxer went to ...
- buf.readUInt32BE()函数详解
buf.readUInt32BE(offset[, noAssert]) buf.readUInt32LE(offset[, noAssert]) offset {Number} 0 noAssert ...
- CCF201612-1 中间数 java(100分)
试题编号: 201612-1 试题名称: 中间数 时间限制: 1.0s 内存限制: 256.0MB 问题描述: 问题描述 在一个整数序列a1, a2, …, an中,如果存在某个数,大于它的整数数量等 ...
- python爬虫23 | 手机,这次要让你上来自己动了。这就是 Appium+Python 的牛x之处
你有没有想过让你的手机帮你自动完成某些事情 比如自动帮你抢红包 有些软件不是有签到活动么 这些傻瓜式的操作 能不能让手机自动签到呢? 自动帮你叫外卖 自动帮你打电话 等等 还有 对于手机上的一些比较难 ...
- vim基础(二)
上一篇提到了插入与删除.定位.复制与粘贴以及退出与保存几项基本操作,这篇继续整理其他常用命令. 撤销与替换 首先是我们在输入过程中不小心打错了,或者误删了,怎么恢复?在word里我们有ctrl+Z,v ...
- Spring AOP 学习(五)
1. 使用动态代理实现AOP package com.atguigu.spring.aop; import java.lang.reflect.InvocationHandler; import ja ...
- 【Codeforces 493D】Vasya and Chess
[链接] 我是链接,点我呀:) [题意] [题解] 会发现两个皇后之间如果只有奇数个位置 也就是n%2==1 那么第二个人总是赢的 因为如果white往下跑的话,black也能往下跑. 第二个人没有输 ...
- JWT & HMAC-SHA256
JWT JSON Web Tokens https://jwt.io/ https://en.wikipedia.org/wiki/JSON_Web_Token#Structure HMACSHA25 ...
- noip模拟赛 圆桌游戏
[问题描述] 有一种圆桌游戏是这样进行的:n个人围着圆桌坐成一圈,按顺时针顺序依次标号为1号至n号.对1<i<n的i来说,i号的左边是i+1号,右边是i-1号.1号的右边是n号,n号的左边 ...
- QT .pro文件的学习收获
1. 载pro文件预定义宏: CONFIG(debug,debug|release){ DEFINES+=__DEBUG__ }else{ DEFINES+=__RELEASE__ macx:DEST ...