Necesito desarrollar un sitio web en php que permita calcular el costo de impresión a partir un archivo STL que suba el usuario a través del cálculo de tiempo de impresión y de la cantidad de material requerido usando una fórmula matemática.
La página debe tener un formulario que cuente con un botón para seleccionar el archivo 3d en formato STL y un formulario donde el usuario pueda seleccionar los distintos parámetros de impresión. Los parámetros serán: Material (Lista desplegable con 2 opciones), Altura de capa (Lista desplegable con 4 opciones), Porcentaje de relleno (Slider con valores de 0 a 100), color (Radio buttons con 3 opciones) y un botón de calcular para enviar los datos al servidor y ejecutar el comando que permite hacer los cálculos.
A la izquierda del formulario debe haber un visualizador en javascript donde el usuario pueda ver, acercar y rotar el 3rchivo 3D.
Una vez calculado el precio se debe mostrar los detalles de la orden (precio y entrega estimada) y debe haber un botón que permita al usuario realizar el pago online (a través de woocommerce).
Para iniciar se puede tomar como base el proyecto
http://www.3dpartprice.com/ que ofrece una funcionalidad bastante parecida a la que buscamos (código de fuente disponible).
El proceso de calculo de tiempo de impresión y cantidad de material se realiza mediante un tipo de software llamado slicer. En este caso deseamos trabajar con Prusa Slicer
https://github.com/prusa3d/PrusaSlicer en cual tiene un interfaz de línea de comandos que nos permite hacer todos los cálculos sin necesidad de un gui. Por ejemplo para calcular tiempo y material requerido para un archivo puedo usar el comando:
prusa-slicer -g STL/
cube.stl --load profiles/
fine-0.16.ini --fill-density 0.30 --output out-gcode/
test.gcode
Donde STL/
cube.stl es el archivo 3D a calcular, profiles/
fine-0.16.ini es el perfil correspondiente para el material y la altura de capa (hay un perfil para cada combinación de material y altura de capa, es decir son 8 en total), --fill-density 0.30 representa el porcentaje de relleno (30% en este caso) y
test.gcode es un archivo de texto que contiene toda la información necesaria para fabricar el archivo en una impresora 3D y entre las líneas de dicho archivo se encuentra el tiempo de impresión y la cantidad de material:
…
; Filament-specific end gcode
;END gcode for filament
M104 S0 ; turn off temperature
G28 X0 ; home X axis
M84 X Y E ;Disable all steppers but Z
; filament used [mm] = 5706.4
; filament used [cm3] = 13.7
; filament used [g] = 15.6
; total filament used [g] = 15.6
; total filament cost = 0.0
; estimated printing time (normal mode) = 2h 18m 5s
; estimated printing time (silent mode) = 2h 27m 4s
…
Para la visualización del archivo STL sugerimos partir de este código: https://github.c
om/kovacsv/Online3DViewer
Plazo de Entrega: 15 Enero, 2020