SketchUp Ruby APIを使用してStyle
、シーン(プログラムでと呼ばれる)のを変更したい。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では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=
常に返されるはず 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を実行しています)