返回列表
mayaAPI

polyListComponentConversion() 组件转换函数

通过 polyListComponentConversion() 实现多边形组件的自动化转换
重点:polyListComponentConversion()参数详解

result = cmds.polyListComponentConversion(
componentList, # 要转换的组件列表
fromType=None, # 源组件类型
toType=None, # 目标组件类型
long=False, # 是否返回长名(完整路径)
relative=False, # 是否返回相对路径
transform=None # 指定转换后的父变换节点
)

1.自定义显示函数,用于聚焦刷寻选择

def highlightShow(point):
"""选中组件,高亮显示"""
# 清除所有选中状态
cmds.select(clear=True)
# 选中目标组件
cmds.select(point, replace=True)
# 刷新视图
cmds.refresh(force=True)
# 聚焦选中的组件
cmds.viewFit(point)
# 延迟渲染
time.sleep(0.5)

2.如果视图没有几何体,创建几何体

cubeName = "pCube1"
if not cmds.objExists(cubeName):
cmds.polyCube(name=cubeName)

3.选边

# 定义要操作的边
# 格式化拼接str"变量.e代表边组件[边索引]"
edgeName = f"{cubeName}.e[2]"

4.调用自定义函数

# 高亮显示
highlightShow(edgeName)
print(f"{edgeName}已选中并高亮显示")

5.使用倒计时,做可视化处理

# 可视化倒计时
endTime = 5
print("\n⏳倒计时启动:")
for i in range(endTime, 0, -1):
print(f" {i}秒...")
time.sleep(1)

6.把点转换为边

# 转换边为相邻顶点
point = cmds.polyListComponentConversion(
edgeName,
fe=True, # 转换边
tv=True # 转成点
)

7.打印验证结果


print(f"数据转换完成,正在选中顶点:{point}")
highlightShow(point)

print(f"原始边:{edgeName}")
print(f"转换后的顶点列表:{point}")