PCB Genesis脚本 C#调用Python
Posted pcbren
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PCB Genesis脚本 C#调用Python相关的知识,希望对你有一定的参考价值。
在PCB行业,Genesis的二次开发的编程脚本越来越丰富了啊,从一开始进入眼界的Genesis脚本语言是很少的,CSH,PERL,
再后来慢慢发展,VB,易语言,VB.NET,C#,Java,TCL,PYTHON,C++,语言真的是五花八门啊,各种各样编程语言与Genesis为伍,
2004年PCB前辈写的Genesis Python接口,真的好久远了,想想当时的我还没入PCB这行了;呵呵
有需要的可以在此基础上面改进哦。学习借鉴一下人家的封装接口思路.
http://pcbren.cn/ShareFiles/Python接口2004.rar
在这里介绍C#调用Pythony方法,但个人并不建议:写脚本用多种的语言写脚本,而且嵌套调用使程序更麻烦了。
这里只是实现思路而已,实际应用中写脚本统一一种语言写脚本,当然是为了后期更好的维护啦,
所以最好多种语言不要混合写,随着不断深化应用,会不断的封装工具类,公共方法,基类,后期维护多种语言都要写一遍相似的代码。
在这里以:Genesis调用C#脚本,C#脚本再调用Python脚本 写一个调用例子
一.Nuget中下载IronPython包
二.用Python写一个加PAD脚本测试用
脚本命名:AddPadTest.py 并放在bin目录
def main(arr): try: print \'@%#%@COM add_pad,attributes=no,x=0,y=0,symbol=r1314\' READANS = raw_input() COMANS = raw_input() return str(READANS) except Exception as err: return str(err)
三.用C#脚本调用Python脚本
using System; using IronPython.Hosting; using Microsoft.Scripting; using Microsoft.Scripting.Hosting; namespace CSharpCallPython { static class Program { /// <summary> /// 应用程序的主入口点。 /// </summary> [STAThread] static void Main() { ScriptEngine pyEngine = Python.CreateEngine();//创建Python解释器对象 dynamic py = pyEngine.ExecuteFile(@"AddPadTest.py");//读取Python脚本 string READANS = py.main("");//调用Python脚本main函数 加PAD } } }
四.测试运行效果OK
start_script.csh 启动 C#脚本,C#脚本调用Python脚本
以上是关于PCB Genesis脚本 C#调用Python的主要内容,如果未能解决你的问题,请参考以下文章