Ruby-Sketchup изменить цвет лица - PullRequest
0 голосов
/ 03 апреля 2019

Я хотел бы покрасить верх этой фигуры в rfClr, есть идеи?Я могу изменить все это Грей, но как изменить верхнюю часть на синий?

l=100
w=60
h=20
hl=8
slope=4
clr='Gray'
rfClr='blue'
ent = Sketchup.active_model.entities

        #---------Clear All
Sketchup.active_model.entities.clear!       
        #----------------
   model = Sketchup.active_model

    model.start_operation "Create Box"
#-----------------------------------------------------------------------------      

    entities = model.active_entities
    group = entities.add_group
    entities = group.entities
       group.name="Box"
    @pt0 = [0, 0, 0]
    @pt1 = [0, 0, h*12+hl]
    @pt2 = [w*12/2, 0, 12*h+hl+(w/2)*slope]
    @pt3 = [w*12, 0, 12*h+hl]
    @pt4 = [w*12, 0, 0]

newface = entities.add_face(@pt0, @pt1, @pt2, @pt3 , @pt4)
    newface.material=Sketchup::Color.new clr
#newface.reverse!
    newface.pushpull l*12

enter image description here

1 Ответ

1 голос
/ 03 апреля 2019

Я нашел этот ответ. Я думаю, он находит лица, которые имеют значение z

vfaces = entities.grep(Sketchup::Face).find_all{|f| f.normal.z.abs != 0 }
vfaces.each{|f| f.material = rfClr }
...