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

Donación de Rafael Angel Campos Vargas, en el año 2019, a la Biblioteca de objetos de POV-Ray.  Este proyecto se encuentra actualmente suscrito a 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 "SPHT.inc" (SprayerProfessionalHandTool) dibuja un rociador simple, como los utilizados en jardinería y limpieza doméstica. Tiene una macro para cambiar algunas características y las texturas, pero es muy poco flexible. Es compatible con POV-Ray 3.1.

Parte importante de la estructura principal del aparato, se desarrolló con la ayuda del programa Epspline.exe para Windows.  Herramienta auxiliar POV-Ray para modelar los tipos prism y lathe.  Si le interesa obtener una copia del programa, puede buscarla en el siguiente enlace:
Epspline...
agalena.nfshost.com/b1/

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 "SPHT.inc" y "SPHT_AUX.inc" en dicho subdirectorio;  únicamente estos dos 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 "SPHT.pov" puede ejecutarse sin ningún proceso de instalación.  Unicamente debería estar ubicado en el mismo folder que "SPHT.inc" y "SPHT_AUX.inc".


Instrucciones básicas

Rociador
Muy fácil de usar, tan simple como incluir el archivo y ubicar el objeto.  El siguiente ejemplo ilustra el procedimiento básico.
    #if ( version >= 3.7 )
      #version 3.7;
    #end
    global_settings { assumed_gamma 1.0 }  

    #include "stdinc.inc"
    #include "stdcam.inc"
    #include "SPHT.inc"
    
    object      {
      SPHT_Sprayer( on, 0.0 )
      translate         <-1.95,+1.60,-4.80>    
    }

La macro principal tiene dos parámetros.

    #macro SPHT_Sprayer( BanderaTapilla, FraccionPress )
BanderaTapilla :
on dibuja la tapita en la boca del rociador. off no la dibuja.
FraccionPress :
Fracción propia o unitaria para presionar el gatillo disparador. Utilice 0.0 para liberar el botón.

La siguiente macro permite un mayor control de las características.

    #macro SPHT_SprayerProfessionalHandTool( BanderaTapilla, FraccionPress,
                  DiametroRecipiente, DiametroBoquilla, 
                  AltoRecipiente, AltoSprayer,
                  TexturaRecipiente, TexturaSprayer,
                  TexturaPress, TexturaSuccion )
BanderaTapilla :
on dibuja la tapita en la boca del rociador. off no la dibuja.
FraccionPress :
Fracción propia o unitaria para presionar el gatillo disparador. Utilice 0.0 para liberar el botón.
DiametroRecipiente :
Diámetro del recipiente contenedor del líquido. Valor por defecto 64*L.
DiametroBoquilla :
Diámetro de la unión con el rociador. Valor por defecto 18*L.
AltoRecipiente :
Alto del recipiente contenedor del líquido anterior a la boquilla. Valor por defecto 86*L.
AltoSprayer :
Referencia para el tamaño de la pistola rociadora. Valor por defecto 50*L.
TexturaRecipiente :
Textura del recipiente para el líquido. Valor por defecto SPHT_TexturaRecipiente.
TexturaSprayer :
Textura principal de la pistola rociadora. Valor por defecto SPHT_TexturaSprayer.
TexturaPress :
Textura del gatillo y otros elementos de la pistola. Valor por defecto SPHT_TexturaPress.
TexturaSuccion :
Textura de la pajilla de succión. Valor por defecto SPHT_TexturaSuccion.

El siguiente ejemplo dibuja el mismo objeto por defecto.

    #if ( version >= 3.7 )
      #version 3.7;
    #end
    global_settings { assumed_gamma 1.0 }  

    #include "stdinc.inc"
    #include "stdcam.inc"
    #include "SPHT.inc"
    
    object      {
      SPHT_SprayerProfessionalHandTool( on, 0.0, 0.064, 0.018, 0.086, 0.050,
          SPHT_TexturaRecipiente, SPHT_TexturaSprayer,
          SPHT_TexturaPress, SPHT_TexturaSuccion )
      translate         <-1.95,+1.60,-4.80>    
    }


Características del objeto

Mis dibujos están en unidades mL o L (Lisa) según el contexto.  1 L equivale a 0.055063 pulgadas definido como 0.001 para POVRAY.  El aparato se encuentra contenido entre las siguientes dimensiones:
    Mínimo              = <  -43,    0,  -32 >*L
    Máximo              = <  +32,  132,  +32 >*L

El recipiente descansa parcialmente centrado sobre el plano XZ, gravedad Y-. La pistola apunta en sentido X-.

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

