如何使用红宝石在Sketchup中更改组件的属性LenX / Y / Z?

问题描述

我正在尝试在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.

解决方法

第一 $ dc_observers.get_latest_class 应该在末尾。

第二,您将dcs设置为$ dc_observers.get_latest_class的结果

trhird,您应该影响定义的值

请在下面找到适用的代码

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定义公式等