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

Donación de Rafael Angel Campos Vargas, en marzo del 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 "LRSC.inc" dibuja una lavadora corriente de uso doméstico.  Puede abrir la tapa, y girar el recipiente central de lavado.  Es compatible con PovRay 3.1.  Contiene una macro especial para modificar las texturas fácilmente.

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 archivo "LRSC.inc", "LRSC_IM1.GIF" y "LRSC_IM2.GIF" en dicho subdirectorio;  únicamente éstos tres 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 "LRSC.pov" puede ejecutarse sin ningún proceso de instalación.  Unicamente debería estar ubicado en el mismo folder que "LRSC.inc", "LRSC_IM1.GIF" y "LRSC_IM2.GIF".


Instrucciones básicas

Lavadora
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 "LRSC.inc"
    
    object      {
      LRSC_Lavadora( 0, 0, on )
      translate <-1.75, 1.0 ,-4   >
    }

Los parámetros de la macro principal serían los siguientes:

    #macro LRSC_Lavadora( AnguloTapa, AnguloGiro, BanderaCanastilla )
AnguloTapa :
Angulo de apertura de la lavadora, use cero para tapa cerrada.
AnguloGiro :
Para animar el giro de las partes internas.
BanderaCanastilla :
"on" dibuja la canastilla, "off" no la dibuja.

La siguiente macro permite dibujar el mismo objeto, con mayor control sobre sus características.

    #macro LRSC_LavadoraRopaSecadoCentrifugo
        ( AnguloTapa, AnguloGiro, BanderaCanastilla,
                AltoFundamental, AnchoFundamental, 
		ProfundidadFundamental,
                AlturaPanel, DiametroIntroduccion,
                TexturaPrincipal, TexturaLavado, TexturaOscura,
                TexturaMetalizada, TexturaHelice, TexturaBoton1,
                TexturaBoton2, TexturaPatas )
AnguloTapa :
Angulo de apertura de la lavadora, use cero para tapa cerrada.
AnguloGiro :
Para animar el giro de las partes internas.
BanderaCanastilla :
"on" dibuja la canastilla, "off" no la dibuja.
AltoFundamental :
Alto de la estructura principal.  Valor default es 630*L.
AnchoFundamental :
Valor de referencia para el frente.  Valor default es 500*L.
ProfundidadFundamental :
Valor de referencia para la profundidad Z.  Valor default es 440*L.
AlturaPanel :
Alto del panel de control.  Valor default es 129*L.
DiametroIntroduccion :
Diámetro del círculo por el que ingresa la ropa.  Valor default es 271*L.
TexturaPrincipal :
Textura principal del aparato.  Default es LRSC_DefaultTexturaPrincipal.
TexturaLavado :
Textura del interior de la zona de lavado.  Default es LRSC_DefaultTexturaLavado.
TexturaOscura :
Textura lisa del panel, que sirve de fondo en algunos sectores.  Especialmente la parte trasera.  Default es LRSC_DefaultTexturaOscura.
TexturaMetalizada :
Textura a aplicar a zonas metálicas del panel de control.  Default es LRSC_DefaultTexturaMetalizada.
TexturaHelice :
Textura a aplicar al rotor y a canastilla.  Default es LRSC_DefaultTexturaHelice.
TexturaBoton1 :
Textura a aplicar a las perillas redondas del panel.  Default es LRSC_DefaultTexturaBoton1.
TexturaBoton2 :
Textura a aplicar a los selectores de la izquierda.  Default es LRSC_DefaultTexturaBoton2.
TexturaPatas :
Textura a aplicar a las patas.  Default es LRSC_DefaultTexturaPatas.

Se dispone de una macro para dibujar la canastilla en forma independiente.  Los parámetros son tomados de la lavadora completa.

    #macro LRSC_Canastilla
              ( AltoFundamental, DiametroIntroduccion, TexturaHelice )
AltoFundamental :
Alto de la estructura principal.  Valor default es 630*L.
DiametroIntroduccion :
Diámetro del círculo por el que ingresa la ropa.  Valor default es 271*L.
TexturaHelice :
Textura a aplicar al rotor y a canastilla.  Default es LRSC_DefaultTexturaHelice.

