在 PCB 行业, Genesis 的二次开发的编程脚本越来越丰富了啊, 从一开始进入眼界的 Genesis 脚本语言是很少的, CSH,PERL,
再后来慢慢发展, VB, 易语言, VB.NET,C#,Java,TCL,PYTHON,C++, 语言真的是五花八门啊, 各种各样编程语言与 Genesis 为 5,
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
来源: http://www.bubuko.com/infodetail-2769568.html