C4D脚本 打孔脚本(MakeHole.CSC)

C4D脚本 打孔脚本(MakeHole.CSC)    [复制链接]

C4D插件 2015-03-25 09:00 发布

版权归原作者所有,仅供交流学习,禁止商业使用!
C4D插件
作用分类: 变圆挖洞
插件分类: 脚本
使用教程: 含教程
支持(高版本请自测): R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 S22 R23 R24 R25 R26 
支持语言: 英文 
支持系统: PC MAC 
出现位置: 脚本菜单 
检索码: -
1.png
if(!IsCommandChecked(12187)) return;

var op = doc->GetActiveObject();
if(!op) return;

if(op->GetType()==Opolygon)
{
    var bc = new(BaseContainer);

    bc->SetData(MDATA_EXTRUDE_OFFSET, 0);
    bc->SetData(MDATA_EXTRUDE_PRESERVEGROUPS, TRUE);
    SendModelingCommand(ID_MODELING_EXTRUDE_TOOL, NULL, op, bc, MODIFY_POLYGONSELECTION);

  bc->SetData(MDATA_CONVERTSELECTION_LEFT, 2);
  bc->SetData(MDATA_CONVERTSELECTION_RIGHT ,0);
    SendModelingCommand(MCOMMAND_CONVERTSELECTION, NULL, op, bc, MODIFY_POINTSELECTION);
   
    CallCommand(1015924); // Collapse ID_MODELING_COLLAPSE_COMMAND
    SendModelingCommand( MCOMMAND_SELECTALL, NULL, op, bc, MODIFY_POLYGONSELECTION);
   
    var saveselection = op->GetPointSelection();
    var i, collapsedpoint;
    var select = op -> GetPointSelection();

    for (i = 0; i < op->GetPointCount(); i++) {
        if (select->IsSelected(i)){
            collapsedpoint = i;
        }
    }

    SendModelingCommand(MCOMMAND_SELECTGROW, NULL, op, bc, MODIFY_POINTSELECTION);
   
    var found = 0;
    var selectedpoint = new(array,op->GetPointCount());
    var select = op -> GetPointSelection();

    for (i = 0; i < op->GetPointCount(); i++) {
        if (found >= select->GetCount()) break;
        if (select->IsSelected(i)){
            selectedpoint[found] = i;
            found++;
        }
    }

    var beveldistance = 0;
    for(i = 0; i < found; i++) {
        beveldistance += vlen(op->GetPoint(selectedpoint) - op->GetPoint(collapsedpoint));
    }

    op->SetPointSelection(saveselection);

    bc->SetData(MDATA_BEVEL_OFFSET2 , (beveldistance / (found-1) ) /3);
    SendModelingCommand(ID_MODELING_BEVEL_TOOL, NULL, op, bc, MODIFY_POINTSELECTION);
    SendModelingCommand(MCOMMAND_SELECTINVERSE, NULL, op, bc, MODIFY_POLYGONSELECTION);
    SendModelingCommand(MCOMMAND_DELETE, NULL, op, bc, MODIFY_POLYGONSELECTION);

非常好的打洞脚本,可惜C4D R16用不了,国外C4D网站(c4dnetwork)上有讲支持R12,放出来如有还在用12的同学可以去用。
脚本代码放出来,有能力的朋友,改一下吧,改成R16的也好。
MakeHole建模打孔教程




C4D脚本 打孔脚本(MakeHole.CSC) 
关闭

菜鸟C4D推荐上一条 /9 下一条

菜鸟C4D与你一起从零开始!
十年专注C4D学习

( 浙ICP备13033195号-2 )Copyright   ©2013-2024  Powered by©Discuz!  技术支持:cainiao    

|网站地图