En el siguiente ejemplo, procedemos a dibujar el mismo objeto establecido anteriormente:

    #include "stdinc.inc"
    #include "stdcam.inc"
    #include "LRSC.inc"
    
    object      {
      LRSC_LavadoraRopaSecadoCentrifugo( 0, 0, on, 
                0.630, 0.5, 0.44, 0.129, 0.271, 
                LRSC_DefaultTexturaPrincipal,
                LRSC_DefaultTexturaLavado,
                LRSC_DefaultTexturaOscura,
                LRSC_DefaultTexturaMetalizada,
                LRSC_DefaultTexturaHelice,
                LRSC_DefaultTexturaBoton1,
                LRSC_DefaultTexturaBoton2,
                LRSC_DefaultTexturaPatas )             
      translate <-1.75, 1.0 ,-4 >
    }


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:
    Alto total              	: 767*L
    Frente                  	: 513*L
    Fondo                   	: 451*L
Se dibuja centrado sobre el plano XY.  La canastilla, y el rotor central se encuentran alineados con el eje Y+.  Frente hacia Z-.

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

LRSC_PosicionCanastilla
Ubicación original de la canastilla sin rotación.  Sirve para ubicarlo en posición cuando utilice la macro LRSE_Canastilla().  Unicamente se encuentra definido después de un llamado a las macros para la lavadora.
LRSC_TexturaPrincipal
Textura principal a aplicar al aparato.
LRSC_TexturaLavado
Textura del interior de la zona de lavado.
LRSC_TexturaOscura
Textura lisa del panel, que sirve de fondo en algunos sectores.  Especialmente la parte trasera.
LRSC_TexturaMetalizada
Textura a aplicar a zonas metálicas del panel del control.
LRSC_TexturaHelice
Textura a aplicar al rotor y canastilla.
LRSC_TexturaBoton1
Textura a aplicar a las perillas redondas.
LRSC_TexturaBoton2
Textura a aplicar a los selectores de la izquierda.
LRSC_TexturaPatas
Textura a aplicar a las patas.

El siguiente ejemplo recurre ubica la canastilla en posición default.  Utiliza clock para realizar una animación trivial de giro y desplazamiento.

    // Sugerencia : +kff10
    #include "stdinc.inc"
    #include "stdcam.inc"
    #include "LRSC.inc"
    
    union       {
      object    {
        LRSC_LavadoraRopaSecadoCentrifugo( 90, 360*clock, off, 
                0.630, 0.5, 0.44, 0.129, 0.271, 
                LRSC_DefaultTexturaPrincipal,
                LRSC_DefaultTexturaLavado,
                LRSC_DefaultTexturaOscura,
                LRSC_DefaultTexturaMetalizada,
                LRSC_DefaultTexturaHelice,
                LRSC_DefaultTexturaBoton1,
                LRSC_DefaultTexturaBoton2,
                LRSC_DefaultTexturaPatas )
                             
      }
      object    {
        LRSC_Canastilla(0.630,0.271,LRSC_TexturaHelice)
        rotate  360*clock*y
        translate       LRSC_PosicionCanastilla 
        translate       clock*y
      }  
      rotate    -45*x
      translate <-1.75, 1.0 ,-4   >
    }


Modificadores

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

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

    #declare LRSC_DefaultTexturaLavado          = texture { ... }
Textura del interior de la zona de lavado.

    #declare LRSC_DefaultTexturaOscura     	= texture { ... }
Textura lisa del panel, que sirve de fondo en algunos sectores.  Especialemente la parte trasera.

    #declare LRSC_DefaultTexturaMetalizada     	= texture { ... }
Textura a aplicar a zonas metalizadas del panel de control.

    #declare LRSC_DefaultTexturaHelice	       	= texture { ... }      
Se aplica al rotor y a la canastilla.

    #declare LRSC_DefaultTexturaBoton1     	= texture { ... }
Textura a aplicar a las perillas redondas.

    #declare LRSC_DefaultTexturaBoton2     	= texture { ... }
