Altium Designer程序定制開發 公眾號:EDA設計自動化
Office/CAD/EDA/CAE軟件腳本開發/二次開發簡要介紹
本文主要介紹辦公軟件(Word、Excel、PPT、Access、Visio),CAD(Auto CAD、Solid Works、CATIA),EDA(Altium Designer、Pads、Cadence)和CAE(ICEM、Fluent)等軟件的腳本開發方式或者二次開發方式,以及相關的參考資料。
不同的軟件的參考資料的豐富程度並不相同,參考資料語言限制了方便理解軟件的開發方式,在Office辦公軟件的腳本開發中Excel腳本開發的資料最為豐富,在CAD軟件中以Auto CAD軟件最為豐富,在EDA軟件中軟件腳本及開發的中文資料較少,功能模塊開發方式需要人為理解。CAE軟件的介紹就更少(不是沒有)了。
目前比較常用的辦公軟件包括Word、Excel、PPT、Access這三款軟件都是微軟公司出品的,在購買電腦時已經預裝的辦公軟件,Visio軟件不是Office的一部分,需要單獨安裝,WPS是國產金山公司的一款軟件產品,目前這幾款辦公軟件都支持VBA,微軟的辦公軟件是自帶的自家的VBA,Visio本來是一家獨立的公司,后來微軟把這個公司買了,成為微軟的一個獨立的產品,金山公司是為數不多的支持VBA的國產公司。
支持VBA的軟件的CAD建模軟件有很多,其中比較常見的包括Auto CAD、SolidWorks、CATIA等軟件,當然也有其他軟件支持VBA的CAD軟件,這些軟件的廠家在微軟的官方上可以查到,一共一百余家廠商,大部分都是國外的公司。
使用VBA在三維建模軟件中自動運行和使用鼠標在 三維建模軟件中的操作相同,在三維軟件中有些函數是具有交互功能的,意思就是在程序運行到當前行需要客戶用鼠標指定一個圖元對象或者使用鍵盤輸入一個字符串程序才能往下執行,大部分的函數是不具有交互功能的,方便程序運行,在支持VBA的軟件中有一個腳本編輯器,腳本編輯器中有一個對象瀏覽器,對象瀏覽器中有該版本的腳本所支持的類(在VBA或者C++里面未實例化的類叫做類,但是在Delphi中未實例化的類叫做對象,對象在使用時還是需要實例化)。
在腳本編輯器中可以使用Application函數獲得當前軟件的頂層接口,這個接口可以根據對象的層次關系獲得子接口或者子接口的子接口,也可以獲取子接口的屬性或者執行子接口中的函數和子程序。
在VBA編輯器中的對象瀏覽器提供了在VBA里面可以使用的類,類中有函數或者屬性,還有一些類中是一些常數,方便在程序中使用的,常數可以代表固定的數值、字符串等等,根據目前的對象瀏覽器提供的常數來看,大部分常數都是代表的數值。
在Auto CAD2007和SolidWorks2013軟件安裝好之后是可以直接使用VBA編輯器的,而在CATIA V5R20安裝好之后不能直接使用VBA的編輯器,但是可以使用CATIA提供的一個簡易的編輯器,簡易的編輯器是可以訪問對象瀏覽器的,在AutoCAD和 SolidWorks中對象瀏覽器的庫的個數只有很少的幾個,可以的非常方便的定位的庫里面的類,而CATIA的庫的個數非常多,這是由於CATIA軟件在設計時是一個個模塊組成的,草圖模塊就是草圖模塊,曲面模塊就是曲面模塊,創成設計模塊就是創成設計模塊,模塊之間相互獨立,常用的模塊不到20個,而在VBA的對象瀏覽器中這些模塊的類被放在一個個庫中,一個庫對應一個模塊,庫里面的類可以根據選擇的庫分離出來,大部分庫里面的類的熟練都比較少,庫里面的類是主演被集合在幾個常用的庫中。
辦公軟件的腳本開發二次開發介紹這幾種(Word、Excel、PPT、Visio、WPS)
Word
Word為微軟辦公全家桶中的文字處理軟件,從Word 2007以后都已經開始支持XML文件格式,Word軟件中已經集成了VBA,通過VBA可以實現文檔編輯的自動化,可以訪問Word文檔中的各種元素,進行批量化的操作。也可以將文檔的操作錄制下來在VBA編輯器中修改。
Excel
Excel進行腳本開發的參考書籍是辦公軟件進行腳本開發中最多的,使用Excel進行腳本開發,可以實現統計自動化、進行網頁數據的抓取(這個功能只要有VBA的功能都可以實現),Excel中的VBA是軟件中自帶的,
PPT
Visio
使用Visio進行腳本開發,目前沒有發現有介紹介紹開發方式的書籍,但是從微軟的官網中有介紹使用Visio腳本開發的資料,在Visio中使用腳本開發和Word、Excel中極性腳本開發都是類似的。Visio中自帶VBA開發環境,可以在Visio開發環境中進行腳本開發,也可以在其他支持VBA或者兼容VBA的環境中創建一個Object對象,從而操作Visio中的對象。
使用Visio進行腳本開發,開發環境的方式可以分為兩種,一種是Visio自帶的VBA開發環境,另一種是第三方軟件或者腳本開發環境,使用Visio的腳本功能制作產品手冊非常的方便,所有的圖頁都可以放置在在相同的坐標上,避免了手動對不齊的問題。
Visio的VBA開發界面
Visio 2013的對象瀏覽器
Visio 2013中可以使用的庫的分類
WPS
WPS辦公軟件是為數不多的支持VBA的國產軟件,(支持VBA的軟件目前為止有100余家,目前只有這100余家屬於經過微軟授權的,可以在軟件產品中VBA,這100余家的公司名單在微軟的官網可以找到,在這個網頁上:https://docs.microsoft.com/en-us/previous-versions/msdn10/bb190546(v=msdn.10) , )
在WPS軟件中使用自帶的腳本開發環境中使用的語言為JScript,其他軟件或者開發環境中也是可以通過VBA程序啟動WPS軟件的,在其他軟件下對Excel或者Word進行操作,代碼在不更改的情況下可以直接用於WPS軟件。
CAD軟件的腳本開發介紹這幾種(Auto CAD、CATIA、SolidWorks)
Auto CAD
CATIA
基於CATIA的應用程序開發可分為以下幾類:
標准格式的輸入輸出。用跨CAD平台、跨PDM、標准格式的輸入輸出,以便進行數據格式的轉化。
使用自動化應用程序接口(Automation API)的宏。用於自動化(Automation)組件、日志、Visible Basic和JavsScript/Html的開發,這是一種交互方式的定制。該定制方式允許用戶獲取CATIA的數據模型。Automation API具備了與任何OLE所兼容的平台進行通信的能力。
智能構建(Knowledgeware)。智能構建是一項預定義的易用服務,驅動的管理和重用是從函數、規范到組件和系統一步一步實現的。它是一種反應式的、基於規則的、面向目標的客戶化方式,允許定制和外部代碼的集成。它用於三個方面:知識顧問、知識專家和產品工程優化。
交互式的用戶定義特征,是一種編制式的定制開發。通過聚合現存的特征來交互地定義新的數據模型。收集現存規范,指定輸入,從而創建一個IUDF(用戶定義特征)、IUDF可以通過引用一個Catalog保存在.CATPart文檔中。它可以交互地被客戶使用。
CAAV5的C++和Java應用接口。這是基於組件的定制開發。CAA是組件應用架構(Component Application Architecture)的縮寫,是Dassault Systemes產品擴展和客戶進行定制開發的平台,它使全球諸多開發商可參與Dassault Systemes的研發。利用CAA可以進行從簡單到復雜的二次開發工作,而且和原系統的結合非常緊密。
CAA(組件應用架構,Component Application Architchture)架構圖
CATIA進行腳本開發的語言支持宏語言、CATScript、MS VBScript這三種腳本語言,C++等編譯型的語言。
CATIA V5R20的對象瀏覽器
CATIA V5R20庫的分類
SolidWorks
SolidWorks采用了COM技術標准,將復雜的應用程序設計成許多小的、功能相對簡單的組合模塊,各個組件軟件完成某些特定的功能,同時按照COM標准對外提供接口,然后把這些獨立的軟件組合在一起促成功能強大的二次開發接口,任何支持OLE(Object Linking and Embedding,對象的鏈接與嵌入)和COM的編程語言都可以作為Solid Works的開發工具。如Visual C++、Visual Basic、Delphi等均可用於SolidWorks的二次開發。
SolidWorks 2013 VBA開發窗口
SolidWorks 2013庫的分類
EDA軟件的腳本開發/二次開發介紹這幾種(Altium Designer、Cadence、Pads、立創EDA)
在EDA軟件中用戶比較常用的包括Altium Designer、Pads和Cadence這三款軟件都支持腳本操作,三種軟件的腳本都不是VBA。
Altium Designer
Altium Designer軟件是使用Delphi語言開發的,此軟件的各種架構都有明顯的Delphi語言軟件的影子,Altium Designer軟件的原理圖、PCB服務器都是對象繼承方式,Altium Designer中的軟件中的控件有113個,大大方便了腳本界面開發。Altium Designer軟件支持服務器開發和腳本開發,服務器/插件開發支持Delphi、Microsoft C#、C++這三種語言,腳本開發支持Delphi Script、Enable Basic、JScript和VB Script這4種腳本語言,另外還有一種語言為Query Language也是屬於腳本語言,用於在原理圖和PCB文檔中進行圖元對象查找的,可以使原理圖或者PCB文檔中的圖元對象高亮、其他圖元對象變暗或者變灰等視圖的操作,這種語言並不像其他4種腳本語言一樣可以創建、移動、變換、刪除圖元對象,只能對視圖進行操作。
服務器/插件的開發使用編譯型的語言Delphi、Microsoft C#、C++進行開發,開發完成后的程序需要集成在Altium Designer軟件中執行,其特點的編譯后生成的軟件能和開發環境的AD版本中使用,不能在其他版本中使用,比如在AD9中使用Altium Designer二次開發,開發后的插件並不能在AD13中使用,如果一個單位使用了AD9進行了一些功能模塊的開發,如果軟件升級的話之前的項目需要重新維護,造成一些客戶單位並不想升級,Altium Designer軟件處於商業方面的考量,賣新不賣舊就不太願意將此項技術拿出來,之前有單位使用過Altium Designer軟件的二次開發的版本,但是目前Altium Designer軟件並不對中國大陸開放,如果想要學習使用Altium Designer的二次開發的難點主要由兩個,其一是參考資料“Altium Designer RTL Reference for Servers”和“Using the Altium Designer RTL”,這兩份資料是介紹Altium Designer軟件的二次開發的介紹,目前在各個版本的軟件中並沒有找到這兩份文件,另一是Altium Designer軟件的SDK開發包。如果有以上兩種資料和DEMO工程就可以開始Altium Designer的插件開發了。雖然不能在Altium Designer中使用二次開發的方式進行功能擴展,但是在Altium Designer軟件中使用腳本開發的方式進行功能擴展.
AD的腳本開發一共支持4種腳本語言Delphi Script、Enable Basic、JScript和VB Script,不同的腳本語言賦值、循環控制、判斷和基礎的語法有些許的不同,開發起來都差不多,在同一個腳本工程中支持多種不同的語言文件,在同一個腳本工程中,使用不同語言寫的函數和全局變量是可以相互調用的,比如說使用VB Script腳本語言寫了一個函數,在同一個工程下的另外一個JScript語言中可以調用VB Script腳本中的函數,在不是同一個腳本工程下就不能相互調用不同文件下的函數,這里有一種語言Enable Basic,此語言是在上古時期Sax Basic、Cypress Enable Scripting同時代出現的一種語言,和VB或VBS語言的語法基本相同。這種語言不能調用AD中的113個控件,但是可以使用為10個左右的幾個控件,控件的創建、調用和響應函數都在同一個腳本文件中,其他Delphi Script、JScript和VB Script這三種語言在創建Form腳本文件時在表單(或稱為窗體)是可以直接拖進腳本系統中的全部控件的,腳本中的控件一共是113個,大部分控件為Delphi編程軟件中的控件,一小部分是Altium Designer中單獨的控件,在Altium Designer的較少控件的參考資料里面,控件的繼承方式大部分都是有誤或者繼承中有遺漏的,和《Delphi7 VCL繼承關系全圖》中並不匹配。
在Altium Designer中使用腳本功能,可以啟動安裝的各種服務器,服務器的為DXP平台的的各種插件,在文件管理器中就是DLL文件,啟動某個服務器就是將對應的DLL文件加載到內存中,比如啟動原理圖服務器就是將“AdvSch.dll”文件加載到內存中,在使用服務器的函數之前需要將服務器啟動,使用服務器的API函數接口首先需要獲取服務器的頂級接口,然后一級一級的向下訪問服務器的各種函數接口,層級關系遵循Microsoft OLE Automation Server guidelines,不同版本的服務器數量有些許不同,目前通過API函數可以訪問的服務器有DXPAPI、原理圖API、PCB API、工作空間API、集成庫API、FPGA API,其他服務器比如文本編輯器等就不支持或者是不開放API訪問的方式,原理圖編輯API為原理圖文檔服務器,對應操作的文檔為SCHDoc和SchLib,PCB編輯器API為PCB文檔服務器,對應操作的文檔為SchDoc、SchLib、工作空間管理器API為工集合管理的的服務器對應的文檔為LibPkg,FPGA API為FPGA編譯服務器,對應的文檔為v或vhd,在腳本中使用自動化對象可以有多種方式,使用進程、API函數等方式。在AD腳本系統中的進程的概念類似於辦公軟件中的宏,在AD幫助文中的的單詞為process,也有一些文檔解釋為過程。
Altium Designer軟件的程序開發方式
其中Altium Designer軟件是使用Delphi軟件開發的,在腳本系統中是使用的Delphi的腳本系統,目前Altium Designer腳本系統支持4種腳本加一種腳本語言,4種腳本語言分別為Delphi Script、JScript、VB Script和Enable Basic腳本語言,另外一種腳本語言為查詢語言,查詢語言並不能在原理圖文檔或者PCB文檔中添加,自動,刪除文檔中的圖元對象,查詢語言的功能是在原理圖或者PCB文檔中高亮圖元對象的,可以快速的定位原理圖和PCB中的圖元對象。
在Altium Deisigner中可以創建TCL腳本語言的文檔,根據官方的資料TCL解析器,在腳本系統中並未實現。
在Altium Designer腳本系統中提供的前4種腳本語言中,前面三種腳本語言可以分為一類,后面一種腳本語言可以分為一類。
在Altium Designer腳本系統的菜單欄中前面三種腳本語言都是可以創建Script From和Script Unit這兩種模式,創建Script From是可以自動生成一個腳本文件和一個窗體文件,腳本文件中可以編寫窗體或者控件的響應的函數和自定義的函數和方法。窗體文件為一個Windows的經典窗口界面的文件,窗體和在窗體上放置的控件的各種屬性和事件的鏈接關系都是放置在窗體文件中的。
窗體文件中一共可以放置7個大類共113種控件,7個大類中前6個大中的控件都是來自Delphi軟件,后面1個大類控件是Altium Designer提供的儀表控件。
在5個大類的控件中的繼承關系都是和Delphi開發工具的VCL相同,第6個大類控件是類似於XP風格的控件,里面的屬性事件不是和Delphi 中的VCL相同,沒有和前面5個大類的繼承關系。第7個大類是Altium Designer中提供的儀器儀表的控件,控件的風格非常漂亮,基本功能可以根據控件提供的屬性直接使用,這些功能還包括一個和Altium Deisgner nano相互通信的屬性,可以和下位機通信完成非常豐富和強大的功能,目前關於這些控件的繼承關系和高級使用方法,軟件的幫助PDF文檔,幫助chm文檔和官方都沒有相關的介紹資料。
在Altium Designer的腳本系統中編寫腳本可以分為兩種類型,一種成為進程(Progress)和函數接口。這里進程的概念和計算機的任務管理中的進程不一樣,Altium Designer中的進程類似宏,使用鼠標在軟件內操作,軟件會將菜單欄、工具欄、快捷鍵、鼠標操作等作為命令通過客戶端發送給服務器,這些命令也就是進程。客戶端語言將不同的進程發往不同的服務器,然后由不同的服務器完成指定的操作。Altium Designer中帶有宏錄制的功能,但是這個功能並未完全提供給客戶,要使用宏錄制的功能,需要在軟件中做一些特殊的操作。
函數接口就是在腳本里面使用API函數接口一層一層的獲取下一級的接口、執行方法、獲取屬性的方法,Altium Designer中的架構為C/S架構,C/S架構中就是有一個客戶端,多個服務器,Altium公司將C/S架構在AD中命名為DXP平台,客戶端就是軟件的界面和框架,服務器就是在DXP平台中安裝的各個服務器,比如原理圖服務器、PCB服務器、文本處理服務器,每個服務器在安裝目錄下都對應這個dll和ins的文件,dll文件就是服務器的動態鏈接庫文件,語言使用某個服務器的功能就需要從磁盤用將某個服務器對應的dll文件加載進內存中,ins文件為服務器對應的進程列表。服務器中可以執行的進程都在ins文件中的,服務器的dll文件和ins文件是一一對應的。
在腳本系統中最常用的3個頂層函數接口為Client、SCHServer和PCBServer,對應於支持VBA的軟件就類似於Applcation,Application是獲取VBA軟件的頂層接口的函數,而在AD的DXP平台中Client、SCHServer和PCBServer這三個函數就是獲取客戶端、原理圖服務器、PCB服務器的頂層接口的函數。
在原理圖服務器和PCB服務中的原理圖和PCB文檔中類似於一個容器,里面可以放很多圖元對象,有的圖元對象中還可以放很多圖元對象,比如在原理圖中的元件和PCB中的封裝,在這兩種圖元對象中還包括圖元對象,可以抽象為容器中套容器。各個圖元對象中大量使用了繼承關系,和可視化組件的繼承關系類似,子程序、函數、屬性在子圖元對象中繼承,父圖元對象有的屬性,子圖元對象中一定有。
Altium Designer API函數接口
DXP平台
Altium Designer中原理圖的層次訪問關系(此圖為兩級加三級的部分)
Altium Designer的原理圖文檔中的圖元對象的繼承關系
如上圖所示,這三張圖為原理圖文檔中圖元對象的繼承關系,和Delphi軟件中的VCL類似,每種圖元對象都繼承了它上一級對象的全部方法和屬性,在繼承的對象中上一級的方法或屬性都可以使用,在原理圖文檔中可以創建可訪問這些圖元對象,訪問原理圖中對象不是像訪問原理圖服務器中的屬性和方法,而是將原理圖文檔抽象化為一個容器,在原理圖中的每個圖元對象都是一個對象,在原理圖服務器中創建一個過濾器(有的也翻譯為迭代器),根據過濾器依次訪問在原理圖中的圖元對象,同時也可以在過濾器中設置圖元對象的種類和坐標范圍和層級關系(這里的層級關系表示圖元對象在原理圖中的層級關系,好比在原理圖中有一個矩形和元件中的矩形就不是同一個層級)對不同類型的圖元對象進行過濾。
Cadence
Cadence的腳本開發分為原理圖的腳本開發和PCB的腳本開發,Cadence的原理圖設計軟件使用的是OrCAD,PCB設計軟件使用的是Allegro,兩種環境中所支持的腳本不是通用的。在OrCAD中和Allegro中進行腳本開發都支持宏錄制的功能。
OrCAD中支持兩種腳本語言,一種語言為Cypress Enable Scripting腳本語言,語法形式類似於Altium Designer中的Enable Basic Script腳本語言。另外一種語言為TCL腳本語言,TCL腳本語言支持基本的語法規則,和OrCAD中支持的語法命令,支持循環、判斷等控制語句。
Allegro中支持兩種腳本語言,一種為宏腳本命令,另外一種語言為Skill。宏腳本命令為傳統的宏語言,不支持賦值、變量、函數、循環、判斷等語句
Cadence程序開發方式
在Cadence中的包括capture和allegro這兩款軟件,兩款軟件相互獨立,腳本系統是不通用的。Capture軟件是畫原理圖的軟件腳本系統支持Basic語言和TCL語言,Basic語言是使用的Sax basic腳本語言,和VBA的語法規則基本相同,TCL腳本語言是一種工具腳本語言,可以通過tcl腳本語言獲取原理圖和原理圖庫中的圖元對象。可以創建,移動,翻轉原理圖和原理圖庫文檔中的圖元對象,在pads中可以使用basic語言調用tcl腳本語言,執行tcl語言可以通過多種方式執行。
1.通過capture的命令窗口中執行腳本文件
2.通過windows的cmd執行
3.通過第三方tcl編譯器執行
allegro中支持兩種開發方式,一種為allegro的命令,可以直接在窗口中執行的命令,命令類似於宏的功能,在allegro中支持1000多個命令,只有很少一部分較為常用。另外一種開發方式是使用AXI-SKILL語言進行開發,支持人機界面。
OrCAD宏腳本開發
OrCAD中沒有專門腳本編輯器,在編寫腳本文件時可以使用OrCAD自帶的文本編輯器編寫腳本文件,也可以使用其他便於使用的文本編輯器編寫Cypress Enable Scripting腳本代碼,編寫完成后添加到OrCAD軟件中運行。OrCAD中不支持單步執行、越過子函數執行、跳出子函數、執行到光標處等調試功能,在執行腳本期間不能對原理圖進行操作,生成的對話窗口為模態窗口,窗口關閉后才能對原理圖進行其他操作。
OrCAD中的腳本支持循環、判斷等控制語句,加減乘除等四則運算,支持MsgBox、Input等輸出窗口和輸入窗口語句,支持文件創建、復制、刪除等操作,支持常用的三角函數常用的字符串等函數。
Cypress Enable Scripting腳本的執行支持在“Configured Macro”窗口中執行,支持通過菜單欄運行宏腳本文件,也支持快捷鍵啟動宏腳本文件。
OrCAD中的宏腳本支持創建窗口和控件,支持事件響應,支持將在窗口上的事件關聯到一個函數中。
在OrCAD中使用Cypress Enable腳本可以在當前原理圖頁面中使用,在庫文檔不能使用Cypress Enable腳本程序,也不支持在庫文件編輯器中錄制和運行宏腳本語言。Cypress Enable語言可以在原理圖文檔中添加、刪除、移動、復制、旋轉、鏡像、替換圖元對象。可以實現圖元對象的點選、框選、全選、反選,可以對書簽、錯誤(DRC)、端口、網絡、元件、字符串進行查找,支持輸入和輸出對話框,支持視圖的放大、縮小、區域方法、選擇對象及進行放大。支持的賦值、運算語句。
OrCAD軟件支持宏錄制的功能,可以將使用鼠標鍵盤在原理圖中的操作步驟以腳本的形式記錄下來,在腳本里面再次運行,OrCAD不支持腳本的調試功能,如果腳本程序里面有錯誤,則不能在腳本文件中正常的運行,不會提示在程序中的錯誤位置。因此程序的調試比較困難。
Cypress Enable腳本的文件的后綴名為“*.bas”,如果在宏腳本文件中含有中文字符,則需要將腳本文件的編碼格式轉換為GB2312,否則在程序運行期間會出現編碼錯誤的提示。如果在宏腳本文件中僅有英文字符,腳本文件的編碼格式為UTF-8或者GB2312均可正常執行。
OrCAD中宏腳本開發功能類似於Altium Designer中通過使用帶參數/不帶參數的進程對原理圖文檔的操作。
典型應用:
TCL腳本開發
在OrCAD中支持TCL(工具命令語言),屬於解析型的腳本語言中的一種,可用於快速原型開發、腳本編程,GUI和測試等方面。
在TCL腳本文件中支持調用菜單欄中全部菜單欄命令,使用TCL腳本運行和使用菜單欄/工具欄/快捷鍵對原理圖文檔中操作的功能相同。
TCL腳本中的Iterate(過濾器)和Altium Designer中的過濾器的功能比較相似,都是在原理圖文檔的數據庫中檢索過濾得到原理圖中的圖元對象,根據獲取的圖元對象可以對得到的圖元對象進行處理操作。
在宏腳本文件中可以運行的函數是TCL腳本的子集,也有一部分語句只能在腳本文件中使用。
在原理圖界面和庫文檔界面中都支持TCL腳本語言。雖然OrCAD不像自動化服務器/控制器一樣,程序間的支持數據共享,但是OrCAD中的腳本文件可以在Caption窗口中執行,也可以在Windows中執行,即可以通過其他的方式可以在程序間進行數據傳遞或者共享。
OrCAD中的TCL腳本開發類似於在Altium Designer中通過獲取原理圖的函數接口對文檔中的圖元對象進行操作。
OrCAD中TCL腳本文件的后綴為“*.tcl”。
典型應用:原理圖轉PDF
Allegro腳本開發
Allegro的腳本開發類似於Altium Designer中的進程(此處的進程和線程進程中的進程概念不一樣)命令,都是分為帶參數的進程和不帶參數的進行,在Allegro中分為帶參數的腳本命令和不帶參數的腳本命令。不帶參數的命令為直接執行腳本命令,帶參數的腳本命令為先執行腳本命令,再傳輸腳本命令的參數。這一點與Altium Designer中的進程執行方式相反。
Allegro中的腳本功能類似於Altium Designer中的帶參數的進程或者不帶參數的進程,AXL-SKILL二次開發功能類似於Altium Designer中通過服務器/客戶端的腳本程序。
宏腳本開發
Allegro中支持宏錄制和程序重放功能,在Allegro中腳本命令一共有1000余種,其中常用的不過100余種。使用腳本操作和通過菜單欄/工具欄對文檔的操作功能相同。支持視圖方法、縮小、平移等操作。Allegro中的宏腳本中的命令和菜單欄、工具欄、快捷鍵的功能相同,使用宏腳本對PCB文檔的操作和通過菜單欄、工具欄、快捷鍵對PCB文檔的操作功能相同。
Allegro中不支持判斷、循環等流程控制語句,支持賦值、加減乘除等四則運算語法,可以將通過鼠標鍵盤在Allegro中的操作使用命令的形式記錄下來,Allegro腳本文件的后綴為“*.scr”。
Allegro中沒有專門的宏腳本的編輯界面,不支持單步執行、越過子函數執行、跳出子函數、執行到光標處等調試方法。
宏腳本的執行方式有兩種,一種通過菜單欄文件加載執行腳本文件,另外一種通過PCB編輯器下側的窗口中執行。
Allegro中的宏腳本支持在PCB文檔中添加、移動、刪除、點選、框選圖元對象,給圖元對象對象分配顏色、網絡等功能。在宏腳本命令里面常用的命令都可以在PCB編輯器界面有對應的菜單欄、工具欄、小窗口或快捷鍵。
Allegro中的宏腳本開發功能類似於在Altium Designer中通過獲取原理圖的函數接口對文檔中的圖元對象進行操作。
典型應用:
AXL-SKILL二次開發
Skill有專門的開發界面。在Command界面中可以腳本命令和skill命令切換。
腳本運行方式支持在命令窗口中運行,也可以在“Scripting”窗口中運行。
Skill語言支持判斷、循環等控制語句、與或非等邏輯語句、加減乘除等算數運算、IO及文件處理等。
Skill支持窗口的開發,支持點擊窗口上控件按鈕的響應,支持訪問PCB文檔中的圖元對象和菜單欄中的命令以及系統的參數設置。
Skill語言可以與底層系統交互,也提供了豐富的訪問Cadence各個工具的接口,並且可以開發基於Cadence平台的工具。AXL-SKILL語言是專用於Allegro的SKILL語言,其特點是函數都以axl開頭。只有使用這些專用的函數才可以直接訪問Allegro的數據庫。結合SKILL語法和這些專用函數可以編寫實現各種功能的命令。用戶可通過窗口、菜單、組合鍵和Cadence的命令輸入窗口等完成指令輸入的工作。
Allegro中的AXL-SKILL腳本開發類似於在Altium Designer中通過獲取原理圖的函數接口對文檔中的圖元對象進行操作。
典型應用:PCB中生成二維碼
Pads
Pads是業界主流的PCB設計平台,以其強大的交互式布局布線功能和易學易用等特點,在通信、半導體、消費電子、醫療電子等當前最活躍的工業領域得到了廣泛的應用。
Pad中的原理圖編輯器和PCB編輯器中支持腳本開發。腳本語言在Pads中為為Sax Basic腳本語言,在語法中類似於VBA,支持自動化控制器和自動化容器,自身也可以作為ActiveX服務器接受其他軟件的控制。
Pads中的Sax Basic腳本語言可以調用其他具有VBA功能的軟件,也可以接受其他支持VBA功能的軟件的調用。
在Pads中編寫腳本的編輯器共有兩個,其中一個為在軟件主窗口的下側,另外一個為專用的腳本編輯器。
宏語言支持宏語言的腳本編輯器,可以在腳本語言中添加窗口,窗口具有可視化的功能,這個功能比Altium Designer中的Enable Basic更高級一步。
Pads宏語言窗口設置界面和程序編寫界面
在Pads中使用程序編寫腳本和界面是相互的,寫的宏語言文件可以生成可視化的界面,可視化的界面也可以生成宏語言的各個圖形參數的宏語言腳本。支持腳本錄制功能。
Pads程序開發方式
Pads中支持腳本開發,支持的腳本為SPSS Basic腳本語言,這個是SPSS統計軟件的腳本語言,類似於或者兼容VBA,卻又不是VBA的腳本語言。
Pads中的腳本系統支持創建窗口,有一個簡單窗口編輯器,可以在窗口中添加10種左右的控件,控件可以和事件相關聯。窗口文件和實現的函數都在同一個文件中。
Pads腳本系統的架構類似於VBA,使用Application即可獲取軟件的頂層接口,由於繪制原理圖的軟件和繪制PCB的軟件是兩個獨立的軟件,因此在繪制原理圖軟件中使用Application是獲取原理圖的頂層接口,在PCB軟件中是獲取PCB的頂層接口,要創建或者獲取圖元接口可以直接創建和訪問,在Pads中沒有在Altium Designer中過濾器的概念。在Pads中可以直接獲取某種圖元對象的總數,依次獲取每個圖元接口訪問圖元對象中的數據。而在AD中要訪問圖元對象的接口是通過過濾器實現的。
在Pads中有兩個腳本編輯器,一個在軟件界面的下方是可以執行類似於宏的命令,另一個是腳本編輯器是可以執行函數接口中的方法或者函數接口中的屬性。
CAE軟件的腳本開發介紹ANSYS(ICEM和Fluent)
ICEM
ICEM是Workspace平台下一個前處理軟件,用於網格划分,其使用的腳本為TCL腳本語言。
ICEM是ANSYS公司WorkBench平台下面的一個專業畫網格的工具,可以根據模型的拓撲關系畫出質量非常高的網格,這個軟件的腳本是使用TCL腳本,軟件的安裝目錄下有大量的demo程序,目前官方和國內的培訓單位沒有對此功能的教程,語言慢慢研究。
ICEM的腳本一共有5種執行方式:
1.菜單欄 File->Replay Scripts彈出Replay control窗口,通過Do one或者Do all按鈕執行TCL腳本。
2.菜單欄File->Replay Scripts->Run from script file彈出文件選擇對話框選擇腳本文件執行TCL腳本。
3.在TCL腳本文件中通過TCL命令執行TCL腳本文件,即一個TCL腳本文件啟動另外一個腳本文件。
4.使用icemcfd命令設置在啟動ANSYS ICEM CFD時執行所指定的腳本文件。
5.在命令窗口中使用source命令執行tcl腳本文件,例如使用“source D:\demo.tcl”命令可以執行D盤根目錄下的demo.tcl腳本文件。
Fluent
Fluent是ANSYS公司WorkBench平台下一個流體仿真等功能的軟件,腳本語言是使用的Scheme語言,目前沒有找到介紹使用此功能的資料,待研究
Excel腳本開發(176本)
Word腳本開發(4本)
《Word VBA高效排版范例應用》
《Word 2000中文版VBA開發實例指南》
《中文版Word 2000 VBA一冊通》
《精解Word 2000 VBA與范例解析》
PPT腳本開發(1本)
《PPT新視角 VBA應用技術》
Visio腳本開發(0本)
目前暫未找到有介紹Visio 腳本的書籍,微軟官網有介紹Visio的資料。
Access腳本開發(12本,以下為其中9本)
《Access VBA活用范例大辭典 全新版》
《Access VBA活用范例大辭典》
《Access數據庫應用與VBA編程》
《Access VBA數據庫高效開發范例應用》
《中文版Access 2000 VBA一冊通》
《Access 2007 VBA寶典》
《巧學巧用ACCESS 2003與VBA 中文版》
《Access 2003 VBA私房教師》
WPS腳本開發:
SolidWorks二次開發資料:
《SolidWorks 2006實體建模與二次開發教程》
《SOLIDWORKS二次開發與API教程 2020版》
《SOLIDWORKS API二次開發實例詳解 微視頻版》
《SolidWorks API二次開發》
《SolidWorks API二次開發》
《SolidWorks二次開發實例解析》
《SolidWorks高級教程:二次開發與API 2007》
《SOLIDWORKS二次開發實例精解·沖模標准件3D圖庫》
《SolidWorks 2008二次開發基礎與實例(VC++)》
CATIA二次開發資料:(3本)
《CATIA軟件建模與CAA二次開發》第一本PDF
《CATIA軟件建模與CAA二次開發》第二本
《CATIA二次開發技術基礎》PDF
幫助文檔《V5Automation.chm》
Altium Designer腳本開發/二次開發
目前市面上沒有介紹此軟件腳本開發/二次開發的書籍
Cadence腳本開發/二次開發資料
Allegro腳本開發
Pads腳本開發
《PADS2007原理圖與PCB設計》第8章
立創EDA開發
目前使用立創EDA作為書名的可以找到2本,其中沒有介紹怎么使用腳本開發的,在立創EDA的官網中有介紹怎么使用腳本的。
Fluent腳本開發
《ANSYS Fluent二次開發指南》
ICEM腳本開發
沒有找到介紹ICEM腳本開發的書籍,在ICEM的幫助文檔中有介紹腳本開發的資料,語言為TCL語言。
微軟授權支持VBA的公司,包括CATIA、SolidWorks、Auto CAD,沒有發現Altium Designer、Cadence、ANSYS、Pads等公司
來源網址如下:https://docs.microsoft.com/en-us/previous-versions/msdn10/bb190546(v=msdn.10)
如果此網頁地址發生更改,可根據以下截圖的關鍵字重新查找。