Skript zum Bearbeiten eines SkriptsIch habe ein Skript, das eine Standardkonturdiagrammausgabe übernimmt und die Diagramme in Spalten neu anordnet.
Geht von

Zu

Die Platzierung der Textfelder führt dazu, dass das Skript nicht funktioniert.
Gibt es eine andere Möglichkeit, das Ergebnis zu erhalten? Wenn nicht, kann ich das vorliegende Skript irgendwie anpassen, um es zu sortieren? Ich habe mich gefragt, ob das übergeordnete Skript eine Suchen/Ersetzen-Funktion für das untergeordnete Skript ausführen könnte, um einige Anpassungen vorzunehmen?
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;
Automatisierung und SkriptingBetreff: Skript zum Bearbeiten eines SkriptsWenn Sie JMP18 verwenden können, können Sie das Layout einfach vom roten Dreieck der höchsten Ebene aus ändern

Ich habe keinen Zugriff mehr auf JMP17 und bin mir nicht sicher, ob ich in JMP18 überhaupt ein ähnliches Ergebnis erzielen kann, um verschiedene Optionen auszuprobieren, aber Sie könnten diese Textfelder berücksichtigen (erhöhen Sie ncol auf 6 und verbergen Sie sie / belassen Sie ncol bei 3 und entfernen Sie sie). Sie könnten auch feststellen, welche Spalte als By-Spalte verwendet wird, und die Plattform mit diesen Informationen neu erstellen, OHNE By zu verwenden (führen Sie es mehrmals aus und formatieren Sie es nach Wunsch).
Betreff: Skript zum Bearbeiten eines Skriptscurrent report()["Conto?"]
danke, sehr nützlich:)
Betreff: Skript zum Bearbeiten eines SkriptsSie könnten die Skripte der OutlineBoxes sammeln, alle ( Where- Informationen + Plot) in einer V-List-Box zusammenfassen und die V-List-Boxen über die Lineup-Box anordnen:
// 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);
Betreff: Skript zum Bearbeiten eines SkriptsNäher am ursprünglichen Ansatz mit dem ... Skript für alle Objekte:
// 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);
Vielen, vielen Dank an den Programmierer der For Each -Funktion!!
wunderbar : )
Es funktioniert mit jedem Ausdruck , nicht nur mit Listen, assoziativen Arrays und Matrizen : )

Betreff: Skript zum Bearbeiten eines SkriptsIch habe das ein wenig anders gemacht. Ich habe die Konturdiagramme aus der Datentabelle zur Halbleiterfähigkeit erstellt und dann das folgende Skript ausgeführt
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 || "));" ) );
um diese Ausgabe zu erhalten

Betreff: Skript zum Bearbeiten eines SkriptsAh, richtig, das get bygroup script() war schon da. Tatsächlich ist es so viel einfacher : )
(current report()["Contour?"] << get scriptable object) << get by group script
Ist recht robust.
Es funktioniert mit JMP17 (spricht mit dem ersten Plot)

... und JMP18 (im Gespräch mit der Group Platform):

Wenn man den Rückgabewert des Report-Kommandos verwendet, muss man darauf achten, dass das Skript nur 1x ausgegeben wird:
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>
Betreff: Skript zum Bearbeiten eines Skripts
@hogi schrieb:
... Ist ziemlich robust. Es funktioniert mit JMP17 (spricht mit dem ersten Plot) ... und JMP18 (spricht mit der Gruppenplattform)
Oh, diese Anweisung bezieht sich nur auf die Art und Weise, wie man das Groupby-Skript erhält:
(current report()["Contour?"] << get scriptable object) << get by group script
nicht für das ganze...
In JMP 18 und höher gibt das Skript eine GroupPlatform zurück, und über die Lineup-Box ist eine Steuerung des Layouts nicht mehr möglich.
Dann können Sie diesen äußeren Teil überspringen und direkt die GroupPlatform verwenden, um das Layout zu steuern (rote Dreieckoptionen, erwähnt von @jthi ).
Baumstruktur über Lineup Box (Gruppieren nach Skript)

[ausgewählte Outlinebox = 1. Plot]
Baumstruktur über die vorherigen Ansätze:
