scripted scribble 03

seen from Maldives
seen from United States
seen from United Kingdom

seen from United States
seen from Germany
seen from Ireland
seen from United States

seen from Malaysia

seen from Croatia
seen from Maldives
seen from Singapore
seen from United States
seen from United States

seen from United States
seen from United States
seen from United States

seen from Maldives
seen from Russia
seen from United States

seen from United States
scripted scribble 03
[sk.01]_PointCloud to Interpolated Lines Sketch
Pulling data from the random library to set up point cloud.
Connecting the dots between them using Interpolated lines. The sketch is a simple code which generates 3D forms.
import rhinoscriptsyntax as rs import Rhino.Geometry as rg import random as rn
pts = []
for i in range (50): xpos = rn.random() * 25 ypos = rn.random() * 25 zpos = rn.random() * 25 pts.append( (xpos, ypos, zpos) )
pointcloud = rs.AddPointCloud(pts) selObj = rs.SelectObject(pointcloud) rs.Command(“_explode _Enter”) curves = rs.AddInterpCurve(rs.SelectedObjects() ) rs.DeleteObjects(rs.SelectedObjects() ) rs.AddPipe(curves, 0, 4)
#-RunPythonScript (K:\PythonPlugins\SelBlockInstancePick.py) import rhinoscriptsyntax as rs blocknames=[] object_ids = rs.GetObjects(message="Pick block instance", filter=4096, preselect=True, select=True, custom_filter=None) for object_id in object_ids: blocknames.append(rs.BlockInstanceName(object_id)) blocknames = set(blocknames) #print blocknames for blockname in blocknames: blocklist = rs.BlockInstances(blockname) rs.EnableRedraw(False) rs.SelectObjects(blocklist) rs.EnableRedraw(True) print blockname+'= '+str(len(blocklist))
#populate blocks import rhinoscriptsyntax as rs objs = rs.GetObjects(message='Select objects to orient: ', filter=0, group=True, preselect=True, select=False, objects=None, minimum_count=1, maximum_count=0, custom_filter=None ) object_Reference_id=rs.GetObject(message='Block of Reference: ', filter=4096, preselect=True, select=False, custom_filter=None, subobjects=False) xform_Reference = rs.BlockInstanceXform(object_Reference_id) plane_Reference = rs.PlaneTransform (rs.WorldXYPlane(), xform_Reference) object_ToPlace_ids=rs.GetObjects(message='Blocks to orient to: ', filter=4096, preselect=False, select=False, custom_filter=None) rs.EnableRedraw(False) for object_ToPlace_id in object_ToPlace_ids: xform_ToPlace = rs.BlockInstanceXform(object_ToPlace_id) plane_ToPlace = rs.PlaneTransform (rs.WorldXYPlane(), xform_ToPlace) transform = rs.XformRotation1(plane_Reference,plane_ToPlace) rs.TransformObjects( objs, transform, True ) rs.EnableRedraw(True)
#shuffles selected objects and divides them into n nr of groups import rhinoscriptsyntax from random import shuffle, randint x = rhinoscriptsyntax.GetObjects(message=None, filter=0, group=True, preselect=True, select=False, objects=None, minimum_count=1, maximum_count=0, custom_filter=None) shuffle(x) n = 3 num = float(len(x))/n l = [ x [i:i + int(num)] for i in range(0, (n-1)*int(num), int(num))] l.append(x[(n-1)*int(num):]) for i in range(0,n): randomnumber=randint(0,99999999999) name = rhinoscriptsyntax.AddGroup("NewGroup"+str(randomnumber)) rhinoscriptsyntax.AddObjectsToGroup(l[i],name)
#select all instances of a picked block import rhinoscriptsyntax as rs object_id = rs.GetObject(message="Pick block instance", filter=4096, preselect=False, select=False, custom_filter=None, subobjects=False) blockname = rs.BlockInstanceName(object_id) blocklist = rs.BlockInstances(blockname) rs.SelectObjects(blocklist) print blockname
#pick existent block and insert it uniformly scaled import rhinoscriptsyntax as rs object_id = rs.GetObject(message="Pick block instance", filter=4096, preselect=False, select=False, custom_filter=None, subobjects=False) blockname = rs.BlockInstanceName(object_id) point = rs.GetPoint(message="Pick inset point:", base_point=None, distance=None, in_plane=False) rs.InsertBlock(blockname, point)
rotate blocks by insert point
import rhinoscriptsyntax as rs objects = rs.SelectedObjects() for object in objects: if rs.IsBlockInstance(object): insertpoint = rs.BlockInstanceInsertPoint(object) rs.RotateObject(object,insertpoint,180)