Hola
Estoy realizando un script para poder hacer un unwrap de una imagen. Para ello tengo que estár en modo de edición.
Es facil hacer esto con la interfaz gráfica, pincho en el objeto y pulso TAB.
Lo que no se es como hacerlo con la api 2.5 ya que no se como poner activo el objeto que trato. Tomemos como ejemplo la escena por defecto, marcamos, por ejemplo el foco y a continuación desmarcamos todo.
Si mi objeto se llama objeto1, lo selecciono con:
bpy.data.objects[\'objeto1\'].select=True
Esto lo selecciona, pero no lo pone como objeto activo.
Si hago bpy.ops.object.editmode_toggle(), lanza el siguiente error
ret = op_call(self.idname_py(), C_dict, kw)
SystemError: Operator bpy.ops.object.editmode_toggle.poll() failed, context is incorrect
Creo que el problema es que queda activo el foco y no tiene modo de edición o algo así, pero no se como poner activo el objeto.
Alguien puede ayudarme, no se como avanzar y llevo varios días buscando en la Api sin respuestas.
Gracias
Problemas con el edit mode
Re: Problemas con el edit mode
hola, yo usaba esto para poner al objeto como activo:
espero que te ayude.
salud!
Código: Seleccionar todo
bpy.context.scene.objects.active = objeto1
salud!
Re: Problemas con el edit mode
Eso era lo que buscaba , avanzando un poco en el script, y una vez que obtengo las proyecciones, tengo que asociarle una imagen antes de hacer el bake. Si lo hago desde la interfaz, basta con darle a nueva imagen, luego al bake y funciona.
Si lo hago desde código, obtengo las proyecciones, creo una imagen nueva y hago un bake, pero me dice: \"No valid images found to bake to\".
Creo que al hacerlo desde la interfaz, hace una asignación de esa imagen a \"algo\", pero no se que es ese \"algo\".
Buscando en los addons del repositorio he encontrado esta porción de código que me parece interesante:
Podría asignar una imagen nueva a
,pero si intento poner esto en la consola, las texturas no tienen data.image
Gracias por la respuesta anterior, espero que puedan ayudarme en este último paso que me queda.
Un saludo
Si lo hago desde código, obtengo las proyecciones, creo una imagen nueva y hago un bake, pero me dice: \"No valid images found to bake to\".
Creo que al hacerlo desde la interfaz, hace una asignación de esa imagen a \"algo\", pero no se que es ese \"algo\".
Buscando en los addons del repositorio he encontrado esta porción de código que me parece interesante:
Código: Seleccionar todo
img = None
#find the image that\'s used for rendering
for uvtex in context.active_object.data.uv_textures:
if uvtex.active_render == True:
for uvdata in uvtex.data:
if uvdata.image != None:
img = uvdata.image
break
if img == None:
self.report({\'ERROR\'}, \"No valid image found to bake to\")
return {\'CANCELLED\'}
Código: Seleccionar todo
context.active_object.data.uv_textures[0].data.image ,
Gracias por la respuesta anterior, espero que puedan ayudarme en este último paso que me queda.
Un saludo
Re: Problemas con el edit mode
de esto de bakear texturas y esas cosas no sé demasiado, no solo por el lado de python sino en general.
Pero fijate si:
te devuelve True o False.
supongo que no podés hacer el bake sino está seteada para render.
espero que te sea de ayuda!
Pero fijate si:
Código: Seleccionar todo
bpy.context.active_object.data.uv_textures[0].active_render
supongo que no podés hacer el bake sino está seteada para render.
espero que te sea de ayuda!