我希望使用Style
更改场景的Page
(以编程方式称为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
应用到Page
(在SketchUp GUI中,Page
称为场景)时,使用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=
应该总是返回 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)
发布于 2013-03-18 12:49:27
这应该是可行的:
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在设置此属性时进行更新。
https://stackoverflow.com/questions/15388223
复制相似问题