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包

PCB  Genesis脚本 C#调用Python

二.用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