我想使用SketchUp Ruby APIStyle更改场景(以编程方式称为 a Page)。
首先,我只是通过SketchUp 中的 Ruby 控制台进行测试。为了清楚起见,我已经预先添加了我运行的所有代码>。
假设我从所有开始Styles:
> styles = Sketchup.active_model.styles
#<Sketchup::Styles:0xad9cd08>
Style我在 的“池”中添加了一个新的Styles,并检查是否可以引用它
> styles.add_style("MyStyle.style", false)
true
> styles["MyStyle"]
#<Sketchup::Style:0xad6f45c>
当我尝试将 应用Style到 a Page(在 SketchUp GUI 中,aPage称为场景)时,使用use_style=:
> pages = Sketchup.active_model.pages
#<Sketchup::Pages:0xad9cccc>
> pages[0].use_style?
true
> pages[0].style
#<Sketchup::Style:0xad7fdac>
> pages[0].style.name
[Design Style]
> styles["MyStyle"].name
MyStyle
> pages[0].use_style = styles["MyStyle"]
#<Sketchup::Style:0xad6f45c>
根据 API 文档,use_style= 应该总是 return nil,所以我觉得这里有些不对劲。无论如何,这是我pages[0].style在运行上面的代码后得到的:
> pages[0].style
#<Sketchup::Style:0xad7fdac>
> pages[0].style.name
[Design Style]
在 API 中查看了更多信息后,我找到了Page'update方法。然而,尝试它产生了相同的结果。(无论如何,我觉得它在这里无关紧要,因为我认为它是基于用户当前的看法。)
> pages[0].update(2)
true
> pages[0].style.name
[Design Style]
我在这里错过了什么公然的东西,还是 API 刚刚坏了?
(我正在运行 SketchUp 8.0)