CRD-S1 · Legacy macro maintenance
CoCreate 舊巨集維護・
Lisp 程式改版
公司用了多年的 CoCreate 巨集,寫的人已經離職、沒有留下文件;平常還能用, 但一遇到錯誤、要改規則或升級版本,就沒人知道該從哪裡改。
我協助盤點既有的 Lisp 程式、整理功能與檔案關係、修正錯誤,並配合新版本或新流程調整, 讓巨集重新變成可以維護的工具。
01
先盤點,再決定怎麼改
舊巨集最常見的問題不是「寫得不好」,而是沒有人知道它完整在做什麼。 直接修改容易牽一髮動全身,所以我會先做盤點:
- 公司實際在用哪些巨集、各自的功能與使用者
- 程式之間的呼叫關係、啟動時載入的檔案與設定
- 依賴的圖框、零件庫、屬性名稱或資料夾路徑
- 在目前與目標版本上的執行狀況
盤點結果會整理成文件,之後不論修補、改寫或換人維護,都有依據。
02
常卡住的地方
原作者離職
巨集能用但沒人看得懂,出錯時只能繞過或放棄使用。
升級版本後報錯
想升級 Creo Elements/Direct,卻擔心舊巨集不能用而一直延後。
規則變了改不動
料號規則、圖框或屬性欄位調整,但巨集裡寫死了舊規則。
檔案散落各處
同一個功能有好幾個版本的程式檔,不確定哪一個才是正在用的。
03
工具可以怎麼做
- 01
程式盤點
整理現有巨集清單、功能、呼叫關係與相依檔案。
- 02
功能文件化
寫成使用者看得懂的操作說明,以及維護者需要的技術說明。
- 03
錯誤修正
依盤點結果修正錯誤,並在實際使用的圖面上驗證。
- 04
版本相容調整
在目標版本上測試,調整有差異的指令與對話框。
- 05
規則參數化
把寫死在程式裡的料號、路徑、欄位名稱抽成設定,日後改規則不必改程式。
- 06
整併與重寫
重複或結構混亂的程式,評估整併或重寫成較好維護的版本。
04
開發前會確認的條件
這些條件決定工具能不能穩定運作,也會影響開發範圍與報價。不確定的項目,評估時一起確認即可。
項目
要確認什麼
為什麼重要
程式檔案
要確認什麼是否還保有可閱讀的 Lisp 原始檔
為什麼重要決定能否直接修改,或需要依行為重寫
使用中版本
要確認什麼目前與目標的 Creo Elements/Direct 版本
為什麼重要版本差異是測試與調整的重點
實際用法
要確認什麼誰在用、多常用、用在哪些流程
為什麼重要決定盤點與修正的優先順序
相依資源
要確認什麼圖框、零件庫、屬性欄位、網路路徑
為什麼重要換環境時最容易出錯的地方
測試方式
要確認什麼能否提供可測試的範例模型與環境
為什麼重要修正後需要在實際情境驗證
相關技術筆記
全部筆記 →05
常見問題
多數 Lisp 語法可以延續,但部分系統指令與對話框行為可能在版本間有差異。建議先盤點公司在用的巨集,在新版本上逐一測試,再決定需要修正的範圍。
可以。我會先閱讀程式、整理出每個巨集的功能、呼叫關係與相依的檔案,再跟實際使用的人確認操作方式,最後整理成文件。
看程式的狀況與後續需求。只是少數錯誤或版本差異,修補通常比較划算;如果程式結構混亂、又要加很多新功能,重寫可能更省長期維護成本。盤點後我會說明兩種做法的差異再讓你決定。
能處理的程度有限。若原始 Lisp 檔已經遺失,只剩無法閱讀的檔案,通常只能依實際操作行為重新撰寫,需要先看檔案狀況再評估。