Textura a aplicar a los selectores de la izquierda.

    #declare LRSC_DefaultTexturaPatas	       	= texture { ... }      
Textura a aplicar a las patas.

    #declare LRSC_BotonGif      		= "LRSC_IM1.GIF"
Dibujo GIF de las etiquetas de los botones.  Debería cuidar la ubicación de los mismos.

    #declare LRSC_AdvertenciaGif     		= "LRSC_IM2.GIF"
Dibujo GIF del mensaje de advertencia e instrucciones.  De la zona inferior de la tapa.

    #declare LRSC_AnguloBoton1                  = 0;
Permite rotar la perilla de la derecha.

    #declare LRSC_AnguloBoton2                  = 0;
Permite rotar la perilla del grupo central izquierda.

    #declare LRSC_AnguloBoton3                  = 0;
Permite rotar la perilla del grupo central derecha.

    #declare LRSC_AnguloBoton4                  = 0;
Permite rotar el selector izquierdo superior.

    #declare LRSC_AnguloBoton5                  = 0;
Permite rotar el selector izquierdo central.

    #declare LRSC_AnguloBoton6                  = 0;
Permite rotar el selector izquierdo inferior.

    #declare LRSC_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 elimina el rotor y la canastilla.

A manera de ejemplo del uso de los modificadores:

    #include "stdinc.inc"
    #include "stdcam.inc"
    #include "LRSC.inc"
    
    #declare LRSC_AnguloBoton1          = 90;
    #declare LRSC_AnguloBoton2          = 90;
    #declare LRSC_AnguloBoton3          = 90;
    #declare LRSC_AnguloBoton4          = -20;
    #declare LRSC_AnguloBoton5          = 10;
    #declare LRSC_AnguloBoton6          = -20;
    
    #declare LRSC_DefaultTexturaOscura          =
        texture { pigment { Yellow } }
    
    #declare LRSC_DefaultTexturaMetalizada      = 
        texture { pigment { Green } }
        
    #declare LRSC_DefaultTexturaBoton1          = 
        texture { pigment { Green } }
    
    #declare LRSC_DefaultTexturaBoton2          = 
        texture { pigment { Green } }
        
    object      {
      LRSC_Lavadora( 0, 0, on )
      rotate    -0*x
      translate <-1.75, 1.0 ,-4   >
    }

Otro ejemplo más:

    #include "stdinc.inc"
    #include "stdcam.inc"
    #include "LRSC.inc"      
    #include "textures.inc"
    
    #declare LRSC_DefaultTexturaPrincipal       =
        texture         { 
          average
          texture_map   {
            [ 0.5 Rust ]
            [ 0.5 LRSC_TexturaPrincipal ]
          }
        }
    
    #declare LRSC_DefaultTexturaPatas           = 
        texture         { pigment { Green } 
        }
        
    object      {
      LRSC_Lavadora( 0, 0, on )
      rotate    180*y
      rotate    45*x
      translate <-1.75, 1.0 ,-4   >
    }

Y otro ejemplo más:

    #include "stdinc.inc"
    #include "stdcam.inc"
    #include "LRSC.inc"
    
    #declare LRSC_BotonGif              = "LRSC_IM2.GIF"
    #declare LRSC_AdvertenciaGif        = "LRSC_IM1.GIF"
    
    #declare LRSC_DefaultTexturaHelice          =
        texture { pigment { Yellow } }
    
    #declare LRSC_DefaultTexturaLavado          = 
        texture { pigment { Green } }
        
    object      {
      LRSC_Lavadora( 90, 0, off ) 
      rotate    10*z
      rotate    -45*x
      translate <-1.75, 1.0 ,-4   >
    }


Notas y Advertencias

Si el panel de control es muy alto, el círculo de los selectores atravezará el panel de un lado hasta el otro.

La variable LRSC_PosicionCanastilla no se encuentra definida mientras no se invoquen las macros que dibujan la lavadora.  Además no se verá afectada por transformaciones posteriores del objeto.

La textura interna de lavado gira con el rotor en la misma magnitud.


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...(23/abril/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