首页 > 解决方案 > 如何使用 ruby​​ 在 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)

这是组件的图像,但它们的大小是相同的。

标签: rubypluginssketchup

解决方案


首先 $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 定义公式和其他


推荐阅读