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的主要内容,如果未能解决你的问题,请参考以下文章

PCB .net Genesis脚本在没有源代码情况更改代码的工具与修改方法

PCB Genesis 鼠标滚轮缩放与TGZ拖放 插件实现

PCB Genesis SET拼板(圆形板拼板) 实现效果

Genesis脚本钻孔 问题

PCB genesis自制孔点 Font字体实现方法

PCB Genesis 外形加内角孔实现方法