0

我想使用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)

4

1 回答 1

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。

于 2013-03-18T20:49:27.747 回答