Grasshopper

generative modeling for Rhino

[rhino python] precision problem in using AddSrfContourCrvs (updated)

Hi,

(I uploaded the wrong script file, so I just re-uploaded the right one. Sorry for inconvenience!)
I am working on the script, which generates orthogonal grids based on a given surface.
The script simply finds the bounding box points of the surface, generates base grid points from them and makes contouring lines based on the base grid points with world ZX or YZ plane.

My problem here is that the results of the script are unpredictable because the script frequently misses the first or the last contouring lines. It seems that the position or domain ranges of the given surface matters.
How can I make sure that the script always includes both ends, using bounding box points and AddSrfContourCrvs?
-Ki

```import rhinoscriptsyntax as rs
def contourPointsPlane(srf, pts, plane=rs.WorldYZPlane()):
"returns the list of the crvs list, divided by grid points"    listCrvs = list()
for i in range(0, len(pts)):        tempPlane = rs.MovePlane(plane, pts[i])
listCrvs.extend ( tempCrvs )
return  listCrvs
def getIntervalPts(startPt, endPt, num):
"returns the list of dividing points"    vecDir = rs.VectorUnitize(rs.VectorCreate( endPt ,startPt ) )
dblDist = rs.Distance(endPt, startPt)
distance = dblDist/num
maxIndex = dblDist / distance
vecDir = rs.VectorScale(vecDir, distance )    ptList = [startPt] #assign the start point to the first
for i in range( 1, int(maxIndex)):
ptList.append( rs.PointAdd( ptList[i-1], vecDir ) )
ptList.append(endPt) #assign the end point to the last
return ptList
if __name__== "__main__":
srf = rs.GetObject("select the surface")
bBox = rs.BoundingBox(srf)    ptsX = getIntervalPts(bBox[0], bBox[1], 10)
ptsY = getIntervalPts(bBox[0], bBox[3], 10)
crvTopXListList = (contourPointsPlane( srf, ptsX, rs.WorldYZPlane() ) )
crvTopYListList = (contourPointsPlane( srf, ptsY, rs.WorldZXPlane()) )```

Views: 202

Attachments:

Replies to This Discussion

Hi people,

Thanks,

- Giulio
________________
giulio@mcneel.com

Thx a lot Giulio! I posted a reply at the python forum. Please see it if you don't mind!

• View All