import os
import ctypes
def rename_model_and_drawing(async_connection, new_name):
try:
# 获取当前会话
session = async_connection.Session
# 获取当前模型
model = session.CurrentModel
if model is None:
print("No model is currently open.")
return
# 重命名模型
model.Rename(new_name)
print(f"Model renamed to: {new_name}")
# 如果有关联的绘图,也重命名
drawings = model.ListDrawings()
for drawing in drawings:
drawing.Rename(new_name)
print(f"Drawing renamed to: {new_name}")
except Exception as e:
print(f"Failed to rename model or drawing: {e}")
if __name__ == "__main__":
try:
# 设置环境变量
os.environ['PROTOOLKIT_DIR'] = 'D:\\Program Files (x86)\\PTC\\Creo 4.0\\M050\\Common Files\\protoolkit'
os.environ['PROTOOLKIT_DLL'] = 'D:\\Program Files (x86)\\PTC\\Creo 4.0\\M050\\Common Files\\protoolkit\\x86e_win64\\obj\\protk.dat'
# 加载 Creo Toolkit
creo_toolkit = ctypes.cdll.LoadLibrary(os.environ['PROTOOLKIT_DLL'])
print("Creo Toolkit loaded successfully.")
# 创建 Creo 异步连接
CREO_APP = 'D:\\Program Files (x86)\\PTC\\Creo 4.0\\M050\\Parametric\\bin\\parametric.exe'
asyncConnection = win32com.client.Dispatch("Creo.Application")
async_connection = asyncConnection.Connect(
CREO_APP, # Creo路径
"D:\\WorkingDirectory", # 工作目录
"-g:no_graphics -i:rpc_input", # 命令行参数
10 # 超时时间(秒)
)
# 新名称
new_name = "NewModelName" # 替换为实际的新名称
# 调用重命名函数
rename_model_and_drawing(async_connection, new_name)
except Exception as e:
print(f"Failed to connect to Creo or rename model: {e}")