Problemas con el edit mode

Preguntas y respuestas relacionadas con el uso y desarrollo de scripts Python y plugins para Blender 3D
Responder
jjorge_5
Mensajes: 2
Registrado: Mié Dic 01, 2010 6:02 am
Nombre:

Problemas con el edit mode

Mensaje por jjorge_5 » Mié Dic 01, 2010 6:12 am

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

trifamox
Mensajes: 88
Registrado: Dom Mar 12, 2006 7:28 pm
Nombre:

Re: Problemas con el edit mode

Mensaje por trifamox » Mié Dic 01, 2010 8:47 am

hola, yo usaba esto para poner al objeto como activo:

Código: Seleccionar todo

bpy.context.scene.objects.active = objeto1
espero que te ayude.
salud!

jjorge_5
Mensajes: 2
Registrado: Mié Dic 01, 2010 6:02 am
Nombre:

Re: Problemas con el edit mode

Mensaje por jjorge_5 » Mié Dic 08, 2010 7:39 am

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:

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\'}
Podría asignar una imagen nueva a

Código: Seleccionar todo

context.active_object.data.uv_textures[0].data.image ,
,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

trifamox
Mensajes: 88
Registrado: Dom Mar 12, 2006 7:28 pm
Nombre:

Re: Problemas con el edit mode

Mensaje por trifamox » Jue Dic 09, 2010 12:55 am

de esto de bakear texturas y esas cosas no sé demasiado, no solo por el lado de python sino en general.
Pero fijate si:

Código: Seleccionar todo

bpy.context.active_object.data.uv_textures[0].active_render
te devuelve True o False.

supongo que no podés hacer el bake sino está seteada para render.
espero que te sea de ayuda!

Responder