BrepFace.CreateExtrusion = create confusion!

    surFace_list = []
    extrusion_distance = 1500
    
    pt0 = Rhino.Geometry.Point3d(0,0,0)
    pt1 = Rhino.Geometry.Point3d(0,0,extrusion_distance*-1)
    
    extrusion_pth = Rhino.Geometry.LineCurve(pt0,pt1)
    
    
    for i in xrange(brep_faces.Count):
        tmp_face = brep_faces[i]
        #print type(tmp_face)
        surFace_list.append(tmp_face)
        
        box = tmp_face.CreateExtrusion(extrusion_pth,True)
        print sc.doc.Objects.AddBrep(box)

image

Say what?!

What is brep_faces? How is it generated?

brep = rs.coercebrep(brep_id)
brep_faces = brep.Surfaces

Uh-uuh…

brep = rs.coercebrep(brep_id)
brep_faces = brep.Faces
1 Like

OMFG! :face_with_hand_over_mouth:

WOW, check the anomalies using this:

import System
import rhinoscriptsyntax as rs
import scriptcontext as sc
import Rhino
import time

tol = sc.doc.ModelAbsoluteTolerance

def extrude_em(brep_id):
    brep = rs.coercebrep(brep_id)
    #print brep_id
    #print brep
    brep_faces = brep.Faces
    
    #print brep_faces.Count
    surFace_list = []
    extrusion_distance = 1500
    
    pt0 = Rhino.Geometry.Point3d(0,0,0)
    pt1 = Rhino.Geometry.Point3d(0,0,extrusion_distance*-1)
    
    extrusion_pth = Rhino.Geometry.LineCurve(pt0,pt1)
    
    
    for i in xrange(brep_faces.Count):
        tmp_face = brep_faces[i]
        #print type(tmp_face)
        surFace_list.append(tmp_face)
        
        
        box = tmp_face.CreateExtrusion.Overloads[Rhino.Geometry.Curve,System.Boolean](extrusion_pth,True)
        print sc.doc.Objects.AddBrep(box)
    
    
    
    




def TST():
    brep_id = rs.GetObject("Select deck: ",rs.filter.polysurface)
    extrude_em(brep_id)
    print "Boo!"

if __name__ == "__main__":
    ts = time.time()
    #rs.EnableRedraw(False)
    
    TST()
    
    print "Elapsed time is {:.2f}".format(time.time()-ts)

With this kind of Brep:
create_confusion_example.3dm (55.9 KB)