SPHT_VolumenInterior
Se genera en el interior de las macros. Define un object que puede utilizarse para rellenar de líquido el rociador.
SPHT_VolumenSuccion
Se genera en el interior de las macros. Define un object que puede utilizarse para rellenar de líquido la pajilla.
SPHT_DefectoTexturaRecipiente
Textura del recipiente para el líquido.
SPHT_DefectoTexturaSprayer
Textura principal de la pistola rociadora.
SPHT_DefectoTexturaPress
Textura del gatillo y otros elementos de la pistola.
SPHT_DefectoTexturaSuccion
Textura de la pajilla de succión.
El siguiente ejemplo agrega un poco de líquido al rociador.

    #if ( version >= 3.7 )
      #version 3.7;
    #end
    global_settings { assumed_gamma 1.0 }  

    #include "stdinc.inc"
    #include "stdcam.inc"
    #include "SPHT.inc"
    
    union                       {
      object                    {
        SPHT_Sprayer( on, 0.0 )
      } 
      union                     {    
        difference              {
          object                    {
            SPHT_VolumenInterior
          }
          plane                 {
            -y, -0.050
          }
        }
        object                  {
          SPHT_VolumenSuccion
        }  
        pigment                 {
          Orange
        }
      }
      translate         <-1.95,+1.60,-4.80>    
    }


Modificadores

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

    #declare SPHT_RotateSuccion			= <2,2,2>;
Se aplica este rotate en el extremo superior de la pajilla de succión.

    #declare SPHT_FactorVolumenInterior		= 0.95;	 
Para evitar que el líquido tenga un contacto exacto con las paredes interiores se aplica una ligera contracción determinada por esta variable. El ajuste perfecto en ocasiones produce defectos en el dibujo final.

    #declare SPHT_FactorVolumenSuccion		= 0.95;	 
Para evitar que el líquido de la pajilla de succión tenga un contacto exacto con la superficie interior de la pajilla se disminuye el radio interior al multiplicarlo por este factor.

    #declare SPHT_TexturaRecipiente		=
		texture  { SPHT_DefectoTexturaRecipiente		}
Textura del recipiente para el líquido.

    #declare SPHT_TexturaSprayer		=	 
		texture  { SPHT_DefectoTexturaSprayer			}
Textura principal de la pistola rociadora.

    #declare SPHT_TexturaPress			=
		texture  { SPHT_DefectoTexturaPress			}
Textura del gatillo y otros elementos de la pistola.

    #declare SPHT_TexturaSuccion		=	 
		texture  { SPHT_DefectoTexturaSuccion			}
Textura de la pajilla de succión.

El siguiente ejemplo ilustra el uso de los modificadores:

    #if ( version >= 3.7 )
      #version 3.7;
    #end
    global_settings { assumed_gamma 1.0 }  

    #include "stdinc.inc"
    #include "stdcam.inc"
    #include "SPHT.inc" 
    #include "textures.inc"
                          
    #declare SPHT_RotateSuccion         = <0,0,0>;
    #declare SPHT_FactorVolumenInterior = 0.999;
    #declare SPHT_FactorVolumenSuccion  = 0.25; 
    
    #declare SPHT_TexturaRecipiente     = texture { pigment { White transmit 0.9 } }
    #declare SPHT_TexturaSprayer        = PinkAlabaster
    #declare SPHT_TexturaPress          = Gold_Metal
    #declare SPHT_TexturaSuccion        = texture { pigment { Red   transmit 0.9 } }                     
    
    union                       {
      object                    {
        SPHT_Sprayer( on, 0.0 )
      } 
      union                     {    
        difference              {
          object                    {
            SPHT_VolumenInterior
          }
          plane                 {
            -y, -0.050
          }
        }
        object                  {
          SPHT_VolumenSuccion
        }  
        pigment                 {
          Orange
        }
      }
      translate         <-1.95,+1.60,-4.80>    
    }


Notas y Advertencias

El volumen interior de la pajilla y del recipiente se genera por diferencia. Adicionalmente se aplica un factor de contracción a las variables de volumen interior.

En algunas versiones de POVRay hemos tenido que aumentar el valor de la variable global max_trace_level, para mitigar algunos defectos de las superficies semitransparentes.

Si utiliza las variables definidas para agregar líquido al recipiente, tome en cuenta que existirá superposición de objetos entre el volumen de la pajilla y el volumen del recipiente.


Sugerencias de modificación


Sobre LibreN3D

Algo hace falta En la actualidad dedico casi unas dos horas todos los días, para desarrollar mis proyectos de animación con el compilador FreePascal para FreeDOS.  Mi propuesta original fue filmar 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 dentro de algunos años 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...(18/setiembre/2018), 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.
Logo FreeDOS...
Descarga sistema operativo FreeDOS
Logo FreePascal...
Descarga compilador FreePascal