Logo POVRay...
Instrucciones para "LCGF.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 "LCGF.inc" (LicuadoraCuchillaGiratoriaFilosa) dibuja una licuadora corriente para cocina, de ocho botones. Posee una macro para variar sus dimensiones principales y texturas. La base se ajusta en ocho posiciones, pueden oprimirse los botones, y separarse algunas partes pero es muy poco flexible. Es compatible con POV-Ray 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 el archivo "LCGF.inc" en dicho subdirectorio;  únicamente este 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 "LCGF.pov" puede ejecutarse sin ningún proceso de instalación.  Unicamente debería estar ubicado en el mismo folder que "LCGF.inc".


Instrucciones básicas

Licuadora
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 "LCGF.inc"
    
    object      {
      LCGF_Licuadora( 0 )
      translate         <-1.800,+1.400,-4.500>    
    }

La macro principal tiene solo un parámetro.

    #macro LCGF_Licuadora( IndiceRanura )
IndiceRanura :
Número entero entre 0 y 7, para ubicar la licuadora en una de las ocho ranuras (esto orienta la oreja de la licuadora). Un número fraccionario no genera error.

La siguiente macro permite mucha mayor flexibilidad. Es probable, sin embargo, que los botones queden mal ubicados (consulte la sección Modificadores).

    #macro  LCGF_LicuadoraCuchillaGiratoriaFilosa
              ( IndiceRanura, DiametroBase, DiametroSoporte, 
            	AltoBase, ProfundidadDelantera,
            	DiametroPichel, AltoReferenciaPichel, 
            	GruesoPlastico, AltoInternoTapa, 
            	DiametroAberturaTapa, AnchoOreja, AltoOreja,
            	MaterialPrincipal, MaterialPichel, MaterialAccesorios,
            	MaterialBotones, MaterialPlacaBotones,
            	MaterialCuchillas, MaterialCuero )
IndiceRanura :
Número entero entre 0 y 7, para ubicar la licuadora en una de las ocho ranuras (esto orienta la oreja de la licuadora). Un número fraccionario no genera error.
DiametroBase :
Diámetro de la base inferior a lo ancho en X. Valor por defecto 114*L.
DiametroSoporte :
Diámetro en la zona de contacto con la licuadora. Valor por defecto 73*L.
AltoBase :
Alto referencia para la base de la licuadora. Valor por defecto 112.60*L.
ProfundidadDelantera :
Profundidad en Z de la zona negativa o frente de la licuadora. Valor por defecto 94*L.
DiametroPichel :
Diámetro del pichel de licuado. Valor por defecto 85*L.
AltoReferenciaPichel :
Alto de referencia para el pichel. Valor por defecto 127*L.
GruesoPlastico :
Grueso del material básico del pichel. Valor por defecto 2*L.
AltoInternoTapa :
Alto de la tapa que penetra el recipiente. Valor por defecto 22*L.
DiametroAberturaTapa :
Diámetro de la abertura en la tapa. Valor por defecto 37*L.
AnchoOreja :
Abertura desde el cilindro para agarrar la oreja. Valor por defecto 112*L.
AltoOreja :
Porción del pichel a lo alto en Y, abarcado por la oreja. Valor por defecto 112*L.
MaterialPrincipal :
Material de la base que soporta al pichel. Valor por defecto LCGF_MaterialPrincipal.
MaterialPichel :
Material del pichel contenedor. Valor por defecto LCGF_MaterialPichel.
MaterialAccesorios :
Material de algunos elementos del pichel, como la tapa o el cilindro de unión. Valor por defecto LCGF_MaterialAccesorios.
MaterialBotones :
Material para los botones. Valor por defecto LCGF_MaterialBotones.
MaterialPlacaBotones :
Material para la placa soporte de botones. Valor por defecto LCGF_MaterialPlacaBotones.
MaterialCuchillas :
Material para las cuchillas. Valor por defecto LCGF_MaterialCuchillas.
MaterialCuero :
Material para patas y contacto de giro. Valor por defecto LCGF_MaterialCuero.

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 "LCGF.inc"
    
    object      {
       LCGF_LicuadoraCuchillaGiratoriaFilosa( 0, 
          0.114, 0.073, 0.1126, 0.094, 0.085, 0.127, 
          0.002, 0.022, 0.037 , 0.050, 0.112,
          LCGF_MaterialPrincipal, LCGF_MaterialPichel,
          LCGF_MaterialAccesorios, LCGF_MaterialBotones,
          LCGF_MaterialPlacaBotones,LCGF_MaterialCuchillas,
          LCGF_MaterialCuero )
      translate         <-1.800,+1.400,-4.500>    
    }


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.  La licuadora, sin oreja de agarre, tiene las siguientes dimensiones:
    Minimo      = <  -57,    0,  -94 >*L
    Maximo      = <  +57, +303,  +57 >*L

La oreja se extiende hasta 94*L de radio respecto al eje Y y tiene ocho posiciones. La licuadora descansa sobre el plano XZ, su eje de giro coincide con el eje Y.

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

