c# 调用Minitab18.1实现直方图、质量正态图
前言
c#直接实现质量的正态图有些困难,大家可以调用Minitab的命令生成,但前提是电脑必须安装Minitab,我的下面代码是基于Minitab18.1
提示:以下是本篇文章正文内容,下面案例可供参考
一、Minitab是什么?
二、使用步骤
1.引入Minitab COM库
2.在Minitab上显示命令行
打开Minitab 选择编辑器- 显示命令行,打开命令行工具
3.在Minitab上实际操作后生成命令(当然如果你了解Minitab命令,此步可以省略)
把数据copy到minitab
点击统计-质量工具-Capability Sixpack(s)-正态
输入单列,自组大小,规格上下限后确定
图片和命令行则自动显示
4.C#调用Minitab并发送命令
代码如下(示例):
res_data 是存储数据的datatable
data1 data2 data3 三个数组分别存储Minitab上的三列数据
try
{
foreach (Process proc in Process.GetProcessesByName("Mtb"))
{
proc.Kill();
}
}
catch (Exception ex)
{
}
ArrayList data1 = new ArrayList();
ArrayList data2 = new ArrayList();
ArrayList data3 = new ArrayList();
for (int i = 0; i < res_data.Rows.Count; i++)
{
data1.Add(Convert.ToDouble(res_data.Rows[i]["chazhi"].ToString()));
data2.Add(res_data.Rows[i]["sbbh"].ToString());
data3.Add(Convert.ToDateTime(res_data.Rows[i]["rq"].ToString()));
}
Mtb.Application MtbApp = new Mtb.Application();
MtbApp.UserInterface.Visible = true;
Mtb.Project MtbProj = MtbApp.ActiveProject;
Mtb.Columns MtbColumns = MtbProj.ActiveWorksheet.Columns;
Mtb.Column MtbColumn1 = MtbColumns.Add(null, null, 1);
Mtb.Column MtbColumn2 = MtbColumns.Add(null, null, 1);
Mtb.Column MtbColumn3 = MtbColumns.Add(null, null, 1);
MtbColumn1.SetData(data1.ToArray());
MtbColumn2.SetData(data2.ToArray());
MtbColumn3.SetData(data3.ToArray());
MtbProj.ExecuteCommand($"Sixpack C1 1;Lspec -0.5;Uspec 0.5; Pooled; AMR;CCRbar;CCSbar;CCAMR;UnBiased;OBiased;Breakout 25;Toler 6;Title \"XXXX的Process Capability Sixpack 报告\"; CStat; Test 1.");
Mtb.Graph MtbGraph = MtbProj.Commands.Item(1).Outputs.Item(1).Graph;
string path = Application.StartupPath;
string filename = path + DateTime.Now.ToString("yyyy-MM-dd HHmmss") + ".PNG";
MtbGraph.SaveAs(filename, true, Mtb.MtbGraphFileTypes.GFPNGHighColor);
MtbProj.Delete();
MtbApp.Quit();
pictureBox1.ImageLocation = filename;
最终效果:
总结
主要是调用了Minitab的COM库,需要每个使用程序的电脑都安装Minitab。
程序可以直接对Minitab进行操作,发送命令生成图形,对图片进行导出保存,再由c# 前端展示,也可以直接打开Minitab在其显示。