背景: 有若干個(gè)可復(fù)用VI模塊。但是它們都使用了一個(gè)自定義的枚舉控件。在不同的復(fù)用場合下,使用多態(tài)VI復(fù)用VI模塊。因?yàn)樘幎x枚舉控件是獨(dú)立的,不能復(fù)用。需要提供一個(gè)高效方便的方法復(fù)用這些模塊。
方案1: 將這些模塊和自定義枚舉控件打包成llb庫文件。復(fù)制llb文件。但llb的命名空間,不能保證在多態(tài)VI中調(diào)用重名VI。
方案2:復(fù)制llb庫文件,使用文本編輯,替換文件中的VI模塊名稱。替換后,無法訪問llb中的VI模塊。
方案3:編寫VI腳本,復(fù)制并替換llb庫中的VI模塊名稱。
1. 創(chuàng)建空的目標(biāo)llb文件。調(diào)用vi.lib\Utility\libraryn.llb\New VI Library.vi
2.調(diào)用遞歸文件列表(Recursive File List.vi)獲取源llb庫中的vi模塊路徑。
3.分別打開這些VI模塊,調(diào)用Save Instrument方法,將這些VI模塊用新命名另存至目標(biāo)llb庫文件中。
4.使用VI腳本,替換VI模塊中使用的自定義控件。前面板控件和程序框圖常量都要求進(jìn)行替換。
????? 4.1.對于前面板控件,使用打開對象引用,指定控件標(biāo)簽,就能獲取對象的引用,然后調(diào)用Replace方法。
????? 4.2.對于程序框圖常量,使用遍歷查找圖形對象,指定類名為“EnumConstant”,才能獲取自定義枚舉常量的引用。
注: Save Instrument方法不支持運(yùn)行引擎。所以編譯為EXE后運(yùn)行,總報(bào)1043錯(cuò)誤。
項(xiàng)目TGT\TWGTQYL.lvproj在LabVIEW 2011版本下,測試通過。