{"id":2408,"date":"2014-10-28T20:10:59","date_gmt":"2014-10-28T19:10:59","guid":{"rendered":"http:\/\/descartesjs.org\/documentacion\/?p=2408"},"modified":"2021-08-06T16:04:20","modified_gmt":"2021-08-06T15:04:20","slug":"macros-en-el-interprete-descartesjs","status":"publish","type":"post","link":"https:\/\/reddescartes.org\/documentacion\/macros-en-el-interprete-descartesjs\/","title":{"rendered":"Macros en el int\u00e9rprete DescartesJS"},"content":{"rendered":"<div>\n<p>El int\u00e9rprete de DescartesJS reconoce y ejecuta las macros publicadas en un servidor, accediendo en l\u00ednea; sin embargo, cuando ejecutamos una escena en nuestro equipo (en local), el int\u00e9rprete no reconoce las macros. Esto es una limitaci\u00f3n propia de JavaScript en relaci\u00f3n a la lectura de ficheros en local.<\/p>\n<p>Por ejemplo las dos escenas siguientes ha de verlas adecuadamente desde nuestro blog. Son escenas que utilizan una macro de usuario denominada sombras.txt cuyo objetivo es dibujar un par de sombras en las esquinas de la escena, y hay un control que cambia la trasparencia de esa sombra. Sin embargo si descarga esas escenas y las ejecuta en local en la primera no observar\u00e1 las sombras y en la segunda s\u00ed.<\/p>\n<table class=\" aligncenter\" border=\"0\">\n<tbody>\n<tr>\n<td>\n<div style=\"text-align: left;\"><iframe src=\"https:\/\/descartesjs.org\/repositorio\/documentacion_4D\/Macros_JS\/escena6.html\" width=\"340\" height=\"280\" frameborder=\"0\" scrolling=\"no\"><\/iframe><\/div>\n<\/td>\n<td style=\"text-align: center;\">\n<div style=\"text-align: left;\"><iframe src=\"https:\/\/descartesjs.org\/repositorio\/documentacion_4D\/Macros_JS\/escena7.html\" width=\"340\" height=\"280\" frameborder=\"0\" scrolling=\"no\"><\/iframe><\/div>\n<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: center;\">&nbsp;escena6.html<\/td>\n<td style=\"text-align: center;\">&nbsp;escena7.html<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p style=\"text-align: center;\">Las escenas anteriores puede descargarlas desde <a href=\"https:\/\/descartesjs.org\/repositorio\/documentacion_4D\/Macros_JS.zip\">este enlace<\/a>&nbsp;e identificar el archivo correspondiente con el nombre indicado<\/p>\n<h3><strong>\u00bfC\u00f3mo podemos ejecutar los macros en local?<\/strong><\/h3>\n<\/div>\n<p>Para poder ejecutar una macro en local es necesario que el c\u00f3digo de \u00e9sta est\u00e9 incorporado en el c\u00f3digo html de la p\u00e1gina que contiene la escena que llama a esa macro. Para ello, es necesario incorporar un \u00abscript\u00bb en ese archivo html siguiendo el siguiente esquema:<\/p>\n<hr>\n<p>&lt;script type=\u00bbdescartes\/macro\u00bb id=\u00bb<span style=\"color: #ff0000;\"><em>direccionamiento del macro usado en la escena<\/em><\/span>\u00ab&gt;<\/p>\n<p><span style=\"color: #ff0000;\">Contenido del fichero de la macro, es decir, la macro en s\u00ed<\/span><\/p>\n<p>&lt;\/script&gt;<\/p>\n<hr>\n<p>En el siguiente v\u00eddeo, puedes observar lo que acontece y el procedimiento para subsanarlo:<\/p>\n<div>\n<!-- iframe plugin v.4.5 wordpress.org\/plugins\/iframe\/ -->\n<iframe src=\"https:\/\/www.youtube.com\/embed\/9e135CUEmaA\" frameborder=\"0\" 0=\"allowfullscreen\" width=\"640\" height=\"360\" scrolling=\"yes\" class=\"iframe-class\"><\/iframe>\n<\/div>\n<p>&nbsp;<\/p>\n<div>Para conocer el c\u00f3digo de una macro del sistema puede acceder al servidor de distribuci\u00f3n de Descartes:<\/div>\n<div><a href=\"https:\/\/arquimedes.matem.unam.mx\/Descartes5\/distribucion\/\">https:\/\/arquimedes.matem.unam.mx\/Descartes5\/distribucion\/<\/a><\/div>\n<div>En ese directorio tiene un subdirectorio <em>macros<\/em> en el que puede navegar y tambi\u00e9n el fichero <em>macros.zip<\/em> si desea descargarlo y usarlas en local. En ambos puede observar cuatro carpetas: g2d, g3d, g2d_jar y g3d_jar. Las macros incluidas&nbsp;en las carpetas con sufijo _jar son las que est\u00e1n incluidas en el archivo Descartes.jar del editor de configuraci\u00f3n y aunque algunas coinciden en el nombre con las incluidas en las otras carpetas que no tienen sufijo su contenido no siempre es coincidente. <strong>Es necesario abordar un proceso de comparaci\u00f3n y depuraci\u00f3n<\/strong>.<\/div>\n<p>&nbsp;<\/p>\n<div>Hemos de indicar que en las macros del sistema podemos detectar algunas en las que en una misma l\u00ednea aparecen descritos dos objetos. Por ejemplo:<\/div>\n<p><span style=\"color: #008000;\">id=&#8217;azul&#8217; expresi\u00f3n=&#8217;0&#8242; evaluar=&#8217;una-sola-vez&#8217; constante=&#8217;si&#8217;<\/span> <span style=\"color: #993366;\">tipo=&#8217;segmento&#8217; expresi\u00f3n='(0,0,0)(a,b,c)&#8217; color='(rojo,verde,azul)&#8217; ancho=&#8217;3&#8242;<\/span><\/p>\n<div>Esto no presenta ning\u00fan problema en el int\u00e9rprete Java, pero s\u00ed para DescartesJS, pues \u00e9ste espera una definici\u00f3n por l\u00ednea y tienen prioridad las definiciones que tienen el atributo tipo. Es un detalle a observar si detectamos que alguna macro no nos funciona. Si detecta esta circunstancia, por favor, haga un comentario para proceder a su arreglo. Y t\u00e9ngalo tambi\u00e9n presente en sus macros de usuario.<\/div>\n","protected":false},"excerpt":{"rendered":"<p>El int\u00e9rprete de DescartesJS reconoce y ejecuta las macros publicadas en un servidor, accediendo en l\u00ednea; sin embargo, cuando ejecutamos una escena en nuestro equipo (en local), el int\u00e9rprete no reconoce las macros. Esto es una limitaci\u00f3n propia de JavaScript en relaci\u00f3n a la lectura de ficheros en local. Por ejemplo las dos escenas siguientes ha de verlas adecuadamente desde nuestro blog. Son escenas que utilizan una macro de usuario denominada sombras.txt cuyo objetivo es dibujar un par de sombras en las esquinas de la escena, y hay un control que cambia la trasparencia de esa sombra. Sin embargo si<\/p>\n<a class=\"more-link\" rel=\"nofollow\" href=\"https:\/\/reddescartes.org\/documentacion\/macros-en-el-interprete-descartesjs\/\">[Leer m\u00e1s...]<\/a>","protected":false},"author":9,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[34],"tags":[],"_links":{"self":[{"href":"https:\/\/reddescartes.org\/documentacion\/wp-json\/wp\/v2\/posts\/2408"}],"collection":[{"href":"https:\/\/reddescartes.org\/documentacion\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/reddescartes.org\/documentacion\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/reddescartes.org\/documentacion\/wp-json\/wp\/v2\/users\/9"}],"replies":[{"embeddable":true,"href":"https:\/\/reddescartes.org\/documentacion\/wp-json\/wp\/v2\/comments?post=2408"}],"version-history":[{"count":18,"href":"https:\/\/reddescartes.org\/documentacion\/wp-json\/wp\/v2\/posts\/2408\/revisions"}],"predecessor-version":[{"id":3285,"href":"https:\/\/reddescartes.org\/documentacion\/wp-json\/wp\/v2\/posts\/2408\/revisions\/3285"}],"wp:attachment":[{"href":"https:\/\/reddescartes.org\/documentacion\/wp-json\/wp\/v2\/media?parent=2408"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/reddescartes.org\/documentacion\/wp-json\/wp\/v2\/categories?post=2408"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/reddescartes.org\/documentacion\/wp-json\/wp\/v2\/tags?post=2408"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}