1. 程式人生 > >PCB Genesis腳本 C#調用Python

PCB Genesis腳本 C#調用Python

program 應用 stat sharp ava rar c++ add ddp

在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

技術分享圖片

PCB Genesis腳本 C#調用Python