Un script para crear grupos de letras o palabras en Blender

14 Oct etiquetado como blender, python, scripts

Este es un sencillo script para automatizar la creación de grupos de letras, o palabras, en Blender 2.5.4.

Será una gran herramienta para la postproduccion del ataque Hipostasiado...

Abre un area de edicion de textos en Blender, pega el codigo y ejecutalo (boton Run Script)

Ahi va un tutorial mudo y bastante simplon sobre como empezar...

 

El script creara un grupo de objetos del tipo Text.curve con las palabras deseadas.

 

#----------------------------------------------------------
# File abc.py
#----------------------------------------------------------
import bpy
import math
from math import pi

def run(origin,text):    
    # Create and name TextCurve object
    bpy.ops.object.text_add(
    location=origin,
    rotation=(pi/2,0,pi))
    ob = bpy.context.object
    ob.name = "tcuText"
    tcu = ob.data
    tcu.name = 'tcuData'
    # TextCurve attributes
    tcu.body = text
    tcu.font = bpy.data.fonts[0]
    tcu.offset_x = 0
    tcu.offset_y = 0
    tcu.shear = 0
    tcu.space_character = 1
    tcu.size = 3
    tcu.space_word = 0
    # Inherited Curve attributes
    tcu.extrude = 0
    #tcu.back = Truea
    
def abecedario():
    text=" a b c d e f g h i j k l m n o p q r s t u v w x y z "
    text=text+text.swapcase()+" 0 1 2 3 4 5 6 7 8 9"
    text=text.split()
    return text

def hacergrupo():
    bpy.ops.object.select_all()
    bpy.ops.object.select_all()
    bpy.ops.object.group_add()
    bpy.ops.group.objects_add_active()
    
if __name__ == "__main__":
    text=abecedario()
    for i in text:
        run((0,0,0),i)
    hacergrupo()
  

La funcion run la encontré bien documentada en "Code Snippets..." que ThomasL publico en blender artists http://blenderartists.org/forum/showthread.php?t=193908 . De todos modos algunas cosas han cambiado en la API de Blender desde entonces. Mi script por ahora funciona en Blender 2.5.4 r32330

Las otras dos funciones son bien sencillas. La primera crea una cadena con las letras, y luego se anade las mismas letras en mayusculas, a traves del metodo swapcase(), y los numeros.
text.split() devuelve una lista con los elementos separados por elementos en blanco. Si en text incorporamos un parrafo de un libro, obtendremos todas las palabras del parrafo separadas.

Una vez ejecutado la funcion run para todos los elementos de text, habremos creado otros tantos objetos en blender con otras tantas text.curve enlazadas, cada una con la cadena que corresponda.

La funcion makegroup() selecciona todos los objetos.

Aqui el operador bpy.ops.object.select_all() funciona como si pulsasemos A en el visor3D, deselecciona y selecciona todo alternativamente) crea un grupo nuevo y añade los elementos activos al grupo. Los operadores a veces son muy sencillos de usar, pero a veces se vuelven un autentico infierno :P

AttachmentSize
acb.py.txt1.19 KB
Creative Commons Attribution-ShareAlike 3.0 Unported
This Work, Un script para crear grupos de letras o palabras en Blender, by blenderpadial is licensed under a Creative Commons Attribution-ShareAlike license.
a
Sitio elaborado con Drupal, un sistema de gestión de contenido de código abierto