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

Donación de Rafael Angel Campos Vargas, en noviembre del 2011, 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 "CDTJ.inc" crea un set para colgar toallas, y otros utensilios de limpieza.  Con la posibilidad de modificar algunas características básicas y la textura. 

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 el archivo "CDTJ.inc" en dicho subdirectorio;  únicamente éste es necesario.  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 "CDTJ.pov" puede ejecutarse sin ningún proceso de instalación.  Unicamente debería estar ubicado en el mismo folder que "CDTJ.inc".


Instrucciones básicas

PortaVasos
Muy fácil de usar, tan simple como incluir el archivo y ubicar el objeto.  Se definen macros principales que generan los objetos fácilmente.  Se incluye además;  versiones macros extra, que permiten modificar algunas características básicas.

El siguiente ejemplo recurre a las macros principales, colocando al objeto en posición base.

    #include "stdinc.inc"
    #include "stdcam.inc"
    #include "CDTJ.inc"
    
    object      {
      CDTJ_CirculoToallaBasico( 0 ) 
      //  CDTJ_SoporteToallaBasico()
      //  CDTJ_SoporteRopaBasico()
      //  CDTJ_SoporteCepilloBasico()
      //  CDTJ_HBasico()
      //  CDTJ_JaboneraBasico( on )	  
      translate <-1.875, 1.525,-4.5  >
    }
Las macros principales serían las siguientes:
    #macro CDTJ_CirculoToallaBasico( AnguloGiro )
    #macro CDTJ_SoporteToallaBasico()
    #macro CDTJ_SoporteRopaBasico()
    #macro CDTJ_SoporteCepilloBasico()
    #macro CDTJ_HBasico()
    #macro CDTJ_JaboneraBasico( VasoVisible )	  
AnguloGiro :
Angulo en eje X, para rotar el aro hacia el frente del colgante.
VasoVisible :
on dibuja el vaso
off no lo dibuja

Las siguientes macros, dibujan los mismos objetos;  con mayor flexibilidad.

    #macro CDTJ_CirculoToalla( BaseRadio, BaseAlto, RadioAro, AnguloGiro,
                  TexturaMetal, TexturaBlanca, TexturaPlastica )
BaseRadio :
Valor referencia para el radio de la base.  Valor default 22.5*L.
BaseAlto :
Valor referencia para la expansión Z de la base.  Valor default 21*L.
RadioAro :
Valor referencia para el radio del aro.  Valor default 55*L.
AnguloGiro :
Giro del aro en grados hacia el frente.
TexturaMetal :
Textura a aplicar a zonas metalizadas. Valor default GMGE_DefaultTexturaMetal.
TexturaBlanca :
Textura a aplicar a la base.  Valor default GMGE_DefaultTexturaBlanca.
TexturaPlastica :
Textura a aplicar a la zona de fricción del aro.  Valor default GMGE_DefaultTexturaPlastica.

    #macro CDTJ_SoporteToalla( BaseRadio, BaseAlto, LargoSoporte,
                  TexturaMetal, TexturaBlanca, TexturaAuxiliar )
BaseRadio :
Valor referencia para el radio de la base.  Valor default 22.5*L.
BaseAlto :
Valor referencia para la expansión Z de la base.  Valor default 21*L.
LargoSoporte :
Valor del largo del colgante.  Default es 430*L.
TexturaMetal :
Textura a aplicar a zonas metalizadas. Valor default GMGE_DefaultTexturaMetal.
TexturaBlanca :
Textura a aplicar a la base.  Valor default GMGE_DefaultTexturaBlanca.
TexturaAuxiliar :
Textura a aplicar a la barra.  Valor default GMGE_DefaultTexturaMetal.

    #macro CDTJ_SoporteRopa( BaseRadio, BaseAlto, ProfundidadRopa,
                  TexturaMetal, TexturaBlanca, TexturaAuxiliar )
BaseRadio :
Valor referencia para el radio de la base.  Valor default 22.5*L.
BaseAlto :
Valor referencia para la expansión Z de la base.  Valor default 21*L.
ProfundidadRopa :
Valor referencia para el colgante.  Default es 50*L.
TexturaMetal :
Textura a aplicar a zonas metalizadas. Valor default GMGE_DefaultTexturaMetal.
TexturaBlanca :
Textura a aplicar a la base.  Valor default GMGE_DefaultTexturaBlanca.
TexturaAuxiliar :
Textura a aplicar al colgante.  Valor default GMGE_DefaultTexturaMetal.

    #macro CDTJ_SoporteCepillo( BaseRadio, BaseAlto, DimensionSoporte,
                  TexturaMetal, TexturaBlanca, TexturaAuxiliar )