LCGF_InteriorBase
Se genera el object al llamar a la macro. Corresponde al volumen interior del pichel. No incluye corrección para las cuchillas o la tapa. Puede utilizarla para ubicar material en el interior del recipiente.
LCGF_DefectoMaterialPrincipal
Material de la base que soporta al pichel.
LCGF_DefectoMaterialPichel
Material del pichel contenedor.
LCGF_DefectoMaterialAccesorios
Material de algunos elementos del pichel, como la tapa o el cilindro de unión.
LCGF_DefectoMaterialBotones
Material para los botones.
LCGF_DefectoMaterialPlacaBotones
Material para la placa soporte de botones.
LCGF_DefectoMaterialCuchillas
Material para las cuchillas.
LCGF_DefectoMaterialCuero
Material para patas y contacto de giro.

El siguiente ejemplo muestra una licuadora con una sustancia anaranjada.

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

    #include "stdinc.inc"
    #include "stdcam.inc"
    #include "LCGF.inc" 
   
    union                  {
       LCGF_Licuadora(0)   
       difference               {
         object                 {
           LCGF_InteriorBase   
         }
         plane                  {
           -y, -0.22
         }
         pigment { Orange  transmit 0.3  }
         normal  { granite scale    0.01 }
       }
       translate         <-1.800,+1.400,-4.500>    
    }


Modificadores

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

    #declare LCGF_TransformPichel		= transform	{ }
Transform adicional para ubicar el pichel.

    #declare LCGF_TransformTapaPichel		= transform	{ }
Transform adicional para ubicar la tapa del pichel.

    #declare LCGF_TransformVisorPichel		= transform	{ }
Transform adicional para ubicar el visor en la tapa del pichel.

    #declare LCGF_AnguloRotarCuchillas		= 0.0;
Angulo para girar las cuchillas.

    #declare LCGF_ColorLetras			= White;
Para cambiar el color de las etiquetas de los botones.

    #declare LCGF_BanderaBotones		= on;
"on" botones visibles, "off" los desactiva. Util si los botones quedan mal ubicados al modificar los parámetros, y no sea satisfactoria el empleo de LCGF_TransformBotones.

    #declare LCGF_TransformBotones		= transform	{ }
Para corregir la posición de los botones al cambiar los parámetros. Tomar en cuenta que luego de este transform, se aplica un rotate 45*x, de forma tal que en muchos casos sea suficiente con desplazar los botones arriba-abajo.

    #declare LCGF_EstadoBotones             	= array [ 8 ]
          { off, off, off, off, off, off, off, off }
Permite apretar los botones con el valor on.

  #declare LCGF_LabelBotones               	= array [ 8 ]
          { "A", "R", "P", "1", "2", "3", "4", "5" }
Para cambiar las etiquetas de los botones. Utilice solo caracteres.

    #declare LCGF_MaterialPrincipal		=	 
		texture  { LCGF_DefectoMaterialPrincipal		}
Material de la base que soporta el pichel.

    #declare LCGF_MaterialPichel		=	 
		texture  { LCGF_DefectoMaterialPichel			}
Material del pichel contenedor.

    #declare LCGF_MaterialAccesorios		=	 
		texture  { LCGF_DefectoMaterialAccesorios		}
Material de algunos elementos del pichel, como la tapa o el cilindro de unión.

    #declare LCGF_MaterialBotones		=	 
		texture  { LCGF_DefectoMaterialBotones			}
Material para los botones.

    #declare LCGF_MaterialPlacaBotones		=	 
		texture  { LCGF_DefectoMaterialPlacaBotones		}
Material para la placa soporte de botones.

    #declare LCGF_MaterialCuchillas		=	 
		texture  { LCGF_DefectoMaterialCuchillas		}
Material para las cuchillas.

    #declare LCGF_MaterialCuero			=	 
		texture  { LCGF_DefectoMaterialCuero			}
Material para patas y contacto de giro.

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 "LCGF.inc" 
    #include "textures.inc"
    
    #declare LCGF_TransformPichel           = transform { translate -0.1*x }

    #declare LCGF_TransformTapaPichel       = transform { translate +0.2*x }

    #declare LCGF_TransformVisorPichel      = transform { translate +0.025*y }
    
    #declare LCGF_AnguloRotarCuchillas      = 45;

    #declare LCGF_ColorLetras               = Red;

    #declare LCGF_EstadoBotones[ 3 ]        = on;

    #declare LCGF_LabelBotones               = array [ 8 ]
            { "*", "*", "*", "*", "*", "*", "*", "*" }

    #declare LCGF_MaterialPrincipal         = material { M_Glass2 }

    #declare LCGF_MaterialPichel            = material { M_Green_Glass }

    #declare LCGF_MaterialAccesorios        = material { M_Yellow_Glass }

    #declare LCGF_MaterialBotones           = material { M_NB_Winebottle_Glass }

    #declare LCGF_MaterialPlacaBotones      = material { M_Dark_Green_Glass }

    #declare LCGF_MaterialCuchillas         = material { texture { Gold_Texture } }

    #declare LCGF_MaterialCuero             = material { M_Ruby_Glass }
    
    object      {
       LCGF_Licuadora(0)
      translate         <-1.800,+1.400,-4.500>    
    }


Notas y Advertencias

El modificador LCGF_AnguloRotarCuchillas solo rota las cuchillas, pero no gira el motor en la base.

Es de esperar que al cambiar los parámetros, los botones queden mal ubicados. Para corregir el problema, puede utilizar el modificador LCGF_TransformBotones o bien LCGF_BanderaBotones para eliminarlos.

Es de esperar alguna superposicion de objetos en la zona interior oculta de contacto entre el rotor de giro y la base 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...(03/julio/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