Foros 3DPoder.  

Bienvenido a Foros 3DPoder..

Usted esta viendo este foro como invitado, no esta registrado todavía, lo que limita su visión del foro. Si quiere unirse gratis a la mayor comunidad del diseño gráfico de habla hispana, tener acceso a publicar y responder mensajes, tener mensajes privados con otros miembros(PM), responder encuestas, publicar sus imágenes para que las vea el resto del mundo, tener acceso a los video_tutoriales, y muchas cosas más, no lo dude. Registrarse es rápido, simple y gratuito, agregate hoy a la mayor comunidad 3D de habla hispana! !

Si usted tiene algún problema con su registro, por favor , díganoslo aquí. 3d





¿Te ayudo?
Retroceder   Foros 3DPoder. > :: Infografia y diseño grafico. > Script
Foro3D Galeria Privada Video3D Blueprints Software Blog3DPoder Buscar Empleo Donaciones

google adsense


Respuesta
 
Herramientas
Antiguo 26 sep 2007   #76
fog
Environment Artist
 
Avatar de fog
 
Fecha de Ingreso: febrero-2004
Ubicación: Barcelona
Mensajes: 850
Predeterminado Re: Sugerencias Script para blender

Joder que cabron, lo has bordado klopes!!

Nada hombre, no te preocupes tio, yo habria tardado siglos para llegar aqui.
A ver si lo podemos mejorar
__________________
Blog
fog is offline   Responder Con Cita
Enlaces patrocinados
Antiguo 26 sep 2007   #77
Klópes
12 meses, 12 pagas
 
Avatar de Klópes
 
Fecha de Ingreso: julio-2005
Ubicación: Bajo el sol monegrino
Mensajes: 5,018
Predeterminado Re: Sugerencias Script para blender

Cita:
Escritos por fog Ver Mensaje
Joder que cabron, lo has bordado klopes!!

Nada hombre, no te preocupes tio, yo habria tardado siglos para llegar aqui.
A ver si lo podemos mejorar
Tú tienes que empezar a escribir. Empieza haciendo cosas que no sirven para nada, como crear mallas en forma de estrella, hacerles agujeros, moverles los vértices y todo eso, o un clon de la ventana 3D en la ventana de script, y sobre todo lee mucho (el tutorial en Python Programming Language -- Official Website es imprescindible y los docs del API de blender) y estate al tanto de lo que va saliendo.
Si te interesa, puedes suscribirte a la lista de desarrollo, y ves lo que van discutiendo.
__________________
Y sus discípulos le preguntaron, diciendo: ¿Qué significa esta parábola? Y él dijo: A vosotros os es dado conocer los misterios del reino de Dios; pero a los otros por parábolas, para que viendo no vean, y oyendo no entiendan.

Mateo 8, 9-10
Klópes is offline   Responder Con Cita
Antiguo 26 sep 2007   #78
Klópes
12 meses, 12 pagas
 
Avatar de Klópes
 
Fecha de Ingreso: julio-2005
Ubicación: Bajo el sol monegrino
Mensajes: 5,018
Predeterminado Re: Sugerencias Script para blender

Cita:
Escritos por Caronte Ver Mensaje
Je, Je... eres un monstruo!
Tú también eres feo
__________________
Y sus discípulos le preguntaron, diciendo: ¿Qué significa esta parábola? Y él dijo: A vosotros os es dado conocer los misterios del reino de Dios; pero a los otros por parábolas, para que viendo no vean, y oyendo no entiendan.

Mateo 8, 9-10
Klópes is offline   Responder Con Cita
Antiguo 26 sep 2007   #79
damiles
El Programador
 
Fecha de Ingreso: septiembre-2005
Ubicación: Valencia
Mensajes: 687
Predeterminado Re: Sugerencias Script para blender

Sinceramente los dos sois unos monstruos...
esta ahora conectado.   Responder Con Cita
Antiguo 26 sep 2007   #80
fog
Environment Artist
 
Avatar de fog
 
