您的位置:首页 > 其它

如何使Creo绘图和模型在Windchill中的名称保持一致

2013-05-29 10:05 239 查看
时常有企业提出这样的需求,即要求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分配“编号”和“名称”,然后再开始设计工作
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