Importation des limites des spécificationsJ'ai donc un script qui exécute Process Capability sur une table de données. Je peux l'exécuter automatiquement en utilisant cette solution, https://community.jmp.com/t5/Discussions/JSL-automate-the-columns-used-in-Process-Capability/mp/39855 . J'essaie maintenant d'importer automatiquement la fiche technique. À l’heure actuelle, les utilisateurs disposent automatiquement de 2 feuilles. 1 avec les données et 1 avec les informations sur les spécifications. Je peux créer une solution qui prend les informations de la fiche technique et les copie dans les propriétés de la colonne, mais je préférerais qu'elles soient exécutées dans le code au cas où les utilisateurs souhaiteraient utiliser la fiche technique avec un autre fichier de spécifications.
mon code jusqu'à présent...
aaa = Eval( Parse("summ_table << Capacité du processus(
Variables de processus( " || TheVars || "), <
Limites de spécifications (Importer les limites de spécifications (\!"" || Spec ||"\!")) <
);"
)
);
spec contient le nom des tables de spécifications ouvertes. je peux facilement l'obtenir dans ces 2 formats.
"specTable1.jmp"
"DataTable("specTable1.jmp")"
j'ai obtenu le code des limites de spécifications sur ce blog -- https://community.jmp.com/t5/JMPer-Cable/3-ways-to-load-your-spécification-limits-into-Process-Capability/ba-p/34189
Re : Importation des limites des spécificationsÉcrire des limites dans une table de données à partir d'une table de limites le complément est une option
Re : Importation des limites des spécificationsMerci, Jthi.Cela fonctionne bien avec votre script modifié ~
Existe-t-il un script pour charger le fichier de limites et enregistrer directement toutes les limites des propriétés de colonne ?
Re : Importation des limites des spécificationsIl s'agit d'un script (et d'une publication) assez ancien et, en fonction de ce que vous essayez de faire, il définit finalement comment le modifier (ou peut-être devriez-vous utiliser complètement un autre script ou éventuellement le complément fourni).
Avec le complément, vous devrez modifier le type de modélisation des colonnes variables de Texte non structuré à Nominal.


Ci-dessous, une modification assez rapide qui devrait fonctionner si vous disposez de JMP16+ pour le script (modifications apportées aux lignes 24 et 26) :
Names Default To Here( 1 );
// Select the data table and open it
path = Pick File( "Select Data Table" );
dt = Open( path );
// Select the limits table and open it
path = Pick File( "Select Limits Table" );
dt2 = Open( path );
// Point to the data table as the main table
Current Data Table( dt );
// Open a new window to select the process variables
nw = New Window( "Select Process Variables",
Text Box( "Selection Columns" ),
H List Box(
datacolbox = Col List Box( all ),
Button Box( "Process Variables", pList << append( datacolbox << get selected ) ),
pList = List Box( {} )
),
Button Box( "OK",
thelist = plist << get items;
pvars = ":\!"" || thelist[1] ||"\!"n";
For( i = 2, i <= N Items( thelist ), i++,
pvars = pvars || ", :\!"" || thelist[i] ||"\!"n";
);
Eval(
Parse(
"obj = dt << Process Capability(
Process Variables(" || pvars || " ),
Spec Limits( Import Spec Limits( dt2 ) )
);"
)
);
nw << close window;
)
);Re : Importation des limites des spécificationsBonjour Txnelson,
J'essaie d'utiliser votre script pour exécuter l'importation de mon fichier de limites, mais une erreur se produit. (joindre mon fichier de spécifications de limite)
il semble que le nom de la variable ou le caractère « / » soit long, pourriez-vous m'aider ? Merci.