BaseRadio :
Valor referencia para el radio de la base.  Valor default 22.5*L.
BaseAlto :
Valor referencia para la expansión Z de la base.  Valor default 21*L.
DimensionSoporte :
Valor referencia para el soporte de cepillos dentales.  Default es 71*L.
TexturaMetal :
Textura a aplicar a zonas metalizadas. Valor default GMGE_DefaultTexturaMetal.
TexturaBlanca :
Textura a aplicar a la base.  Valor default GMGE_DefaultTexturaBlanca.
TexturaAuxiliar :
Textura a aplicar en la base de cepillos.  Valor default GMGE_DefaultTexturaMetal.

    #macro CDTJ_H( BaseRadio, BaseAlto, DimensionH, GruesoH, 
                  AnguloVarilla, AnguloCubrir,
                  TexturaMetal, TexturaBlanca, TexturaAuxiliar )
BaseRadio :
Valor referencia para el radio de la base.  Valor default 22.5*L.
BaseAlto :
Valor referencia para la expansión Z de la base.  Valor default 21*L.
DimensionH :
Referencia para el ancho.  Default es 100*L.
GruesoH :
Referencia para el grueso.  Default es 60*L.
AnguloVarilla :
Angulo de giro de la varilla a partir de posición base.  Default es 0 grados.
AnguloCubrir :
Angulo de giro de los protectores metálicos a partir de posición base.  Default es 0 grados.
TexturaMetal :
Textura a aplicar a zonas metalizadas. Valor default GMGE_DefaultTexturaMetal.
TexturaBlanca :
Textura a aplicar a la base.  Valor default GMGE_DefaultTexturaBlanca.
TexturaAuxiliar :
Textura a aplicar a la placa protectora.  Valor default GMGE_DefaultTexturaMetal.

    #macro CDTJ_Jabonera( VasoVisible, BaseRadio, BaseAlto, RadioSoporte,
                  AltoVaso, TexturaMetal, TexturaBlanca, TexturaVaso )
BaseRadio :
Valor referencia para el radio de la base.  Valor default 22.5*L.
BaseAlto :
Valor referencia para la expansión Z de la base.  Valor default 21*L.
RadioSoporte :
Valor referencia para el radio del vaso.  Default es 21*L.
AltoVaso :
Valor del alto del vaso.  Default es 67*L.
TexturaMetal :
Textura a aplicar a zonas metalizadas. Valor default GMGE_DefaultTexturaMetal.
TexturaBlanca :
Textura a aplicar a la base.  Valor default GMGE_DefaultTexturaBlanca.
TexturaVaso :
Textura a aplicar al vaso.  Valor default GMGE_DefaultTexturaVaso.

El siguiente ejemplo, recurre a las macros anteriores;  pero dibujan el mismo objeto, pues utilizan los valores default.

    #include "stdinc.inc"
    #include "stdcam.inc"
    #include "CDTJ.inc"
    
    object      {
      CDTJ_CirculoToalla( 0.0225, 0.021, 0.055, 0,
        CDTJ_DefaultTexturaMetal, CDTJ_DefaultTexturaBlanca,
        CDTJ_DefaultTexturaPlastica )
      //  CDTJ_SoporteToalla( 0.0225, 0.021, 0.430,
      //    CDTJ_DefaultTexturaMetal, CDTJ_DefaultTexturaBlanca,
      //    CDTJ_DefaultTexturaMetal )
      //  CDTJ_SoporteRopa( 0.0225, 0.021, 0.050,
      //    CDTJ_DefaultTexturaMetal, CDTJ_DefaultTexturaBlanca,
      //    CDTJ_DefaultTexturaMetal )
      //  CDTJ_SoporteCepillo( 0.0225, 0.021, 0.071,
      //    CDTJ_DefaultTexturaMetal, CDTJ_DefaultTexturaBlanca,
      //    CDTJ_DefaultTexturaMetal )
      //  CDTJ_H( 0.0225, 0.021, 0.100, 0.060, 0, 0,
      //    CDTJ_DefaultTexturaMetal, CDTJ_DefaultTexturaBlanca,
      //    CDTJ_DefaultTexturaMetal )
      //  CDTJ_Jabonera( on, 0.0225, 0.021, 0.021, 0.067,
      //    CDTJ_DefaultTexturaMetal, CDTJ_DefaultTexturaBlanca,
      //    CDTJ_DefaultTexturaVaso )
      translate <-1.875, 1.525,-4.5  >
    }


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.  Los objetos default tienen las siguientes características:
      Circulo Toalla
    Diámetro Base	    : 55*L
    Profundidad en Z	    : 55*L
    Radio Aro		    : 55*L
      Soporte Toalla						
    Diámetro Base	    : 55*L
    Profundidad en Z	    : 55*L
    Largo Total		    : 485*L
      Soporte Ropa
    Diámetro Base	    : 55*L
    Profundidad en Z        : 55*L
    Desciende 42*L en Y- desde el centro de la base
      Soporte Cepillos
    Diámetro Base	    : 55*L
    Profundidad en Z	    : 95*L
    Ancho soporte cepillos  : 70*L
    Con aberturas para cuatro cepillos dentales
      Soporte H
    Diámetro Base           : 55*L
    Profundidad total en Z  : 100*L
    Ancho total             : 105*L
    Descenso 65*L en Y- a partir del centro
      Jabonera
    Diámetro Base	    : 55*L
    Profundidad total en Z  : 95*L
    Radio soporte Vaso      : 44*L
    Alto Vaso		    : 67*L
