Logo POVRay...
Instrucciones para "CEUP.inc" v1.0

Donación de Rafael Angel Campos Vargas, en el año 2012, a la Biblioteca de objetos de POV-Ray.  Este proyecto se encuentra actualmente inscrito con la patente LGPL;  para libre uso comercial y no comercial del software.

CC-GNU LGPL
The primary purpose of this collection is to make items publicly available under a common license that permits use, modification and re-distribution. To support this contributions are donated to the collection with consent for their use under the terms of the Creative Commons - Lesser General Purpose License (CC-GNU LGPL).
Chris Bartlett 2007

La versión actual v1.0 de "CEUP.inc" dibuja una caminadora corriente para ejercicios de uso doméstico.  Lamentablemente esta versión es muy poco versátil, no obstante, incluye una macro que pemite modificar las texturas y algunas características fácilmente.  Es compatible con PovRay 3.1. 

Por motivos de compatibilidad con POVRay 3.1.;  se incluyen algunas macros propias de distribuciones posteriores de POVRay.  Por supuesto, todas son de libre uso y con la misma patente.  La siguiente es la lista exhaustiva de dichas macros.

Indice de página:

  1. Instalación de Archivos
  2. Instrucciones básicas
  3. Características del objeto
  4. Modificadores
  5. Notas y Advertencias
  6. Sugerencias de modificación
  7. Sobre LibreN3D

Instalación de Archivos

El procedimiento siguiente es completamente optativo, corresponde simplemente al estándard de la Biblioteca de objetos POV-Ray.
  1. Cree el subdirectorio "ObjectCollections".  Se sugiere un subdirectorio del folder POV-Ray, creado por el instalador en algunas versiones en la sección de documentos o bien en la de código.
  2. Copie los archivos "CEUP.inc", "CEUP_AU1.inc" y "CEUP_IM1.gif" en dicho subdirectorio;  únicamente éstos son necesarios.  En cuanto a la documentación y demás puede colocarla si desea en el mismo subdirectorio, el estándar ha sido diseñado para evitar problemas de compatibilidad.
  3. Actualice los archivos buscados por POV-Ray, en algún archivo ini pertinente.  Por ejemplo "POVRay.ini";  agregue el comando Library_Path="C:\FDOS\POVRAY31\ObjectCollections"; o el que corresponda a su sistema operativo.  POV-Ray ofrece muchas formas de realizar esto.  Si no sabe cómo, probablemente convenga leer el manual de referencia en la sección "Command-line options".   Cada sistema operativo presenta sus propias variantes.
Nota:  El archivo de prueba "CEUP.pov" puede ejecutarse sin ningún proceso de instalación.  Unicamente debería estar ubicado en el mismo folder que "CEUP.inc", "CEUP_AU1.inc" y "CEUP_IM1.gif".


Instrucciones básicas

Caminadora
Muy fácil de usar, tan simple como incluir el archivo y ubicar el objeto.  El siguiente ejemplo recurre a la macro default, colocando al objeto en posición base.

    #include "stdinc.inc"
    #include "stdcam.inc"
    #include "CEUP.inc"
    
    object      {
      CEUP_Caminadora(0,0,0,0) 
      translate <-1.5,0.85,-3>         
    }

La macro principal tiene cuatro parámetros, probablemente no muy útiles:

    #macro CEUP_Caminadora( FraccionElevacion, FactorAvance, F1, F2 )
FraccionElevacion :
Fracción entre cero ("bajar") y uno ("subir").  Para extender o guardar la caminadora.
FactorAvance :
Se aplica a la textura deslizante como translate -FactorAvance*x.  Util en animación.
F1 :
Fraccion entre -1.0 a 1.0 para simular la oscilación de la superficie deslizante.  Desde el punto de vista de un usuario virtual corresponde a un desplazamiento del cilindro delantero de izquierda a derecha.
F2 :
Fraccion entre -1.0 a 1.0 para simular la oscilación de la superficie deslizante.  Desde el punto de vista de un usuario virtual corresponde a un desplazamiento del cilindro posterior de izquierda a derecha.

