【问题标题】:How to change attribute LenX/Y/Z of your component in sketchup using ruby?如何使用 ruby 在 SketchUp 中更改组件的 LenX/Y/Z 属性?
【发布时间】:2020-08-20 20:22:07
【问题描述】:
我正在尝试在 Sketchup 中制作动态组件,我需要将值设置为 lenZ、lenX、lenY.. 但是当我设置它时,它不会改变。
属性检查器显示更改,但组件没有更改。我尝试使用重绘,刷新视图..但它仍然不起作用..(我需要这样做,我需要从 ruby 插件设置组件,然后,我必须通过它们的属性调整它) . (请原谅我的英语..)
这是我正在使用的代码:
sk = Sketchup
model = sk.active_model
view = model.active_view
sel = model.selection
obj = sel.first
dcs = $dc_observers.get_latest_class
obj.set_attribute('dynamic_attributes','lenz',20)
dcs.redraw(obj)
This is a image of the component, but their size is the same.
【问题讨论】:
标签:
ruby
plugins
sketchup
【解决方案1】:
首先
$dc_observers.get_latest_class
应该在最后。
其次,将 dcs 设置为 $dc_observers.get_latest_class 的结果
第三,你应该影响定义的价值
请在下面找到应该工作的代码
model = Sketchup.active_model
sel = model.selection
obj = sel.first
obj.definition.set_attribute "dynamic_attributes", "_lenz_formula", "360"
$dc_observers.get_latest_class.redraw_with_undo(obj)
编辑
对于 DC,它们是其他几个以“_”开头的隐藏属性
- _lenz_error
- _lenz_formula
- _lenz_label
_lenz_formula 定义公式等