說說自動編號

在Creo與Windchill的集成方面,自動編號是個經常會被問到的問題,今天就此來簡單談一下

首先,要明白自動編號是在什麼時候起作用的?是在模型、部件創建的時候,對模型而言,如果是將本地原有模型導入至工作區,那麼自動編號是不起作用的,也就無法實現將舊有模型導入Windchill時爲舊模型分配自動編號。自動編號是在OIR中設定的,OIR也就是對象初始化規則,顧名思義,就是在創建時才起作用。

在Creo中新建模型時,如果將鼠標移至Name字段,會看到如下提示,告知此字段將作爲文件名稱和編號使用


那麼自動編號在OIR中體現在什麼地方呢?其實不論是部件還是EPM文檔,其OIR中都可以找到如下段落:

<AttrConstraint id="number" algorithm="com.ptc.core.rule.server.impl.GatherAttributeConstraints">
  	<Value algorithm="com.ptc.core.rule.server.impl.GetServerAssignedConstraint"/>
	<Value algorithm="com.ptc.core.rule.server.impl.GetImmutableConstraint"/>			
</AttrConstraint>


其中,<Value algorithm="com.ptc.core.rule.server.impl.GetServerAssignedConstraint"/>用於獲取自動編號,而<Value algorithm="com.ptc.core.rule.server.impl.GetImmutableConstraint"/>用於限制編號不允許修改,默認情況下,這兩條都是啓用的。如果需要在重命名或另存操作時能夠修改編號,那麼只需將<Value algorithm="com.ptc.core.rule.server.impl.GetImmutableConstraint"/>註釋掉即可。例如,下圖中,由於<Value algorithm="com.ptc.core.rule.server.impl.GetServerAssignedConstraint"/>並未註釋掉,所以另存操作時新文檔依然能獲得自動編號,不過,由於<Value algorithm="com.ptc.core.rule.server.impl.GetImmutableConstraint"/>已經註釋掉了,所以此時編號依然是可以修改的。



如果對部件也採用相同的處理,那麼在爲CAD文檔自動關聯部件時,系統在創建關聯部件時依然使用自動編號,但很多時候這並非客戶想要的,客戶常常希望自動創建的部件與關聯CAD文檔擁有相同的編號,那麼此時就必須將部件OIR中的<Value algorithm="com.ptc.core.rule.server.impl.GetServerAssignedConstraint"/>也一起註釋掉了。然後默認情況下,關聯部件的編號會從CAD文檔的文件名獲取,但可Windchill首選項決定是否需要自動拿掉後綴。當然,也可以通過映射參數來控制部件編號。


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