Modifier les limites de spécification de manière dynamique et mettre à jour les tracés en conséquenceVous trouverez ci-joint un exemple de table de données et un exemple de script que j'utilise qui permet à l'utilisateur de modifier la colonne et de mettre à jour les tracés en conséquence. Je voudrais ajouter une boîte d'affichage supplémentaire qui permet à l'utilisateur de modifier les limites de spécification de propriété de colonne et de mettre à jour les parcelles. Ce serait quelque chose comme Analyse de capacité de processus << Diagramme de capacité interactif, mais au lieu d'une barre de défilement, ce serait une boîte de colonne d'édition numérique pour LSL, USL, Target.
J'espère avoir assez bien expliqué ce que je cherchais.
Merci
GraphiqueScriptingRe: modifier dynamiquement les limites des spécifications et mettre à jour les tracés en conséquenceVous devriez probablement simplement ajouter une deuxième boîte de contour sous la boîte de contour de test RF, avec les boîtes d'édition de nombre pour USL, Target et LSL. Étant donné que vous modifiez éventuellement 3 valeurs différentes, j'ajouterais probablement une zone de bouton sur laquelle il faut cliquer pour mettre à jour le graphique.Re: modifier dynamiquement les limites des spécifications et mettre à jour les tracés en conséquenceC'était le plan mais j'aimerais que la boîte soit mise à jour avec l'actuel "^ ycols_Test ^" et que le nombre de boîtes d'édition soit mis à jour avec la propriété de colonne Spec Limits. Dois-je ajouter les nouvelles boîtes à l'intérieur du "\ [gb_expr_Test [^ i ^]] ou est-ce que j'en créerai une nouvelle pour contenir les boîtes?
Re: modifier dynamiquement les limites des spécifications et mettre à jour les tracés en conséquenceCette section est le JSL qui produit la sortie Distribution. Ce n'est donc pas là où ajouter les nouvelles boîtes. La section à laquelle je faisais référence est la section qui définit la zone de contour du test RF.Re: modifier dynamiquement les limites des spécifications et mettre à jour les tracés en conséquenceMerci! J'ai cherché ces forums et je n'arrive pas à trouver un moyen de remplir initialement la zone d'édition de nombre quelconque avec les limites de spécifications actuelles répertoriées dans la propriété de colonne.
Si vous exécutez le nouveau script joint, vous verrez que la zone d'édition de texte "Test" se remplit automatiquement avec la colonne actuelle sélectionnée pour la distribution. Lorsque cela se produit, je voudrais que le script puisse récupérer les limites de spécifications actuelles et remplir le LSL, la cible, l'USL (le cas échéant). Je peux alors être en mesure de mettre dans de nouvelles limites de spécifications, puis cliquez sur le bouton "Charger les nouvelles limites de spécifications", puis la propriété de colonne "Limites de spécifications" serait mise à jour avec les nouveaux numéros. Je voudrais également pouvoir stocker les anciennes limites de spécifications, puis, une fois terminé, les réaffecter à la colonne.
Re: modifier les limites de spécification de manière dynamique et mettre à jour les tracés en conséquenceJe n'ai pas regardé tout votre code. Mais en ce qui concerne ' Je n'arrive pas à trouver un moyen de remplir initialement la zone d'édition de nombre quelconque avec les limites de spécifications actuelles répertoriées dans la propriété de colonne. ', cet ancien code pourrait aider:
// ian.cox@jmp.com: 02Jun2005
NamesDefaultToHere(1);
// ******************************************************************************************
// Given a column reference, returns the spec limits in a vector, [lower, upper, target]:
// If a limit is not defined it is returned as .
// ******************************************************************************************
getSpecs = Function({col}, {Default Local},
// Note that the number of arguments in slp below can change! It can be 0 (if the
// property is not even defined) or 1, 2 or 3
slp = col << GetProperty("Spec Limits");
// Assume that nothing is defined . . .
l = .; u = .; t = .;
// Find out what is defined . . .
for(i=1, i<=NArg(slp), i++,
thisExpr = Arg(slp, i);
sType = Char(Head(thisExpr));
if (
sType == "LSL", l = Arg(thisExpr, 1),
sType == "USL", u = Arg(thisExpr, 1),
sType == "Target", t = Arg(thisExpr, 1)
)
);
Matrix({l, u, t})
);
dt = Open("$SAMPLE_DATA/Semiconductor Capability.jmp");
someSpecs = getSpecs(Column(dt, "NPN1"));
nw =
NewWindow("Edit Spec Limits",
lsBox = TextEditBox(someSpecs[1]),
usBox = TextEditBox(someSpecs[2]),
tarBox = TextEditBox(someSpecs[3])
);