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

Donación de Rafael Angel Campos Vargas, en el año 2015, 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
Este archivo se desarrolló con ayuda del programa Epspline.exe para Windows.  Herramienta auxiliar POVRay 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/

La versión actual v1.0 de "BCSE.inc" (BaseCamaSinExtras) dibuja una cama individual sencilla.  Ofrece una macro para cambiar las características principales y texturas.  Es compatible con PovRay 3.1.

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 "BCSE.inc", "BCSE_AU2.inc", "BCSE_AU3.inc", "BCSE_AU4.inc", "BCSE_AU5.inc", "BCSE_AU6.inc", "BCSE_AU7.inc", y "BCSE_AU8.inc" en dicho subdirectorio;  únicamente éstos ocho 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 "BCSE.pov" puede ejecutarse sin ningún proceso de instalación.  Unicamente debería estar ubicado en el mismo folder que "BCSE.inc", "BCSE_AU2.inc", "BCSE_AU3.inc", "BCSE_AU4.inc", "BCSE_AU5.inc", "BCSE_AU6.inc", "BCSE_AU7.inc" y "BCSE_AU8.inc".


Instrucciones básicas

Base de Cama
Muy fácil de usar, tan simple como incluir el archivo y ubicar el objeto.  El siguiente ejemplo ilustra el procedimiento básico.

    #include "stdinc.inc"
    #include "stdcam.inc"
    #include "BCSE.inc"
    
    object      {
      BCSE_BaseCama(0)
      translate         <-1.375,0.625,-2.5>  
    }

La macro fundamental tiene un parámetro.

    #macro BCSE_BaseCama( AnguloGaveta )
AnguloGaveta :
Angulo a partir de cero para abrir la gaveta.

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

    #macro BCSE_BaseCamaSinExtras( AnguloGaveta,
              FrenteCama, FrenteMesa, AlturaMesa, ProfundidadMesa,
              ExcesoBase, GruesoMedio, GruesoCuerda,
              AltoPatas, GruesoPata, AltoCama, LargoCama,
              TexturaPrincipal, TexturaGaveta, TexturaInteriorGaveta,
              TexturaBordeGaveta, TexturaPatas, 
	      TexturaPatasCama, TexturaColchon )
AnguloGaveta :
Angulo a partir de cero para abrir la gaveta.
FrenteCama :
Referencia para el frente de cama, sin la mesita.  Default es 765*L.
FrenteMesa :
Referencia para el frente de la mesita de noche.  Default es 308*L.
AlturaMesa :
Altura sobre el suelo de la superficie de la mesa.  Default es 390*L.
ProfundidadMesa :
Referencia para la profundidad Z de la mesa.  Default es 240*L.
ExcesoBase :
Referencia para el alto en exceso del respaldo de cama respecto a la AlturaMesa.  Default es 200*L.
GruesoMedio :
Grueso de la madera.  Default es 12*L.
GruesoCuerda :
Grueso para la cuerda de la base del colchón.  Default es 2*L.
AltoPatas :
Alto de lasl patas.  Default es 230*L.
GruesoPata :
Grueso de las patas.  Default es 50*L.
AltoCama :
Alto de la cama.  Default es 220*L.
LargoCama :
Largo de cama.  Default es 1325*L.
TexturaPrincipal :
Textura principal del respaldo.  Default es BCSE_TexturaPrincipal.
TexturaGaveta :
Textura principal de la gaveta.  Default es BCSE_TexturaGaveta.
TexturaInteriorGaveta :
Textura del interior de la gaveta.  Default es BCSE_TexturaInteriorGaveta.
TexturaBordeGaveta :
Textura para el decorado del respaldo, y supuesto relleno decorativo de la tabla superior de la mesa.  Default es BCSE_TexturaBordeGaveta.
TexturaPatas :
Textura para las patas.  Default es BCSE_TexturaPatas.
TexturaPatasCama :
Textura para las patas de cama.  Default es BCSE_TexturaPatasCama.
TexturaColchon :
Textura de la base del colchón.  Default es BCSE_TexturaColchon.

