Как изменить атрибут LenX/Y/Z вашего компонента в Sketchup с помощью ruby?

я пытаюсь создать динамический компонент в Sketchup, мне нужно установить значение lenZ, lenX, lenY... но когда я его устанавливаю, оно не меняется. Инспектор атрибутов показывает изменение, но компонент не изменяется. я пытался использовать перерисовку, обновление вида ... но это все еще не работает ... (мне нужно сделать так, мне нужно установить компонент из рубинового плагина, а после этого я должен настроить его по их атрибутам) . (извините за мой английский..)

Это код, который я использую:

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)

Это изображение компонента, но их размер одинаковый.


person Lionvids    schedule 20.08.2020    source источник


Ответы (1)


Первый $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 определяет формулу и другие

person Denis Bolomier    schedule 21.08.2020
comment
Привет, спасибо за ваш ответ. Я попробовал то, что вы сказали ... но это все еще не работает ... я не могу изменить атрибут lenz компонента. все по-прежнему.. imgur.com/a/jlJKFpp - person Lionvids; 24.08.2020