Este es un sencillo script para automatizar la creación de grupos de letras, o palabras, en Blender 2.5.4.
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″
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
Descarga aquí el fichero: acb.py