{"id":3930,"date":"2017-07-11T20:39:25","date_gmt":"2017-07-11T18:39:25","guid":{"rendered":"https:\/\/diocesanos.es\/blogs\/equipotic\/?p=3930"},"modified":"2019-03-20T10:36:56","modified_gmt":"2019-03-20T09:36:56","slug":"diseno-e-impresion-3d-con-minetest","status":"publish","type":"post","link":"https:\/\/diocesanos.es\/blogs\/equipotic\/2017\/07\/11\/diseno-e-impresion-3d-con-minetest\/","title":{"rendered":"Dise\u00f1o e impresi\u00f3n 3D con Minetest"},"content":{"rendered":"<p>No dejar\u00e1n nunca de sorprenderme. Y eso que al principio me cost\u00f3 convencerles de que trabajar en equipo era fundamental para conseguir el objetivo final: construir un castillo de manera colaborativa en un mundo virtual para luego imprimirlo en 3D! Juntar a una veintena de muchachos de Primaria en un mismo escenario con acceso ilimitado a fuentes de lava, torrentes de agua, fuego y dinamita y pretender que no lo utilicen unos contra otros, sin gritos, de forma \u00abordenada\u00bb&#8230; es una prueba digna de H\u00e9rcules. Yo no la super\u00e9 a la primera, ni a la segunda,&#8230;<\/p>\n<p style=\"text-align: left;\"><a href=\"https:\/\/diocesanos.es\/blogs\/equipotic\/2017\/07\/11\/diseno-e-impresion-3d-con-minetest\/minetest01\/\" rel=\"attachment wp-att-3931\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-medium wp-image-3931\" src=\"https:\/\/diocesanos.es\/blogs\/equipotic\/wp-content\/uploads\/sites\/2\/2017\/07\/Minetest01-300x234.png\" alt=\"\" width=\"300\" height=\"234\" srcset=\"https:\/\/diocesanos.es\/blogs\/equipotic\/wp-content\/uploads\/sites\/2\/2017\/07\/Minetest01-300x234.png 300w, https:\/\/diocesanos.es\/blogs\/equipotic\/wp-content\/uploads\/sites\/2\/2017\/07\/Minetest01-768x599.png 768w, https:\/\/diocesanos.es\/blogs\/equipotic\/wp-content\/uploads\/sites\/2\/2017\/07\/Minetest01.png 802w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a>Pero bast\u00f3 ense\u00f1arles una diminuta maqueta impresa hecha con el <span style=\"text-decoration: underline;\"><strong><a href=\"http:\/\/www.minetest.net\/\">Minetest<\/a><\/strong><\/span> para que cambiaran y se pusieran \u00aben serio\u00bb. Os adjunto un peque\u00f1o tutorial para replicar la \u00abexperiencia\u00bb y unas fotos con los resultados.<\/p>\n<p><!--more--><\/p>\n<p><em><strong>\u00a1Art\u00edculo Actualizado!<\/strong>: <a href=\"https:\/\/diocesanos.es\/blogs\/equipotic\/2019\/02\/12\/nueva-version-del-modulo-para-imprimir-en-3d-modelos-de-minetest\/\">https:\/\/diocesanos.es\/blogs\/equipotic\/2019\/02\/12\/nueva-version-del-modulo-para-imprimir-en-3d-modelos-de-minetest\/<\/a><\/em><\/p>\n<h2>Minetest<\/h2>\n<p>Puedes descargarlo de forma gratuita desde la web original del programa:<\/p>\n<p><strong><a href=\"http:\/\/www.minetest.net\/downloads\/\">http:\/\/www.minetest.net\/downloads\/<\/a><\/strong><\/p>\n<p style=\"text-align: left;\"><a href=\"https:\/\/diocesanos.es\/blogs\/equipotic\/2017\/07\/11\/diseno-e-impresion-3d-con-minetest\/attachment\/01\/\" rel=\"attachment wp-att-3932\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-medium wp-image-3932\" src=\"https:\/\/diocesanos.es\/blogs\/equipotic\/wp-content\/uploads\/sites\/2\/2017\/07\/01-300x225.png\" alt=\"\" width=\"300\" height=\"225\" srcset=\"https:\/\/diocesanos.es\/blogs\/equipotic\/wp-content\/uploads\/sites\/2\/2017\/07\/01-300x225.png 300w, https:\/\/diocesanos.es\/blogs\/equipotic\/wp-content\/uploads\/sites\/2\/2017\/07\/01-768x576.png 768w, https:\/\/diocesanos.es\/blogs\/equipotic\/wp-content\/uploads\/sites\/2\/2017\/07\/01.png 960w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a>Hay versiones para Windows, Mac, Android, FreeBSD y Linux. El tutorial se centra en este \u00faltimo, y en concreto en el \u201csabor\u201d Ubuntu disponible en los colegios.<\/p>\n<h2>Instalaci\u00f3n e inicio primera vez<\/h2>\n<p>Abre un terminal y ejecuta las siguientes \u00f3rdenes:<\/p>\n<pre style=\"font-size: 80%;\">sudo apt-get update\nsudo apt-get install minetest openscad slic3r<\/pre>\n<p>Ejec\u00fatalo, bien desde el men\u00fa \u201c<strong><em>Aplicaciones<\/em><\/strong>\u201d \u2192 \u201c<strong><em>Juegos<\/em><\/strong>\u201d o utilizando las teclas \u201c<strong><em>ALT + F2<\/em><\/strong>\u201d en caso de no estar disponible ese men\u00fa:<\/p>\n<p style=\"text-align: left;\"><a href=\"https:\/\/diocesanos.es\/blogs\/equipotic\/2017\/07\/11\/diseno-e-impresion-3d-con-minetest\/attachment\/02\/\" rel=\"attachment wp-att-3933\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-medium wp-image-3933\" src=\"https:\/\/diocesanos.es\/blogs\/equipotic\/wp-content\/uploads\/sites\/2\/2017\/07\/02-300x129.png\" alt=\"\" width=\"300\" height=\"129\" srcset=\"https:\/\/diocesanos.es\/blogs\/equipotic\/wp-content\/uploads\/sites\/2\/2017\/07\/02-300x129.png 300w, https:\/\/diocesanos.es\/blogs\/equipotic\/wp-content\/uploads\/sites\/2\/2017\/07\/02.png 421w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a>Ajusta las opciones para un equipo con bajos recursos. Ve a la solapa \u201c<strong><em>Configuraci\u00f3n<\/em><\/strong>\u201d y desactiva todas las opciones tal como se muestra en la figura, en especial \u201c<strong><em>Iluminaci\u00f3n suave<\/em><\/strong>\u201d, \u201c<strong><em>Habilitar part\u00edculas<\/em><\/strong>\u201d, \u201c<strong><em>Nubes 3D<\/em><\/strong>\u201d y \u201c<strong><em>Sombreadores<\/em><\/strong>\u201d. Las opciones de \u201c<strong><em>Texturizado<\/em><\/strong>\u201d tambi\u00e9n al m\u00ednimo.<\/p>\n<p style=\"text-align: left;\"><a href=\"https:\/\/diocesanos.es\/blogs\/equipotic\/2017\/07\/11\/diseno-e-impresion-3d-con-minetest\/attachment\/03\/\" rel=\"attachment wp-att-3934\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-medium wp-image-3934\" src=\"https:\/\/diocesanos.es\/blogs\/equipotic\/wp-content\/uploads\/sites\/2\/2017\/07\/03-300x148.png\" alt=\"\" width=\"300\" height=\"148\" srcset=\"https:\/\/diocesanos.es\/blogs\/equipotic\/wp-content\/uploads\/sites\/2\/2017\/07\/03-300x148.png 300w, https:\/\/diocesanos.es\/blogs\/equipotic\/wp-content\/uploads\/sites\/2\/2017\/07\/03.png 654w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a>Cierra el programa a continuaci\u00f3n.<\/p>\n<h2>Creaci\u00f3n del \u201cmod\u201c de exportaci\u00f3n<\/h2>\n<p><strong>Minetest<\/strong> no viene preparado para generar el fichero de datos en el formato que necesitamos. Pero s\u00ed tiene un mecanismo bien documentado para la creaci\u00f3n de complementos y modificaciones (<em><strong>mods<\/strong><\/em>) para dotarle de nuevas caracter\u00edsticas. Para m\u00e1s informaci\u00f3n consulta los siguientes enlaces:<\/p>\n<ul>\n<li><a href=\"http:\/\/www.lua.org\/manual\/5.1\/es\/\">http:\/\/www.lua.org\/manual\/5.1\/es\/<\/a><\/li>\n<li><a href=\"https:\/\/rubenwardy.com\/minetest_modding_book\/index.html\">https:\/\/rubenwardy.com\/minetest_modding_book\/index.html<\/a><\/li>\n<\/ul>\n<h4>Opci\u00f3n 1: Como m\u00f3dulo local para el usuario del equipo<\/h4>\n<p>Creamos la siguiente estructura de archivos y carpetas (con el usuario \u201c<em>alumno<\/em>\u201d):<\/p>\n<p><code style=\"font-size: 75%;\">mkdir -p \/home\/alumno\/.minetest\/mods<br \/>\nmkdir -p \/home\/alumno\/.minetest\/mods\/openscad<br \/>\nmkdir -p \/home\/alumno\/.minetest\/mods\/openscad\/textures<br \/>\ntouch \/home\/alumno\/.minetest\/mods\/openscad\/depends.txt<br \/>\ntouch \/home\/alumno\/.minetest\/mods\/openscad\/init.lua<\/code><\/p>\n<pre>mods\/\n\u2514\u2500\u2500 openscad\/\n    \u251c\u2500\u2500 depends.txt\n    \u251c\u2500\u2500 init.lua\n    \u2514\u2500\u2500 textures\/<\/pre>\n<h4>Opci\u00f3n 2: Como m\u00f3dulo para un servidor dedicado<\/h4>\n<p>Creamos la siguiente estructura de archivos y carpetas (con el usuario \u201c<em>root<\/em>\u201d o el dedicado al server):<\/p>\n<p><code style=\"font-size: 75%;\">mkdir -p \/var\/games\/minetest-server\/.minetest\/mods<br \/>\nmkdir -p \/var\/games\/minetest-server\/.minetest\/mods\/openscad<br \/>\nmkdir -p \/var\/games\/minetest-server\/.minetest\/mods\/openscad\/textures<br \/>\ntouch \/var\/games\/minetest-server\/.minetest\/mods\/openscad\/depends.txt<br \/>\ntouch \/var\/games\/minetest-server\/.minetest\/mods\/openscad\/init.lua<\/code><\/p>\n<pre>mods\/\n\u2514\u2500\u2500 openscad\/\n    \u251c\u2500\u2500 depends.txt\n    \u251c\u2500\u2500 init.lua\n    \u2514\u2500\u2500 textures\/<\/pre>\n<h4>Programa de exportaci\u00f3n<\/h4>\n<p>Edita ahora el fichero \u201c<em><strong>init.lua<\/strong><\/em>\u201d y copia el siguiente c\u00f3digo:<\/p>\n<pre style=\"font-size: 50%;\">-- M\u00f3dulo de exportaci\u00f3n a OpenSCAD para impresi\u00f3n 3D\n-- Copyright(C)2017 - David Mart\u00edn Pascual\n-- Versi\u00f3n v1.2\n\n-- Proceso de exportaci\u00f3n\nexportanodos = {\n\n   bloquesignorar = {\n        ['air'] = 1,\n        ['ignore'] = 1,\n        ['unknown'] = 1\n   },\n\n   -- Lista de tipos de bloque que se tendr\u00e1n en cuenta para el modelo a exportar\n   bloquesadmitidos = {\n        -- Bloques s\u00f3lidos 1x1x1\n        ['default:acacia_wood'] = 1,\n        ['default:aspen_wood'] = 1,\n        ['default:brick'] = 1,\n        ['default:bronzeblock'] = 1,\n        ['default:clay'] = 1,\n        ['default:coalblock'] = 1,\n        ['default:cobble'] = 1,\n        ['default:copperblock'] = 1,\n        ['default:desert_cobble'] = 1,\n        ['default:desert_sand'] = 1,\n        ['default:desert_stone'] = 1,\n        ['default:desert_stone_block'] = 1,\n        ['default:desert_stonebrick'] = 1,\n        ['default:diamondblock'] = 1,\n        ['default:dirt'] = 1,\n        ['default:dirt_with_dry_grass'] = 1,\n        ['default:dirt_with_grass'] = 1,\n        ['default:dirt_with_snow'] = 1,\n        ['default:goldblock'] = 1,\n        ['default:gravel'] = 1,\n        ['default:ice'] = 1,\n        ['default:junglewood'] = 1,\n        ['default:mese'] = 1,\n        ['default:meselamp'] = 1,\n        ['default:mossycobble'] = 1,\n        ['default:obsidian_block'] = 1,\n        ['default:obsidianbrick'] = 1,\n        ['default:pine_wood'] = 1,\n        ['default:sand'] = 1,\n        ['default:sandstone'] = 1,\n        ['default:sandstone_block'] = 1,\n        ['default:sandstonebrick'] = 1,\n        ['default:silver_sand'] = 1,\n        ['default:snowblock'] = 1,\n        ['default:steelblock'] = 1,\n        ['default:stone'] = 1,\n        ['default:stone_block'] = 1,\n        ['default:stone_with_coal'] = 1,\n        ['default:stone_with_copper'] = 1,\n        ['default:stone_with_diamond'] = 1,\n        ['default:stone_with_gold'] = 1,\n        ['default:stone_with_iron'] = 1,\n        ['default:stone_with_mese'] = 1,\n        ['default:stonebrick'] = 1,\n        ['default:wood'] = 1,\n        ['wool:white'] = 1,\n        ['wool:grey'] = 1,\n        ['wool:dark_grey'] = 1,\n        ['wool:black'] = 1,\n        ['wool:blue'] = 1,\n        ['wool:cyan'] = 1,\n        ['wool:green'] = 1,\n        ['wool:dark_green'] = 1,\n        ['wool:yellow'] = 1,\n        ['wool:orange'] = 1,\n        ['wool:brown'] = 1,\n        ['wool:red'] = 1,\n        ['wool:pink'] = 1,\n        ['wool:magenta'] = 1,\n        ['wool:violet'] = 1,\n         -- Muros delgados\n        ['walls:cobble'] = 2,\n        ['walls:mossycobble'] = 2,\n        ['walls:desertcobble'] = 2,\n        -- Puertas (dos alturas)\n        ['doors:door_steel_a'] = 3,\n        ['doors:door_steel_b'] = 3,\n        ['doors:door_steel_b_1'] = 3,\n        ['doors:door_steel_b_2'] = 3,\n        ['doors:door_wood_a'] = 3,\n        ['doors:door_wood_b'] = 3,\n        ['doors:door_wood_b_1'] = 3,\n        ['doors:door_wood_b_2'] = 3,\n        -- Cerramientos\n        ['default:fence_wood'] = 4,\n        ['default:fence_junglewood'] = 4,\n        ['default:fence_pine_wood'] = 4,\n        ['default:fence_acacia_wood'] = 4,\n        ['default:fence_aspen_wood'] = 4,\n        -- Puertas cerramientos\n        ['doors:gate_wood_open'] = 5,\n        ['doors:gate_wood_closed'] = 5,\n        ['doors:gate_junglewood_open'] = 5,\n        ['doors:gate_junglewood_closed'] = 5,\n        ['doors:gate_acacia_wood_open'] = 5,\n        ['doors:gate_acacia_wood_closed'] = 5,\n        ['doors:gate_aspen_wood_open'] = 5,\n        ['doors:gate_aspen_wood_closed'] = 5,\n        ['doors:gate_pine_wood_open'] = 5,\n        ['doors:gate_pine_wood_closed'] = 5,\n        -- Verjas\n        ['xpanes:bar'] = 6,\n        ['xpanes:bar_flat'] = 6,\n        -- Escaleras\n        ['default:ladder_steel'] = 7,\n        ['default:ladder_wood'] = 7,\n        -- Trampillas\n        ['doors:trapdoor_steel'] = 8,\n        ['doors:trapdoor_steel_open'] = 8,\n        ['doors:trapdoor'] = 8,\n        ['doors:trapdoor_open'] = 8,\n        -- Antorcha\n        ['default:torch'] = 9,\n        ['default:torch_wall'] = 9\n        -- Losas \"stairs:slab_*\" y escalones \"stairs:stair_*\" en el c\u00f3digo\n      },\n\n\n   -- Exporta un trozo de mapa comenzando en el bloque (ax1, ay1, az1) y terminando en el (ax2, ay2, az2)\n   exportabloques = function(athis, anombrefichero, ax1, ay1, az1, ax2, ay2, az2)\n\n      -- Escritura del mapa en formato openscad\n      local ruta = minetest.get_worldpath() .. \"\/\" .. anombrefichero;\n      local destino, emsg = io.open(ruta, \"w\");\n      if not destino then\n         error(emsg);\n      end\n\n      -- Cabecera y m\u00f3dulos del fichero .scad\n      destino:write(string.format('\/\/ Mapa de [%d, %d, %d] a [%d, %d, %d]\\n\\n', ax1, ay1, az1, ax2, ay2, az2));\n      destino:write('module bloque(x,y,z,lon) { translate([x, y, z]) cube([1.001, lon + .001, 1.001]); }\\n\\n');\n      destino:write('module losa(x,y,z,p2) {\\n');\n      destino:write(' if ((p2==0)||(p2==1)||(p2==2)||(p2==3)) translate([x, y, z]) cube([1.001, 1.001, 0.501]);\\n');\n      destino:write(' if ((p2==4)||(p2==5)||(p2==6)||(p2==7)) translate([x, y, z]) cube([1.001, 0.501, 1.001]);\\n');\n      destino:write(' if ((p2==8)||(p2==9)||(p2==10)||(p2==11)) translate([x, y+0.5, z]) cube([1.001, 0.501, 1.001]);\\n');\n      destino:write(' if ((p2==12)||(p2==13)||(p2==14)||(p2==15)) translate([x, y, z]) cube([0.501, 1.001, 1.001]);\\n');\n      destino:write(' if ((p2==16)||(p2==17)||(p2==18)||(p2==19)) translate([x+0.5, y, z]) cube([0.501, 1.001, 1.001]);\\n');\n      destino:write(' if ((p2==20)||(p2==21)||(p2==22)||(p2==23)) translate([x, y, z+0.5]) cube([1.001, 1.001, 0.501]); }\\n\\n');\n      destino:write('module escalon(x,y,z,p2) {\\n');\n      destino:write(' losa(x,y,z,p2);\\n');\n      destino:write(' if ((p2==0)||(p2==6)) translate([x, y+0.5, z+0.5]) cube([1.001, 0.501, 0.501]);\\n');\n      destino:write(' if ((p2==1)||(p2==15)) translate([x+0.5, y, z+0.5]) cube([0.501, 1.001, 0.501]);\\n');\n      destino:write(' if ((p2==2)||(p2==8)) translate([x, y, z+0.5]) cube([1.001, 0.501, 0.501]);\\n');\n      destino:write(' if ((p2==3)||(p2==17)) translate([x, y, z+0.5]) cube([0.501, 1.001, 0.501]);\\n');\n      destino:write(' if ((p2==16)||(p2==7)) translate([x, y+0.5, z]) cube([0.501, 0.501, 1.001]);\\n');\n      destino:write(' if ((p2==18)||(p2==11)) translate([x, y, z]) cube([0.501, 0.501, 1.001]);\\n');\n      destino:write(' if ((p2==9)||(p2==14)) translate([x+0.5, y, z]) cube([0.501, 0.501, 1.001]);\\n');\n      destino:write(' if ((p2==5)||(p2==12)) translate([x+0.5, y+0.5, z]) cube([0.501, 0.501, 1.001]);\\n');\n      destino:write(' if ((p2==20)||(p2==4)) translate([x, y+0.5, z]) cube([1.001, 0.501, 0.501]);\\n');\n      destino:write(' if ((p2==21)||(p2==19)) translate([x, y, z]) cube([0.501, 1.001, 0.501]);\\n');\n      destino:write(' if ((p2==22)||(p2==10)) translate([x, y, z]) cube([1.001, 0.501, 0.501]);\\n');\n      destino:write(' if ((p2==23)||(p2==13)) translate([x+0.5, y, z]) cube([0.501, 1.001, 0.501]); }\\n\\n');\n      destino:write('module muro(x,y,z,con) {\\n');\n      destino:write(' translate([x+0.333, y+0.333, z]) cube([0.334, 0.334, 1.001]);\\n');\n      destino:write(' if ((con==1)||(con==3)||(con==5)||(con==7)||(con==9)||(con==11)||(con==13)||(con==15)) translate([x+0.375, y+0.666, z]) cube([0.251, 0.334, 0.66]);\\n');\n      destino:write(' if ((con==2)||(con==3)||(con==6)||(con==7)||(con==10)||(con==11)||(con==14)||(con==15)) translate([x+0.666, y+0.375, z]) cube([0.334, 0.251, 0.66]);\\n');\n      destino:write(' if ((con==4)||(con==5)||(con==6)||(con==7)||(con==12)||(con==13)||(con==14)||(con==15)) translate([x+0.375, y, z]) cube([0.251, 0.334, 0.66]);\\n');\n      destino:write(' if ((con==8)||(con==9)||(con==10)||(con==11)||(con==12)||(con==13)||(con==14)||(con==15)) translate([x, y+0.375, z]) cube([0.334, 0.251, 0.66]);}\\n\\n');\n      destino:write('module valla(x,y,z,con) {\\n');\n      destino:write(' translate([x+0.375, y+0.375, z]) cube([0.251, 0.251, 1.001]);\\n');\n      destino:write(' if ((con==1)||(con==3)||(con==5)||(con==7)||(con==9)||(con==11)||(con==13)||(con==15)) {\\n');\n      destino:write('  translate([x+0.42, y+0.625, z+0.2]) cube([0.16, 0.376, 0.16]);\\n');\n      destino:write('  translate([x+0.42, y+0.625, z+0.6]) cube([0.16, 0.376, 0.16]);}\\n');\n      destino:write(' if ((con==2)||(con==3)||(con==6)||(con==7)||(con==10)||(con==11)||(con==14)||(con==15)) {\\n');\n      destino:write('  translate([x+0.625, y+0.42, z+0.2]) cube([0.376, 0.16, 0.16]);\\n');\n      destino:write('  translate([x+0.625, y+0.42, z+0.6]) cube([0.376, 0.16, 0.16]);}\\n');\n      destino:write(' if ((con==4)||(con==5)||(con==6)||(con==7)||(con==12)||(con==13)||(con==14)||(con==15)) {\\n');\n      destino:write('  translate([x+0.42, y, z+0.2]) cube([0.16, 0.376, 0.16]);\\n');\n      destino:write('  translate([x+0.42, y, z+0.6]) cube([0.16, 0.376, 0.16]);}\\n');\n      destino:write(' if ((con==8)||(con==9)||(con==10)||(con==11)||(con==12)||(con==13)||(con==14)||(con==15)) {\\n');\n      destino:write('  translate([x, y+0.42, z+0.2]) cube([0.376, 0.16, 0.16]);\\n');\n      destino:write('  translate([x, y+0.42, z+0.6]) cube([0.376, 0.16, 0.16]);}}\\n\\n');\n      destino:write('module escalerabasica() { union() {\\n');\n      destino:write(' translate([0.4, -0.4, 0]) cylinder(r=0.1, h=1.01);\\n');\n      destino:write(' translate([0.4, 0.4, 0]) cylinder(r=0.1, h=1.01);\\n');\n      destino:write(' translate([0.4, 0.5, 0.2]) rotate([90, 0, 0]) cylinder(r=0.05, h=1.01);\\n');\n      destino:write(' translate([0.4, 0.5, 0.45]) rotate([90, 0, 0]) cylinder(r=0.05, h=1.01);\\n');\n      destino:write(' translate([0.4, 0.5, 0.70]) rotate([90, 0, 0]) cylinder(r=0.05, h=1.01);\\n');\n      destino:write(' translate([0.4, 0.5, 0.95]) rotate([90, 0, 0]) cylinder(r=0.05, h=1.01); } }\\n\\n');\n      destino:write('module escalera(x,y,z,p2) { $fn=8;\\n');\n      destino:write(' if (p2 == 2) translate([x+0.5, y+0.5, z]) rotate([0, 0, 0]) escalerabasica();\\n');\n      destino:write(' if (p2 == 3) translate([x+0.5, y+0.5, z]) rotate([0, 0, 180]) escalerabasica();\\n');\n      destino:write(' if (p2 == 4) translate([x+0.5, y+0.5, z]) rotate([0, 0, 90]) escalerabasica();\\n');\n      destino:write(' if (p2 == 5) translate([x+0.5, y+0.5, z]) rotate([0, 0, 270]) escalerabasica(); }\\n\\n');\n      destino:write('module trampabasica(a,b) { rotate([b, 0, a]) translate([-0.5, -0.5, -0.5]) difference() {\\n');\n      destino:write(' cube([1.001, 0.1, 1.001]);\\n');\n      destino:write(' translate([0.1, -0.1, 0.1]) cube([0.8, 0.12, 0.8]);\\n');\n      destino:write(' translate([0.1, 0.08, 0.1]) cube([0.8, 0.1, 0.8]);\\n');\n      destino:write(' translate([0.2, -0.1, 0.2]) cube([0.2, 0.2, 0.3]);\\n');\n      destino:write(' translate([0.2, -0.1, 0.6]) cube([0.2, 0.2, 0.3]);\\n');\n      destino:write(' translate([0.6, -0.1, 0.2]) cube([0.2, 0.2, 0.3]);\\n');\n      destino:write(' translate([0.6, -0.1, 0.6]) cube([0.2, 0.2, 0.3]);} }\\n\\n');\n      destino:write('module trampa(x,y,z,p2) { translate([x+0.5, y+0.5, z+0.5]) {\\n');\n      destino:write(' if (p2 == -1) trampabasica(0, 90);\\n');\n      destino:write(' if (p2 == 0) trampabasica(180, 0);\\n');\n      destino:write(' if (p2 == 1) trampabasica(90, 0);\\n');\n      destino:write(' if (p2 == 2) trampabasica(0, 0);\\n');\n      destino:write(' if (p2 == 3) translate([x+0.1, y, z]) rotate([0, -90, 0]) trampabasica(); } }\\n\\n');\n      destino:write('module antorchabasica(a,b) { $fn=8; union() {\\n');\n      destino:write(' rotate([a, b, 0]) cylinder(r=0.08, h=0.6);\\n');\n      destino:write(' sphere(0.15);\\n');\n      destino:write(' cylinder(r1=0.125, r2=0, h=0.35);} }\\n\\n');\n      destino:write('module antorcha(x,y,z,p2) {\\n');\n      destino:write(' if (p2 == 1) translate([x+0.5, y+0.5, z+0.6]) antorchabasica(0,180);\\n');\n      destino:write(' if (p2 == 2) translate([x+0.7, y+0.5, z+0.6]) antorchabasica(0,145);\\n');\n      destino:write(' if (p2 == 3) translate([x+0.3, y+0.5, z+0.6]) antorchabasica(0,-145);\\n');\n      destino:write(' if (p2 == 4) translate([x+0.5, y+0.7, z+0.6]) antorchabasica(-145,0);\\n');\n      destino:write(' if (p2 == 5) translate([x+0.5, y+0.3, z+0.6]) antorchabasica(145,0); }\\n\\n');\n      destino:write('module puertabasica(a) { rotate([0, 0, a]) translate([-0.5, -0.4, 0]) difference() {\\n');\n      destino:write(' cube([1.001, 0.1, 2.001]);\\n');\n      destino:write(' translate([0.1, -0.1, 0.1]) cube([0.8, 0.12, 0.8]);\\n');\n      destino:write(' translate([0.1, 0.08, 0.1]) cube([0.8, 0.1, 0.8]);\\n');\n      destino:write(' translate([0.1, -0.1, 1.1]) cube([0.8, 0.12, 0.8]);\\n');\n      destino:write(' translate([0.1, 0.08, 1.1]) cube([0.8, 0.1, 0.8]);\\n');\n      destino:write(' translate([0.2, -0.1, 1.2]) cube([0.2, 0.2, 0.3]);\\n');\n      destino:write(' translate([0.2, -0.1, 1.6]) cube([0.2, 0.2, 0.3]);\\n');\n      destino:write(' translate([0.6, -0.1, 1.2]) cube([0.2, 0.2, 0.3]);\\n');\n      destino:write(' translate([0.6, -0.1, 1.6]) cube([0.2, 0.2, 0.3]); } }\\n\\n');\n      destino:write('module puerta(x,y,z,p2) { translate([x+0.5, y+0.5, z]) {\\n');\n      destino:write(' if (p2 == 0) puertabasica(0);\\n');\n      destino:write(' if (p2 == 1) puertabasica(-90);\\n');\n      destino:write(' if (p2 == 2) puertabasica(180);\\n');\n      destino:write(' if (p2 == 3) puertabasica(90); } }\\n\\n');\n      destino:write('module portonbasico(a,b) { rotate([0, 0, a]) {\\n');\n      destino:write(' translate([-0.625, -0.125, 0]) cube([0.251, 0.251, 1.001]);\\n');\n      destino:write(' translate([0.375, -0.125, 0]) cube([0.251, 0.251, 1.001]);\\n');\n      destino:write(' translate([-0.5, -0.08, 0.6]) rotate([0, 0, b == 0 ? -90 : 0]) cube([1, 0.16, 0.16]);\\n');\n      destino:write(' translate([-0.5, -0.08, 0.1]) rotate([0, -30 ,b == 0 ? -90 : 0]) cube([1, 0.16, 0.16]); } }\\n\\n');\n      destino:write('module porton(x,y,z,p2,a) { translate([x+0.5, y+0.5, z]) {\\n');\n      destino:write(' if (p2 == 0) portonbasico(0,a);\\n');\n      destino:write(' if (p2 == 1) portonbasico(-90,a);\\n');\n      destino:write(' if (p2 == 2) portonbasico(180,a);\\n');\n      destino:write(' if (p2 == 3) portonbasico(90,a); } }\\n\\n');\n      destino:write('module verjabasico(r) {rotate([0,0,r]) translate([-0.05, -0.05, 0]) difference() {\\n');\n      destino:write(' cube([0.551, 0.1, 1.001]);\\n');\n      destino:write(' translate([0.05, -0.05, 0.05]) cube([0.18, 0.2, 0.801]);\\n');\n      destino:write(' translate([0.35, -0.05, 0.05]) cube([0.18, 0.2, 0.801]); } }\\n\\n');\n      destino:write('module verja(x,y,z,con) { translate([x+0.5, y+0.5, z]) {\\n');\n      destino:write(' if ((con==1)||(con==3)||(con==5)||(con==7)||(con==9)||(con==11)||(con==13)||(con==15)) verjabasico(90);\\n');\n      destino:write(' if ((con==2)||(con==3)||(con==6)||(con==7)||(con==10)||(con==11)||(con==14)||(con==15)) verjabasico(0);\\n');\n      destino:write(' if ((con==4)||(con==5)||(con==6)||(con==7)||(con==12)||(con==13)||(con==14)||(con==15)) verjabasico(-90);\\n');\n      destino:write(' if ((con==8)||(con==9)||(con==10)||(con==11)||(con==12)||(con==13)||(con==14)||(con==15)) verjabasico(180); } }\\n\\n');\n      destino:write('union() {\\n');\n\n      -- Manipuladores de nodos contenidos entre las coordenadas indicadas\n      local vm = minetest.get_voxel_manip();\n      local pMin, pMax = vm:read_from_map({ x = ax1, y = ay1, z = az1 }, { x = ax2, y = ay2, z = az2 });\n      local data = vm:get_data();\n      local par2 = vm:get_param2_data();\n      local va = VoxelArea:new({ MinEdge = pMin, MaxEdge = pMax });\n\n      -- Comprueba conexi\u00f3n de muros\n      local function muro_vecino(x, y, z)\n         if va:contains(x, y, z) then\n            local ind = va:index(x, y, z);\n            local nid = data[ind];\n            local nom = minetest.get_name_from_content_id(nid);\n            local val = athis.bloquesadmitidos[nom];\n            if (val == 2) or (string.find(nom, 'stone') ~= nil) or (string.find(nom, 'cobble') ~= nil) then\n               return true;\n            end\n         end\n         return false;\n      end\n\n      -- Comprueba conexi\u00f3n de vallas\n      local function valla_vecina(x, y, z)\n         if va:contains(x, y, z) then\n            local ind = va:index(x, y, z);\n            local nid = data[ind];\n            local nom = minetest.get_name_from_content_id(nid);\n            local val = athis.bloquesadmitidos[nom];\n            if (val == 4) or (val == 5) then\n               return true;\n            end\n         end\n         return false;\n      end\n\n       -- Comprueba conexi\u00f3n de verjas\n      local function verja_vecina(x, y, z)\n         if va:contains(x, y, z) then\n            local ind = va:index(x, y, z);\n            local nid = data[ind];\n            local nom = minetest.get_name_from_content_id(nid);\n            local val = athis.bloquesadmitidos[nom];\n            if (val == 6) then\n               return true;\n            end\n         end\n         return false;\n      end\n\n      -- Exploraci\u00f3n de bloques a exportar\n      for ly = ay1, ay2 do\n         local oz = ly - ay1;\n         for lx = ax1, ax2 do\n            local ox = lx - ax1;\n            local longitud = 0;\n            local inicio = 0;\n            for lz = az1, az2 do\n               local oy = lz - az1;\n               local indice = va:index(lx, ly, lz);\n               local nodo_id = data[indice];\n               local nodo_nom = minetest.get_name_from_content_id(nodo_id);\n               local nodo_p2 = par2[indice];\n               local valor = athis.bloquesadmitidos[nodo_nom];\n\n               -- Agrupar bloques para simplificar modelo\n               if valor == 1 then\n                  if longitud == 0 then inicio = oy; end\n                  longitud = longitud + 1;\n               else\n                  if longitud &gt; 0 then\n                     destino:write(string.format(' bloque(%d, %d, %d, %d);\\n', ox, inicio, oz, longitud));\n                     longitud = 0;\n                  end\n\n                  local vecinos = 0;\n                  local subn = string.sub(nodo_nom, 8, 12);\n\n                  if subn == 'slab_' then\n                     destino:write(string.format(' losa(%d, %d, %d, %d);\\n', ox, oy, oz, nodo_p2));\n\n                  elseif subn == 'stair' then\n                     destino:write(string.format(' escalon(%d, %d, %d, %d);\\n', ox, oy, oz, nodo_p2));\n\n                  elseif valor == 2 then\n                     if muro_vecino(lx, ly, lz+1) then vecinos = vecinos  + 1; end\n                     if muro_vecino(lx+1, ly, lz) then vecinos = vecinos  + 2; end\n                     if muro_vecino(lx, ly, lz-1) then vecinos = vecinos  + 4; end\n                     if muro_vecino(lx-1, ly, lz) then vecinos = vecinos  + 8; end\n                     destino:write(string.format(' muro(%d, %d, %d, %d);\\n', ox, oy, oz, vecinos));\n\n                  elseif valor == 3 then\n                     destino:write(string.format(' puerta(%d, %d, %d, %d);\\n', ox, oy, oz, nodo_p2));\n\n                  elseif valor == 4 then\n                     if valla_vecina(lx, ly, lz+1) then vecinos = vecinos  + 1; end\n                     if valla_vecina(lx+1, ly, lz) then vecinos = vecinos  + 2; end\n                     if valla_vecina(lx, ly, lz-1) then vecinos = vecinos  + 4; end\n                     if valla_vecina(lx-1, ly, lz) then vecinos = vecinos  + 8; end\n                     destino:write(string.format(' valla(%d, %d, %d, %d);\\n', ox, oy, oz, vecinos));\n\n                  elseif valor == 5 then\n                     local cerrado = 1\n                     if (string.find(nodo_nom, '_closed') == nil) then cerrado = 0; end\n                     destino:write(string.format(' porton(%d, %d, %d, %d, %d);\\n', ox, oy, oz, nodo_p2, cerrado));\n\n                  elseif valor == 6 then\n                     if (string.find(nodo_nom, '_flat') == nil) then\n                        if verja_vecina(lx, ly, lz+1) then vecinos = vecinos  + 1; end\n                        if verja_vecina(lx+1, ly, lz) then vecinos = vecinos  + 2; end\n                        if verja_vecina(lx, ly, lz-1) then vecinos = vecinos  + 4; end\n                        if verja_vecina(lx-1, ly, lz) then vecinos = vecinos  + 8; end\n                     else\n                        vecinos = 20 + nodo_p2;\n                     end\n                     destino:write(string.format(' verja(%d, %d, %d, %d);\\n', ox, oy, oz, vecinos));\n\n                  elseif valor == 7 then\n                     destino:write(string.format(' escalera(%d, %d, %d, %d);\\n', ox, oy, oz, nodo_p2));\n\n                  elseif valor == 8 then\n                     if (string.find(nodo_nom, 'open') == nil) then nodo_p2 = -1; end\n                     destino:write(string.format(' trampa(%d, %d, %d, %d);\\n', ox, oy, oz, nodo_p2));\n\n                  elseif valor == 9 then\n                     destino:write(string.format(' antorcha(%d, %d, %d, %d);\\n', ox, oy, oz, nodo_p2));\n\n                  elseif athis.bloquesignorar[nodo_nom] == nil then\n                     destino:write(string.format(' \/\/ Nodo(%d, %d, %d) [%s], p2:%d);\\n', ox, oy, oz, nodo_nom, nodo_p2));\n                  end\n               end\n            end\n            if longitud &gt; 0 then\n                destino:write(string.format(' bloque(%d, %d, %d, %d);\\n', ox, inicio, oz, longitud));\n            end\n         end\n      end\n      destino:write('}\\n');\n      destino:close();\n   end\n}\n\n\n-- Registro de privilegio espec\u00edfico\nminetest.register_privilege(\n   \"exportar\",\n   {\n      description = \"Permite exportar mapas a fichero\",\n      give_to_singleplayer = true\n   });\n\n\n-- Registro del comando del chat\nminetest.register_chatcommand(\n   \"openscad\",\n   {\n      params = \"x1 y1 z1 x2 y2 z2 [fichero]\",\n      description = \"Exporta mapa definido por el cubo (x1,y1,z1) a (x2,y2,z2) en formato OpenSCAD.\",\n      privs = { exportar = true },\n      func =\n         function(nombre, parametros)\n            local lp = string.split(parametros, \" \")\n            local x1 = tonumber(lp[1]);\n            local y1 = tonumber(lp[2]);\n            local z1 = tonumber(lp[3]);\n            local x2 = tonumber(lp[4]);\n            local y2 = tonumber(lp[5]);\n            local z2 = tonumber(lp[6]);\n            local nf = lp[7];\n\n            if z2 == nil then\n               return false, \"Error en n\u00famero de par\u00e1metros.\";\n            end\n\n            -- Nombre del fichero\n            if nf == nil then\n               nf = nombre .. \".scad\";\n            else\n               nf = nf .. \".scad\";\n            end\n\n            -- Comprueba e intercambia las coordenadas invertidas\n            local cambio\n            if x1 &gt; x2 then\n                 cambio = x2;\n                x2 = x1;\n                x1 = cambio;\n             end\n            if y1 &gt; y2 then\n               cambio = y2;\n               y2 = y1;\n               y1 = cambio;\n            end\n            if z1 &gt; z2 then\n               cambio = z2;\n               z2 = z1;\n               z1 = cambio;\n            end\n\n            -- Comprueba l\u00edmites antes de exportar\n            if (x2 - x1) &gt; 150 then\n               return false, string.format(\"Error en longitud X (%d -&gt; %d) &gt; 150.\", x1, x2);\n            elseif (z2 - z1) &gt; 150 then\n               return false, string.format(\"Error en longitud Z (%d -&gt; %d) &gt; 150.\", z1, z2);\n            elseif (y2 - y1) &gt; 150 then\n               return false, string.format(\"Error en altura Y (%d -&gt; %d) &gt; 150.\", y1, y2);\n            else\n               exportanodos:exportabloques(nf, x1, y1, z1, x2, y2, z2);\n               return true, \"Exportado a \" .. nf;\n            end\n         end\n   });\n<\/pre>\n<h4>Configuraci\u00f3n espec\u00edfica de minetest<\/h4>\n<p>Para empezar lo ideal es partir de una superficie lo m\u00e1s limpia y plana posible, donde se f\u00e1cil empezar a construir, y donde tengamos m\u00e1s libertad de movimientos (como \u201c<em>volar<\/em>\u201d) para ir depositando los bloques que conformar\u00e1n nuestra construcci\u00f3n a imprimir. Tampoco nos interesa que <em>\u201cpase el tiempo<\/em>\u201d y se nos haga de noche.<\/p>\n<blockquote><p><strong>NOTA<\/strong>: en las nuevas veriosnes de minetest &gt; 4.15 es posible ajustar muchos de estos par\u00e1metros desde los paneles de \u201cConfiguraci\u00f3n\u201d \u2192 \u201cConfiguraci\u00f3n avanzada\u201d<\/p><\/blockquote>\n<p>Edita el fichero \u201c<strong><em>\/home\/alumno\/.minetest\/minetest.conf<\/em><\/strong>\u201d y a\u00f1ade\/ajusta las siguientes variables:<\/p>\n<pre style=\"font-size: 75%;\">cinematic = false\ncreative_mode = true\nenable_3d_clouds = false\nenable_damage = false\nenable_particles = false\nenable_shaders = false\nfixed_map_seed = 81072245\nleaves_style = opaque\nmg_name = v6\nmg_flags = flat\nname =\nserver_dedicated = false\nsmooth_lighting = false\nfree_move = true\nfast_move = true\nno_clip = true\ndoubletap_jump = true\ntime_speed = 0<\/pre>\n<h2>Creaci\u00f3n de un mundo \u201cplano\u201d y selecci\u00f3n del \u201cmod\u201d<\/h2>\n<p>Abre de nuevo el programa y verifica que el m\u00f3dulo que hemos creado aparece disponible en la solapa \u201c<strong><em>Mods<\/em><\/strong>\u201d:<\/p>\n<p><a href=\"https:\/\/diocesanos.es\/blogs\/equipotic\/2017\/07\/11\/diseno-e-impresion-3d-con-minetest\/attachment\/04\/\" rel=\"attachment wp-att-3935\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-medium wp-image-3935\" src=\"https:\/\/diocesanos.es\/blogs\/equipotic\/wp-content\/uploads\/sites\/2\/2017\/07\/04-300x151.png\" alt=\"\" width=\"300\" height=\"151\" srcset=\"https:\/\/diocesanos.es\/blogs\/equipotic\/wp-content\/uploads\/sites\/2\/2017\/07\/04-300x151.png 300w, https:\/\/diocesanos.es\/blogs\/equipotic\/wp-content\/uploads\/sites\/2\/2017\/07\/04.png 644w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a>En la solapa \u201cUn jugador\u201d activa la opci\u00f3n <em><strong>\u201cModo creativo<\/strong><\/em>\u201d y desactiva \u201c<strong><em>Permitir da\u00f1os<\/em><\/strong>\u201d. A continuaci\u00f3n pulsa sobre \u201c<strong><em>Nuevo<\/em><\/strong>\u201d para crear un nuevo mapa.<\/p>\n<p style=\"text-align: left;\"><a href=\"https:\/\/diocesanos.es\/blogs\/equipotic\/2017\/07\/11\/diseno-e-impresion-3d-con-minetest\/attachment\/05\/\" rel=\"attachment wp-att-3936\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-medium wp-image-3936\" src=\"https:\/\/diocesanos.es\/blogs\/equipotic\/wp-content\/uploads\/sites\/2\/2017\/07\/05-300x176.png\" alt=\"\" width=\"300\" height=\"176\" srcset=\"https:\/\/diocesanos.es\/blogs\/equipotic\/wp-content\/uploads\/sites\/2\/2017\/07\/05-300x176.png 300w, https:\/\/diocesanos.es\/blogs\/equipotic\/wp-content\/uploads\/sites\/2\/2017\/07\/05.png 638w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a>Dale un nombre al \u201cmundo\u201d. Opcionalmente dale una semilla al generador (<em>81072245<\/em> funciona bien). Utiliza la versi\u00f3n \u201c<strong><em>Flat<\/em><\/strong>\u201d <em>(o en su defecto \u00ab<strong>V6<\/strong>\u00ab) <\/em>y el tipo de juego \u201c<strong><em>Minetest<\/em><\/strong>\u201d. Prueba otras combinaciones.\u00a0 Pulsa el bot\u00f3n \u201c<strong><em>Crear<\/em><\/strong>\u201d para continuar:<\/p>\n<p><a href=\"https:\/\/diocesanos.es\/blogs\/equipotic\/2017\/07\/11\/diseno-e-impresion-3d-con-minetest\/attachment\/06\/\" rel=\"attachment wp-att-3937\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-medium wp-image-3937\" src=\"https:\/\/diocesanos.es\/blogs\/equipotic\/wp-content\/uploads\/sites\/2\/2017\/07\/06-300x155.png\" alt=\"\" width=\"300\" height=\"155\" srcset=\"https:\/\/diocesanos.es\/blogs\/equipotic\/wp-content\/uploads\/sites\/2\/2017\/07\/06-300x155.png 300w, https:\/\/diocesanos.es\/blogs\/equipotic\/wp-content\/uploads\/sites\/2\/2017\/07\/06-768x398.png 768w, https:\/\/diocesanos.es\/blogs\/equipotic\/wp-content\/uploads\/sites\/2\/2017\/07\/06.png 796w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a>De vuelta a la pantalla de \u201c<strong>Un Jugador<\/strong>\u201d selecciona el mundo reci\u00e9n creado y pulsa sobre \u201c<strong><em>Configurar<\/em><\/strong>\u201d:<\/p>\n<p><a href=\"https:\/\/diocesanos.es\/blogs\/equipotic\/2017\/07\/11\/diseno-e-impresion-3d-con-minetest\/attachment\/07\/\" rel=\"attachment wp-att-3938\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-medium wp-image-3938\" src=\"https:\/\/diocesanos.es\/blogs\/equipotic\/wp-content\/uploads\/sites\/2\/2017\/07\/07-300x175.png\" alt=\"\" width=\"300\" height=\"175\" srcset=\"https:\/\/diocesanos.es\/blogs\/equipotic\/wp-content\/uploads\/sites\/2\/2017\/07\/07-300x175.png 300w, https:\/\/diocesanos.es\/blogs\/equipotic\/wp-content\/uploads\/sites\/2\/2017\/07\/07.png 636w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a>Pulsa sobre el m\u00f3dulo \u201c<strong><em>openscad<\/em><\/strong>\u201d que hemos creado y aseg\u00farate de marcar la casilla \u201c<strong><em>Activado<\/em><\/strong>\u201d para que se utilice en este mundo en particular. Despu\u00e9s pulsa en \u201c<strong><em>Guardar<\/em><\/strong>\u201d.<\/p>\n<p><a href=\"https:\/\/diocesanos.es\/blogs\/equipotic\/2017\/07\/11\/diseno-e-impresion-3d-con-minetest\/attachment\/08\/\" rel=\"attachment wp-att-3939\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-medium wp-image-3939\" src=\"https:\/\/diocesanos.es\/blogs\/equipotic\/wp-content\/uploads\/sites\/2\/2017\/07\/08-300x177.png\" alt=\"\" width=\"300\" height=\"177\" srcset=\"https:\/\/diocesanos.es\/blogs\/equipotic\/wp-content\/uploads\/sites\/2\/2017\/07\/08-300x177.png 300w, https:\/\/diocesanos.es\/blogs\/equipotic\/wp-content\/uploads\/sites\/2\/2017\/07\/08.png 759w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a>De vuelta a la pantalla de \u201c<strong><em>Un Jugador<\/em><\/strong>\u201d ya puedes seleccionar el mundo y pulsar sobre el bot\u00f3n \u201c<strong><em>Jugar<\/em><\/strong>\u201d:<\/p>\n<p>Si todo ha ido bien deber\u00edas ver una pantalla muy similar a esta:<\/p>\n<p><a href=\"https:\/\/diocesanos.es\/blogs\/equipotic\/2017\/07\/11\/diseno-e-impresion-3d-con-minetest\/attachment\/09\/\" rel=\"attachment wp-att-3940\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-medium wp-image-3940\" src=\"https:\/\/diocesanos.es\/blogs\/equipotic\/wp-content\/uploads\/sites\/2\/2017\/07\/09-300x235.png\" alt=\"\" width=\"300\" height=\"235\" srcset=\"https:\/\/diocesanos.es\/blogs\/equipotic\/wp-content\/uploads\/sites\/2\/2017\/07\/09-300x235.png 300w, https:\/\/diocesanos.es\/blogs\/equipotic\/wp-content\/uploads\/sites\/2\/2017\/07\/09-768x602.png 768w, https:\/\/diocesanos.es\/blogs\/equipotic\/wp-content\/uploads\/sites\/2\/2017\/07\/09.png 802w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a>Apunta con el rat\u00f3n y mu\u00e9vete con las teclas:<\/p>\n<p style=\"padding-left: 60px;\"><strong>W<\/strong> &#8211; Adelante<br \/>\n<strong>S<\/strong> &#8211; Atr\u00e1s<br \/>\n<strong>A<\/strong> &#8211; Izquierda<br \/>\n<strong>D<\/strong> &#8211; Derecha<br \/>\n<strong>Espacio <\/strong>&#8211; Saltar<br \/>\n<strong>K<\/strong> &#8211; Volar (si\/no)<br \/>\n<strong>J<\/strong> &#8211; Ir r\u00e1pido (si\/no)<br \/>\n<strong>H<\/strong> &#8211; Atravesar paredes (si\/no)<\/p>\n<p>Para que funcionen las tres \u00faltimas acciones hay que \u201cdar permiso\u201d al jugador. Pulsa la tecla <strong><em>F10<\/em><\/strong> y escribe en la consola:<\/p>\n<pre> \/grant singleplayer fly\n \/grant singleplayer fast\n \/grant singleplayer all<\/pre>\n<p><a href=\"https:\/\/diocesanos.es\/blogs\/equipotic\/2017\/07\/11\/diseno-e-impresion-3d-con-minetest\/10-3\/\" rel=\"attachment wp-att-3941\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-medium wp-image-3941\" src=\"https:\/\/diocesanos.es\/blogs\/equipotic\/wp-content\/uploads\/sites\/2\/2017\/07\/10-300x235.png\" alt=\"\" width=\"300\" height=\"235\" srcset=\"https:\/\/diocesanos.es\/blogs\/equipotic\/wp-content\/uploads\/sites\/2\/2017\/07\/10-300x235.png 300w, https:\/\/diocesanos.es\/blogs\/equipotic\/wp-content\/uploads\/sites\/2\/2017\/07\/10-768x603.png 768w, https:\/\/diocesanos.es\/blogs\/equipotic\/wp-content\/uploads\/sites\/2\/2017\/07\/10.png 808w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a>Para salir de la consola pulsa de nuevo <strong><em>F10<\/em><\/strong>.<\/p>\n<p>Los controles de vuelo son<\/p>\n<p style=\"padding-left: 30px;\"><strong>Espacio<\/strong> &#8211; para ascender<br \/>\n<strong>Shif(may\u00fasculas)<\/strong> &#8211; para descender<\/p>\n<blockquote><p><strong>NOTA<\/strong>: si juegas en un servidor ser\u00e1 el administrador el que tenga que darte los permisos sustituyendo \u201csingleplayer\u201d por tu nombre de jugador.<\/p><\/blockquote>\n<h2>Configuraci\u00f3n de los bloques (materiales) a utilizar<\/h2>\n<p>Aunque en el script del m\u00f3dulo se ha procurado incluir la mayor\u00eda de los materiales \u00abimprimibles\u00bb (el agua, fuego, lava, el cristal, \u00e1rboles, flores y dem\u00e1s elementos decorativos no se contemplan como tal) vamos a procurar utilizar s\u00f3lo los materiales de tipo \u201cbloque\u201d. Te recomiendo empezar con los siguientes tipos:<\/p>\n<ul>\n<li><strong>dirt<\/strong> &#8211; Para la tierra<\/li>\n<li><strong>dirt_with_grass<\/strong> &#8211; Para la superficie sobre la que construir<\/li>\n<li><strong>stone<\/strong> &#8211; Para la construcci\u00f3n<\/li>\n<\/ul>\n<p>Abre el inventario con la letra \u201ci\u201d, busca estos tipos de bloque (p\u00e1ginas 2 y 5) y col\u00f3calos en la rejilla central. Pulsa la \u201ci\u201d de nuevo para salir.<\/p>\n<p><a href=\"https:\/\/diocesanos.es\/blogs\/equipotic\/2017\/07\/11\/diseno-e-impresion-3d-con-minetest\/attachment\/11\/\" rel=\"attachment wp-att-3942\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-medium wp-image-3942\" src=\"https:\/\/diocesanos.es\/blogs\/equipotic\/wp-content\/uploads\/sites\/2\/2017\/07\/11-300x235.png\" alt=\"\" width=\"300\" height=\"235\" srcset=\"https:\/\/diocesanos.es\/blogs\/equipotic\/wp-content\/uploads\/sites\/2\/2017\/07\/11-300x235.png 300w, https:\/\/diocesanos.es\/blogs\/equipotic\/wp-content\/uploads\/sites\/2\/2017\/07\/11-768x602.png 768w, https:\/\/diocesanos.es\/blogs\/equipotic\/wp-content\/uploads\/sites\/2\/2017\/07\/11.png 802w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><\/p>\n<blockquote><p><strong>NOTA<\/strong>: si dejas el cursor encima de un bloque te mostrar\u00e1 el nombre de \u00e9ste.<\/p><\/blockquote>\n<h2>Creaci\u00f3n del modelo<\/h2>\n<p>Selecciona el material a utilizar con las teclas 1, 2 y 3. Pulsa con el bot\u00f3n derecho del rat\u00f3n para depositar un bloque, y con el izquierdo para destruirlo.<\/p>\n<p>Para indicar d\u00f3nde aparecer\u00e1 el bloque o cual va a ser destruido utiliza la cruz central de la pantalla. Esta \u201cmarcar\u00e1\u201d las caras del bloque se\u00f1alado. Aseg\u00farate de tener bien apuntada la cara donde se \u201cpegar\u00e1\u201d en bloque que vayas a crear.<\/p>\n<p><a href=\"https:\/\/diocesanos.es\/blogs\/equipotic\/2017\/07\/11\/diseno-e-impresion-3d-con-minetest\/attachment\/12\/\" rel=\"attachment wp-att-3943\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-medium wp-image-3943\" src=\"https:\/\/diocesanos.es\/blogs\/equipotic\/wp-content\/uploads\/sites\/2\/2017\/07\/12-300x235.png\" alt=\"\" width=\"300\" height=\"235\" srcset=\"https:\/\/diocesanos.es\/blogs\/equipotic\/wp-content\/uploads\/sites\/2\/2017\/07\/12-300x235.png 300w, https:\/\/diocesanos.es\/blogs\/equipotic\/wp-content\/uploads\/sites\/2\/2017\/07\/12-768x602.png 768w, https:\/\/diocesanos.es\/blogs\/equipotic\/wp-content\/uploads\/sites\/2\/2017\/07\/12.png 802w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><\/p>\n<h4>TRUCOS y NOTAS:<\/h4>\n<ul>\n<li>Puedes empezar dibujando en el suelo una base sobre la que levantar el resto de la estructura y que <strong>delimite su extensi\u00f3n<\/strong> (m\u00e1ximo 150 bloques de lado).<\/li>\n<li>Si dejas el bot\u00f3n del rat\u00f3n pulsado <strong>se repite la acci\u00f3n<\/strong> (poner\/destruir) hasta que lo sueltas, lo que te permite dise\u00f1ar m\u00e1s r\u00e1pidamente.<\/li>\n<li><strong>Cierra bien las esquinas y los \u00abtejados\u00bb<\/strong> (evita bloques que se \u00abtoquen\u00bb s\u00f3lo por los v\u00e9rtices -&gt; deben estar \u00abpegados\u00bb por las caras).<\/li>\n<li>Existen complementos (m\u00f3dulos) gratuitos que puedes a\u00f1adir a tu minetest para mejorar las tareas de construcci\u00f3n (copiar\/cortar\/pegar\/repetir grupos de bloqes\u2026), como \u201c<strong>worldEdit<\/strong>\u201d:<br \/>\n<a href=\"https:\/\/forum.minetest.net\/viewtopic.php?id=572\">https:\/\/forum.minetest.net\/viewtopic.php?id=572<\/a><\/li>\n<li>Cuidado con los puentes, puertas, ventanas, balcones\u2026 <strong>Las impresoras 3D no pueden imprimir en el aire<\/strong>. Cualquier hueco de m\u00e1s de tres bloques o voladizo de m\u00e1s de 1 bloque podr\u00eda imprimirse mal y arruinar el modelo.<\/li>\n<li>C\u00e9ntrate en el <strong>exterior<\/strong> del modelo. No pierdas tiempo dise\u00f1ando interiores que no se van a ver.<\/li>\n<li>Recuerda que por ahora <strong>imprimimos en 1 s\u00f3lo color<\/strong>, por lo que las decoraciones con bloques de distintos tonos y\/o colores no se mostrar\u00e1n como tal en la pieza impresa!<\/li>\n<\/ul>\n<h2>Uso del m\u00f3dulo y exportaci\u00f3n<\/h2>\n<h4>Coordenadas<\/h4>\n<p>El mundo de Minetest es un gran cubo. Y debido a esto, una posici\u00f3n en el mundo puede serww f\u00e1cilmente expresada con coordenadas cartesianas. Es decir, para cada posici\u00f3n en el mundo, hay 3 valores: X, Y y Z.<\/p>\n<p>Las coordenadas se expresan as\u00ed: (5, 45, -12). Esto se refiere a la posici\u00f3n donde X = 5, Y = 45 y Z = -12. Las 3 letras se llaman \u00abejes\u00bb: <strong>Y es para la altura. X y Z son para la posici\u00f3n horizontal<\/strong>. El tama\u00f1o de un bloque es<strong> 1 unidad<\/strong>.<\/p>\n<p>Para exportar nuestro modelo tenemos que averiguar desde que esquina a que esquina opuesta est\u00e1n localizados nuestros bloques. Para \u201crecortar\u201d tambi\u00e9n el suelo recuerda reducir 1 o 2 los valores de la Y inferior.<\/p>\n<p>Sit\u00faate cerca de una esquina de tu construcci\u00f3n:<\/p>\n<p><a href=\"https:\/\/diocesanos.es\/blogs\/equipotic\/2017\/07\/11\/diseno-e-impresion-3d-con-minetest\/attachment\/13\/\" rel=\"attachment wp-att-3945\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-medium wp-image-3945\" src=\"https:\/\/diocesanos.es\/blogs\/equipotic\/wp-content\/uploads\/sites\/2\/2017\/07\/13-300x235.png\" alt=\"\" width=\"300\" height=\"235\" srcset=\"https:\/\/diocesanos.es\/blogs\/equipotic\/wp-content\/uploads\/sites\/2\/2017\/07\/13-300x235.png 300w, https:\/\/diocesanos.es\/blogs\/equipotic\/wp-content\/uploads\/sites\/2\/2017\/07\/13-768x602.png 768w, https:\/\/diocesanos.es\/blogs\/equipotic\/wp-content\/uploads\/sites\/2\/2017\/07\/13.png 802w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><\/p>\n<ol>\n<li>Pulsa la tecla <strong><em>F7<\/em><\/strong> hasta que se muestre a tu personaje. Aseg\u00farate de estar a la altura del suelo.<\/li>\n<li>Pulsa la tecla <strong><em>F5<\/em><\/strong> para mostrar los mensajes del depurador: Al principio de la segunda l\u00ednea de datos que aparece en la parte superior de la pantalla podr\u00e1s ver las coordenadas de tu personaje en el mundo.<\/li>\n<li>En mi caso marca <strong>(-0.8,\u00a0 3.5,\u00a0 -7.2)<\/strong>. Este ser\u00e1 mi punto (A). Como quiero coger 1 fila de base: Y:\u00a0 <strong>3.5 &#8211; 1 = 2.5<\/strong>. Ap\u00fantalo para m\u00e1s adelante.<\/li>\n<\/ol>\n<p>Sit\u00faate ahora en la esquina opuesta del rect\u00e1ngulo imaginario que abarque tu construcci\u00f3n. Apunta de nuevo tus coordenadas.<\/p>\n<p><a href=\"https:\/\/diocesanos.es\/blogs\/equipotic\/2017\/07\/11\/diseno-e-impresion-3d-con-minetest\/attachment\/14\/\" rel=\"attachment wp-att-3946\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-medium wp-image-3946\" src=\"https:\/\/diocesanos.es\/blogs\/equipotic\/wp-content\/uploads\/sites\/2\/2017\/07\/14-300x235.png\" alt=\"\" width=\"300\" height=\"235\" srcset=\"https:\/\/diocesanos.es\/blogs\/equipotic\/wp-content\/uploads\/sites\/2\/2017\/07\/14-300x235.png 300w, https:\/\/diocesanos.es\/blogs\/equipotic\/wp-content\/uploads\/sites\/2\/2017\/07\/14-768x602.png 768w, https:\/\/diocesanos.es\/blogs\/equipotic\/wp-content\/uploads\/sites\/2\/2017\/07\/14.png 802w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><\/p>\n<p>En mi caso el punto (B) ser\u00eda <strong>(-14.2,\u00a0 3.5,\u00a0 7.2)<\/strong>. Como he construido 6 l\u00edneas de bloques por encima del suelo a\u00f1adir\u00e9 por lo menos 6 al valor de la Y:\u00a0 <strong>3.5 + 6 = 9.5<\/strong>. (puedes ser generoso\/a, el \u00abaire\u00bb por encima no se imprime).<\/p>\n<p>Me quedan<strong>:<\/strong><\/p>\n<p style=\"padding-left: 90px;\"><strong>A =\u00a0\u00a0 -0.8,\u00a0 2.5,\u00a0 -7.2<br \/>\nB = -14.2,\u00a0 9.5, \u00a0 7.2<\/strong><\/p>\n<p>Con estos datos ejecuta el comando que hemos definido en nuestro mod: pulsa la tecla <strong><em>F10<\/em><\/strong> y escribe:<\/p>\n<pre>\/openscad -0.8  2.5  -7.2  -14.2  9.5  7.2<\/pre>\n<p><a href=\"https:\/\/diocesanos.es\/blogs\/equipotic\/2017\/07\/11\/diseno-e-impresion-3d-con-minetest\/attachment\/15\/\" rel=\"attachment wp-att-3947\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-medium wp-image-3947\" src=\"https:\/\/diocesanos.es\/blogs\/equipotic\/wp-content\/uploads\/sites\/2\/2017\/07\/15-300x62.png\" alt=\"\" width=\"300\" height=\"62\" srcset=\"https:\/\/diocesanos.es\/blogs\/equipotic\/wp-content\/uploads\/sites\/2\/2017\/07\/15-300x62.png 300w, https:\/\/diocesanos.es\/blogs\/equipotic\/wp-content\/uploads\/sites\/2\/2017\/07\/15-768x158.png 768w, https:\/\/diocesanos.es\/blogs\/equipotic\/wp-content\/uploads\/sites\/2\/2017\/07\/15.png 802w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a>El fichero generado se habr\u00e1 guardado <strong>en la carpeta \u201cdel mundo\u201d actual<\/strong>. Opcionalmente puedes pasarle como \u00faltimo par\u00e1metro el nombre del fichero a exportar (sin extensi\u00f3n). En caso contrario tomar\u00e1 el nombre del usuario que invoca el script.<\/p>\n<p>En mi caso y como se aprecia en la figura en la carpeta \u201c<strong><em>.minetest\/worlds<\/em><\/strong>\u201d de mi usuario:<\/p>\n<pre>.minetest\/worlds\/\n\u00a0\u00a0\u00a0\u00a0 \u2514\u2500\u2500 Castillo de David\/\n\u00a0\u00a0\u00a0\u00a0\u00a0    \u251c\u2500\u2500 auth.txt\n\u00a0\u00a0\u00a0\u00a0\u00a0    \u251c\u2500\u2500 env_meta.txt\n         \u251c\u2500\u2500 force_loaded.txt\n         \u251c\u2500\u2500 ipban.txt\n\u00a0        \u251c\u2500\u2500 map_meta.txt\n         \u251c\u2500\u2500 map.sqlite\n         \u251c\u2500\u2500 <strong>singleplayer.scad<\/strong>\n         \u251c\u2500\u2500 players\/\n         \u2502   \u2514\u2500\u2500 singleplayer\n         \u2514\u2500\u2500 world.mt\n\n<\/pre>\n<blockquote>\n<h4>NOTAS:<\/h4>\n<\/blockquote>\n<ul>\n<li>\n<blockquote><p>Los decimales en las coordenadas se deben a la posici\u00f3n parcial del usuario sobre un bloque. Puedes redondear los valores al entero mayor que les corresponda.<\/p><\/blockquote>\n<\/li>\n<li>\n<blockquote><p>Si sales y vuelves a entrar al mundo aseg\u00farate de recorrer de nuevo todo el espacio antes de exportar para que minetest lo regenere internamente o el modelo puede aparecer incompleto.<\/p><\/blockquote>\n<\/li>\n<\/ul>\n<h2>Generar e imprimir el modelo 3D<\/h2>\n<h4>Generar el modelo STL 3D final<\/h4>\n<p>Invoca el programa <strong><em>openscad<\/em><\/strong> pas\u00e1ndole como par\u00e1metro la ruta del fichero generado, o bien utiliza su men\u00fa \u201c<strong><em>Archivo<\/em><\/strong>\u201d \u2192 \u201c<strong><em>Abrir<\/em><\/strong>\u201d.<\/p>\n<p>Pulsa a continuaci\u00f3n la tecla <strong><em>F6<\/em><\/strong> (o men\u00fa \u201c<strong><em>Dise\u00f1ar<\/em><\/strong>\u201d \u2192 \u201c<strong><em>Render<\/em><\/strong>\u201d) para obtener un modelo s\u00f3lido. Cuando termine el proceso utiliza el men\u00fa \u201c<strong><em>Archivo<\/em><\/strong>\u201d \u2192 \u201c<strong><em>Expoportar<\/em><\/strong>\u201d \u2192 \u201c<em><strong>Exportar como STL<\/strong><\/em>\u201d<\/p>\n<p><a href=\"https:\/\/diocesanos.es\/blogs\/equipotic\/2017\/07\/11\/diseno-e-impresion-3d-con-minetest\/attachment\/16\/\" rel=\"attachment wp-att-3952\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-medium wp-image-3952\" src=\"https:\/\/diocesanos.es\/blogs\/equipotic\/wp-content\/uploads\/sites\/2\/2017\/07\/16-300x209.png\" alt=\"\" width=\"300\" height=\"209\" srcset=\"https:\/\/diocesanos.es\/blogs\/equipotic\/wp-content\/uploads\/sites\/2\/2017\/07\/16-300x209.png 300w, https:\/\/diocesanos.es\/blogs\/equipotic\/wp-content\/uploads\/sites\/2\/2017\/07\/16-768x535.png 768w, https:\/\/diocesanos.es\/blogs\/equipotic\/wp-content\/uploads\/sites\/2\/2017\/07\/16.png 953w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><\/p>\n<h4>Generar el g-code para la impresora<\/h4>\n<p>Abre ahora el fichero <strong>STL<\/strong> anterior con el programa \u201c<a href=\"http:\/\/slic3r.org\/\"><strong>Slic3r<\/strong><\/a>\u201d o \u201c<a href=\"https:\/\/ultimaker.com\/en\/products\/cura-software\"><strong>Cura<\/strong><\/a>\u201d. Carga la configuraci\u00f3n para tu modelo de impresora y filamento y genera el fichero <strong>.gcode<\/strong> a enviar a la impresora.<\/p>\n<p><a href=\"https:\/\/diocesanos.es\/blogs\/equipotic\/2017\/07\/11\/diseno-e-impresion-3d-con-minetest\/attachment\/17\/\" rel=\"attachment wp-att-3953\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-medium wp-image-3953\" src=\"https:\/\/diocesanos.es\/blogs\/equipotic\/wp-content\/uploads\/sites\/2\/2017\/07\/17-300x184.png\" alt=\"\" width=\"300\" height=\"184\" srcset=\"https:\/\/diocesanos.es\/blogs\/equipotic\/wp-content\/uploads\/sites\/2\/2017\/07\/17-300x184.png 300w, https:\/\/diocesanos.es\/blogs\/equipotic\/wp-content\/uploads\/sites\/2\/2017\/07\/17-768x471.png 768w, https:\/\/diocesanos.es\/blogs\/equipotic\/wp-content\/uploads\/sites\/2\/2017\/07\/17-1024x628.png 1024w, https:\/\/diocesanos.es\/blogs\/equipotic\/wp-content\/uploads\/sites\/2\/2017\/07\/17.png 1083w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><\/p>\n<h4>Resultado<\/h4>\n<p>Con el modelo del ejemplo y tras 25 minutos de impresi\u00f3n este fue el resultado final (y no, no imprimimos monedas, es para ver la escala):<\/p>\n<p><a href=\"https:\/\/diocesanos.es\/blogs\/equipotic\/2017\/07\/11\/diseno-e-impresion-3d-con-minetest\/attachment\/18\/\" rel=\"attachment wp-att-3950\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-medium wp-image-3950\" src=\"https:\/\/diocesanos.es\/blogs\/equipotic\/wp-content\/uploads\/sites\/2\/2017\/07\/18-300x225.jpg\" alt=\"\" width=\"300\" height=\"225\" srcset=\"https:\/\/diocesanos.es\/blogs\/equipotic\/wp-content\/uploads\/sites\/2\/2017\/07\/18-300x225.jpg 300w, https:\/\/diocesanos.es\/blogs\/equipotic\/wp-content\/uploads\/sites\/2\/2017\/07\/18-768x576.jpg 768w, https:\/\/diocesanos.es\/blogs\/equipotic\/wp-content\/uploads\/sites\/2\/2017\/07\/18-1024x768.jpg 1024w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><\/p>\n<p>.. y estos fueron los de los chicos&#8230;.<\/p>\n<p><a href=\"https:\/\/diocesanos.es\/blogs\/equipotic\/2017\/07\/11\/diseno-e-impresion-3d-con-minetest\/img_20170711_203528\/\" rel=\"attachment wp-att-3955\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-medium wp-image-3955\" src=\"https:\/\/diocesanos.es\/blogs\/equipotic\/wp-content\/uploads\/sites\/2\/2017\/07\/IMG_20170711_203528-300x225.jpg\" alt=\"\" width=\"300\" height=\"225\" srcset=\"https:\/\/diocesanos.es\/blogs\/equipotic\/wp-content\/uploads\/sites\/2\/2017\/07\/IMG_20170711_203528-300x225.jpg 300w, https:\/\/diocesanos.es\/blogs\/equipotic\/wp-content\/uploads\/sites\/2\/2017\/07\/IMG_20170711_203528-768x576.jpg 768w, https:\/\/diocesanos.es\/blogs\/equipotic\/wp-content\/uploads\/sites\/2\/2017\/07\/IMG_20170711_203528-1024x768.jpg 1024w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><\/p>\n<h2>Sugerencias para pr\u00e1cticas en casa o en clase:<\/h2>\n<ul>\n<li>Modelado e impresi\u00f3n de las iglesias y\/o monumentos m\u00e1s representativos de tu ciudad<\/li>\n<li>Dise\u00f1o e impresi\u00f3n por piezas de una villa romana, \u00a1o de Roma!<\/li>\n<li>Lo mismo para la Acr\u00f3polis de Atenas<\/li>\n<li>Las \u201carenas\u201d del juego Clash Royale<\/li>\n<li>Llaveros con forma de \u201cchapa\u201d y con tu nombre<\/li>\n<li>Un plano en relieve para invidentes de tu colegio, chapas con los nombres de las clases, laboratorios, biblioteca, secretar\u00eda\u2026.<\/li>\n<li>Laberintos por el que luego pueda moverse un peque\u00f1o rodamiento (bola, canica) para jugar<\/li>\n<li>Las piezas del juego del ajedrez<\/li>\n<li>Soportes para tabletas o m\u00f3viles<\/li>\n<li>&#8230;.<\/li>\n<\/ul>\n<p>Trabaja si puedes por equipos sobre un mismo mundo (servidor). Es mucho m\u00e1s divertido!<\/p>\n<blockquote><p><strong>Notas sobre el m\u00f3dulo que exporta a openSCAD:<\/strong><br \/>\nSe trata de una primera reversi\u00f3n que habr\u00e1 que seguir mejorando para que incluya otro tipo de bloques como vegetaci\u00f3n, mobiliario, objetos\u2026.<\/p>\n<p>Por ahora se ha mejorado la entrada de par\u00e1metros, a\u00f1adidos algunos controles para evitar errores, limitada la exportaci\u00f3n a un cubo de 150 bloques de lado, reconocido bloques especiales como antorchas, escalones, vallas, escaleras, puertas, trampillas.. en sus diferentes posiciones. Por \u00faltimo se ha establecido un permiso especial llamado \u00abexportar\u00bb para poder utilizar el m\u00f3dulo por parte de un jugador.<\/p>\n<p>Cuanto m\u00e1s grande y complejo sea el mapa a exportar m\u00e1s le costar\u00e1 luego a openSCAD hacer los c\u00e1lculos. <strong>\u00a1Paciencia!<\/strong><\/p><\/blockquote>\n","protected":false},"excerpt":{"rendered":"<p>No dejar\u00e1n nunca de sorprenderme. Y eso que al principio me cost\u00f3 convencerles de que trabajar en equipo era fundamental para conseguir el objetivo final: construir un castillo de manera colaborativa en un mundo virtual para luego imprimirlo en 3D! Juntar a una veintena de muchachos de Primaria en un mismo escenario con acceso ilimitado &hellip; <a href=\"https:\/\/diocesanos.es\/blogs\/equipotic\/2017\/07\/11\/diseno-e-impresion-3d-con-minetest\/\" class=\"more-link\">Seguir leyendo <span class=\"screen-reader-text\">Dise\u00f1o e impresi\u00f3n 3D con Minetest<\/span> <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[76],"tags":[230,81],"class_list":["post-3930","post","type-post","status-publish","format-standard","hentry","category-graficos","tag-impresion-3d","tag-videojuegos"],"_links":{"self":[{"href":"https:\/\/diocesanos.es\/blogs\/equipotic\/wp-json\/wp\/v2\/posts\/3930","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/diocesanos.es\/blogs\/equipotic\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/diocesanos.es\/blogs\/equipotic\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/diocesanos.es\/blogs\/equipotic\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/diocesanos.es\/blogs\/equipotic\/wp-json\/wp\/v2\/comments?post=3930"}],"version-history":[{"count":1,"href":"https:\/\/diocesanos.es\/blogs\/equipotic\/wp-json\/wp\/v2\/posts\/3930\/revisions"}],"predecessor-version":[{"id":4147,"href":"https:\/\/diocesanos.es\/blogs\/equipotic\/wp-json\/wp\/v2\/posts\/3930\/revisions\/4147"}],"wp:attachment":[{"href":"https:\/\/diocesanos.es\/blogs\/equipotic\/wp-json\/wp\/v2\/media?parent=3930"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/diocesanos.es\/blogs\/equipotic\/wp-json\/wp\/v2\/categories?post=3930"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/diocesanos.es\/blogs\/equipotic\/wp-json\/wp\/v2\/tags?post=3930"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}