如何使Creo繪圖和模型在Windchill中的名稱保持一致

時常有企業提出這樣的需求,即要求Creo繪圖自動從模型獲取某個參數,使繪圖和模型的同一參數保持一致,一個常見的情況就是,希望繪圖和模型擁有相同的公用名稱,相對應的就是Windchill中的名稱

此外,有家企業還有一個額外的需求,即在創建模型時自動創建關聯繪圖,並保證繪圖和模型擁有相同的公用名稱,以及檢入Windchill後擁有相同的名稱

怎麼實現呢?其實默認情況下,Windchill中的名稱就是從Creo模型/繪圖的公用名稱,也就是PTC_COMMON_NAME這個參數讀取的,因而我們只要保證繪圖與模型的PTC_COMMON_NAME一致就行。

我們需要做一套“模板”,包括零件模型、零件繪圖、裝配模型、裝配繪圖,假設文件名稱分別爲part.prt, part.drw, asm.asm, asm.drw,可以在這些模板中預設一些東西,添加參數、繪製視圖等等,尤其這裏的繪圖模板其實只是普通的的繪圖文件而已,其都帶繪圖模型的,並非Creo自帶的那類不帶繪圖模型的模板

先說下這種模板怎麼使用,例如要新建一個模型test.prt,則選擇模板文件part.prt,並勾選“複製關聯繪圖”


當然,其實也可以設置config.pro選項rename_drawings_with_object爲both,這樣上圖中的選框默認就會勾選上

如此一來,Creo會自動幫你創建繪圖test.drw,實際上就是複製一份part.drw,並將原來的繪圖模型part.prt替換爲test.prt

正因如此,我們需要爲零件和裝配做好各自的繪圖part.drw, asm.drw,而如果是Creo自帶的那類繪圖模板,如c_drawing.drw,則是與模型類型無關的,零件、裝配都可以使用

好了,接下來我們只需要在test.drw中添加如下繪圖程序語句:

PTC_COMMON_NAME:D=PTC_COMMON_NAME:0

在asm.drw中添加如下繪圖程序語句:

PTC_COMMON_NAME:D=PTC_COMMON_NAME:1

OK,就這麼簡單!現在如果再用這套模板去創建新的零件或裝配,“複製關聯繪圖”所自動創建的繪圖就會自動讀取模型的PTC_COMMON_NAME作爲自己的PTC_COMMON_NAME了。


不過有一個客戶發現,如果是在連接Windchill的情況下使用這樣的模板創建模型和繪圖,則模型的“名稱”與“公用名稱”相同,但繪圖的“名稱”卻與繪圖的“編號”相同。繪圖的PTC_COMMON_NAME不是已經和模型的一致了嗎?那“名稱”也應該一致纔對啊,是模板的用法有問題嗎?

其實,問題並不是出在模板,也不是某些人所認爲的繪圖程序不起作用

注意到,在連接Windchill的情況下創建新零件test.prt,假設創建時填寫的“公用名稱”爲“測試”,勾選“複製關聯繪圖”,好了,在test.prt創建出來時,會發現工作區中只有test.prt而沒有test.drw,只當對test.prt進行保存操作時,工作區中才出現test.drw,但並沒有自動打開test.drw

最關鍵的點到了:繪圖程序是在繪圖打開時纔會被執行的,由於前面test.drw創建後並未打開,即便手動打開後,客戶也沒注意需要對繪圖執行保存才能讓繪圖程序的效果保存下來,而是在繪圖沒打開或打開沒保存的情況下直接將工作區中的test.prt和test.drw一起上載或檢入了,此時test.drw的PTC_COMMON_NAME必然尚未賦值,那麼Windchill就會自動以“編號”作爲PTC_COMMON_NAME的值,同時也作爲“名稱”,而且我們必須知道,不論是通過PTC_COMMON_NAME來驅動“名稱”還是通過自定義的映射參數來驅動“名稱”,“名稱”值只會讀取一次!!例如,加入第一次上載時PTC_COMMON_NAME的值爲“測試”,然後又把PTC_COMMON_NAME的值改爲“測試2”然後再上載,會發現“名稱”依然是“測試”而不是“測試2”

那麼遇到這個問題如何解決也就很清楚了,就是在使用“複製關聯繪圖”創建模型後,先將模型保存一次,以便繪圖被創建出來,然後打開繪圖,以便繪圖程序生效,然後對繪圖執行一次保存,保證繪圖程序寫好的PTC_COMMON_NAME被保存下來,最好現在就做一次上載,讓Windchill分配“編號”和“名稱”,然後再開始設計工作


發佈了48 篇原創文章 · 獲贊 10 · 訪問量 7萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章