Script para editar un scriptTengo un script que toma una salida de gráfico de contorno estándar y reorganiza los gráficos en columnas.
Va desde

a

La ubicación de los cuadros de texto está provocando que el script falle.
¿Existe otra forma de obtener el resultado? Si no, ¿puedo ajustar el script actual de alguna manera para ordenarlo? Me preguntaba si el script principal podría ejecutar una búsqueda/reemplazo en el script secundario para realizar algunos ajustes.
clear Globals();
Delete Symbols();
window = Get Window List();
wName = window << Get Window Title;
nWindows = N Items( window );
For( i = nWindows, i > 0, i--,
If( Contains( wName[i], "Contour Plot" ),
obj = window[i]["Contour Plot?"] << Get Scriptable Object;
Show(obj);
obj << Save Script for All Objects;
obj << Close Window;
Break();
);
);
spt = Window( "Script Window" );
spt << Bring Window To Front;
spt2 = spt[Script Box(1)];
spt2 << Get Line Text( 3 );
spt2 << Set Line Text (3, "Line Up Box( N Col( 3 ), Spacing( 2 ),");
spt2 << run();
spt2 << Close Window;
Automatización y scriptingRe: Script para editar un scriptSi puedes usar JMP18, puedes simplemente modificar el diseño desde el triángulo rojo de nivel más alto.

Ya no tengo acceso a JMP17 y no estoy seguro de si puedo obtener un resultado similar en JMP18 para probar diferentes opciones, pero podría tener en cuenta esos cuadros de texto (aumentar ncol a 6 y ocultarlos / mantener ncol como 3 y eliminarlos). También podría determinar qué columna se está utilizando como columna por y reconstruir la plataforma utilizando esa información SIN utilizar Por (ejecútelo varias veces y formatee como desee).
Re: Script para editar un scriptcurrent report()["Conto?"]
gracias, muy útil:)
Re: Script para editar un scriptPuede recopilar los scripts de los OutlineBoxes , encapsular cada (información Where + trama) dentro de un V List Box y organizar los V List Boxes a través del Lineup Box :
// ask every Outline Box for a scriptable object
obs = (current report() << xpath("//OutlineBox")) << get scriptable object;
// ask the scriptable objects for a script
scripts = obs << get Script;
// prepare a template LineUp Box
myExpr = Expr( Line Up Box( N Col( 3 ), Spacing( 2 )));
// wrap the scripts with V List Box and put them into the template
For each({script}, scripts,
Eval (Substitute(Expr(Insert Into(myExpr, Expr(V list Box (_content_)))), Expr(_content_), Name Expr(script)))
);
// use the template in a new window
New Window("overview", myExpr);
Re: Script para editar un scriptMás cerca del enfoque original con el ... Script para todos los objetos:
// there is no
// myScript = (current report()[OutlineBox(1)] << get scriptable object) << get Script for All Objects;
// : (
(current report()[OutlineBox(1)] << get scriptable object) << save Script for All Objects;
sw = Window( "Script Window" );
myScript = Parse(sw[Script Box(1)] << get text);
//--------------------------
<BR />// prepare a Template for the Line Up Box
myExpr = Expr( Line Up Box( N Col( 3 ), Spacing( 2 )));<BR />
// take the V list Box - it contains the Countour Plot commands
myScript = (Extract Expr(myScript, V List Box (Wild List())));
// cycle through Contour Plot commands, "wrap" with V List Box and insert into template
For each({command}, Name Expr(myScript), // an I-DONT-CARE of VLBs
wrapped = Insert (Expr(V list Box ()), Name Expr(command));
Insert Into(myExpr, Name Expr(wrapped))
);
// generate the report
New Window("overview", myExpr);
¡¡Muchas muchas gracias al programador de la función For Each !!
maravilloso : )
Funciona con cualquier expresión , no solo con listas, matrices asociativas y matrices 

Re: Script para editar un scriptLo he hecho de una forma un poco diferente. He generado los gráficos de contorno a partir de la tabla de datos de capacidad de semiconductores y, a continuación, he ejecutado el siguiente script.
Clear Globals();
Delete Symbols();
window = Get Window List();
wName = window << Get Window Title;
nWindows = N Items( window );
For( i = nWindows, i > 0, i--,
If( Contains( wName[i], "Contour Plot" ),
obj = window[i]["Contour Plot?"] << Get Scriptable Object;
Break();
)
);
script = Char( obj << get bygroup script );
obj << Close Window;
Eval( Parse( "New Window(\!"Contours\!",lineupbox(ncol(3), spacing(2)," || script || "));" ) );
Para obtener este resultado

Re: Script para editar un scriptAh, cierto, el script get bygroup() ya estaba ahí. De hecho, es mucho más fácil de esta manera 
(current report()["Contour?"] << get scriptable object) << get by group script
Es bastante robusto
Funciona con JMP17 (hablando con la primera trama)

... y JMP18 (hablando con la Plataforma de Grupo):

Si utiliza el valor de retorno del comando de informe, debe tener cuidado de obtener el script solo una vez:
cp =Contour Plot( ... ,By() ); // returns a list
//cp << get script; // 1 script per plot (N times, message sent to a list)<BR />// cp << get bygroup script; // returns the by group Script N times (message sent to a list)
cp[1] << get bygroup script; // 1x :)</img>
Re: Script para editar un script
@hogi escribió:
... Es bastante robusto. Funciona con JMP17 (hablando con la primera trama)... y JMP18 (hablando con la Plataforma de Grupo)
Oh, esta declaración solo se refiere a la forma de obtener el script groupby:
(current report()["Contour?"] << get scriptable object) << get by group script
no por la cosa completa...
En JMP 18 y versiones posteriores, el script devuelve un GroupPlatform y ya no es posible controlar el diseño del Lineup Box .
Luego puedes omitir esta parte externa y usar directamente GroupPlatform para controlar el diseño (opciones de triángulo rojo mencionadas por @jthi ).
Estructura de árbol a través del cuadro de alineación (agrupar por secuencia de comandos)

[Cuadro de esquema seleccionado = 1.er gráfico]
Estructura de árbol a través de los enfoques anteriores:
