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