АвторСообщение



ссылка на сообщение  Отправлено: 25.06.07 09:42. Заголовок: Blender,python, как взять объект по имени?


Есть сцена в которою внедрен объект с именем. Необходимо чтобы скрипт менял некоторый параметр этого объекта. Насколько я понимаю для начала необходимо взять (Get) этот объект из сцены. Как этто сделать?

Как лучше организовать управление объектами из скипта? Сейчас у меня при запуске скрипта добавляется только новый объетк в сцену, а нужно изменять свойства уже существующего.

Спасибо: 0 
ПрофильЦитата Ответить
Ответов - 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

Спасибо: 0 
ПрофильЦитата Ответить



ссылка на сообщение  Отправлено: 25.06.07 13:16. Заголовок: Re:


... спасибо ...
... а что значит активный объект? ...
... пытаюсь сделать следующее через скрипт: включение-выключение по необходимости объектов в сцену и изменение параметров объектов - 1) для этого пришлось формировать собственную иерархическую модель, с обходом по дереву (созданием, линковкой объектов к сцене) ; 2) создать в gui связь с изменяемыми параметрами объектов модели ...
... когда загружаю файл повторно, скрипт строит новую сцену, а нужно что бы редактировал уже существующую. Как быть? ...

Спасибо: 0 
ПрофильЦитата Ответить



ссылка на сообщение  Отправлено: 25.06.07 15:03. Заголовок: Re:


... как организовать проверку наличия объекта по имени?

ob=Object.Get("имя")
if(ob):
если есть
else:
создаю
ob=Object.New('Mesh',"имя)

...ругается что объект с именем "имя" не найден...


Спасибо: 0 
ПрофильЦитата Ответить



ссылка на сообщение  Отправлено: 26.06.07 12:18. Заголовок: Re:


Активный обьект - значит обьект который выделен.

sungreen пишет:

 цитата:
... как организовать проверку наличия объекта по имени?


try:
    ob = Object.Get("имя обьекта")

except:
    print 'Обькта не существует'

    # создать новый обьект

#......

или

ob=Object.Get()# без параметра получается список обьектов.
# и перебором по ним пройтись.
# но это медленей

Но лучше работать с выделеным обьектом. Проще и удобней.


Спасибо: 0 
ПрофильЦитата Ответить



ссылка на сообщение  Отправлено: 26.06.07 15:13. Заголовок: Re:


... спасибо ...
сделаю через except

Спасибо: 0 
ПрофильЦитата Ответить



ссылка на сообщение  Отправлено: 30.12.08 19:37. Заголовок: ob = Object.Get("..


ob = Object.Get("OBимя обьекта")

добавить OB перед именем объекта - и все заработает

Спасибо: 0 
ПрофильЦитата Ответить



ссылка на сообщение  Отправлено: 23.03.15 02:38. Заголовок: rttrgtrg




Спасибо: 0 
ПрофильЦитата Ответить
Ответ:
1 2 3 4 5 6 7 8 9
большой шрифт малый шрифт надстрочный подстрочный заголовок большой заголовок видео с youtube.com картинка из интернета картинка с компьютера ссылка файл с компьютера русская клавиатура транслитератор  цитата  кавычки моноширинный шрифт моноширинный шрифт горизонтальная линия отступ точка LI бегущая строка оффтопик свернутый текст

показывать это сообщение только модераторам
не делать ссылки активными
Имя, пароль:      зарегистрироваться    
Тему читают:
- участник сейчас на форуме
- участник вне форума
Все даты в формате GMT  3 час. Хитов сегодня: 0
Права: смайлы да, картинки да, шрифты да, голосования нет
аватары да, автозамена ссылок вкл, премодерация откл, правка нет