En el siguiente ejemplo utilizamos la macro detallada, para generar el mismo objeto original:

    #include "stdinc.inc"
    #include "stdcam.inc"
    #include "BCSE.inc"
    
    object      {
      BCSE_BaseCamaSinExtras( 0, 0.765, 0.308, 0.390, 0.240,
              0.200, 0.012, 0.002, 0.230, 0.050, 0.220, 1.325,
              BCSE_TexturaPrincipal, BCSE_TexturaGaveta, BCSE_TexturaInteriorGaveta,
              BCSE_TexturaBordeGaveta, BCSE_TexturaPatas, 
              BCSE_TexturaPatasCama, BCSE_TexturaColchon )
      translate         <-1.375,0.625,-2.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.  El objeto tiene las siguientes características:
    Alto                        = - 640*L
    Frente en X                 = - 325*L..+750*L
    Profundidad en Z            = -1325*L
    Profundidad mesita		= - 290*L
Descansa sobre el plano XZ, con gravedad Y-.  El respaldo justo sobre el plano XY con frente hacia Z-.  El plano XZ divide en dos zonas el dibujo:  la mesita en X- y la base del colchón en X+.

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

BCSE_DefaultTexturaPrincipal
Textura principal del respaldo. 
BCSE_DefaultTexturaGaveta
Textura principal de la gaveta. 
BCSE_DefaultTexturaInteriorGaveta
Textura del interior de la gaveta. 
BCSE_DefaultTexturaBordeGaveta
Textura para el decorado del respaldo, y supuesto relleno decorativo de la tabla superior de la mesa. 
BCSE_DefaultTexturaPatas
Textura para las patas. 
BCSE_DefaultTexturaPatasCama
Textura para las patas de cama. 
BCSE_DefaultTexturaColchon
Textura de la base del colchón. 
BCSE_DefaultTexturaHilo
Textura para la cuerda del colchón. 
BCSE_DefaultTexturaTiradera
Textura para la tiradera. 


Modificadores

La siguiente es la lista de los modificadores permitidos en la unidad.
    #declare BCSE_TexturaPrincipal		=
		{ BCSE_DefaultTexturaPrincipal }
Textura principal del respaldo. 

    #declare BCSE_TexturaGaveta			=
		{ BCSE_DefaultTexturaGaveta }
Textura principal de la gaveta. 

    #declare BCSE_TexturaInteriorGaveta		=
		{ BCSE_DefaultTexturaInteriorGaveta }
Textura del interior de la gaveta. 

    #declare BCSE_TexturaBordeGaveta		=
		{ BCSE_DefaultTexturaBordeGaveta }
Textura para el decorado del respaldo, y supuesto relleno decorativo de la tabla superior de la mesa. 

    #declare BCSE_TexturaPatas			=
		{ BCSE_DefaultTexturaPatas }
Textura para las patas. 

    #declare BCSE_TexturaPatasCama		=
		{ BCSE_DefaultTexturaPatasCama }
Textura para las patas de cama. 

    #declare BCSE_TexturaColchon		=
		{ BCSE_DefaultTexturaColchon }
Textura de la base del colchón. 

    #declare BCSE_TexturaHilo			=
		{ BCSE_DefaultTexturaHilo }
Textura para la cuerda del colchón. 

    #declare BCSE_TexturaTiradera		=
		{ BCSE_DefaultTexturaTiradera }
Textura para la tiradera. 

    #declare BCSE_BanderaCama			= on;
Valor "on" dibuja la base del colchón.  Valor "off" no la dibuja.

    #declare BCSE_BanderaHilo			= on;
Valor "on" dibuja la cuerda del colchón.  Valor "off" no la dibuja.

    #declare BCSE_POV3_1			= off;
Para activar modo de compatibilidad con POVRay 3.1.  En algunas versiones se activará automáticamente.  En esta versión no cumple ninguna función.

Un ejemplo sin cama:

    #include "stdinc.inc"
    #include "stdcam.inc"
    #include "BCSE.inc"

    #declare BCSE_BanderaCama		= off;
    // #declare BCSE_BanderaHilo	   = off;
    // Innecesario BCSE_BanderaHilo = off puesto que no se dibuja la cama 
    object      {
      BCSE_BaseCama(0)
      translate         <-1.375,0.625,-2.5>  
    }

A manera de ejemplo del uso de los modificadores de texturas:

    #include "stdinc.inc"
    #include "stdcam.inc"         
    #include "BCSE.inc"           
    #include "textures.inc"
    
    #declare BCSE_TexturaPrincipal              =
      texture                                   {   
        average
        texture_map                             {  
          [ 0.8 BCSE_DefaultTexturaPrincipal ]
          [ 0.2 Rust ]
        }
      }
      
    #declare BCSE_TexturaGaveta = PinkAlabaster
    #declare BCSE_TexturaInteriorGaveta = 
       texture { pigment { Cyan } } 
       
    #declare BCSE_TexturaBordeGaveta    = Rosewood  
    
    #declare BCSE_TexturaPatas          = Yellow_Pine
    
    #declare BCSE_TexturaPatasCama      = EMBWood1
    
    #declare BCSE_TexturaColchon        = Silver_Metal
    
    #declare BCSE_TexturaHilo           = Polished_Chrome
    
    #declare BCSE_TexturaTiradera       = Lightning1 
    
    object      {
      BCSE_BaseCama(90,on)
      translate         <-1.375,0.625,-2.5>  
    }


Notas y Advertencias

Al modificar los parámetros cuide variarlos en forma consistente.

Utilice el modificador BCSE_BanderaHilo para desaparecer el hilo, si luego de modificar los parámetros resultara "flotando en el aire".

Varios de los archivos auxiliares aunque son necesarios para la ejecución, en realidad no se utilizan.  Se incluyen como soporte para macros auxiliares no empleadas en el diseño del objeto.


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/octubre/2014), 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