Se incluye una macro adicional para modificar fácilmente las texturas, y otras características básicas:

   #macro CEUP_CaminadoraEjercicioUniPersonal
        ( Ancho, ProfundidadP, Altura, RadioBotella,
          FraccionEje, LargoTabla,
          F1,F2, FraccionElevacion, FactorAvance,
          TexturaPrincipal, TexturaBaseTabla,
          TexturaMetalizada, TexturaPlastica,
          TexturaNegra, TexturaFirme, TexturaBoton,
          TexturaPantalla, TexturaBanda )
Ancho :
Referencia para el frente de la caminadora.  Default es 408*L.
ProfundidadP :
Referencia para la profundidad de la base a lo largo.  Default es 300*L.
Altura :
Referencia para la altura de la caminadora.  Default es 787*L.
RadioBotella :
Radio de una botellita de agua (no incluída) para la caminadora.  Default es 25*L.
FraccionEje :
Referencia como fracción propia para la altura del eje principal de la tabla deslizante.  Default es 136/787.
LargoTabla :
Referencia para el largo de la tabla deslizante.  Default es 894*L.
F1 :
Fraccion entre -1.0 a 1.0 para simular la oscilación de la superficie deslizante.  Desde el punto de vista de un usuario virtual corresponde a un desplazamiento del cilindro delantero de izquierda a derecha.
F2 :
Fraccion entre -1.0 a 1.0 para simular la oscilación de la superficie deslizante.  Desde el punto de vista de un usuario virtual corresponde a un desplazamiento del cilindro posterior de izquierda a derecha.
FraccionElevacion :
Fracción entre cero ("bajar") y uno ("subir").  Para extender o guardar la caminadora.
FractorAvance :
Se aplica a la textura deslizante como translate -FactorAvance*x.  Util en animación.
TexturaPrincipal :
Textura principal a aplicar al aparato.  Default es CEUP_DefaultTexturaPrincipal.
TexturaBaseTabla :
Textura principal a aplicar a la base de la tabla para ejercicios.  Default es CEUP_DefaultTexturaBaseTabla.
TexturaMetalizada :
Textura a aplicar a ciertos elementos metalizados de la estructura.  Default es CEUP_DefaultTexturaMetalizada.
TexturaPlastica :
Textura para aplicar a ciertos elementos plásticos de la estructura.  Por ejemplo, las ruedas, controles, soportes, etc.  Default es CEUP_DefaultTexturaPlastica.
TexturaNegra :
Textura a aplicar a elementos de caucho que sirven de agarre para las manos.  Default es CEUP_DefaultTexturaNegra.
TexturaFirme :
Textura a aplicar a la base firme de la tabla deslizante.  Default es CEUP_DefaultTexturaFirme.
TexturaBoton :
Textura a aplicar a los botoncillos de control.  Default es CEUP_DefaultTexturaBoton.
TexturaPantalla :
Textura a aplicar a la pantallita de despliegue numérico.  Se aplica por diferencia.  Default es CEUP_DefaultTexturaPantalla.
TexturaBanda :
Textura a aplicar a la banda deslizante.  Sobre esta textura se aplica el factor translate -FactorAvance*x.  Default es CEUP_DefaultTexturaBanda.

En el siguiente ejemplo utilizamos la macro de texturas para dibujar el mismo objeto:

    #include "stdinc.inc"
    #include "stdcam.inc"
    #include "CEUP.inc"
    
    object      {
      CEUP_CaminadoraEjercicioUniPersonal
        (0.408,0.3,0.787,0.025,136/787,0.894,0,0,0,0,
         CEUP_DefaultTexturaPrincipal,CEUP_DefaultTexturaBaseTabla
         CEUP_DefaultTexturaMetalizada,CEUP_DefaultTexturaPlastica,
         CEUP_DefaultTexturaNegra,CEUP_DefaultTexturaFirme,
         CEUP_DefaultTexturaBoton,CEUP_DefaultTexturaPantalla,
         CEUP_DefaultTexturaBanda ) 
      translate <-1.5,0.85,-3>         
    }


