How to color an object in sketchup script

sketchup

#1

in sketchup pro i create an block with ruby script … but how do i gif that block with ruby script an color…?


#2

“block” is not a SketchUp term, so I’m not sure exactly what Entity class you are working with, but anyway to assign a color to an Entity you create a new Sketchup:Material and assign it using the Entity’s #material= method. So, for instance, if f refers to a Face,

m=Sketchup.active_model.materials.add "my_mat"
m.color = "red" # or any other way of describing a color such as an rgb array
f.material=m

Edit: in my specific example note that Faces have two materials in general, a front and a back material. The Face#material= method sets the front surface material. Also, obviously, you need to have a shaded style else the color won’t show.

Edit#2: As @TIG showed, there are various pre-defined pure-color Materials that you can use by simply referring to their name vs actually adding a new Material as I did. But you would need to add a Material to get a texture rather than a pure color.


#3

If your ‘block’ is a ‘face’ then you use:

face.material='red' # i.e. it makes it 'red'

Or if you have a loaded material named ‘MyMaterial’ use:

face.material=Sketchup.active_model.materials['MyMaterial']

if there are a number of faces saved as an array, then iterate through them thus:

faces.each{|face| face.material='blue' }

If your ‘block’ is a group or a component-instance [containing the faces]. then you can apply a material to the ‘container’ - rather than its faces - thus:

block.material='green' #etc


#4

This topic was automatically closed 91 days after the last reply. New replies are no longer allowed.