def draw(pipe, index): materialIndex = rs.AddMaterialToObject(pipe) rs.MaterialColor( materialIndex, (random.uniform(0, 255), random.uniform(0, 255), 150 + index * 5)) rs.MaterialShine(materialIndex, index * 0.1) rs.MaterialTransparency(materialIndex, random.uniform(0, 0.15 * index))
def ColorAndMove(object, layer): index = rs.AddMaterialToObject(object) if layer == 1: rs.MaterialColor(index, (255, 0, 0)) if layer == 16: rs.MaterialColor(index, (0, 0, 255)) rs.MoveObject(object, (0, 0, -boardThickness - 0.1))
def NewSphere(center, radius): newsphere = rs.AddSphere(center, radius) newsphere = rs.RebuildSurface(newsphere, pointcount=(6, 6)) rs.n materialIndex = rs.AddMaterialToObject(newsphere) rs.MaterialColor(materialIndex, (random.uniform( 0, 50), random.uniform(0, 50), random.uniform(50, 255)))
def SampleSynchronizeRenderColors(): objects = rs.AllObjects() if objects is None: return for obj in objects: color = rs.ObjectColor(obj) source = rs.ObjectColorSource(obj) material = -1 if source == 0: layer = rs.ObjectLayer(obj) material = rs.LayerMaterialIndex(layer) if material < 0: material = rs.AddMaterialToLayer(layer) elif source == 1: material = rs.ObjectMaterialIndex(obj) if material < 0: material = rs.AddMaterialToObject(obj) if material >= 0: if color != rs.MaterialColor(material): rs.MaterialColor(material, color) rs.Redraw()
def draw(center, maxrad, minrad, index): torus = rs.AddTorus(center, maxrad, minrad) materialIndex = rs.AddMaterialToObject(torus) rs.MaterialColor( materialIndex, (random.uniform(0, 255), random.uniform(0, 255), 150 + index * 5)) # rs.MaterialShine(materialIndex,index*5 ) rs.MaterialTransparency(materialIndex, random.uniform(0, 0.1 * index))
def PlaceCircle(x, y, radius, layer): if (layer != 1) and (layer != 16): return None object = rs.AddCylinder((x, y, 0), 0.1, radius) index = rs.AddMaterialToObject(object) if layer == 1: rs.MaterialColor(index, (255, 0, 0)) if layer == 16: rs.MaterialColor(index, (0, 0, 255)) rs.MoveObject(object, (0, 0, -boardThickness - 0.1)) return object
def PlacePCB(curves): curves = rs.JoinCurves(curves, True) surface = rs.AddPlanarSrf(curves) other = rs.CopyObject(surface, (0, 0, -boardThickness)) surfaces = [surface, other] for curve in curves: surfaces.append( rs.ExtrudeCurveStraight(curve, (0, 0, 0), (0, 0, -boardThickness))) rs.DeleteObjects(curves) surface = rs.JoinSurfaces(surfaces, True) index = rs.AddMaterialToObject(surface) rs.MaterialColor(index, (20, 150, 20)) return surface
def AssignMaterial(object_id, Material): # Adds simple, pre-defined material surface property sets to objects. Note that # these are simply visual properties, they do not make the model suitable for # centre of gravity, etc. calculations. MatInd = rs.AddMaterialToObject(object_id) if Material == "White_composite_external": rs.MaterialColor(MatInd, (255, 255, 255)) rs.MaterialShine(MatInd, 100) rs.MaterialTransparency(MatInd, 0) rs.MaterialReflectiveColor(MatInd, (255, 255, 255)) elif Material == "Plexiglass": rs.MaterialColor(MatInd, (255, 255, 255)) rs.MaterialShine(MatInd, 255) rs.MaterialTransparency(MatInd, 0.8) elif Material == "Skin": rs.MaterialColor(MatInd, (229, 184, 143)) rs.MaterialShine(MatInd, 0) rs.MaterialTransparency(MatInd, 0) elif Material == "Panel": rs.MaterialColor(MatInd, (0, 0, 0)) rs.MaterialShine(MatInd, 0) rs.MaterialTransparency(MatInd, 0) elif Material == "PropDisk": rs.MaterialColor(MatInd, (255, 255, 255)) rs.MaterialShine(MatInd, 0) rs.MaterialTransparency(MatInd, 0.9) elif Material == "Structure": rs.MaterialColor(MatInd, (0, 0, 0)) rs.MaterialShine(MatInd, 0) rs.MaterialTransparency(MatInd, 0) elif Material == "ShinyBABlueMetal": rs.MaterialColor(MatInd, (0, 32, 91)) rs.MaterialShine(MatInd, 150) rs.MaterialTransparency(MatInd, 0) elif Material == "ShinyBARedMetal": rs.MaterialColor(MatInd, (218, 41, 28)) rs.MaterialShine(MatInd, 150) rs.MaterialTransparency(MatInd, 0) elif Material == "UnpaintedMetal": rs.MaterialColor(MatInd, (188, 198, 204)) rs.MaterialShine(MatInd, 30) rs.MaterialTransparency(MatInd, 0) elif Material == "FanDisk": rs.MaterialColor(MatInd, (0, 0, 0)) rs.MaterialShine(MatInd, 30) rs.MaterialTransparency(MatInd, 0.2) elif Material == "ShinyBlack": rs.MaterialColor(MatInd, (0, 0, 0)) rs.MaterialShine(MatInd, 120) rs.MaterialTransparency(MatInd, 0)
def SplitRecursive(surface, splitValue, direction, generation, index): if generation > 0: domain_u = rs.SurfaceDomain(surface, direction) domainRange = domain_u[1] - domain_u[0] split = domainRange * splitValue + domain_u[0] surface1 = rs.TrimSurface(surface, direction, (split, domain_u[1])) surface2 = rs.TrimSurface(surface, direction, (domain_u[0], split)) rs.DeleteObject(surface) SplitRecursive(surface1, random.uniform(0.4, 0.6), 0, generation - 1, index) SplitRecursive(surface2, random.uniform(0.4, 0.6), 1, generation - 1, index) else: materialIndex = rs.AddMaterialToObject(surface) rs.MaterialColor( materialIndex, (random.uniform(0, 255), random.uniform(0, 255), 150 + index * 5)) rs.MaterialShine(materialIndex, index * 0.1) rs.MaterialTransparency(materialIndex, random.uniform(0, 0.15 * index))
def add_cube_w_material(count): for i in xrange(count): for j in xrange(count): ### define pt, plane tmp_pt = rs.AddPoint(i * 2, j * 2, 0) tmp_pln = rs.PlaneFromPoints(tmp_pt, rs.PointAdd(tmp_pt, (1,0,0)), rs.PointAdd(tmp_pt, (0,1,0))) ### define extrude line line_ex = rs.AddLine((0,0,0), (0,0,1)) ### draw rect tmp_crv = rs.AddRectangle(tmp_pln, 1,1) tmp_surf = rs.AddPlanarSrf(tmp_crv) tmp_box = rs.ExtrudeSurface(tmp_surf, line_ex, True) ### set color rs.AddMaterialToObject(tmp_box) index = rs.ObjectMaterialIndex(tmp_box) rs.MaterialName(index, str(i) + "_" +str(j)) rs.MaterialColor(index, ((255 / count) * i, 255 - ((255 / count) * j), 255 - ((255 / count) * j))) # name = rs.MaterialName(index) # print name ### delete rs.DeleteObject(tmp_pt) rs.DeleteObject(tmp_crv) rs.DeleteObject(tmp_surf) rs.DeleteObject(line_ex)
import rhinoscriptsyntax as rs sourceObjects = rs.GetObjects(message="Select Objects to use color", preselect=True, select=False) for obj in sourceObjects: obj_color = rs.ObjectColor(obj) obj_mat = rs.ObjectMaterialIndex(obj) if obj_mat == -1: obj_mat = rs.AddMaterialToObject(obj) rs.MaterialColor(obj_mat, obj_color) rs.ObjectPrintColor(obj, color=rs.ObjectColor(obj))
### define pt, plane tmp_pt = rs.AddPoint(i * 2, j * 2, 0) tmp_pln = rs.PlaneFromPoints(tmp_pt, rs.PointAdd(tmp_pt, (1, 0, 0)), rs.PointAdd(tmp_pt, (0, 1, 0))) ### define extrude line line_ex = rs.AddLine((0, 0, 0), (0, 0, 1)) ### draw rect tmp_crv = rs.AddRectangle(tmp_pln, 1, 1) tmp_surf = rs.AddPlanarSrf(tmp_crv) tmp_box = rs.ExtrudeSurface(tmp_surf, line_ex, True) ### set color rs.AddMaterialToObject(tmp_box) index = rs.ObjectMaterialIndex(tmp_box) rs.MaterialName(index, str(i) + "_" + str(j)) rs.MaterialColor(index, ((255 / count) * i, 255 - ((255 / count) * j), 255 - ((255 / count) * j))) name = rs.MaterialName(index) # print name ### delete rs.DeleteObject(tmp_pt) rs.DeleteObject(tmp_crv) rs.DeleteObject(tmp_surf)