Verwenden von Funktionen in Graph Builder DispatchIch baue ein Tool für einige benutzerdefinierte Diagramme. Ich möchte, dass das Tool von Benutzern, mit denen ich es teile, leicht geändert werden kann. Um die Einstiegshürde zu verringern, möchte ich Unterfunktionen verwenden, die ich innerhalb einer Masterfunktion aufrufe. Jede Unterfunktion würde einen kleineren Teil der gesamten Hauptfunktion darstellen.
Meine Frage: Ist es möglich, die Argumente von „Dispatch“ im Graph Builder als Funktion zu ersetzen? Oder gibt es einen anderen Standardansatz zum Erstellen kleinerer Unterfunktionen, der mir nicht bekannt ist?
Betreff: Verwenden von Funktionen in Graph Builder DispatchDanke, Jim, für die ausführliche Antwort. Ich dachte, ich müsste es als Text übergeben und irgendwie analysieren, aber ich hätte sicher nicht damit gerechnet, dass es so hässlich sein würde! Na ja, ich denke, das ist der Preis, den ich dafür zahle, dass ich eine solche Nischenanforderung habe. Für mich ist das aber perfekt. Solange ich den größten Teil des hässlichen Codes in der Master-Funktion verbergen kann, bin ich zufrieden, denn mein Ziel ist es, dass der Endbenutzer ihn in Ruhe lässt. Im Moment bin ich ein großer Fan der Community, aber ich hoffe, dass ich die Hilfe durch einen Beitrag zurückzahlen kann, wenn ich mehr Erfahrung mit der Skripterstellung in JMP habe.
Betreff: Verwenden von Funktionen in Graph Builder DispatchHier ist ein Code, der das erreicht, was Sie wollen, aber er ist nicht sehr schön.Was Sie wollen, ist die Möglichkeit, Code mit Substitution zu generieren, und das wird in JMP nicht sehr gut gehandhabt.
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA\semiconductor capability.jmp" );
myfunc = Function( {},
return =
"\[Dispatch(
{},
"2",
ScaleBox,
{Min( 92.9916666666667 ), Max( 127 ), Inc( 5 ), Minor Ticks( 1 ),
Add Ref Line( 118.356215277778, "Solid", "Black", "", 1 )}
)]\"
);
Eval(
Substitute(
Expr(
Bivariate( Y( :NPN1 ), X( :PNP1 ), SendToReport( __dispatch__ ) )
),
Expr( __dispatch__ ), Parse( myfunc )
)
);
JMP kann den Austausch von Komponenten innerhalb der Plattformstruktur übernehmen, beispielsweise die Übergabe eines Mindestwerts.
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA\semiconductor capability.jmp" );
mymin = 80;
Bivariate(
Y( :NPN1 ),
X( :PNP1 ),
SendToReport(
Dispatch(
{},
"2",
ScaleBox,
{Min( Eval( mymin ) ), Max( 127 ), Inc( 5 ), Minor Ticks( 1 ),
Add Ref Line( 118.356215277778, "Solid", "Black", "", 1 )}
)
)
);
Oder was meiner Meinung nach die bevorzugte Methode ist, die darin besteht, das Standarddiagramm zu generieren und dann die Parameter nach der Generierung festzulegen, wobei ein Aufruf einer Funktion verwendet werden könnte, um die gewünschten Elemente bedingt festzulegen;
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA\semiconductor capability.jmp" );
myfunc = function({},
Report( biv )[Axis Box( 1 )] << Min( 80 );
);
biv = Bivariate(
Y( :NPN1 ),
X( :PNP1 ),
SendToReport(
Dispatch(
{},
"2",
ScaleBox,
{Min( 92.9916666666667 ), Max( 127 ), Inc( 5 ), Minor Ticks( 1 ),
Add Ref Line( 118.356215277778, "Solid", "Black", "", 1 )}
)
)
);
myfunc;Betreff: Verwenden von Funktionen in Graph Builder DispatchHallo Jim,
Danke für die Antwort. Ich werde jedoch versuchen, mein Problem etwas klarer zu machen.
Nehmen wir an, ich habe im Graph Builder in meinem JSL-Skript einen Codeblock wie:
Dispatch(
{},
"400",
ScaleBox,
{Legend Model(... etcHier passe ich vielleicht zum Beispiel die Farbe der Linien an.
Ist es mir möglich, eine Funktion in einem anderen JSL-Skript zu erstellen, wie zum Beispiel:
myDispatch=Function(
{},
Dispatch(
{},
"400",
ScaleBox,
{Legend Model(.... etcund dann hätte ich im JSL-Skript anstelle der Dispatch-Funktion myDispatch().
Ich habe es versucht, und obwohl es keine Fehler protokolliert, wendet es meine Funktion nicht an (dh das Diagramm verwendet nur die Standardlinienfarben usw. und ignoriert meine Funktion). Ich kann es nicht zum Laufen bringen, ohne die Argumente explizit im Graph Builder selbst einzugeben.
Vielen Dank
Betreff: Verwenden von Funktionen in Graph Builder DispatchWenn Sie sich Folgendes ansehen:
Hilfe==>Skriptindex==>Graph Builder
Sie sehen alle verschiedenen Komponenten, die in Graph Builder manipuliert werden können, indem Anfragen an die Plattform weitergeleitet werden.All dies kann in Benutzer-Build-Funktionen eingefügt werden.
