"""Recreates a series of polylines based on an animated series of deformed geometry. Post deformation the geometry is in very bad shape, this script rebuilds the base polylines to reInput into the next scripts""" import rhinoscriptsyntax as rs strNewLayer = rs.AddLayer("Plines",[255,255,255]) layerChoose = rs.GetLayer("ChooseLayer") strMesh = rs.ObjectsByLayer(layerChoose) print len(strMesh) #rs.EnableRedraw (False) faceVert = [0,1] newPts = [] faceVert[0] = [0,1,2,3] faceVert[1] = [0,3,4,4] for z in range (len(strMesh)): #print layerName strLayer = rs.AddLayer('frame'+ str(z+1),[255,255,255]) arrFaces = rs.MeshFaces(strMesh[z],True) print (len(arrFaces)) i = 0 while (i < len(arrFaces)): face = arrFaces[i],arrFaces[i+1],arrFaces[i+2],arrFaces[i+3] #face[0] = arrFaces[i] #face[1] = arrFaces[i+1] #face[2] = arrFaces[i+2] #face[3] = arrFaces[i+3] newLine = rs.AddLine(face[0],face[1]) rs.ObjectLayer(newLine,strLayer) i += 4 crvs = rs.ObjectsByLayer(strLayer,True) if not crvs: print "negative" rs.Command("Join") rs.UnselectAllObjects() arrCrvTest = rs.ObjectsByLayer(strLayer) if arrCrvTest: for curve in arrCrvTest : newPts2 = [] crvPts = rs.CurvePoints(curve) #print crvPts[0] #crvPts.pop(-1) if crvPts : meshTest = rs.AddMesh(crvPts,faceVert) areatest = rs.MeshArea(meshTest) #print areatest[1] if areatest[1] == 0: print "One Failed" rs.DeleteObject(curve) rs.DeleteObject(meshTest) rs.UnselectAllObjects() arrCrvs = rs.ObjectsByLayer(strLayer) if arrCrvs: for curves in arrCrvs: crvPts = rs.CurvePoints(curves) if crvPts: meshTest = rs.AddMesh(crvPts,faceVert) centroid = rs.MeshAreaCentroid(meshTest) newPts2.append(centroid) newPts.append(rs.AddPoint(centroid)) rs.DeleteObject(meshTest) rs.DeleteObjects(newPts) if newPts: pline = rs.AddPolyline(newPts2) else: print" RIGHT--->WROONGG!" if pline: rs.RebuildCurve(pline,2,40) print "rebuilt @ 2,40" rs.ObjectLayer(pline,strNewLayer) rs.LayerVisible(strLayer,False) rs.LayerVisible(layerChoose,False) #rs.EnableRedraw (True) Update