我想使用Style
更改场景的Page
(以编程方式称为SketchUp Ruby API)。
首先,我只是通过Ruby Console in SketchUp对此进行测试。为了清楚起见,我已将>
运行的所有代码添加到前面。
假设我开始使用所有Styles
:
> styles = Sketchup.active_model.styles
#<Sketchup::Styles:0xad9cd08>
我在Style
的“池”中添加了一个新的Styles
,并检查我是否可以引用它
> styles.add_style("MyStyle.style", false)
true
> styles["MyStyle"]
#<Sketchup::Style:0xad6f45c>
当我尝试使用use_style=
将Style
应用于Page
(在SketchUp GUI中,Page
称为场景时):
> 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=
应该始终返回 nil
,所以我觉得这里有些不对劲。在任何情况下,以下是我在运行上述代码后从pages[0].style
获得的内容:
> pages[0].style
#<Sketchup::Style:0xad7fdac>
> pages[0].style.name
[Design Style]
在API中查看了一下之后,我找到了Page
的{{3}}方法。然而,尝试一下,产生了相同的结果。 (无论如何,我觉得这里不相关,因为我认为这是基于用户的当前观点。)
> pages[0].update(2)
true
> pages[0].style.name
[Design Style]
我是否遗漏了一些明目张胆的内容,或者API是否已被破坏?
(我正在运行SketchUp 8.0)
答案 0 :(得分:1)
这应该有效:
styles.selected_style = styles["MyStyle"]
pages[0].update(2)
API文档并不总是正确的。有时候信息缺乏,有时候会让人感到困惑,有时候这是完全错误的。
Page.use_style=
设置页面(现在称为SketchUp中的场景)是否存储样式。如果在“场景”工具窗口中选择页面(场景),则会看到一系列复选框,可用于保存摄像机,隐藏的几何图形,图层,剖面等。这是您设置的属性
Page.use_style=
例如,选择一个页面(场景)并对其进行引用 - 保持场景窗口打开并输入以下命令:
page.use_style = false
UI.refresh_inspectors
请注意,“样式和雾”复选框未被选中。另请注意,您需要调用UI.refresh_inspectors
以便在设置此属性时更新UI。