1
我已經創建了一個動態組件,它依賴於它的選項。 我只需要從ruby api以編程方式更改此選項。但我不明白該怎麼做。Sketchup動態組件選項從ruby操作
我已經創建了一個動態組件,它依賴於它的選項。 我只需要從ruby api以編程方式更改此選項。但我不明白該怎麼做。Sketchup動態組件選項從ruby操作
從谷歌工程師誰創建的動態組件SketchUp和發佈此代碼對the SketchUcation Forum:
UI.menu("Plugins").add_item('Make Sang Red') {
# Assumes that sang is the 1st entity in model.
sang = Sketchup.active_model.entities[0]
sang_def = sang.definition
# Override sang's shirt color to red. ("material"
# is a special attribute that requires
# you to set a formula to "take control"
# over the default material the user has painted.)
sang_def.set_attribute 'dynamic_attributes', 'material', 'red'
sang_def.set_attribute 'dynamic_attributes', '_material_formula', '"red"'
# Add a new configurable option to Sang.
# (Any attribute that starts with an underscore
# is a "meta attribute" that describes behavior.)
sang_def.set_attribute 'dynamic_attributes', 'weight', '145'
sang_def.set_attribute 'dynamic_attributes', '_weight_label', 'weight'
sang_def.set_attribute 'dynamic_attributes', '_weight_formlabel', 'My Weight'
sang_def.set_attribute 'dynamic_attributes', '_weight_units', 'STRING'
sang_def.set_attribute 'dynamic_attributes', '_weight_access', 'TEXTBOX'
# Change the description that shows
# up in the configure box with a custom
# formula.
sang_def.set_attribute 'dynamic_attributes', '_description_formula', '"Sang is now red and weighs " & weight'
# There is a global handle into the plugin that
# allows you to make the same calls that the
# plugin does, like so...
dcs = $dc_observers.get_latest_class
dcs.redraw_with_undo(sang)
}
感謝@Jim!你可以在最後解釋更多的全局句柄/ $ dc_observers的東西嗎? – villares 2015-04-26 20:45:16