Автор | Сообщение |
|
Отправлено: 25.06.07 09:42. Заголовок: Blender,python, как взять объект по имени?
Есть сцена в которою внедрен объект с именем. Необходимо чтобы скрипт менял некоторый параметр этого объекта. Насколько я понимаю для начала необходимо взять (Get) этот объект из сцены. Как этто сделать? Как лучше организовать управление объектами из скипта? Сейчас у меня при запуске скрипта добавляется только новый объетк в сцену, а нужно изменять свойства уже существующего.
|
|
|
Ответов - 7
[только новые]
|
|
|
Отправлено: 25.06.07 11:58. Заголовок: Re:
import Blender from Blender import * ob = Object.Get('Имя обьекта') #но это не удобно, лучше работать с активными обектами: #получить активную сцену: scen = Scene.GetCurrent() #получить активный обьект: obj = scen.getActiveObject() #а лучше смотри API Bpy API 2.44
|
|
|
|
Отправлено: 25.06.07 13:16. Заголовок: Re:
... спасибо ... ... а что значит активный объект? ... ... пытаюсь сделать следующее через скрипт: включение-выключение по необходимости объектов в сцену и изменение параметров объектов - 1) для этого пришлось формировать собственную иерархическую модель, с обходом по дереву (созданием, линковкой объектов к сцене) ; 2) создать в gui связь с изменяемыми параметрами объектов модели ... ... когда загружаю файл повторно, скрипт строит новую сцену, а нужно что бы редактировал уже существующую. Как быть? ...
|
|
|
|
Отправлено: 25.06.07 15:03. Заголовок: Re:
... как организовать проверку наличия объекта по имени? ob=Object.Get("имя") if(ob): если есть else: создаю ob=Object.New('Mesh',"имя) ...ругается что объект с именем "имя" не найден...
|
|
|
|
Отправлено: 26.06.07 12:18. Заголовок: Re:
Активный обьект - значит обьект который выделен. sungreen пишет: цитата: | ... как организовать проверку наличия объекта по имени? |
| try: ob = Object.Get("имя обьекта") except: print 'Обькта не существует' #...... или ob=Object.Get()# без параметра получается список обьектов. # и перебором по ним пройтись. # но это медленей Но лучше работать с выделеным обьектом. Проще и удобней.
|
|
|
|
Отправлено: 26.06.07 15:13. Заголовок: Re:
... спасибо ... сделаю через except
|
|
|
|
Отправлено: 30.12.08 19:37. Заголовок: ob = Object.Get("..
ob = Object.Get("OBимя обьекта") добавить OB перед именем объекта - и все заработает
|
|
|
|
Отправлено: 23.03.15 02:38. Заголовок: rttrgtrg
|
|
|
|