Cordialement, Chili
Re : Importation des limites des spécificationsDonc, ceci est littéralement copié et collé à partir de l'index des scripts. À mon humble avis, c'est le moyen le plus simple de charger les spécifications d'une table et de les enregistrer dans les propriétés de colonne d'une autre table.
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/Cities.jmp" );
obj = Capability(Y( :OZONE, :CO, :SO2, :NO ), Spec Limits(Import Spec Limits("$SAMPLE_DATA/CitySpecLimits.jmp")));
obj << Save Spec Limits as Column Properties;<STRIKE></STRIKE><BR />
... cependant, je dois dire que le complément de Jim Nelson est plutôt astucieux et possède des fonctionnalités généralisées très pratiques.
Re : Importation des limites des spécificationsQue vous puissiez ou non ouvrir les exemples de tables de données, le code que j'ai inclus peut être coupé et collé dans votre session JMP, en sachant qu'il fonctionne. Donc, si vous prenez votre propre table de données et votre propre table de limites et que le code ne fonctionne pas pour vous, vous devez alors rechercher le problème dans vos données.
Re : Importation des limites des spécificationsJe pense que c'est mon PC qui pose problème. Votre script semble devoir fonctionner et fonctionne sur votre PC. J'ai téléchargé vos exemples de tables mais sur ma machine, cela donne une erreur/alerte. Il semble que votre solution fonctionne, mais quelque chose d'autre se produit. Je pense que je dois d'abord réparer les E/S avant de pouvoir mettre en œuvre votre solution.

Re : Importation des limites des spécificationsJSL est capable d'effectuer presque tout ce que vous devez faire, donc en réponse à votre question, oui, vous pouvez sélectionner la table de données, puis la table des limites, puis exécuter la capacité du processus. Voici un script très simple qui fait exactement cela. Je l'ai testé avec le tableau des données et des limites ci-joint. Le code n’est certainement pas à l’épreuve des balles. Mais il devrait vous montrer comment procéder.
Names Default To Here( 1 );
// Select the data table and open it
path = Pick File( "Select Data Table" );
dt = Open( path );
// Select the limits table and open it
path = Pick File( "Select Limits Table" );
dt2 = Open( path );
// Point to the data table as the main table
Current Data Table( dt );
// Open a new window to select the process variables
nw = New Window( "Select Process Variables",
Text Box( "Selection Columns" ),
H List Box(
datacolbox = Col List Box( all ),
Button Box( "Process Variables", pList << append( datacolbox << get selected ) ),
pList = List Box( {} )
),
Button Box( "OK",
thelist = plist << get items;
pvars = ":" || thelist[1];
For( i = 2, i <= N Items( thelist ), i++,
pvars = pvars || ",:" || thelist[i]
);
Eval(
Parse(
"obj = dt << Process Capability(
Process Variables(" || pvars || " ),
Spec Limits( Import Spec Limits( dt2 ) )
);"
)
);
nw << close window;
)
);Re : Importation des limites des spécificationsJ'ai regardé le code de ce module complémentaire et il me semble qu'il fait quelque chose que j'ai déjà fait. fondamentalement, il modifie les colonnes d'un tableau pour avoir les caractéristiques des limites.
Je me demande s'il est possible d'utiliser JSL pour demander à l'utilisateur une feuille avec des données et une feuille avec les limites/spécifications. Une fois que l'utilisateur a saisi ces 2 éléments, le script s'exécutera automatiquement et exécutera une analyse de capacité sur la feuille avec les données. il est donc fondamentalement possible d'exécuter une fiche technique dans une analyse de capacité à l'aide de JSL. Je me demande si cette ligne est possible comme décrit dans le 2ème message lié dans le message d'origine.
Spec Limits(Import Spec Limits(\!" specLimits.jmp\!"))
Cela semble ne pas fonctionner. Dois-je simplement essayer de le formater comme ceci ? et avez-vous une longue chaîne contenant toutes les informations sur les limites/spécifications ?
Spec Limits(
c1( LSL( -1.4 ), Target( . ), USL( . ) ),
c2 2( LSL( -1.4 ), Target( . ), USL( . ) ),
Name( "c3" )(LSL( 12 ), Target( . ), USL( 144 )),
c4( LSL( . ), Target( . ), USL( -18 ) )
),
Re : Importation des limites des spécificationsIl existe un complément JMP qui renseignera les limites de spécifications à partir d'une table de données supplémentaire contenant les limites de spécifications.
Écrire des limites dans une table de données à partir d'une table de limites
S'il ne fait pas exactement ce que vous voulez, vous pouvez toujours extraire le JSL et le modifier pour répondre à vos besoins.