Fecha de Ingreso: febrero-2004
Ubicación: Barcelona
Mensajes: 850
Predeterminado Re: Sugerencias Script para blender

He modificado un poco el tema.
Ahora pinta, o sea que no necesitas ir haciendo cada vez click para ir anyadiendo objetos.

Cambiando el valor de sleep de 10 a 100 ponemos menos duplicados encima de la geometria


Código:
# SPACEHANDLER.VIEW3D.EVENT

###########################
###~~~~~~~~~~~~~~~~~~~~~###
###     Pegotes 0.1     ###
###                     ###
###  Un capricho para   ###
### contentar a Caronte ###
###~~~~~~~~~~~~~~~~~~~~~###
###########################

__author__ = "Carlos López (klopes)"
__url__ = ("http://www.3dpoder.com", "Author's web page, http://klopes.tk",
"Script's homepage, http://www.iespana.es/klopes/enchufes-guiri.htm",
)
__version__ = "1.0"

__bpydoc__ = """\
Pegotes sirve para colocar objetos sobre las caras de una malla, de acuerdo a su orientación.
No funciona sobre modificadores.
Buen uso:
* Activar Script Links en la ventana correspondiente.
* Abrir el script en una ventana de texto
* En una ventana 3D, Pinchar en View->Space Handler Scripts>pegamento.py
* Seleccionar una malla, y pinchar sobre ella innumerables veces y sin criterio ninguno.
"""

import Blender,BPyWindow,BPyMesh
from Blender import *
from Blender.Window import *
from Blender.Mathutils import *

evt = Blender.event

LMB = Window.MButs['L']

def event (evt, val):
    # Loop until click
    mouse_buttons = Window.GetMouseButtons()
    while not mouse_buttons & LMB:
        Blender.sys.sleep(10)
        mouse_buttons = Window.GetMouseButtons()
        print "UNPRESSED"

    while mouse_buttons & LMB:
        Blender.sys.sleep(10)
        mouse_buttons = Window.GetMouseButtons()
        pinta()
        Draw.Exit()
def pinta():
        print "Mmm..."
    os        =    Blender.Object.GetSelected()[0]
    m        =    NMesh.GetRawFromObject(os.name)
    mc    =    GetMouseCoords()
    ray    =    BPyWindow.mouseViewRay(mc[0],mc[1],os.matrix)
    ori,dir= ray[1],ray[2]
    f        =    BPyMesh.pickMeshRayFace(m,ori,dir)

    if f[0]:
        print "F", f
        o=Object.New('Empty')
        M0    =    os.matrix
        vs    =    f[0].v
        v0    =    Vector(vs[0])*M0
        v1    =    Vector(vs[1])*M0
        v2    =    Vector(vs[2])*M0
        eX, e    =    (v1-v0).normalize(), v2-v0
        eZ    =    CrossVecs(eX,e).normalize()
        eY    =    CrossVecs(eX,eZ)
        M        =    Matrix(-eX,eY,eZ)
        o.setMatrix(M)
        o.setLocation(f[1]*M0)
        Scene.GetCurrent().link(o)
        Redraw()
        Blender.event=None

def gui():
    print "gui"

Draw.Register(gui, event, pinta)
__________________
Blog

Última edición por fog fecha: 26 sep 2007 a las 08:33.
fog is offline   Responder Con Cita
Antiguo 26 sep 2007   #81
fog
Environment Artist
 
Avatar de fog
 
Fecha de Ingreso: febrero-2004
Ubicación: Barcelona
Mensajes: 850
Predeterminado Re: Sugerencias Script para blender

Una preguntilla, para crear un plano o un cubo como seria?
Porque con :
Código:
o=Object.New('Mesh', 'Plane')
no funciona no?
__________________
Blog
fog is offline   Responder Con Cita
Antiguo 26 sep 2007   #82
Mars Attacks
Sexador de humanos
 
Avatar de Mars Attacks
 
Fecha de Ingreso: junio-2003
Ubicación: Castellón
Mensajes: 11,293
Predeterminado Re: Sugerencias Script para blender