Características del objeto

Mis dibujos están en unidades L (Lisa).  1 L equivale a 0.055063 pulgadas definido como 0.001 para POVRAY.  El objeto default tiene las siguientes características:
    Extendido...	
    Alto total              	: 920*L
    Fondo                   	: 980*L
    Frente                  	: 451*L
    Recogido...
    Alto total              	: 970*L
    Fondo                   	: 450*L
    Frente                  	: 451*L
Se dibuja centrado en X sobre el plano XZ, y con gravedad Y-.  El objeto parte del origen a partir del plano XY hacia X-.  El avance virtual del potencial usuario sería hacia X-.

Se generan las siguientes declaraciones que no deberían modificarse.  Para su correcta modificación consultar la sección Modificadores.

CEUP_TexturaPrincipal
Textura principal a aplicar al aparato.
CEUP_TexturaBaseTabla
Textura principal a aplicar a la base de la tabla para ejercicios.
CEUP_TexturaMetalizada
Textura a aplicar a ciertos elementos metalizados de la estructura.
CEUP_TexturaPlastica
Textura para aplicar a ciertos elementos plásticos de la estructura.  Por ejemplo, ruedas, controles, soportes, etc.
CEUP_TexturaNegra
Textura a aplicar a elementos de caucho que sirven de agarre para las manos.
CEUP_TexturaFirme
Textura a aplicar a la base firme de la tabla deslizante.
CEUP_TexturaBoton
Textura a aplicar a los botoncillos de control.
CEUP_TexturaPantalla
Textura a aplicar a la pantallita de despliegue numérico.  Se aplica por diferencia.
CEUP_TexturaBanda
Textura a aplicar a la banda deslizante.


Modificadores

La siguiente es la lista de los modificadores permitidos en la unidad.

    #declare CEUP_TexturaPrincipal		= texture { ... }
Textura principal a aplicar al aparato.

    #declare CEUP_TexturaBaseTabla		= texture { ... }
Textura principal a aplicar a la base de la tabla para ejercicios.

    #declare CEUP_TexturaMetalizada		= texture { ... }
Textura a aplicar a ciertos elementos metalizados de la estructura.

    #declare CEUP_TexturaPlastica		= texture { ... }
Textura para aplicar a ciertos elementos plásticos de la estructura.  Por ejemplo, las ruedas, controles, soportes, etc.

    #declare CEUP_TexturaNegra			= texture { ... }
Textura a aplicar a elementos de caucho que sirven de agarre para las manos.

    #declare CEUP_TexturaFirme			= texture { ... }
Textura a aplicar a la base firme de la tabla deslizante.

    #declare CEUP_TexturaBoton			= texture { ... }
Textura a aplicar a los botoncillos de control.

    #declare CEUP_TexturaPantalla		= texture { ... }
Textura a aplicar a la pantallita de despliegue numérico.  Se aplica por diferencia.

    #declare CEUP_TexturaBanda			= texture { ... }
Textura a aplicar a la banda deslizante.

    #declare CEUP_AnguloColores			
Valor real que aplica sólo si se define.  Provoca una rotación en Z, de la textura de colores para la perilla.

    #declare CEUP_TexturaPerilla
Textura que aplica sólo si se define.  El programador debe suponer que la perilla tiene un radio de 0.65, orientado del origen hacia Z-.

    #declare CEUP_TexturaControl
Textura que aplica sólo si se define.  Sustituye completamente a la imagen CEUP_GifBoton.

    #declare CEUP_GifBoton                   		= "CEUP_IM1.GIF"
Imagen GIF que se aplica a los controles.  No aplica si se define CEUP_TexturaControl.

    #declare CEUP_POV3_1			= off;
Si se activa con "on" produce simplificaciones que permiten su ejecución en la versión POVRay 3.1.  En algunas versiones de POVRay se activa automáticamente.  En esta versión no tiene ninguna función.

    #declare CEUP_AnguloMayor			= 97.5;			