Todos los objetos se dibujan inicialmente sobre el plano XZ.  El frente hacia Z-, gravedad hacia Y-.

Se definen las siguientes variables útiles, que no deberían modificarse.  Para su correcta utilización consultar la sección Modificadores.

CDTJ_TexturaMetal
Textura principal a aplicar a los soportes.  Se utilizara en la mayoria de las texturas auxiliares.
CDTJ_TexturaBlanca
Textura a aplicar a los soportes.
CDTJ_TexturaPlastica
Textura adicional para la zona de fricción entre el aro para toallas y su soporte.
CDTJ_TexturaVaso
Textura a aplicar al vaso.


Modificadores

La siguiente es la lista de los modificadores permitidos en la unidad (cuando se indica, son valores default).

    #declare CDTJ_DefaultTexturaMetal		= texture	{
      CDTJ_TexturaMetal
    }
Textura default principal a aplicar a las zonas metalizadas.  Se utilizara en la mayoría de las texturas auxiliares.

    #declare CDTJ_DefaultTexturaBlanca		= texture	{
      CDTJ_TexturaBlanca
    }
Textura default a aplicar a la base.

    #declare CDTJ_DefaultTexturaPlastica	= texture	{
      CDTJ_TexturaPlastica
    }
Textura adicional para la zona de fricción entre el aro para toallas y su soporte.

    #declare CDTJ_DefaultTexturaVaso		= texture	{
      CDTJ_TexturaVaso
    }
Textura default a aplicar al vaso.

    #declare CDTJ_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 cumple ninguna función.

A manera de ejemplo del uso de los modificadores:

    #include "stdinc.inc"
    #include "stdcam.inc"
    #include "CDTJ.inc" 
    #include "textures.inc"
    
    #declare CDTJ_DefaultTexturaMetal           = texture       {  
      average
      texture_map       {
        [ 0.5 CDTJ_TexturaMetal ]
        [ 0.5  Rusty_Iron       ]
      }
    }
    
    #declare CDTJ_DefaultTexturaBlanca          = texture       {
      PinkAlabaster
    }
    
    #declare CDTJ_DefaultTexturaPlastica        = texture       {
      pigment   {
        Red
      }
    }
    
    #declare CDTJ_DefaultTexturaVaso            = texture       {
      pigment               {
        White       transmit      0.80
      }
    }
    
    object      {
      CDTJ_CirculoToallaBasico( 0 ) 
      //  CDTJ_SoporteToallaBasico()
      //  CDTJ_SoporteRopaBasico()
      //  CDTJ_SoporteCepilloBasico()
      //  CDTJ_HBasico()
      //  CDTJ_JaboneraBasico( on )	  
      translate <-1.875, 1.525,-4.5  >
    }


Notas y Advertencias

La parte posterior de las figuras es bastante simple;  pues se asume que esta zona no es de interés.

Al aplicar las texturas, se provocan traslaciones y otras operaciones.  Tomar en cuenta este factor al definir nuevas variantes.

El vaso es definido con un lathe;  debido a esa razón se utilizó texture en vez de material para su descripció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...(28/noviembre/2011), 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