20180509
感谢您的信息。我就这样结束了梅尔。
select -all -hi;
string $allObj[] =`ls -sl -fl `;
for($i=0;$i<`size$allObj`;$i++)
{
select -r $allObj[$i];
int $attrExists = `attributeQuery -node $allObj[$i] -exists "mrFBXASC032displacementFBXASC032useFBXASC032globalFBXASC032settings"`;
if ($attrExists) {
deleteAttr -at "mrFBXASC032displacementFBXASC032useFBXASC032globalFBXASC032settings" $allObj[$i];
}
int $attrExists = `attributeQuery -node $allObj[$i] -exists "mrFBXASC032displacementFBXASC032viewFBXASC032dependent"`;
if ($attrExists) {
deleteAttr -at "mrFBXASC032displacementFBXASC032viewFBXASC032dependent" $allObj[$i];
}
int $attrExists = `attributeQuery -node $allObj[$i] -exists "mrFBXASC032displacementFBXASC032method"`;
if ($attrExists) {
deleteAttr -at "mrFBXASC032displacementFBXASC032method" $allObj[$i];
}
int $attrExists = `attributeQuery -node $allObj[$i] -exists "mrFBXASC032displacementFBXASC032smoothingFBXASC032on"`;
if ($attrExists) {
deleteAttr -at "mrFBXASC032displacementFBXASC032smoothingFBXASC032on" $allObj[$i];
}
int $attrExists = `attributeQuery -node $allObj[$i] -exists "mrFBXASC032displacementFBXASC032edgeFBXASC032length"`;
if ($attrExists) {
deleteAttr -at "mrFBXASC032displacementFBXASC032edgeFBXASC032length" $allObj[$i];
}
int $attrExists = `attributeQuery -node $allObj[$i] -exists "mrFBXASC032displacementFBXASC032maxFBXASC032displace"`;
if ($attrExists) {
deleteAttr -at "mrFBXASC032displacementFBXASC032maxFBXASC032displace" $allObj[$i];
}
int $attrExists = `attributeQuery -node $allObj[$i] -exists "mrFBXASC032displacementFBXASC032parametricFBXASC032subdivisionFBXASC032level"`;
if ($attrExists) {
deleteAttr -at "mrFBXASC032displacementFBXASC032parametricFBXASC032subdivisionFBXASC032level" $allObj[$i];
}
int $attrExists = `attributeQuery -node $allObj[$i] -exists "UDP3DSMAX"`;
if ($attrExists) {
deleteAttr -at "UDP3DSMAX" $allObj[$i];
}
int $attrExists = `attributeQuery -node $allObj[$i] -exists "MaxHandle"`;
if ($attrExists) {
deleteAttr -at "MaxHandle" $allObj[$i];
}
int $attrExists = `attributeQuery -node $allObj[$i] -exists "MaxVisibility"`;
if ($attrExists) {
deleteAttr -at "MaxVisibility" $allObj[$i];
}
int $attrExists = `attributeQuery -node $allObj[$i] -exists "currentUVSet"`;
if ($attrExists) {
deleteAttr -at "currentUVSet" $allObj[$i];
}
}显示另一个错误Cannot delete static attribute 'currentUVSet' from node 'ObjectName'
复合属性的子属性不能删除吗?
还是删除属性“currentUVSet”不是无意义的?
20180508
在我从3dmax将fbx文件导入到maya之后。这些对象有一些我不需要的属性。
"mrFBXASC032displacementFBXASC032useFBXASC032globalFBXASC032settings"
"mrFBXASC032displacementFBXASC032viewFBXASC032dependent"
"mrFBXASC032displacementFBXASC032method"
"mrFBXASC032displacementFBXASC032smoothingFBXASC032on"
"mrFBXASC032displacementFBXASC032edgeFBXASC032length"
"mrFBXASC032displacementFBXASC032maxFBXASC032displace"
"mrFBXASC032displacementFBXASC032parametricFBXASC032subdivisionFBXASC032level"
"UDP3DSMAX"
"MaxHandle"
"currentUVSet"我试着让梅尔删除它们。
string $allObj[] =`ls -sl -fl `;
for($i=0;$i<`size$allObj`;$i++)
{
select -r $allObj[$i];
deleteAttr -at "mrFBXASC032displacementFBXASC032useFBXASC032globalFBXASC032settings";
deleteAttr -at "mrFBXASC032displacementFBXASC032viewFBXASC032dependent";
deleteAttr -at "mrFBXASC032displacementFBXASC032method";
deleteAttr -at "mrFBXASC032displacementFBXASC032smoothingFBXASC032on";
deleteAttr -at "mrFBXASC032displacementFBXASC032edgeFBXASC032length";
deleteAttr -at "mrFBXASC032displacementFBXASC032maxFBXASC032displace";
deleteAttr -at "mrFBXASC032displacementFBXASC032parametricFBXASC032subdivisionFBXASC032level";
deleteAttr -at "UDP3DSMAX";
deleteAttr -at "MaxHandle";
deleteAttr -at "currentUVSet";
}
}如果我选择了所有对象。mel将显示错误消息,如:does not have attribute 'UDP3DSMAX'
因为这些对象没有相同的节点。如何正确删除所有属性?
发布于 2018-05-09 08:16:10
如果您使用catch命令,您可以降低一个littel位的复杂性:
string $attr[] = {"mrFBXASC032displacementFBXASC032useFBXASC032globalFBXASC032settings"
"mrFBXASC032displacementFBXASC032viewFBXASC032dependent"
"mrFBXASC032displacementFBXASC032method"
"mrFBXASC032displacementFBXASC032smoothingFBXASC032on"
"mrFBXASC032displacementFBXASC032edgeFBXASC032length"
"mrFBXASC032displacementFBXASC032maxFBXASC032displace"
"mrFBXASC032displacementFBXASC032parametricFBXASC032subdivisionFBXASC032level"
"UDP3DSMAX"
"MaxHandle"
"currentUVSet"};
string $sel[] = `ls -sl`;
for($i = 0; $i < size($sel); $i++)
{
for( $k = 0; $k < size($attr); $k++)
{
catch(`deleteAttr -at $attr[$k] $sel[$i]`);
}
}这样,您就不必关心不存在的属性,但是您当然不会看到可能发生的其他错误。
发布于 2018-05-08 09:28:38
在调用deleteAttr之前,可以先检查属性是否存在:
int $attrExists = `attributeQuery -node yourObject -exists "yourAttr"`;
if ($attrExists) {
deleteAttr -at "yourAttr" youObject;
}https://stackoverflow.com/questions/50225825
复制相似问题