Un script para crear grupos de letras o palabras en Blender

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″

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

 

Descarga aquí el fichero: acb.py

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.