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

本文介绍如何在Creo中设置模型和绘图的公用名称,使其在Windchill系统中保持一致。通过使用特定的绘图程序语句和正确的工作流程,确保模型及其相关绘图的名称在Windchill中同步更新。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

时常有企业提出这样的需求,即要求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分配“编号”和“名称”,然后再开始设计工作


Creo参数界面中添加Windchill端的产品名称,通常需要配置CreoWindchill服务器之间的集成,并将产品名称作为定制的参数或变量引入。以下是基本步骤: 1. **设置Windchill连接**:首先确保Creo安装有Windchill插件,并配置好Windchill服务器的连接信息,包括服务器地址、登录凭据等。 2. **创建参数映射**:在Creo的参数管理模块(Parameterization)中,新建或修改一个参数,将其类型设为“User-defined”,这将允许你在程序运行时动态获取值。 3. **脚本或API调用**:使用Creo的Python API或者其他支持的语言,编写一段脚本来从Windchill获取产品名称。你需要熟悉Windchill的API文档,比如通过HTTP请求获取特定产品的详细信息。 4. **获取并赋值给参数**:在脚本中,调用Windchill API获取产品名称后,将该值返回给Creo参数,并更新到相应的图形界面上。 5. **展示参数**:在参数界面或零件特征上,选择合适的显示位置,通过参数表达式的方式将产品名称动态地显示出来。 ```python # 示例脚本(Python) from pywincffi import win32api import requests def get_product_name(product_id): url = f'https://your_windchill_server/api/products/{product_id}' response = requests.get(url, auth=(your_username, your_password)) product_name = response.json()['name'] return product_name # 获取产品ID,然后调用函数并更新参数 product_id = 'your_product_id' product_name = get_product_name(product_id) set_parameter_value('your_param_name', product_name) ``` 记得替换`your_windchill_server`, `your_username`, `your_password`, `your_product_id`, `'your_param_name'`为实际的值。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值