在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首選項決定是否需要自動拿掉後綴。當然,也可以通過映射參數來控制部件編號。