- 物聯(lián)網(wǎng)百科
- 產(chǎn)品百科
- 元器件百科
- 方案百科
二次開發(fā),簡(jiǎn)單的說就是在現(xiàn)有的軟件上進(jìn)行定制修改,功能的擴(kuò)展,然后達(dá)到自己想要的功能,一般來說都不會(huì)改變?cè)邢到y(tǒng)的內(nèi)核。一般的來說,一些大公司如IBM開發(fā)了一個(gè)大型的軟件系統(tǒng)平臺(tái),根據(jù)不同的客戶的需要,一些其它的中小公司為客戶根據(jù)需求在該平臺(tái)上進(jìn)行第二次有針對(duì)性的開發(fā)。是否提供相應(yīng)的接口,有的軟件公司只提供軟件,但也有小公司連代碼一起出售,如是后者,就更方便進(jìn)行二次開發(fā)。比如售票系統(tǒng),車站里面弄好了,提供幾個(gè)儲(chǔ)存過程給銀行,銀行就可以代理售票了,這也是一種,還有一種如我們利用delphi,C#等操作word等。
基本要求
第一,你要有這個(gè)開源產(chǎn)品的所用語言的語言基礎(chǔ)。
第二,你要對(duì)這個(gè)開源產(chǎn)品的功能和使用要有比較熟悉,因?yàn)槟闶煜ち?,你才知道一個(gè)需求下來,你要改什么,什么是系統(tǒng)自帶的,大概要怎么改。
第三,你要熟悉這個(gè)開源產(chǎn)品的數(shù)據(jù)結(jié)構(gòu),代碼結(jié)構(gòu),系統(tǒng)的框架結(jié)構(gòu),核心是哪里,附屬功能是在哪里。簡(jiǎn)單點(diǎn)說,就是數(shù)據(jù)庫,代碼邏輯,文件目錄的熟悉。如果是用接口式的二次開發(fā),則需要你對(duì)這個(gè)接口比較熟悉,一般來說會(huì)有相應(yīng)的文檔。
第四,根據(jù)你的需求,然后利用開源產(chǎn)品的內(nèi)核,進(jìn)行系統(tǒng)的擴(kuò)展和修改,以達(dá)到你的需求。
第五,對(duì)其提供的SDK中的API函數(shù)有一定了解,以利于你對(duì)SDK中個(gè)函數(shù)的使用更加靈活方便。
舉例
PRO/ENGINEER二次開發(fā)
PRO/ENGINEER在提供強(qiáng)大的設(shè)計(jì)、分析、制造功能的同時(shí),也為用戶提供了多種二次開發(fā)工具。常用的二次開發(fā)工具有:族表(Family Table)、用戶定義特征(UDF)、Pro/Program、J-link、Pro/toolkit等。
1)族表(Family Table) 通過族表可以方便的管理具有相同或相近結(jié)構(gòu)的零件,特別適用于標(biāo)準(zhǔn)零件的管理。族表通過建立通用零件為父零件,然后在其基礎(chǔ)上對(duì)各參數(shù)加以控制生成派生零件。整個(gè)族表通過電子表格來管理,所以又被稱為表格驅(qū)動(dòng)。
2)用戶定義特征(UDF) 用戶定義特征是將若干個(gè)系統(tǒng)特征融合為一個(gè)自定義特征,使用時(shí)作為一個(gè)整體出現(xiàn)。系統(tǒng)將UDF特征以gph文件保存。UDF適用特定產(chǎn)品中的特定結(jié)構(gòu),有利于設(shè)計(jì)者根據(jù)產(chǎn)品特征快速生成幾何模型。
3)Pro/ENGINEER軟件對(duì)于每個(gè)模型都有一個(gè)主要設(shè)計(jì)步驟和參數(shù)列表―Pro/Program。它是由類似BASIC的高級(jí)語言構(gòu)成的,用戶可以根據(jù)設(shè)計(jì)需要來編輯該模型的Program,使其作為一個(gè)程序來工作。通過運(yùn)行該程序,系統(tǒng)通過人機(jī)交互的方法來控制系統(tǒng)參數(shù)、特征出現(xiàn)與否和特征的具體尺寸等。
4)J-link是PRO/ENGINEER中自帶的基于JAVA語言的二次開發(fā)工具。用戶通過JAVA編程實(shí)現(xiàn)在軟件PRO/ENGINEER中添加功能。
5)Pro/Toolkit同J-link一樣也是Pro/E自帶的二次開發(fā)工具,在Pro/Toolkit中,PTC向用戶提供了大型的C語言函數(shù)庫,函數(shù)采用面向?qū)ο蟮娘L(fēng)格,通過調(diào)用這些底層函數(shù),用戶能方便而又安全地訪問Pro/ENGINEER的數(shù)據(jù)庫及內(nèi)部應(yīng)用程序,進(jìn)行二次開發(fā),擴(kuò)展一些特定功能。
6)基于VB API的二次開發(fā)過程,Pro/E Wildfire 4.0開始可以采用Visual Basic API,通過 Visual Basic NET應(yīng)用程序和應(yīng)用程序 (如 Microsoft Word、Excel 或 Access) 中的 Visual Basic 宏來進(jìn)行二次開發(fā)。
7)pro/web.link 這種方法使用的語言是javascript,以網(wǎng)頁的形式來訪問proe 模型
一般情況下,采用比較多的是Pro/Toolkit,進(jìn)行二次開發(fā)。
Pro/Toolkit下的開發(fā)的程序有兩種模式:同步模式(Synchronous Mode)和異步模式(Asynchronous Mode)。同步模式下,Pro/E根據(jù)注冊(cè)文件中的信息啟動(dòng)應(yīng)用程序,Pro/Toolkit應(yīng)用程序和Pro/E產(chǎn)生各自的進(jìn)程,程序的控制權(quán)在兩個(gè)進(jìn)程之間切換。該應(yīng)用程序不能夠獨(dú)立于Pro/E而運(yùn)行。在異步模式下,Pro/Toolkit應(yīng)用程序和Pro/E能夠進(jìn)行各自的操作,在通信方面,異步模式使用遠(yuǎn)程調(diào)用(Remote Procedure Calls,RPC)方式,程序(含有獨(dú)立主函數(shù))能獨(dú)立于Pro/E啟動(dòng)。由于異步模式采用遠(yuǎn)程調(diào)用,程序運(yùn)行速度相比同步模式慢很多,整合性也不好,所以一般基于Pro/E的Toolkit開發(fā)采用同步模式。在同步模式下又有兩種開發(fā)方式:動(dòng)態(tài)鏈接庫(DLL Mode)和多進(jìn)程(Multiprocess 或Spawned Mode)。前者為的動(dòng)態(tài)連接庫文件,無自身主程序函數(shù),直接連接于Pro/E進(jìn)行程序調(diào)用。后者為.exe文件,有獨(dú)立的主程序和Pro/E進(jìn)行相連接。一般為了調(diào)試方便,開發(fā)程序時(shí)可以采用多進(jìn)程模式,在程序完成時(shí),采用動(dòng)態(tài)連接庫提高程序運(yùn)行效率。