先打开一个零件文档,然后用鼠标选中元素,再运行如下python程序:
import win32com.client
import pywintypes # 导入pywintypes模块
import random
# 启动CATIA应用
catia = win32com.client.Dispatch('CATIA.Application')
catia.visible=1
try:
doc = catia.activedocument
sel = doc.selection
visprp = sel.visproperties
# 创建一个颜色库,亦可从已有颜色库数据库文件中读取
color_lib = [(255, 0, 0),
(0, 255, 0),
(0, 0, 255)]
# 程序仅在已经选择了元素的情况下才运行
if sel.count > 0:
# 禁用可视化属性更改时的屏幕刷新
catia.HSOSynchronized = False
# 先将CSO元素存储在临时列表中
cso = []
for i in range(1, sel.count + 1):
cso.append(sel.item(i))
sel.clear()
# 遍历CSO元素
for element in cso:
sel.add(element.value)
# 从颜色库中随机选择一组rgb值
(r, g, b) = random.choice(color_lib)
# 设置颜色
visprp.setrealcolor(r, g, b, 1)
sel.clear()
# 开启可视化属性更改时的屏幕刷新
catia.HSOSynchronized = True
except pywintypes.com_error as e:
# 如果出现错误,可能是因为没有活动文档
print("无法获取活动文档,请确保CATIA应用程序中已有打开的文档。")
print(e)