"""
Script written by <Luis Quinones>
Script copyrighted by <[n]igma + complicitMatter + computationalMatter>
www.complicitMatter.com
www.computationalmatter.com
Script version Thursday, 16 Feb 2012 20:18:46
"""
import rhinoscriptsyntax as rs
import math
from System.Drawing import Color
baseCrv = rs.GetObject("BaseAction")
strTransferPt = rs.GetObject("PointA",rs.filter.point)
coordTransferPt = rs.PointCoordinates(strTransferPt)
strTransferPt2 = rs.GetObject("PointB",rs.filter.point)
coordTransferPt2 = rs.PointCoordinates(strTransferPt2)
strTransferPt3 = rs.GetObject("PointC",rs.filter.point)
coordTransferPt3 = rs.PointCoordinates(strTransferPt3)
intDiv = 16
arrCrvPtsA = rs.DivideCurve(baseCrv, intDiv, False)
arrSplitA = arrCrvPtsA[0:8]
arrSplitB = arrCrvPtsA[8:16]
for m in range(len(arrSplitA)):
#print m
pointA = rs.AddPoint(arrSplitA[m])
rs.ObjectColor(pointA, Color.White)
pointB = rs.AddPoint(arrSplitB[m])
rs.ObjectColor(pointB, Color.Red)
for i in range(len(arrSplitA)):
for j in range(0,8):
strMainCrv = rs.AddLine(arrSplitA[i],arrSplitB[j])
intDiv2 = rs.DivideCurve(strMainCrv, 7, True)
intDiv2.remove(intDiv2[3])
intDiv2.insert(3,coordTransferPt)
intDiv2.remove(intDiv2[4])
intDiv2.insert(4,coordTransferPt2)
arrFinalCrvs = rs.AddCurve(intDiv2,3)
rs.ObjectColor(arrFinalCrvs, Color.Red)
intDiv3 = rs.DivideCurve(arrFinalCrvs, 7, True)
intDiv3.remove(intDiv3[3])
intDiv3.insert(3,coordTransferPt3)
arrFinalCrvs2 = rs.AddCurve(intDiv3,3)
rs.ObjectColor(arrFinalCrvs2, Color.Green)
rs.DeleteObject(strMainCrv)
Update