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)
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
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)