Chère communauté,
J'effectue des analyses de tendances à l'aide de cartes de contrôle pour différents produits d'une même famille, qui partagent des contrôles de processus communs (pH, temps de fabrication...), mais qui ont des limites de spécifications différentes.
J'aimerais avoir juste une colonne avec les données de contrôle de processus communes (col 3 dans l'exemple), et via un script appliquer les différentes limites de spécifications par produit (j'utilise actuellement des limites de contrôle automatique à 3 sigma, mais il serait intéressant de pouvoir pour les définir également)
Ma façon actuelle de procéder consiste à avoir différentes colonnes et à enregistrer les limites de spécifications dans les propriétés des colonnes, puis à lier le produit 1 à la colonne de temps 1, le produit 2 à la colonne de temps 2, etc. Mais cela crée un énorme tableau de données.
Je suppose qu'il doit utiliser une table de limites de spécifications, mais il ne peut pas non plus scripter le processus via celle-ci.

DT est joint
merci
@Ben_Ingham @Danny _sierra
Bonjour Andeka,
Merci d'avoir posté. Je commencerai en disant que je ne suis pas un scripteur, mais j'ai trouvé un moyen de résoudre ce problème en utilisant JMP que vous pouvez écrire. J'ai tiré beaucoup de ces détails de l'exemple décrit ici : https://community.jmp.com/t5/Discussions/Setting-Spec-Limits-using-Column-Data/td-p/392499
Dans cette solution, vous pouvez stocker chaque contrôle de produit et de processus et les limites de spécifications dans une table de données distincte. Dans ce cas, j'ai créé une table de données de limites de spécifications avec UCL/LCL générées à partir des résumés de limites générés par le contrôle. Générateur de graphiques. J'ai ajouté des valeurs USL aléatoires pour démontrer son utilisation. Si vous souhaitez analyser plusieurs processus, il vous suffit de le noter dans votre colonne « Processus » (important pour plus tard).

À l'aide de cette table de données, vous pouvez utiliser la plate-forme Process Screening (Analyse> Qualité et processus> Process Screening dans JMP 17) pour créer une seule « page » pour consulter vos cartes de contrôle. Pour commencer, placez vos données de contrôle de processus dans « Variables de processus » et séparez vos données par produit à l'aide de la sélection « Par » (voir ci-dessous). Assurez-vous de sélectionner « Utiliser le tableau des limites », appuyez sur OK et sélectionnez votre tableau de spécifications.


À partir de là, la plate-forme de sélection de processus vous invitera à sélectionner votre variable de processus (Processus) et votre groupement (votre « Produit » / la variable « par » précédente) ainsi que vos limites de spécifications LCL/UCL et USL/LSL. Appuyez sur OK, il s'agit alors simplement d'activer « Sélectionner le graphique tel que sélectionné » et de mettre en surbrillance votre tableau récapitulatif.


Process Screening(
SendToByGroup( Bygroup Default ),
Process Variables( :"Total Time (min)"n ),
Control Chart Type( "Indiv and MR" ),
SendToByGroup( {:Product == "Product 1"}, Cp( 1 ) ),
Show Charts as Selected( 1 ),
SendToByGroup(
{:Product == "Product 1"},
Chart Options as Selected( Show Zones( 1 ), Show Spec Limits( 1 ) )
),
Use Limits Table(
1,
Data Table( "Spec Table" ),
Process Variables( :Process ),
Grouping( :Product ),
LSL( :LSL ),
USL( :USL ),
Target( :Target ),
Go
),
SendToByGroup( {:Product == "Product 1"}, RowStates( [0 1] ) ),
SendToByGroup( {:Product == "Product 2"}, RowStates( [0 1] ) ),
SendToByGroup( {:Product == "Product 3"}, RowStates( [0 1] ) ),
By( :Product ),
SendToByGroup(
{:Product == "Product 1"},
SendToReport(
Dispatch(
{"Process Screening Product=Product 1", "Charts as Selected"},
"",
ListBox,
{Horizontal Alignment( "Right" )}
),
Dispatch(
{"Process Screening Product=Product 1", "Charts as Selected"},
"",
TextBox,
{Set Wrap( 520 ), Set Base Font( "Small" )}
),
Dispatch(
{"Process Screening Product=Product 1", "Charts as Selected"},
"",
PictureBox,
{Horizontal Alignment( "Right" )}
),
Dispatch(
{"Process Screening Product=Product 1", "Charts as Selected"},
"",
TextEditBox,
{Rotate Text( "Left" ), Set Wrap( 170 ),
Set Base Font( "Axis Title" )}
)
)
),
SendToByGroup(
{:Product == "Product 2"},
SendToReport(
Dispatch(
{"Process Screening Product=Product 2"},
"",
TableBox,
{set height( 69 ), set width( 830 )}
),
Dispatch(
{"Process Screening Product=Product 2", "Charts as Selected"},
"",
ListBox,
{Horizontal Alignment( "Right" )}
),
Dispatch(
{"Process Screening Product=Product 2", "Charts as Selected"},
"",
TextBox,
{Set Wrap( 520 ), Set Base Font( "Small" )}
),
Dispatch(
{"Process Screening Product=Product 2", "Charts as Selected"},
"",
PictureBox,
{Horizontal Alignment( "Right" )}
),
Dispatch(
{"Process Screening Product=Product 2", "Charts as Selected"},
"",
TextEditBox,
{Rotate Text( "Left" ), Set Wrap( 170 ),
Set Base Font( "Axis Title" )}
)
)
),
SendToByGroup(
{:Product == "Product 3"},
SendToReport(
Dispatch(
{"Process Screening Product=Product 3", "Charts as Selected"},
"",
ListBox,
{Horizontal Alignment( "Right" )}
),
Dispatch(
{"Process Screening Product=Product 3", "Charts as Selected"},
"",
TextBox,
{Set Wrap( 520 ), Set Base Font( "Small" )}
),
Dispatch(
{"Process Screening Product=Product 3", "Charts as Selected"},
"",
PictureBox,
{Horizontal Alignment( "Right" )}
),
Dispatch(
{"Process Screening Product=Product 3", "Charts as Selected"},
"",
TextEditBox,
{Rotate Text( "Left" ), Set Wrap( 170 ),
Set Base Font( "Axis Title" )}
)
)
)
)
J'ai joint le tableau de données et le script de ce processus (enregistré en sélectionnant « Enregistrer par script de groupe » dans le menu déroulant rouge). Faites-moi savoir si cette solution fonctionne pour vous !
Acclamations,
Ben