Bueno, comienza añadiendo una interfaz chorra donde exista un deslizador de "espaciado de brocha" con el que puedas variar el tamaño del sleep en tiempo de ejecución.
__________________
Yo
//
Portafolio | blog
Mars Attacks is offline   Responder Con Cita
Antiguo 26 sep 2007   #83
Caronte
BlenderAdicto
 
Avatar de Caronte
 
Fecha de Ingreso: diciembre-2004
Ubicación: Valencia-España
Mensajes: 10,324
Predeterminado Re: Sugerencias Script para blender

Cita:
Escritos por fog Ver Mensaje
He modificado un poco el tema.
Ahora pinta, o sea que no necesitas ir haciendo cada vez click para ir anyadiendo objetos.
Eso está bien como opción, pero debería existir también el otro modo, porque nos dará más precisión.
__________________
"Algún día todo será digital"
Caronte.
My latest personal work
Caronte is offline   Responder Con Cita
Antiguo 26 sep 2007   #84
fog
Environment Artist
 
Avatar de fog
 
Fecha de Ingreso: febrero-2004
Ubicación: Barcelona
Mensajes: 850
Predeterminado Re: Sugerencias Script para blender

pues si es verdad caronte, ahora ya sabemos como hacerlo de una forma y de la otra, así que ya tenemos algo avanzado
__________________
Blog
fog is offline   Responder Con Cita
Antiguo 26 sep 2007   #85
Mars Attacks
Sexador de humanos
 
Avatar de Mars Attacks
 
Fecha de Ingreso: junio-2003
Ubicación: Castellón
Mensajes: 11,293
Predeterminado Re: Sugerencias Script para blender

fog, es tan simple con que pongas una variable chivata que te permita pintar siempre que se haya dejado de hacer click o sigas haciendo click y hayan pasado los segundos que quieras, y en caso contrario no haga nada.
__________________
Yo
//
Portafolio | blog
Mars Attacks is offline   Responder Con Cita
Antiguo 26 sep 2007   #86
fog
Environment Artist
 
Avatar de fog
 
Fecha de Ingreso: febrero-2004
Ubicación: Barcelona
Mensajes: 850
Predeterminado Re: Sugerencias Script para blender

Si Mars, a ver si puedo controlar eso, le falta poco.

Ahora lo que hace ya es pintar con el RMB sin parar, y con el boton del medio del Mouse paramos el script
El problema ahora es poder acceder al Gui del script para cambiar el valor del spacing, pero peta.....

Alguna idea?

Código:
# SPACEHANDLER.VIEW3D.EVENT

###########################
###~~~~~~~~~~~~~~~~~~~~~###
###     Pegotes 0.1     ###
###                     ###
###  Un capricho para   ###
### contentar a Caronte ###
###~~~~~~~~~~~~~~~~~~~~~###
###########################

__author__ = "Carlos López (klopes)"
__url__ = ("http://www.3dpoder.com", "Author's web page, http://klopes.tk",
"Script's homepage, http://www.iespana.es/klopes/enchufes-guiri.htm",
)
__version__ = "1.0"

__bpydoc__ = """\
Pegotes sirve para colocar objetos sobre las caras de una malla, de acuerdo a su orientación.
No funciona sobre modificadores.
Buen uso:
* Activar Script Links en la ventana correspondiente.
* Abrir el script en una ventana de texto
* En una ventana 3D, Pinchar en View->Space Handler Scripts>pegamento.py
* Seleccionar una malla, y pinchar sobre ella innumerables veces y sin criterio ninguno.
"""

import Blender,BPyWindow,BPyMesh
from Blender import *
from Blender.Window import *
from Blender.Mathutils import *
from Blender.BGL import *

RMB = Window.MButs['R']