Angulo de rotación cuando la caminadora se encuentra guardada.  El ángulo se mide a partir de la horizontal, y podría ser conveniente modificar su valor cuando se requiera cambiar las dimensiones.

A manera de ejemplo del uso de los modificadores:

    #include "stdinc.inc"
    #include "stdcam.inc"
    #include "CEUP.inc"
    #include "metals.inc"
    
    #declare CEUP_AnguloMayor   = 90;
    
    #declare CEUP_TexturaPerilla                = texture
      { T_Gold_1A }
          
    #declare CEUP_TexturaControl                = texture       
      { T_Gold_1A }  
      
    #declare CEUP_DefaultTexturaBoton           = texture
      { pigment { Red } }
      
    #declare CEUP_DefaultTexturaPantalla        = texture
      { pigment { Yellow } }  
            
    
    object      {
      CEUP_Caminadora(1,0,-1,1)
      rotate    -50*x
      translate <-1.5,0.85,-3>         
    }

Y otro ejemplo más:

    #include "stdinc.inc"
    #include "stdcam.inc"
    #include "CEUP.inc"
    #include "textures.inc"
    
    #declare CEUP_GifBoton      = "CEUP_IM2.gif" 
    
    #declare CEUP_AnguloColores = 180; 
    
    #declare CEUP_DefaultTexturaPrincipal      = texture
      { Cork }
      
    #declare CEUP_DefaultTexturaNegra          = texture
      { PinkAlabaster }  
      
    #declare CEUP_DefaultTexturaBaseTabla      = texture          
      { average
        texture_map { [0.5 Rust][0.5 CEUP_TexturaBaseTabla] } } 
        
    #declare CEUP_DefaultTexturaPlastica       = texture
      { pigment { Yellow } }  
      
    #declare CEUP_DefaultTexturaFirme          = texture
      { Rusty_Iron }    
      
    #declare CEUP_DefaultTexturaMetalizada     = texture
      { pigment { Red } }  
                          
    #declare CEUP_DefaultTexturaBanda          = texture
      { average
        texture_map { [0.5 Rust][0.5 CEUP_TexturaBanda] } }                      
                          
    object      {
      CEUP_Caminadora(0,0,-1,1)
      rotate    -20*x
      translate <-1.5,0.85,-4>         
    }


Notas y Advertencias

Las variables F1, F2 y FactorAvance fueron diseñadas pensando en animación.  Tomar en cuenta que la textura únicamente se traslada y no rota en los rodillos.

La rotación de los colores de la perilla, no afecta la decoración exterior del selector.

Al sustituir la imagen para los botones, puesto que son objetos tridimensionales permanecerán en su misma posición.


Sugerencias de modificación


Sobre LibreN3D

Algo hace falta En la actualidad dedico casi unas dos horas todos los días, para desarrollar el programa de animación LibreN3D con el compilador FreePascal para FreeDOS.  El objetivo era en un origen, realizar animaciones de "baja" calidad, con progreso lento y paulatino. Desconocía en ese entonces del programa POV-Ray.  Creo que con ayuda de dicho proyecto, podría lograr mucho mejores resultados desde un principio.  Confío que para el 2020 pueda lograr animaciones completas de aceptable calidad.   En la actualidad, intento agregarle características elásticas a los objetos.  He tenido numerosos retrasos, así que todavía no funciona.  Lo siento...(4/junio/2012), pero me siento muy seguro de que pronto lo lograré.  De momento, no tiene interface con el usuario, pero se encuentra en desarrollo como intérprete de renglón al estilo DOS.

Me sería de muchísima ayuda, que el grupo POV-Ray siguiera desarrollando la versión para DOS.   Los siguientes son enlaces que podrían ser de utilidad para el interesado en los proyectos FreePascal y FreeDOS.   Lamentablemente en la actualidad son altamente inestables, debido probablemente a dificultades con la adaptación al modo de 64 bits.
Logo FreeDOS...
Descarga sistema operativo FreeDOS
Logo FreePascal...
Descarga compilador FreePascal