在 MixLab 群有用户求助,关于 casts_shadows 的代码,关键在于正确理解SketchUp 的 api 文档的写法:
1、 => 表示返回的值
#casts_shadows? ⇒ Boolean
2、 =(casts)表示需传入 casts_shadows 的参数
#casts_shadows=(casts) ⇒ Boolean
这里涉及到了 ruby 语言中以等号结尾的方法。在 ruby 中,以等号结尾的方法比较特殊,ruby 允许以赋值操作的语法来调用他们,练习下:
#定义一个类,mixLab类有方法name=,用来设置类的name属性。
class mixLab
def name=(aName)
@name = aName
end
end
m= mixLab.new()
#等价写法 m=mixLab.new
m.name=(‘shadow')
p m
# 等价写法 m.name = ‘shadow'
p m
ps: p 为 puts 的简写。
再回过头来,练习下 cast_shadows 相关的代码:
model = Sketchup.active_model
selections = model.selection
puts selections[0].typename
selections[0].casts_shadows=true
status=(selections[0].casts_shadows=false)
#p 是puts 的简写
p selections[0].casts_shadows?
简短的练习,理解ruby等号结尾的方法~