// Change Point Order in QuadPoly v0.132 @name "ChangePointOrder" @version 2.5 @warnings @script modeler // 一度に対象にする最大ポリゴン数 @define MAX_POLY 50 main { var BuffTmp[6]; selmode(DIRECT); BuffTmp = polycount(); // 90/92/93 はpoint/poly countでUndoバッファを消費する @if version < 2.2 undo(); @end @if version > 2.7 undo(); @end // 1行内で2つのdefineは効かない?↓ if(BuffTmp[5] == 0 || BuffTmp[5] > MAX_POLY){ error("
Need Select. or Allow lower than ",MAX_POLY," Quad Polys."); return; } if(BuffTmp[1] != BuffTmp[5]){ // [1]はポリ総数、[5]は四角ポリの数。四角以外の選択解除 selmode(USER); selpolygon(CLEAR, NVLT, 4); selpolygon(CLEAR, NVGT, 4); selmode(DIRECT); } var PntIdx[4]; var SelPoly = BuffTmp[5]; editbegin(); for(i = 1; i <= SelPoly; i++){ @if version == 2.5 // 戻りの[1]はSurface、以降[2]...とpointが順に続く BuffTmp = polyinfo(polygons[i]); PntIdx[1] = BuffTmp[3]; PntIdx[2] = BuffTmp[4]; PntIdx[3] = BuffTmp[5]; PntIdx[4] = BuffTmp[2]; @else PntIdx[1] = polygons[i].points[2]; PntIdx[2] = polygons[i].points[3]; PntIdx[3] = polygons[i].points[4]; PntIdx[4] = polygons[i].points[1]; @end polypoints(polygons[i], PntIdx); } editend(); info("
Changed PointOrder"); }