def event (evt, val):
    global mouse_state
    
    mouse_buttons = Window.GetMouseButtons()    
    print mouse_buttons
    
    while not mouse_buttons:
        while not mouse_buttons & RMB:
               Blender.sys.sleep(brush_spacing.val)
               mouse_buttons = Window.GetMouseButtons()
            print mouse_buttons
            if mouse_buttons == 2:
                Draw.Exit()
                return
        while mouse_buttons & RMB:
            Blender.sys.sleep(brush_spacing.val)
            mouse_buttons = Window.GetMouseButtons()
            PaintGeom()
        

def PaintGeom():
    #print "Mmm..."
    os      =    Blender.Object.GetSelected()[0]
    m       =    NMesh.GetRawFromObject(os.name)
    mc      =    GetMouseCoords()
    ray     =    BPyWindow.mouseViewRay(mc[0],mc[1],os.matrix)
    ori,dir =    ray[1],ray[2]
    f       =    BPyMesh.pickMeshRayFace(m,ori,dir)

    if f[0]:
        #print "F", f
        o=Object.New('Empty')
        M0    =    os.matrix
        vs    =    f[0].v
        v0    =    Vector(vs[0])*M0
        v1    =    Vector(vs[1])*M0
        v2    =    Vector(vs[2])*M0
        eX, e    =    (v1-v0).normalize(), v2-v0
        eZ    =    CrossVecs(eX,e).normalize()
        eY    =    CrossVecs(eX,eZ)
        M        =    Matrix(-eX,eY,eZ)
        o.setMatrix(M)
        o.setLocation(f[1]*M0)
        Scene.GetCurrent().link(o)
        Redraw()
        Blender.event=None


def Gui():
    global brush_spacing, activeObj
    
    glColor3f(0.7,0.7,0.7)
    glRecti(15, 35, 320, 210)
    
    glColor3f(0.1, 0.1, 0.1)
    glRasterPos2f(35,190)
    Draw.Text("Brush Spacing: ")
    
    brush_spacing = Draw.Number('Value:', 1000, 35,160, 150,20, 100, 5,1000, '% of meshes with one stroke')
    
    activeObj = Draw.Label("Object to paint: ", 40,120, 100, 30)
Draw.Register(Gui, event, PaintGeom)
__________________
Blog
fog is offline   Responder Con Cita
Antiguo 26 sep 2007   #87
Caronte
BlenderAdicto
 
Avatar de Caronte
 
Fecha de Ingreso: diciembre-2004
Ubicación: Valencia-España
Mensajes: 10,324
Predeterminado Re: Sugerencias Script para blender

Cita:
Escritos por fog Ver Mensaje
...y con el boton del medio del Mouse paramos el script
No puedes usar el botón del medio, porque se usa para rotar la vista 3D y eso es esencial mientras pintamos.
__________________
"Algún día todo será digital"
Caronte.
My latest personal work
Caronte is offline   Responder Con Cita
Antiguo 27 sep 2007   #88
Klópes
12 meses, 12 pagas
 
Avatar de Klópes
 
Fecha de Ingreso: julio-2005
Ubicación: Bajo el sol monegrino
Mensajes: 5,018
Predeterminado Re: Sugerencias Script para blender

Primero: ten en cuenta esto que viene en las instrucciones de los Space Handlers:

Guidelines (important):

* EVENT handlers can access and change Blender objects just like any other script, but they should not draw to the screen, use a DRAW handler to do that. Specifically: Draw.Image and the BGL drawing functions should not be used inside an EVENT handler.

Es decir, olvídate de entornos gráficos en este texto, tendrás que usar otro. Léelo bien.
Además estás mezclando los eventos controlados por una GUI con los detectados como space handler. O una cosa o la otra, o mete la GUI como un script SPACEHANDLER.VIEW3D.DRAW.

En cuanto al spacing, no debería ser controlado por tiempo sino por la distancia al último objeto pegado. Guarda las coordenadas f[1]*M0 y no dibujes el siguiente hasta que la distancia sea mayor que una D.
__________________
Y sus discípulos le preguntaron, diciendo: ¿Qué significa esta parábola? Y él dijo: A vosotros os es dado conocer los misterios del reino de Dios; pero a los otros por parábolas, para que viendo no vean, y oyendo no entiendan.

