【问题标题】: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 定义公式等

    【讨论】:

    • 您好,感谢您的回答。我试过你说的..但它仍然不起作用..我无法更改组件的属性 lenz。还是一样..imgur.com/a/jlJKFpp
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-29
    • 2013-06-17
    • 1970-01-01
    相关资源
    最近更新 更多