Mateo 8, 9-10
Klópes is offline   Responder Con Cita
Antiguo 27 sep 2007   #89
anarkis
-cristal lake resident-
 
Avatar de anarkis
 
Fecha de Ingreso: febrero-2005
Ubicación: barcelona
Mensajes: 778
Contactar con anarkis a través de MSN
Predeterminado Re: Sugerencias Script para blender

crea un script para modelar igual que maya XD
__________________
www.anarkistudio.deviantart.com

Anda pasate
anarkis is offline   Responder Con Cita
Antiguo 27 sep 2007   #90
Klópes
12 meses, 12 pagas
 
Avatar de Klópes
 
Fecha de Ingreso: julio-2005
Ubicación: Bajo el sol monegrino
Mensajes: 5,018
Predeterminado Re: Sugerencias Script para blender

Bien, siguiendo con mi rollo de los script handlers, he adaptado unos toques de Fog en la primera idea, y aquí lo tenemos.

Un objeto se añade si la distancia al anterior es mayor que la variable Med, más un valor aleatorio sobre Var.
EDITO: Lo que he escrito del Rand() era una gilipollez, ya está corregido.

Ya le pondremos cabecera al final, ¿vale?

Código:
# SPACEHANDLER.VIEW3D.EVENT

import Blender,BPyWindow,BPyMesh
from Blender import *
from Blender.Window import *
from Blender.Mathutils import *

evt = Blender.event
Med	=	1.0
Var	=	0.5

if evt == Draw.LEFTMOUSE:
	R		=	0
 	mouse_buttons = Window.GetMouseButtons()    
	os		=	Blender.Object.GetSelected()[0]
	m		=	NMesh.GetRawFromObject(os.name)
	M0	=	os.matrix
	LMB = Window.MButs['L']
	L0	=	Vector(-1000000.,0.,0.)
	while mouse_buttons & LMB:
		mouse_buttons = Window.GetMouseButtons()    
		mc	=	GetMouseCoords()
		ray	=	BPyWindow.mouseViewRay(mc[0],mc[1],os.matrix)
		ori,dir= ray[1],ray[2]
		f		=	BPyMesh.pickMeshRayFace(m,ori,dir)
		L		=	f[1]*M0
		Dist=	Vector(L-L0).magnitude
		if f[0] and (Dist > Med+R):
			R		=	Rand()
#			print "F", f
			o=Object.New('Empty')
			L0	=	L
			vs	=	f[0].v
			v0	=	Vector(vs[0])*M0
			v1	=	Vector(vs[1])*M0
			v2	=	Vector(vs[2])*M0
			eX, e	=	(v1-v0).normalize(), v2-v0
			eZ	=	CrossVecs(eX,e).normalize()
			eY	=	CrossVecs(eX,eZ)
			M		=	Matrix(-eX,eY,eZ)
			o.setMatrix(M)
			o.setLocation(L)
			Scene.GetCurrent().link(o)
			Redraw()
			Blender.event=None
__________________
Y sus discípulos le preguntaron, diciendo: ¿Qué significa esta parábola? Y él dijo: A vosotros os es dado conocer los misterios del reino de Dios; pero a los otros por parábolas, para que viendo no vean, y oyendo no entiendan.

Mateo 8, 9-10

Última edición por Klópes fecha: 27 sep 2007 a las 09:17.
Klópes is offline   Responder Con Cita
Respuesta

Etiquetas Identificativas
blender, para, script, sugerencias


Usuarios activos actualmente viendo este tema: 1 (0 miembros y 1 visitantes)
 
Herramientas

Normas de Publicación
Usted no puede publicar nuevos mensajes.
Usted no puede responder mensajes
Usted no puede publicar archivos adjuntos
Usted no puede editar sus mensajes

BB code is habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Trackbacks are deshabilitado
Pingbacks are deshabilitado
Refbacks are deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Granja de PCs para renders en max 3dpoder 3DStudio Max 14 20 ago 2008