UControl_Init.cs 75 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648
  1. using System;
  2. using System.Collections.Generic;
  3. using System.ComponentModel;
  4. using System.Drawing;
  5. using System.Data;
  6. using System.Linq;
  7. using System.Text;
  8. using System.Threading.Tasks;
  9. using System.Windows.Forms;
  10. using MeasureData;
  11. using System.Configuration;
  12. using FileManager;
  13. using System.IO;
  14. using System.Runtime.InteropServices;
  15. //20201029:注释
  16. //初始化窗口管理的是参数,包括,测量文件使用的参数,配置文件中的参数(默认参数),或者保存成参数文件。
  17. //初始化窗口中显示的参数是测量文件在使用的参数。
  18. //点击确认,对当前修改的参数保存到测量文件中去。
  19. //点击保存默认设置,当前修改的参数保存到AppConfig中,下次打开时作为默认值打开。
  20. //点击保存成配置文件,将以文件的形式将参数保存在文件中
  21. //参数又分为两种类型,客户操作可见的类型,在AppConfig中参数,
  22. //客户操作的参数,可以每次都针对测量进行修改
  23. //这类参数包括:
  24. //是否是倾斜的样品台
  25. //是否仅拍照
  26. //是否使用PT
  27. //PT加工文件
  28. //FIB加工文件
  29. //样品名称
  30. //厂商
  31. //拉直操作的放大倍数
  32. //定位的电压
  33. //定位的放大倍数
  34. //拍照的电压
  35. //拍照的放大倍数
  36. //AppConfig中的参数,通常不需要修改,每次修改要在配置文件中修改,要重新启动程序
  37. //这类参数包括:
  38. //四组对焦参数
  39. //Z轴的移动距离
  40. //各个参数需要有一系列的默认值,并且各个值可以修改,删除
  41. namespace HOZProject
  42. {
  43. public partial class UControl_Init : UserControl
  44. {
  45. #region 成员变量
  46. //可供选择的各个参数的值列表
  47. String[] sT;//样品类型列表
  48. String[] firms;//厂商列表
  49. String[] WPZD;//拍照电压列表
  50. String[] WPZF;//拍照放大倍数列表
  51. String[] WQGD;//定位电压列表
  52. String[] WQGF;//定位电压放大倍数列表
  53. String[] WLZ;//拉直电压列表
  54. String[] WFIB;//FIB电压列表
  55. //配置文件
  56. Configuration config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
  57. //依附与主工作窗口
  58. private FormHOZMain formHOZMain;
  59. public FormHOZMain FormHOZMainObject { get => formHOZMain; set => formHOZMain = value; }
  60. //模板路径
  61. private string readConfigPath;
  62. public string ReadConfigPath { get => readConfigPath; set => readConfigPath = value; }
  63. //模板文件默认路径
  64. private string m_TemplateFilePath;
  65. #endregion
  66. #region 构造方法
  67. public UControl_Init(FormHOZMain formHOZ)
  68. {
  69. InitializeComponent();
  70. FormHOZMainObject = formHOZ;
  71. }
  72. #endregion
  73. #region 窗体加载
  74. private void UControl_Init_Load(object sender, EventArgs e)
  75. {
  76. //从配置文件中读取一系列的信息
  77. //ReloadConfig();
  78. if (!chkFIBAdjust.Checked)
  79. {
  80. chkFIBAtuoAdjust.Checked = false;
  81. chkFIBAtuoAdjust.Visible = false;
  82. }
  83. if (chkFIBAtuoAdjust.Checked)
  84. {
  85. label4.Visible = false;
  86. tbBrightness.Visible = false;
  87. label7.Visible = false;
  88. label5.Visible = false;
  89. tbContrast.Visible = false;
  90. label8.Visible = false;
  91. }
  92. else
  93. {
  94. label4.Visible = true;
  95. tbBrightness.Visible = true;
  96. label7.Visible = true;
  97. label5.Visible = true;
  98. tbContrast.Visible = true;
  99. label8.Visible = true;
  100. }
  101. SetTypel();
  102. }
  103. #endregion
  104. #region 关闭窗体
  105. private void btnClose_Click(object sender, EventArgs e)
  106. {
  107. //按照当前的值,更新测量文件的参数
  108. SaveMeasureFile();
  109. Form fParent = this.ParentForm;
  110. fParent.Close();
  111. }
  112. #endregion
  113. #region 加载切孔文件,生成切孔列表
  114. private void btnCutHoleFile_Click(object sender, EventArgs e)
  115. {
  116. try
  117. {
  118. if (FormHOZMainObject.m_MeasureFile == null)
  119. {
  120. MessageBox.Show("请新建一个测量文件!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
  121. }
  122. else
  123. {
  124. if (!FormHOZMainObject.m_MeasureFile.GetCutHolesFromFile(""))
  125. {
  126. MessageBox.Show("导入切孔失败!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
  127. }
  128. else
  129. {
  130. List<CutHole> ListCutHole = FormHOZMainObject.m_MeasureFile.ListCutHole;
  131. //文件路径
  132. string CutHoleFilePath = FormHOZMainObject.m_MeasureFile.CutHoleFilePath;
  133. FormHOZMainObject.CreateCutHoleList(ListCutHole);
  134. //显示导入的切孔数量
  135. lblCutHoleCount.Text = string.Format("成功导入{0}个切孔", ListCutHole.Count);
  136. tbCutHoleFilePath.Text = CutHoleFilePath;
  137. //保存测量文件
  138. if (Directory.Exists(FormHOZMainObject.m_MeasureFile.FilePath))
  139. {
  140. FormHOZMainObject.m_MeasureFile.Save();
  141. }
  142. }
  143. }
  144. }
  145. catch (Exception ex)
  146. {
  147. LogManager.LogError(ex.Message);
  148. }
  149. }
  150. private void pbCutHoleFile_Click(object sender, EventArgs e)
  151. {
  152. }
  153. #endregion
  154. #region 根据一个切孔文件,自动计算其他切孔信息
  155. /// <summary>
  156. /// 根据一个切孔,自动计算其他切孔信息
  157. /// </summary>
  158. /// <param name="sender"></param>
  159. /// <param name="e"></param>
  160. ///
  161. private void btnCutHoleAuto_Click(object sender, EventArgs e)
  162. {
  163. try
  164. {
  165. if (FormHOZMainObject.m_MeasureFile == null)
  166. {
  167. MessageBox.Show("请新建一个测量文件!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
  168. }
  169. else
  170. {
  171. if (!FormHOZMainObject.m_MeasureFile.GetCutHolesFromFile(""))
  172. {
  173. MessageBox.Show("导入切孔失败!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
  174. }
  175. else
  176. {
  177. List<CutHole> ListCutHole = FormHOZMainObject.m_MeasureFile.ListCutHole;
  178. if (ListCutHole != null)
  179. {
  180. if (ListCutHole.Count > 0)
  181. {
  182. //根据切孔文件的一个切孔,自动计算其他切孔位置
  183. float centerX = 65;
  184. float centerY = 65;
  185. float firstX = ListCutHole[0].Position.X;
  186. float firstY = ListCutHole[0].Position.Y;
  187. //距离
  188. float distance = Convert.ToSingle(config.AppSettings.Settings["distance"].Value.ToString());
  189. //矩阵 4*4
  190. int rag = Convert.ToInt32(config.AppSettings.Settings["rag"].Value.ToString());
  191. List<PointF> cutHolePoint = new List<PointF>();
  192. //根据一个切孔点计算其他切孔信息
  193. cutHolePoint = AnalysisPosition(centerX, centerY, firstX, firstY, distance, rag);
  194. if (!FormHOZMainObject.m_MeasureFile.GetCutHolesFromAnalysisPosition(cutHolePoint))
  195. {
  196. MessageBox.Show("生成切孔失败!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
  197. }
  198. else
  199. {
  200. //文件路径
  201. string CutHoleFilePath = FormHOZMainObject.m_MeasureFile.CutHoleFilePath;
  202. //重新获取切孔列表信息
  203. ListCutHole = FormHOZMainObject.m_MeasureFile.ListCutHole;
  204. //创建切孔列表信息
  205. FormHOZMainObject.CreateCutHoleList(ListCutHole);
  206. //显示导入的切孔数量
  207. lblCutHoleCount.Text = string.Format("成功生成{0}个切孔", ListCutHole.Count);
  208. tbCutHoleFilePath.Text = CutHoleFilePath;
  209. }
  210. }
  211. }
  212. //保存测量文件
  213. if (FormHOZMainObject.IsSave)
  214. {
  215. FormHOZMainObject.m_MeasureFile.Save();
  216. }
  217. }
  218. }
  219. }
  220. catch (Exception ex)
  221. {
  222. LogManager.LogError(ex.Message);
  223. }
  224. }
  225. private void pbCutHoleAuto_Click(object sender, EventArgs e)
  226. {
  227. }
  228. /// <summary>
  229. /// 分析点坐标
  230. /// </summary>
  231. /// <param name="centerX">中心点X轴坐标</param>
  232. /// <param name="centerY">中心点Y轴坐标</param>
  233. /// <param name="firstX">第一个点X轴坐标</param>
  234. /// <param name="firstY">第一个点Y轴坐标</param>
  235. /// <param name="distance">点与点的距离</param>
  236. /// <param name="rag">行、列数</param>
  237. /// <param name="ptsx">计算生成所有X轴坐标</param>
  238. /// <param name="ptsy">计算生成所有Y轴坐标</param>
  239. public List<PointF> AnalysisPosition(float centerX, float centerY, float firstX, float firstY, float distance, int rag)
  240. {
  241. //求样品1的水平角度
  242. double angle = 0;
  243. //清空所有点信息
  244. List<float> ptsx = new List<float>();
  245. List<float> ptsy = new List<float>();
  246. //将第一个点加入到点信息中
  247. ptsx.Add(firstX);
  248. ptsy.Add(firstY);
  249. //计算第一个点与X轴的交角度数
  250. angle = Math.Atan2(ptsy[0] - centerY, centerX - ptsx[0]) * 180 / Math.PI;
  251. //这里是求与第一个点横向排列的其他点的移动角度
  252. //就是按45度向左向右移动的度
  253. angle = 45 - angle;
  254. angle = angle * Math.PI / 180;
  255. float tx = 0;
  256. float ty = 0;
  257. for (int j = 0; j < rag; j++)
  258. {
  259. //计算每行第一个点的坐标
  260. if (j > 0)
  261. {
  262. tx = (float)(distance * j * Math.Sin(angle));
  263. ty = (float)(distance * j * Math.Cos(angle));
  264. ptsx.Add(tx + ptsx[0]);
  265. ptsy.Add(ptsy[0] - ty);
  266. }
  267. //计算每行其他点的坐标
  268. for (int i = 1; i < rag; i++)
  269. {
  270. tx = (float)(distance * i * Math.Cos(angle));
  271. ty = (float)(distance * i * Math.Sin(angle));
  272. ptsx.Add(tx + ptsx[j * rag]);
  273. ptsy.Add(ty + ptsy[j * rag]);
  274. }
  275. }
  276. List<PointF> pts = new List<PointF>();
  277. for (int i = 0; i < ptsx.Count; i++)
  278. {
  279. //增加的点
  280. PointF pf = new PointF();
  281. pf.X = ptsx[i];
  282. pf.Y = ptsy[i];
  283. pts.Add(pf);
  284. }
  285. return pts;
  286. }
  287. #endregion
  288. #region 加载PT模板文件
  289. private void btnPTTemplateFile_Click(object sender, EventArgs e)
  290. {
  291. string FilePathName;
  292. string fileNameWithoutExtension;
  293. //新建一个文件对话框
  294. OpenFileDialog pOpenFileDialog = new OpenFileDialog();
  295. //设置对话框标题
  296. pOpenFileDialog.Title = "选择模板文件";
  297. //默认目录
  298. pOpenFileDialog.InitialDirectory= @"\\192.168.1.101\fib auto\FIB Recipe\";
  299. //设置打开文件类型
  300. pOpenFileDialog.Filter = "ely文件(*.ely)|*.ely";
  301. ////监测文件是否存在
  302. //pOpenFileDialog.CheckFileExists = true;
  303. //文件打开后执行以下程序
  304. if (pOpenFileDialog.ShowDialog() == DialogResult.OK)
  305. {
  306. FilePathName = System.IO.Path.GetFullPath(pOpenFileDialog.FileName); //绝对路径
  307. fileNameWithoutExtension = System.IO.Path.GetFileNameWithoutExtension(FilePathName);
  308. this.txtWPTF.Text = FilePathName;
  309. }
  310. }
  311. private void pbTemplateFile_Click(object sender, EventArgs e)
  312. {
  313. }
  314. #endregion
  315. #region 加载FIB模板文件
  316. private void btnFIBTemplateFile_Click(object sender, EventArgs e)
  317. {
  318. string FilePathName;
  319. string fileNameWithoutExtension;
  320. //新建一个文件对话框
  321. OpenFileDialog pOpenFileDialog = new OpenFileDialog();
  322. //设置对话框标题
  323. pOpenFileDialog.Title = "选择模板文件";
  324. //默认目录
  325. //pOpenFileDialog.InitialDirectory = @"\\192.168.1.101\fib auto\FIB Recipe\";
  326. //设置打开文件类型
  327. pOpenFileDialog.Filter = "ely文件(*.ely)|*.ely";
  328. ////监测文件是否存在
  329. //pOpenFileDialog.CheckFileExists = true;
  330. //文件打开后执行以下程序
  331. if (pOpenFileDialog.ShowDialog() == DialogResult.OK)
  332. {
  333. FilePathName = System.IO.Path.GetFullPath(pOpenFileDialog.FileName); //绝对路径
  334. fileNameWithoutExtension = System.IO.Path.GetFileNameWithoutExtension(FilePathName);
  335. this.txtWFIBF.Text = FilePathName;
  336. }
  337. }
  338. private void pbFIBTemplateFile_Click(object sender, EventArgs e)
  339. {
  340. }
  341. #endregion
  342. #region 创建与读取样品参数、配置文件
  343. private void btnCreateConfig_Click(object sender, EventArgs e)
  344. {
  345. SaveTemplateFile();
  346. }
  347. /// <summary>
  348. /// 获取测量参数,初始化窗体中的控件信息
  349. /// </summary>
  350. /// <returns></returns>
  351. public MeasureParam GetMeasureParamInfo()
  352. {
  353. //从当前界面内获取参数
  354. MeasureParam cfm = new MeasureParam();
  355. cfm.Is_Photograph = chkWIsP.Checked;//是否仅拍照
  356. cfm.PT = chkWPT.Checked;//是否有PT
  357. cfm.Tilt = chkWqxkc.Checked;//是否倾斜样品台
  358. cfm.EDS = chkEDS.Checked;
  359. cfm.EDSZ = Convert.ToSingle(txtEDSZ.Text)/1000;
  360. cfm.EDSV = Convert.ToSingle(cbbEDSV.Text);
  361. cfm.EDSA = Convert.ToSingle(cbbEDSA.Text)/1000000000;
  362. cfm.EDSParam.XrayCollectMode = Convert.ToInt16(cboXrayMode.Text);
  363. //自动对焦模式
  364. //cfm.FocusMode = chkManul.Checked;
  365. cfm.PTTemp = txtWPTF.Text;//PT文件路径
  366. cfm.FIBTemp = txtWFIBF.Text;//FIB文件路径
  367. cfm.Stretch_Magnification = Convert.ToSingle(cbbWLZ.Text);//来自放大倍数
  368. cfm.Location_Magnification = Convert.ToSingle(cbbWQGF.Text);//定位的放大倍数
  369. cfm.Location_Voltage = Convert.ToSingle(cbbWQGD.Text);//定位的放大电压
  370. cfm.Photograph_Magnification = Convert.ToSingle(cbbWPZF.Text);//拍照的放大倍数
  371. cfm.Photograph_Voltage = Convert.ToSingle(cbbWPZD.Text);//拍照的电压
  372. //cfm.FIB_Magnification = Convert.ToSingle(cbbWFIB.Text);//FIB的放大倍数
  373. //亮度对比度
  374. cfm.FIBDo = chkFIBAdjust.Checked;
  375. cfm.FIBAutoBC = chkFIBAtuoAdjust.Checked;
  376. cfm.FIBB = Convert.ToSingle(tbBrightness.Text);
  377. cfm.FIBC = Convert.ToSingle(tbContrast.Text);
  378. //放大倍数挡位
  379. cfm.MagComp = Convert.ToBoolean(chkGearSwitch.Checked);
  380. cfm.MagRange1 = Convert.ToSingle(tbGear1to2.Text);
  381. cfm.MagRange2 = Convert.ToSingle(tbGear2to3.Text);
  382. cfm.MagRange3 = Convert.ToSingle(tbGear3to4.Text);
  383. cfm.MagCompX1 = Convert.ToSingle(tbGear1to2_Xdeviation.Text);
  384. cfm.MagCompX2 = Convert.ToSingle(tbGear2to3_Xdeviation.Text);
  385. cfm.MagCompX3 = Convert.ToSingle(tbGear3to4_Xdeviation.Text);
  386. cfm.MagCompY1 = Convert.ToSingle(tbGear1to2_Ydeviation.Text);
  387. cfm.MagCompY2 = Convert.ToSingle(tbGear2to3_Ydeviation.Text);
  388. cfm.MagCompY3 = Convert.ToSingle(tbGear3to4_Ydeviation.Text);
  389. cfm.ScanRotCor = Convert.ToSingle(txtScanRotCur.Text);
  390. cfm.PixelSizeCor = Convert.ToSingle(txtYPSCur.Text);
  391. if (cbbWXZ.SelectedIndex == 0)//校正角度
  392. {
  393. cfm.Correction_Angle = 36;
  394. }
  395. else
  396. {
  397. cfm.Correction_Angle = 54;
  398. }
  399. cfm.SampleName = cbbWYP.Text;//样品类型
  400. cfm.Firm = cbbWCS.Text;//厂商类型
  401. return cfm;
  402. }
  403. public void SaveTemplateFile()
  404. {
  405. //获取当前文件的参数
  406. MeasureParam cfm = FormHOZMainObject.m_MeasureFile.MParam;
  407. //根据界面显示内容更新参数
  408. cfm.Is_Photograph = chkWIsP.Checked;
  409. cfm.PT = chkWPT.Checked;
  410. cfm.Tilt = chkWqxkc.Checked;//是否倾斜样品台
  411. cfm.EDS = chkEDS.Checked;
  412. //自动对焦模式
  413. //cfm.FocusMode = chkManul.Checked;
  414. cfm.PTTemp = txtWPTF.Text;
  415. cfm.FIBTemp = txtWFIBF.Text;
  416. cfm.Stretch_Magnification = Convert.ToSingle(cbbWLZ.Text);
  417. cfm.Location_Magnification = Convert.ToSingle(cbbWQGF.Text);
  418. cfm.Location_Voltage = Convert.ToSingle(cbbWQGD.Text);
  419. cfm.Photograph_Magnification = Convert.ToSingle(cbbWPZF.Text);
  420. cfm.Photograph_Voltage = Convert.ToSingle(cbbWPZD.Text);
  421. //cfm.FIB_Magnification = Convert.ToSingle(cbbWFIB.Text);
  422. if (cbbWXZ.SelectedIndex == 0)
  423. {
  424. cfm.Correction_Angle = 36;
  425. }
  426. else
  427. {
  428. cfm.Correction_Angle = 54;
  429. }
  430. cfm.SampleName = cbbWYP.Text;
  431. cfm.Firm = cbbWCS.Text;
  432. //保存配置文件中的参数
  433. cfm.ZDistance = Convert.ToSingle(ConfigurationManager.AppSettings["ZDistance"].ToString());
  434. cfm.AutoFocus.UP = Convert.ToSingle(ConfigurationManager.AppSettings["Focus_UP"].ToString());
  435. cfm.AutoFocus.Down = Convert.ToSingle(ConfigurationManager.AppSettings["Focus_Down"].ToString());
  436. cfm.AutoFocus.Step = Convert.ToSingle(ConfigurationManager.AppSettings["Focus_Step"].ToString());
  437. cfm.AutoFocus.Range = Convert.ToSingle(ConfigurationManager.AppSettings["Focus_Range"].ToString());
  438. cfm.AutoFocus.fStep = Convert.ToSingle(ConfigurationManager.AppSettings["Focus_FStep"].ToString());
  439. cfm.FIBFocus.UP = Convert.ToSingle(ConfigurationManager.AppSettings["FIB_UP"].ToString());
  440. cfm.FIBFocus.Down = Convert.ToSingle(ConfigurationManager.AppSettings["FIB_Down"].ToString());
  441. cfm.FIBFocus.Step = Convert.ToSingle(ConfigurationManager.AppSettings["FIB_Step"].ToString());
  442. cfm.FIBFocus.Range = Convert.ToSingle(ConfigurationManager.AppSettings["FIB_Range"].ToString());
  443. cfm.FIBFocus.fStep = Convert.ToSingle(ConfigurationManager.AppSettings["FIB_FStep"].ToString());
  444. cfm.AutoStigX.UP = Convert.ToSingle(ConfigurationManager.AppSettings["StigX_UP"].ToString());
  445. cfm.AutoStigX.Down = Convert.ToSingle(ConfigurationManager.AppSettings["StigX_Down"].ToString());
  446. cfm.AutoStigX.Step = Convert.ToSingle(ConfigurationManager.AppSettings["StigX_Step"].ToString());
  447. cfm.AutoStigX.Range = Convert.ToSingle(ConfigurationManager.AppSettings["StigX_Range"].ToString());
  448. cfm.AutoStigX.fStep = Convert.ToSingle(ConfigurationManager.AppSettings["StigX_FStep"].ToString());
  449. cfm.AutoStigY.UP = Convert.ToSingle(ConfigurationManager.AppSettings["StigY_UP"].ToString());
  450. cfm.AutoStigY.Down = Convert.ToSingle(ConfigurationManager.AppSettings["StigY_Down"].ToString());
  451. cfm.AutoStigY.Step = Convert.ToSingle(ConfigurationManager.AppSettings["StigY_Step"].ToString());
  452. cfm.AutoStigY.Range = Convert.ToSingle(ConfigurationManager.AppSettings["StigY_Range"].ToString());
  453. cfm.AutoStigY.fStep = Convert.ToSingle(ConfigurationManager.AppSettings["StigY_FStep"].ToString());
  454. ConfigFile cf = new ConfigFile(cfm);
  455. m_TemplateFilePath = ConfigurationManager.AppSettings["TemplateFilePath"].ToString();
  456. //如果路径不存在,要求选择一个路径
  457. if (!Directory.Exists(m_TemplateFilePath))
  458. {
  459. //创建路径
  460. //Directory.CreateDirectory(m_TemplateFilePath);
  461. FolderBrowserDialog dialog = new FolderBrowserDialog();
  462. dialog.Description = "请选择文件路径";
  463. //dialog.RootFolder = Environment.SpecialFolder.Programs;
  464. if (dialog.ShowDialog() == DialogResult.OK)
  465. {
  466. m_TemplateFilePath = dialog.SelectedPath;
  467. config.AppSettings.Settings["TemplateFilePath"].Value = m_TemplateFilePath;
  468. config.Save(ConfigurationSaveMode.Modified);
  469. ConfigurationManager.RefreshSection("appSettings");//重新加载新的配置文件
  470. }
  471. }
  472. SaveFileDialog saveFileDialog = new SaveFileDialog();
  473. //设置默认打开路径(绝对路径)
  474. saveFileDialog.InitialDirectory = m_TemplateFilePath;
  475. saveFileDialog.Filter = "样品参数文件|*.cfg";
  476. if (saveFileDialog.ShowDialog() == DialogResult.OK)
  477. {
  478. cf.Save(saveFileDialog.FileName);
  479. }
  480. else
  481. {
  482. return;
  483. }
  484. //编辑Config文件
  485. EditConfig();
  486. }
  487. /// <summary>
  488. /// 编辑confing 文件信息
  489. /// </summary>
  490. public bool EditConfig()
  491. {
  492. try
  493. {
  494. //设置数据源信息
  495. //样品类型
  496. List<String> _sT = sT.ToList();
  497. if ((_sT.IndexOf(cbbWYP.Text) < 0)
  498. || (!_sT.Contains(cbbWYP.Text)))
  499. {
  500. _sT.Add(cbbWYP.Text);
  501. string wsT = string.Join(",", _sT.ToArray());
  502. config.AppSettings.Settings["Sample_Type"].Value = wsT;
  503. }
  504. //厂商
  505. List<String> _firms = firms.ToList();
  506. if ((_firms.IndexOf(cbbWCS.Text) < 0)
  507. || (!_firms.Contains(cbbWCS.Text)))
  508. {
  509. _firms.Add(cbbWCS.Text);
  510. string wFirms = string.Join(",", _firms.ToArray());
  511. config.AppSettings.Settings["Firm"].Value = wFirms;
  512. }
  513. //拍照电压
  514. List<String> _WPZD = WPZD.ToList();
  515. if ((_WPZD.IndexOf(cbbWPZD.Text) < 0)
  516. || (!_WPZD.Contains(cbbWPZD.Text)))
  517. {
  518. _WPZD.Add(cbbWPZD.Text);
  519. string wWPZD = string.Join(",", _WPZD.ToArray());
  520. config.AppSettings.Settings["WPZD"].Value = wWPZD;
  521. }
  522. //拍照放大位数
  523. List<String> _WPZF = WPZF.ToList();
  524. if ((_WPZF.IndexOf(cbbWPZF.Text) < 0)
  525. || (!_WPZF.Contains(cbbWPZF.Text)))
  526. {
  527. _WPZF.Add(cbbWPZF.Text);
  528. string wWPZF = string.Join(",", _WPZF.ToArray());
  529. config.AppSettings.Settings["WPZF"].Value = wWPZF;
  530. }
  531. //定位切割电压
  532. List<String> _WQGD = WQGD.ToList();
  533. if ((_WQGD.IndexOf(cbbWQGD.Text) < 0)
  534. || (!_WQGD.Contains(cbbWQGD.Text)))
  535. {
  536. _WQGD.Add(cbbWQGD.Text);
  537. string wWQGD = string.Join(",", _WQGD.ToArray());
  538. config.AppSettings.Settings["WQGD"].Value = wWQGD;
  539. }
  540. //定位切割放大位数
  541. List<String> _WQGF = WQGF.ToList();
  542. if ((_WQGF.IndexOf(cbbWQGF.Text) < 0)
  543. || (!_WQGF.Contains(cbbWQGF.Text)))
  544. {
  545. _WQGF.Add(cbbWQGF.Text);
  546. string wWQGF = string.Join(",", _WQGF.ToArray());
  547. config.AppSettings.Settings["WQGF"].Value = wWQGF;
  548. }
  549. //拉直操作放大位数
  550. List<String> _WLZ = WLZ.ToList();
  551. if ((_WLZ.IndexOf(cbbWLZ.Text) < 0)
  552. || (!_WLZ.Contains(cbbWLZ.Text)))
  553. {
  554. _WLZ.Add(cbbWLZ.Text);
  555. string wWLZ = string.Join(",", _WLZ.ToArray());
  556. config.AppSettings.Settings["WLZ"].Value = wWLZ;
  557. }
  558. //ScanRotate修正
  559. config.AppSettings.Settings["ScanRotCur"].Value = txtScanRotCur.Text;
  560. config.AppSettings.Settings["PixelSize_Y_Cur"].Value = txtYPSCur.Text;
  561. //FIB放大位数
  562. //List<String> _WFIB = WFIB.ToList();
  563. //if ((_WFIB.IndexOf(cbbWFIB.Text) < 0)
  564. // ||(!_WFIB.Contains(cbbWFIB.Text)))
  565. //{
  566. // _WFIB.Add(cbbWFIB.Text);
  567. // string wWFIB = string.Join(",", _WFIB.ToArray());
  568. // config.AppSettings.Settings["WFIB"].Value = wWFIB;
  569. //}
  570. MeasureParam cfm = new MeasureParam();
  571. cfm = FormHOZMainObject.m_MeasureFile.MParam;
  572. cfm.Is_Photograph = chkWIsP.Checked;
  573. cfm.FocusMode = Convert.ToInt32(config.AppSettings.Settings["Focus_Mode"].Value);
  574. cfm.PT = chkWPT.Checked;
  575. //EDS
  576. cfm.EDS = chkEDS.Checked;
  577. config.AppSettings.Settings["Is_EDS"].Value = chkEDS.Checked.ToString();
  578. cfm.EDSZ = Convert.ToSingle(txtEDSZ.Text)/1000;
  579. config.AppSettings.Settings["EDS_Z"].Value = txtEDSZ.Text;
  580. cfm.EDSV = Convert.ToSingle(cbbEDSV.Text);
  581. config.AppSettings.Settings["EDS_V"].Value = cbbEDSV.Text;
  582. cfm.EDSA = Convert.ToSingle(cbbEDSA.Text) / 1000000000;
  583. config.AppSettings.Settings["EDS_A"].Value = cbbEDSA.Text;
  584. cfm.EDSParam.XrayCollectMode = Convert.ToInt16(cboXrayMode.Text);
  585. config.AppSettings.Settings["EDS_XrayMode"].Value = cboXrayMode.Text;
  586. //自动对焦模式
  587. //cfm.FocusMode = chkManul.Checked;
  588. cfm.PTTemp = txtWPTF.Text;
  589. cfm.FIBTemp = txtWFIBF.Text;
  590. cfm.Stretch_Magnification = Convert.ToSingle(cbbWLZ.Text);
  591. cfm.Location_Magnification = Convert.ToSingle(cbbWQGF.Text);
  592. cfm.Location_Voltage = Convert.ToSingle(cbbWQGD.Text);
  593. cfm.Photograph_Magnification = Convert.ToSingle(cbbWPZF.Text);
  594. cfm.Photograph_Voltage = Convert.ToSingle(cbbWPZD.Text);
  595. //cfm.FIB_Magnification = Convert.ToSingle(cbbWFIB.Text);
  596. //亮度对比度
  597. cfm.FIBDo = chkFIBAdjust.Checked;
  598. cfm.FIBAutoBC = chkFIBAtuoAdjust.Checked;
  599. cfm.FIBB = Convert.ToSingle(tbBrightness.Text);
  600. cfm.FIBC = Convert.ToSingle(tbContrast.Text);
  601. //放大倍数挡位
  602. cfm.MagComp = Convert.ToBoolean(chkGearSwitch.Checked);
  603. cfm.MagRange1 = Convert.ToSingle(tbGear1to2.Text);
  604. cfm.MagRange2 = Convert.ToSingle(tbGear2to3.Text);
  605. cfm.MagRange3 = Convert.ToSingle(tbGear3to4.Text);
  606. cfm.MagCompX1 = Convert.ToSingle(tbGear1to2_Xdeviation.Text);
  607. cfm.MagCompX2 = Convert.ToSingle(tbGear2to3_Xdeviation.Text);
  608. cfm.MagCompX3 = Convert.ToSingle(tbGear3to4_Xdeviation.Text);
  609. cfm.MagCompY1 = Convert.ToSingle(tbGear1to2_Ydeviation.Text);
  610. cfm.MagCompY2 = Convert.ToSingle(tbGear2to3_Ydeviation.Text);
  611. cfm.MagCompY3 = Convert.ToSingle(tbGear3to4_Ydeviation.Text);
  612. //倾斜观测
  613. cfm.Tilt = chkWqxkc.Checked;
  614. //移动Z轴大小
  615. cfm.PixelSizeCor = Convert.ToSingle(txtYPSCur.Text);
  616. if (cbbWXZ.SelectedIndex == 0)
  617. {
  618. cfm.Correction_Angle = 36;
  619. }
  620. else
  621. {
  622. cfm.Correction_Angle = 54;
  623. }
  624. cfm.SampleName = cbbWYP.Text;
  625. cfm.Firm = cbbWCS.Text;
  626. //设置配置文件默认值
  627. config.AppSettings.Settings["Is_FIBDo"].Value = cfm.FIBDo.ToString();
  628. config.AppSettings.Settings["Is_FIBAutoBc"].Value = cfm.FIBAutoBC.ToString();
  629. config.AppSettings.Settings["FIBB"].Value = cfm.FIBB.ToString();
  630. config.AppSettings.Settings["FIBC"].Value = cfm.FIBC.ToString();
  631. config.AppSettings.Settings["MagComp"].Value = cfm.MagComp.ToString();
  632. config.AppSettings.Settings["MagRange1"].Value = cfm.MagRange1.ToString();
  633. config.AppSettings.Settings["MagRange2"].Value = cfm.MagRange2.ToString();
  634. config.AppSettings.Settings["MagRange3"].Value = cfm.MagRange3.ToString();
  635. config.AppSettings.Settings["MagCompX1"].Value = cfm.MagCompX1.ToString();
  636. config.AppSettings.Settings["MagCompX2"].Value = cfm.MagCompX2.ToString();
  637. config.AppSettings.Settings["MagCompX3"].Value = cfm.MagCompX3.ToString();
  638. config.AppSettings.Settings["MagCompY1"].Value = cfm.MagCompY1.ToString();
  639. config.AppSettings.Settings["MagCompY2"].Value = cfm.MagCompY2.ToString();
  640. config.AppSettings.Settings["MagCompY3"].Value = cfm.MagCompY3.ToString();
  641. config.AppSettings.Settings["Is_Photograph"].Value = cfm.Is_Photograph.ToString();
  642. config.AppSettings.Settings["PT_Depostion"].Value = cfm.PT.ToString();
  643. config.AppSettings.Settings["PT_ELYFile"].Value = cfm.PTTemp;
  644. config.AppSettings.Settings["FIB_ELYFile"].Value = cfm.FIBTemp;
  645. config.AppSettings.Settings["Stretch_Magnification"].Value = cfm.Stretch_Magnification.ToString();
  646. config.AppSettings.Settings["Location_Magnification"].Value = cfm.Location_Magnification.ToString();
  647. config.AppSettings.Settings["Location_Voltage"].Value = cfm.Location_Voltage.ToString();
  648. config.AppSettings.Settings["Photograph_Magnification"].Value = cfm.Photograph_Magnification.ToString();
  649. config.AppSettings.Settings["Photograph_Voltage"].Value = cfm.Photograph_Voltage.ToString();
  650. config.AppSettings.Settings["Correction_Angle"].Value = cfm.Correction_Angle.ToString();
  651. config.AppSettings.Settings["SampleName"].Value = cfm.SampleName;
  652. config.AppSettings.Settings["Firms"].Value = cfm.Firm;
  653. config.AppSettings.Settings["FIB_Magnification"].Value = cfm.FIB_Magnification.ToString();
  654. config.AppSettings.Settings["Is_Title"].Value = cfm.Tilt.ToString();
  655. config.AppSettings.Settings["ZDistance"].Value = cfm.ZDistance.ToString();
  656. config.Save(ConfigurationSaveMode.Modified);
  657. ConfigurationManager.RefreshSection("appSettings");//重新加载新的配置文件
  658. return true;
  659. }
  660. catch (Exception ex)
  661. {
  662. LogManager.LogError(ex.Message);
  663. return false;
  664. }
  665. }
  666. /// <summary>
  667. /// 删除config文件节点中内容信息
  668. /// </summary>
  669. public bool DelConfigNodeContentInfo(string delControlName, string selName)
  670. {
  671. try
  672. {
  673. switch (delControlName)
  674. {
  675. case "WYP":
  676. //样品类型
  677. List<String> _sT = sT.ToList();
  678. _sT.Remove(selName);
  679. string wsT = string.Join(",", _sT.ToArray());
  680. config.AppSettings.Settings["Sample_Type"].Value = wsT;
  681. break;
  682. case "WCS":
  683. //厂商
  684. List<String> _firms = firms.ToList();
  685. _firms.Remove(selName);
  686. string wFirms = string.Join(",", _firms.ToArray());
  687. config.AppSettings.Settings["Firm"].Value = wFirms;
  688. break;
  689. case "WPZD":
  690. //拍照电压
  691. List<String> _WPZD = WPZD.ToList();
  692. _WPZD.Remove(selName);
  693. string wWPZD = string.Join(",", _WPZD.ToArray());
  694. config.AppSettings.Settings["WPZD"].Value = wWPZD;
  695. break;
  696. case "WPZF":
  697. //拍照放大位数
  698. List<String> _WPZF = WPZF.ToList();
  699. _WPZF.Remove(selName);
  700. string wWPZF = string.Join(",", _WPZF.ToArray());
  701. config.AppSettings.Settings["WPZF"].Value = wWPZF;
  702. break;
  703. case "WQGD"://定位切割电压
  704. List<String> _WQGD = WQGD.ToList();
  705. _WQGD.Remove(selName);
  706. string wWQGD = string.Join(",", _WQGD.ToArray());
  707. config.AppSettings.Settings["WQGD"].Value = wWQGD;
  708. break;
  709. case "WQGF": //定位切割放大位数
  710. List<String> _WQGF = WQGF.ToList();
  711. _WQGF.Remove(selName);
  712. string wWQGF = string.Join(",", _WQGF.ToArray());
  713. config.AppSettings.Settings["WQGF"].Value = wWQGF;
  714. break;
  715. case "WLZ":
  716. //拉直操作放大位数
  717. List<String> _WLZ = WLZ.ToList();
  718. _WLZ.Remove(selName);
  719. string wWLZ = string.Join(",", _WLZ.ToArray());
  720. config.AppSettings.Settings["WLZ"].Value = wWLZ;
  721. break;
  722. case "WFIB":
  723. //FIB放大倍数
  724. List<String> _WFIB = WFIB.ToList();
  725. _WFIB.Remove(selName);
  726. string wWFIB = string.Join(",", _WFIB.ToArray());
  727. config.AppSettings.Settings["WFIB"].Value = wWFIB;
  728. break;
  729. }
  730. config.Save(ConfigurationSaveMode.Modified);
  731. ConfigurationManager.RefreshSection("appSettings");//重新加载新的配置文件
  732. return true;
  733. }
  734. catch (Exception ex)
  735. {
  736. LogManager.LogError(ex.Message);
  737. return true;
  738. }
  739. }
  740. /// <summary>
  741. /// 绑定下拉菜单
  742. /// </summary>
  743. /// <param name="cb"></param>
  744. /// <param name="strGroup"></param>
  745. private void BindComboxData(ComboBox cb, string[] strGroup)
  746. {
  747. for (int i = 0; i < strGroup.Length; i++)
  748. {
  749. if (!strGroup[i].Equals(""))
  750. {
  751. cb.Items.Add(strGroup[i]);
  752. }
  753. }
  754. }
  755. /// <summary>
  756. /// 读取Config文件信息
  757. /// </summary>
  758. public void ReloadConfig()
  759. {
  760. cbbWYP.Items.Clear();
  761. cbbWCS.Items.Clear();
  762. cbbWPZD.Items.Clear();
  763. cbbWPZF.Items.Clear();
  764. cbbWQGD.Items.Clear();
  765. cbbWQGF.Items.Clear();
  766. cbbWLZ.Items.Clear();
  767. //cbbWFIB.Items.Clear();
  768. txtYPSCur.Text = config.AppSettings.Settings["PixelSize_Y_Cur"].Value.ToString();
  769. m_TemplateFilePath = config.AppSettings.Settings["TemplateFilePath"].Value.ToString();
  770. string sample_Type = config.AppSettings.Settings["Sample_Type"].Value.ToString();
  771. string firm = config.AppSettings.Settings["Firm"].Value.ToString();
  772. string WPZDTemp = config.AppSettings.Settings["WPZD"].Value.ToString();
  773. string WPZFTemp = config.AppSettings.Settings["WPZF"].Value.ToString();
  774. string WQGDTemp = config.AppSettings.Settings["WQGD"].Value.ToString();
  775. string WQGFTemp = config.AppSettings.Settings["WQGF"].Value.ToString();
  776. string WLZTemp = config.AppSettings.Settings["WLZ"].Value.ToString();
  777. string WFIBTemp = config.AppSettings.Settings["WFIB"].Value.ToString();
  778. //string ZZDistance = config.AppSettings.Settings["ZDistance"].Value.ToString();
  779. string ScanRotCur = config.AppSettings.Settings["ScanRotCur"].Value.ToString();
  780. //样品类型
  781. sT = sample_Type.Split(',');
  782. BindComboxData(cbbWYP, sT);
  783. //厂商
  784. firms = firm.Split(',');
  785. BindComboxData(cbbWCS, firms);
  786. //拍照电压
  787. WPZD = WPZDTemp.Split(',');
  788. BindComboxData(cbbWPZD, WPZD);
  789. //拍照放大位数
  790. WPZF = WPZFTemp.Split(',');
  791. BindComboxData(cbbWPZF, WPZF);
  792. //定位切割电压
  793. WQGD = WQGDTemp.Split(',');
  794. BindComboxData(cbbWQGD, WQGD);
  795. //定位切割放大位数
  796. WQGF = WQGFTemp.Split(',');
  797. BindComboxData(cbbWQGF, WQGF);
  798. //拉直操作放大位数
  799. WLZ = WLZTemp.Split(',');
  800. BindComboxData(cbbWLZ, WLZ);
  801. //FIB放大倍数
  802. //WFIB = WFIBTemp.Split(',');
  803. //BindComboxData(cbbWFIB, WFIB);
  804. txtScanRotCur.Text = ScanRotCur;
  805. //FIB亮度对比度调节
  806. chkFIBAdjust.Checked = Convert.ToBoolean(config.AppSettings.Settings["Is_FIBDo"].Value);
  807. //FIB亮度对比度自动调节
  808. chkFIBAtuoAdjust.Checked = Convert.ToBoolean(config.AppSettings.Settings["Is_FIBAutoBc"].Value);
  809. tbBrightness.Text = config.AppSettings.Settings["FIBB"].Value;
  810. tbContrast.Text = config.AppSettings.Settings["FIBC"].Value;
  811. //放大倍数挡位切换
  812. chkGearSwitch.Checked = Convert.ToBoolean(config.AppSettings.Settings["MagComp"].Value);
  813. tbGear1to2.Text = config.AppSettings.Settings["MagRange1"].Value;
  814. tbGear2to3.Text = config.AppSettings.Settings["MagRange2"].Value;
  815. tbGear3to4.Text = config.AppSettings.Settings["MagRange3"].Value;
  816. tbGear1to2_Xdeviation.Text= config.AppSettings.Settings["MagCompX1"].Value;
  817. tbGear2to3_Xdeviation.Text= config.AppSettings.Settings["MagCompX2"].Value;
  818. tbGear3to4_Xdeviation.Text= config.AppSettings.Settings["MagCompX3"].Value;
  819. tbGear1to2_Ydeviation.Text= config.AppSettings.Settings["MagCompY1"].Value;
  820. tbGear2to3_Ydeviation.Text= config.AppSettings.Settings["MagCompY2"].Value;
  821. tbGear3to4_Ydeviation.Text= config.AppSettings.Settings["MagCompY3"].Value;
  822. //设置配置文件默认值
  823. chkWIsP.Checked=Convert.ToBoolean(config.AppSettings.Settings["Is_Photograph"].Value);
  824. chkWPT.Checked = Convert.ToBoolean(config.AppSettings.Settings["PT_Depostion"].Value);
  825. //倾斜观测
  826. chkWqxkc.Checked = Convert.ToBoolean(config.AppSettings.Settings["Is_Title"].Value);
  827. //移动Z轴大小
  828. txtYPSCur.Text = config.AppSettings.Settings["PixelSize_Y_Cur"].Value;
  829. //自动对焦模式
  830. //chkManul.Checked = Convert.ToBoolean(config.AppSettings.Settings["Focus_Mode"].Value);
  831. txtWPTF.Text = config.AppSettings.Settings["PT_ELYFile"].Value;
  832. txtWFIBF.Text = config.AppSettings.Settings["FIB_ELYFile"].Value;
  833. cbbWLZ.Text = config.AppSettings.Settings["Stretch_Magnification"].Value;
  834. cbbWQGF.Text = config.AppSettings.Settings["Location_Magnification"].Value;
  835. cbbWQGD.Text = config.AppSettings.Settings["Location_Voltage"].Value;
  836. cbbWPZF.Text = config.AppSettings.Settings["Photograph_Magnification"].Value;
  837. cbbWPZD.Text = config.AppSettings.Settings["Photograph_Voltage"].Value;
  838. //cbbWFIB.Text = config.AppSettings.Settings["FIB_Magnification"].Value;
  839. string Correction_Angle = config.AppSettings.Settings["Correction_Angle"].Value;
  840. //if (Convert.ToBoolean(config.AppSettings.Settings["Is_Title"].Value))
  841. //{
  842. // cbbYDZZDX.Visible = true;
  843. // label3.Visible = true;
  844. //}
  845. //else
  846. //{
  847. // cbbYDZZDX.Visible = false;
  848. // label3.Visible = false;
  849. //}
  850. if (Correction_Angle == "36")
  851. {
  852. cbbWXZ.SelectedIndex = 0;
  853. }
  854. else
  855. {
  856. cbbWXZ.SelectedIndex = 1;
  857. }
  858. cbbWYP.Text = config.AppSettings.Settings["SampleName"].Value;
  859. cbbWCS.Text = config.AppSettings.Settings["Firms"].Value;
  860. //能谱和能谱Z轴移动位置
  861. chkEDS.Checked = Convert.ToBoolean(config.AppSettings.Settings["Is_EDS"].Value);
  862. txtEDSZ.Text = Convert.ToString(config.AppSettings.Settings["EDS_Z"].Value);
  863. cbbEDSV.Text = Convert.ToString(config.AppSettings.Settings["EDS_V"].Value);
  864. cbbEDSA.Text = Convert.ToString(config.AppSettings.Settings["EDS_A"].Value);
  865. cboXrayMode.Text = Convert.ToString(config.AppSettings.Settings["EDS_XrayMode"].Value);
  866. }
  867. /// <summary>
  868. /// 根据所选路径,读取模板文件
  869. /// </summary>
  870. public void ReadConfigInfo()
  871. {
  872. if (!ReadConfigPath.Equals(""))
  873. {
  874. ReloadConfig();
  875. ConfigFile cfm = new ConfigFile(FormHOZMainObject.m_MeasureFile.MParam);
  876. cfm.Read(ReadConfigPath);
  877. chkWIsP.Checked = cfm.m_Config.Is_Photograph;
  878. chkWPT.Checked = cfm.m_Config.PT;
  879. //自动对焦模式
  880. //cfm.FocusMode = chkManul.Checked;
  881. txtWPTF.Text = cfm.m_Config.PTTemp;
  882. txtWFIBF.Text = cfm.m_Config.FIBTemp;
  883. cbbWLZ.Text = cfm.m_Config.Stretch_Magnification.ToString();
  884. cbbWQGF.Text = cfm.m_Config.Location_Magnification.ToString();
  885. cbbWQGD.Text = cfm.m_Config.Location_Voltage.ToString();
  886. cbbWPZF.Text = cfm.m_Config.Photograph_Magnification.ToString();
  887. cbbWPZD.Text = cfm.m_Config.Photograph_Voltage.ToString();
  888. //cbbWFIB.Text = cfm.m_Config.FIB_Magnification.ToString();
  889. string Correction_Angle = cfm.m_Config.Correction_Angle.ToString();
  890. if (Correction_Angle == "36")
  891. {
  892. cbbWXZ.SelectedIndex = 0;
  893. }
  894. else
  895. {
  896. cbbWXZ.SelectedIndex = 1;
  897. }
  898. cbbWYP.Text = cfm.m_Config.SampleName;
  899. cbbWCS.Text = cfm.m_Config.Firm;
  900. }
  901. }
  902. /// <summary>
  903. /// 修改配置文件默认值
  904. /// </summary>
  905. /// <param name="sender"></param>
  906. /// <param name="e"></param>
  907. private void btnSaveDefalutPara_Click(object sender, EventArgs e)
  908. {
  909. if(chkWPT.Checked)
  910. {
  911. if (txtWPTF.Text=="")
  912. {
  913. MessageBox.Show("PT文件路径不能为空");
  914. return;
  915. }
  916. }
  917. if(txtWFIBF.Text=="")
  918. {
  919. MessageBox.Show("FIB文件路径不能为空");
  920. return;
  921. }
  922. if (EditConfig())
  923. {
  924. //MessageBox.Show("保存成功!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
  925. formHOZMain.Saveclick();
  926. }
  927. //增加一个测量文件的参数修改
  928. SaveMeasureFile();
  929. Form fParent = this.ParentForm;
  930. fParent.Close();
  931. }
  932. #endregion
  933. #region 删除下拉菜单选择项
  934. private void DelComboBoxItem_Click(object sender, EventArgs e)
  935. {
  936. if (MessageBox.Show("是否删除所选项信息?", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Information) == DialogResult.Yes)
  937. {
  938. PictureBox pbDel = (PictureBox)sender;
  939. string ctrlName = pbDel.Name.Substring(5, pbDel.Name.Length - 5);
  940. if (DelComboBoxItem(ctrlName))
  941. {
  942. //重新加载
  943. ReloadConfig();
  944. }
  945. }
  946. }
  947. /// <summary>
  948. /// 删除下拉菜单选择项
  949. /// </summary>
  950. public bool DelComboBoxItem(string controlName)
  951. {
  952. string delName = controlName;
  953. foreach (Control item in this.Controls)
  954. {
  955. if (item is ComboBox)
  956. {
  957. if (item.Name.Contains(delName))
  958. {
  959. ComboBox cb = (ComboBox)item;
  960. return DelConfigNodeContentInfo(delName, cb.Text);
  961. }
  962. }
  963. }
  964. return false;
  965. }
  966. #endregion
  967. #region 根据是否仅拍照,进行逻辑判断
  968. private void chkWIsP_CheckedChanged(object sender, EventArgs e)
  969. {
  970. if (chkWIsP.Checked)
  971. {
  972. chkWqxkc.Checked = false;
  973. chkWqxkc.Visible = false;
  974. chkWPT.Checked = false;
  975. chkWPT.Visible = false;
  976. label61.Visible = false;
  977. label59.Visible = false;
  978. txtWFIBF.Visible = false;
  979. txtWPTF.Visible = false;
  980. btnPTTemplateFile.Visible = false;
  981. btnFIBTemplateFile.Visible = false;
  982. label58.Visible = false;
  983. cbbWXZ.Visible = false;
  984. chkEDS.Visible = false;
  985. label18.Visible = false;
  986. label19.Visible = false;
  987. txtEDSZ.Visible = false;
  988. //cbbWFIB.Visible = false;
  989. //pbDelWFIB.Visible = false;
  990. FormHOZMainObject.m_MeasureType = (int)MeasureMsgManage.measureType.Photo;
  991. }
  992. else
  993. {
  994. chkWqxkc.Visible = true;
  995. chkWPT.Visible = true;
  996. label61.Visible = true;
  997. label59.Visible = true;
  998. txtWFIBF.Visible = true;
  999. txtWPTF.Visible = true;
  1000. btnPTTemplateFile.Visible = true;
  1001. btnFIBTemplateFile.Visible = true;
  1002. label58.Visible = true;
  1003. cbbWXZ.Visible = true;
  1004. chkEDS.Visible = true;
  1005. //label2.Visible = true;
  1006. //cbbWFIB.Visible = true;
  1007. //pbDelWFIB.Visible = true;
  1008. label18.Visible = true;
  1009. label19.Visible = true;
  1010. txtEDSZ.Visible = true;
  1011. if (!chkWPT.Checked)
  1012. {
  1013. FormHOZMainObject.m_MeasureType = (int)MeasureMsgManage.measureType.FIB;
  1014. }
  1015. }
  1016. CreateCutHoleList();
  1017. }
  1018. #endregion
  1019. #region 从配置文件中读取测量参数
  1020. public MeasureParam GetMeasureParam()
  1021. {
  1022. MeasureParam cfm = new MeasureParam();
  1023. //设置配置文件默认值
  1024. bool bResult = false;
  1025. bool.TryParse(config.AppSettings.Settings["Is_Photograph"].Value, out bResult);
  1026. cfm.Is_Photograph = bResult;
  1027. bool.TryParse(config.AppSettings.Settings["PT_Depostion"].Value, out bResult);
  1028. cfm.PT = bResult;
  1029. cfm.PTTemp = config.AppSettings.Settings["PT_ELYFile"].Value;
  1030. cfm.FIBTemp = config.AppSettings.Settings["FIB_ELYFile"].Value;
  1031. float fResult = (float)0.0;
  1032. float.TryParse(config.AppSettings.Settings["Stretch_Magnification"].Value, out fResult);
  1033. cfm.Stretch_Magnification = fResult;
  1034. float.TryParse(config.AppSettings.Settings["Location_Magnification"].Value, out fResult);
  1035. cfm.Location_Magnification = fResult;
  1036. float.TryParse(config.AppSettings.Settings["Location_Voltage"].Value, out fResult);
  1037. cfm.Location_Voltage = fResult;
  1038. float.TryParse(config.AppSettings.Settings["Photograph_Magnification"].Value, out fResult);
  1039. cfm.Photograph_Magnification = fResult;
  1040. float.TryParse(config.AppSettings.Settings["Photograph_Voltage"].Value, out fResult);
  1041. cfm.Photograph_Voltage = fResult;
  1042. float.TryParse(config.AppSettings.Settings["Correction_Angle"].Value, out fResult);
  1043. cfm.Correction_Angle = fResult;
  1044. cfm.SampleName = config.AppSettings.Settings["SampleName"].Value;
  1045. cfm.Firm = config.AppSettings.Settings["Firms"].Value;
  1046. cfm.AutoFocus.UP = Convert.ToSingle(ConfigurationManager.AppSettings["Focus_UP"].ToString());
  1047. cfm.AutoFocus.Down = Convert.ToSingle(ConfigurationManager.AppSettings["Focus_Down"].ToString());
  1048. cfm.AutoFocus.Step = Convert.ToSingle(ConfigurationManager.AppSettings["Focus_Step"].ToString());
  1049. cfm.AutoFocus.Range = Convert.ToSingle(ConfigurationManager.AppSettings["Focus_Range"].ToString());
  1050. cfm.AutoFocus.fStep = Convert.ToSingle(ConfigurationManager.AppSettings["Focus_FStep"].ToString());
  1051. cfm.FIBFocus.UP = Convert.ToSingle(ConfigurationManager.AppSettings["FIB_UP"].ToString());
  1052. cfm.FIBFocus.Down = Convert.ToSingle(ConfigurationManager.AppSettings["FIB_Down"].ToString());
  1053. cfm.FIBFocus.Step = Convert.ToSingle(ConfigurationManager.AppSettings["FIB_Step"].ToString());
  1054. cfm.FIBFocus.Range = Convert.ToSingle(ConfigurationManager.AppSettings["FIB_Range"].ToString());
  1055. cfm.FIBFocus.fStep = Convert.ToSingle(ConfigurationManager.AppSettings["FIB_FStep"].ToString());
  1056. cfm.AutoStigX.UP = Convert.ToSingle(ConfigurationManager.AppSettings["StigX_UP"].ToString());
  1057. cfm.AutoStigX.Down = Convert.ToSingle(ConfigurationManager.AppSettings["StigX_Down"].ToString());
  1058. cfm.AutoStigX.Step = Convert.ToSingle(ConfigurationManager.AppSettings["StigX_Step"].ToString());
  1059. cfm.AutoStigX.Range = Convert.ToSingle(ConfigurationManager.AppSettings["StigX_Range"].ToString());
  1060. cfm.AutoStigX.fStep = Convert.ToSingle(ConfigurationManager.AppSettings["StigX_FStep"].ToString());
  1061. cfm.AutoStigY.UP = Convert.ToSingle(ConfigurationManager.AppSettings["StigY_UP"].ToString());
  1062. cfm.AutoStigY.Down = Convert.ToSingle(ConfigurationManager.AppSettings["StigY_Down"].ToString());
  1063. cfm.AutoStigY.Step = Convert.ToSingle(ConfigurationManager.AppSettings["StigY_Step"].ToString());
  1064. cfm.AutoStigY.Range = Convert.ToSingle(ConfigurationManager.AppSettings["StigY_Range"].ToString());
  1065. cfm.AutoStigY.fStep = Convert.ToSingle(ConfigurationManager.AppSettings["StigY_FStep"].ToString());
  1066. bool.TryParse(config.AppSettings.Settings["Is_Title"].Value, out bResult);
  1067. cfm.Tilt = bResult;
  1068. bool.TryParse(config.AppSettings.Settings["Is_EDS"].Value, out bResult);
  1069. cfm.EDS = bResult;
  1070. float.TryParse(config.AppSettings.Settings["ZDistance"].Value, out fResult);
  1071. cfm.ZDistance = fResult;
  1072. //add by sun 2020-12-15 增加不同样品扫描速度参数,每大类样品3种扫描速度
  1073. //cfm.ScanSpeedNormal = ConfigurationManager.AppSettings["ScanSpeedNormal_"+cfm.SampleName].ToString();
  1074. //cfm.ScanSpeedFocus = ConfigurationManager.AppSettings["ScanSpeedFocus_" + cfm.SampleName].ToString();
  1075. //cfm.ScanSpeedHigh = ConfigurationManager.AppSettings["ScanSpeedHigh_" + cfm.SampleName].ToString();
  1076. LogManager.AddHardwareLog("==========参数测试==" + cfm.SampleName+"======="+ config.AppSettings.Settings["ScanSpeedNormal_0"].Value, true);
  1077. //add by sun 2020-12-15 增加不同样品扫描速度参数,每大类样品3种扫描速度 end
  1078. return cfm;
  1079. }
  1080. #endregion
  1081. #region 创建切孔列表
  1082. private void CreateCutHoleList()
  1083. {
  1084. List<CutHole> ListCutHole = FormHOZMainObject.m_MeasureFile.ListCutHole;
  1085. FormHOZMainObject.CreateCutHoleList(ListCutHole);
  1086. }
  1087. #endregion
  1088. #region 设置流程类型
  1089. private void chkWPT_CheckedChanged(object sender, EventArgs e)
  1090. {
  1091. if (chkWPT.Checked)
  1092. {
  1093. FormHOZMainObject.m_MeasureType = (int)MeasureMsgManage.measureType.PT;
  1094. }
  1095. else
  1096. {
  1097. if (!chkWIsP.Checked)
  1098. {
  1099. FormHOZMainObject.m_MeasureType = (int)MeasureMsgManage.measureType.FIB;
  1100. }
  1101. }
  1102. CreateCutHoleList();
  1103. }
  1104. #endregion
  1105. #region 关闭按钮 鼠标操作事件
  1106. private void pbClose_MouseEnter(object sender, EventArgs e)
  1107. {
  1108. pbClose.BackgroundImage = global::HOZProject.Properties.Resources.exit_2_;
  1109. }
  1110. private void pbClose_MouseLeave(object sender, EventArgs e)
  1111. {
  1112. pbClose.BackgroundImage = global::HOZProject.Properties.Resources.exit_2_;
  1113. }
  1114. #endregion
  1115. #region 输入限制只能是数字
  1116. private void textBox_KeyPress(string text, object sender, KeyPressEventArgs e)
  1117. {
  1118. //判断按键是不是要输入的类型。
  1119. if (((int)e.KeyChar < 48 || (int)e.KeyChar > 57) && (int)e.KeyChar != 8 && (int)e.KeyChar != 46)
  1120. e.Handled = true;
  1121. //小数点的处理。
  1122. if ((int)e.KeyChar == 46) //小数点
  1123. {
  1124. if (text.Length <= 0)
  1125. e.Handled = true; //小数点不能在第一位
  1126. else
  1127. {
  1128. float f;
  1129. float oldf;
  1130. bool b1 = false, b2 = false;
  1131. b1 = float.TryParse(text, out oldf);
  1132. b2 = float.TryParse(text + e.KeyChar.ToString(), out f);
  1133. if (b2 == false)
  1134. {
  1135. if (b1 == true)
  1136. e.Handled = true;
  1137. else
  1138. e.Handled = false;
  1139. }
  1140. }
  1141. }
  1142. }
  1143. private void ComboBox_KeyPress(string text, object sender, KeyPressEventArgs e)
  1144. {
  1145. //允许输入数字、小数点、删除键和负号
  1146. if ((e.KeyChar < 48 || e.KeyChar > 57) && e.KeyChar != 8 && e.KeyChar != (char)('.') && e.KeyChar != (char)('-'))
  1147. {
  1148. MessageBox.Show("请输入正确的数字");
  1149. text = "";
  1150. e.Handled = true;
  1151. }
  1152. if (e.KeyChar == (char)('-'))
  1153. {
  1154. if (text != "")
  1155. {
  1156. MessageBox.Show("请输入正确的数字");
  1157. text = "";
  1158. e.Handled = true;
  1159. }
  1160. }
  1161. //小数点只能输入一次
  1162. if (e.KeyChar == (char)('.') && ((ComboBox)sender).Text.IndexOf('.') != -1)
  1163. {
  1164. MessageBox.Show("请输入正确的数字");
  1165. text = "";
  1166. e.Handled = true;
  1167. }
  1168. //第一位不能为小数点
  1169. if (e.KeyChar == (char)('.') && ((ComboBox)sender).Text == "")
  1170. {
  1171. MessageBox.Show("请输入正确的数字");
  1172. text = "";
  1173. e.Handled = true;
  1174. }
  1175. //第一位是0,第二位必须为小数点
  1176. if (e.KeyChar != (char)('.') && ((ComboBox)sender).Text == "0")
  1177. {
  1178. MessageBox.Show("请输入正确的数字");
  1179. text = "";
  1180. e.Handled = true;
  1181. }
  1182. //第一位是负号,第二位不能为小数点
  1183. if (((ComboBox)sender).Text == "-" && e.KeyChar == (char)('.'))
  1184. {
  1185. MessageBox.Show("请输入正确的数字");
  1186. text = "";
  1187. e.Handled = true;
  1188. }
  1189. }
  1190. private void cbbWPZD_KeyPress(object sender, KeyPressEventArgs e)
  1191. {
  1192. ComboBox_KeyPress(cbbWPZD.Text, sender, e);
  1193. }
  1194. private void cbbWPZF_KeyPress(object sender, KeyPressEventArgs e)
  1195. {
  1196. ComboBox_KeyPress(cbbWPZF.Text, sender, e);
  1197. }
  1198. private void cbbWQGD_KeyPress(object sender, KeyPressEventArgs e)
  1199. {
  1200. ComboBox_KeyPress(cbbWQGD.Text, sender, e);
  1201. }
  1202. private void cbbWQGF_KeyPress(object sender, KeyPressEventArgs e)
  1203. {
  1204. ComboBox_KeyPress(cbbWQGF.Text, sender, e);
  1205. }
  1206. private void cbbWLZ_KeyPress(object sender, KeyPressEventArgs e)
  1207. {
  1208. ComboBox_KeyPress(cbbWLZ.Text, sender, e);
  1209. }
  1210. #endregion
  1211. #region Z轴的保护范围
  1212. private void chkWqxkc_CheckedChanged(object sender, EventArgs e)
  1213. {
  1214. //if (chkWqxkc.Checked)
  1215. //{
  1216. // label3.Visible = true;
  1217. // cbbYDZZDX.Visible = true;
  1218. //}
  1219. //else
  1220. //{
  1221. // label3.Visible = false;
  1222. // cbbYDZZDX.Visible = false;
  1223. //}
  1224. }
  1225. private void txtYPSCur_TextChanged(object sender, EventArgs e)
  1226. {
  1227. if (txtYPSCur.Text!="")
  1228. {
  1229. if (Convert.ToSingle(txtYPSCur.Text)>5)
  1230. {
  1231. MessageBox.Show("数值最大为5");
  1232. txtYPSCur.Text = "5";
  1233. }
  1234. }
  1235. else
  1236. {
  1237. txtYPSCur.Text = "1";
  1238. }
  1239. }
  1240. private void txtYPSCur_KeyPress(object sender, KeyPressEventArgs e)
  1241. {
  1242. if (((int)e.KeyChar < 48 || (int)e.KeyChar > 57) && (int)e.KeyChar != 8 && (int)e.KeyChar != 46)
  1243. {
  1244. e.Handled = true;
  1245. }
  1246. }
  1247. #endregion
  1248. #region 参数确认
  1249. private void SaveMeasureFile()
  1250. {
  1251. //界面上的参数
  1252. FormHOZMainObject.m_MeasureFile.MParam = GetMeasureParamInfo();
  1253. //配置文件中的参数
  1254. FormHOZMainObject.m_MeasureFile.MParam.ZDistance = Convert.ToSingle(ConfigurationManager.AppSettings["ZDistance"].ToString());
  1255. FormHOZMainObject.m_MeasureFile.MParam.AutoFocus.UP = Convert.ToSingle(ConfigurationManager.AppSettings["Focus_UP"].ToString());
  1256. FormHOZMainObject.m_MeasureFile.MParam.AutoFocus.Down = Convert.ToSingle(ConfigurationManager.AppSettings["Focus_Down"].ToString());
  1257. FormHOZMainObject.m_MeasureFile.MParam.AutoFocus.Step = Convert.ToSingle(ConfigurationManager.AppSettings["Focus_Step"].ToString());
  1258. FormHOZMainObject.m_MeasureFile.MParam.AutoFocus.Range = Convert.ToSingle(ConfigurationManager.AppSettings["Focus_Range"].ToString());
  1259. FormHOZMainObject.m_MeasureFile.MParam.AutoFocus.fStep = Convert.ToSingle(ConfigurationManager.AppSettings["Focus_FStep"].ToString());
  1260. FormHOZMainObject.m_MeasureFile.MParam.FIBFocus.UP = Convert.ToSingle(ConfigurationManager.AppSettings["FIB_UP"].ToString());
  1261. FormHOZMainObject.m_MeasureFile.MParam.FIBFocus.Down = Convert.ToSingle(ConfigurationManager.AppSettings["FIB_Down"].ToString());
  1262. FormHOZMainObject.m_MeasureFile.MParam.FIBFocus.Step = Convert.ToSingle(ConfigurationManager.AppSettings["FIB_Step"].ToString());
  1263. FormHOZMainObject.m_MeasureFile.MParam.FIBFocus.Range = Convert.ToSingle(ConfigurationManager.AppSettings["FIB_Range"].ToString());
  1264. FormHOZMainObject.m_MeasureFile.MParam.FIBFocus.fStep = Convert.ToSingle(ConfigurationManager.AppSettings["FIB_FStep"].ToString());
  1265. FormHOZMainObject.m_MeasureFile.MParam.AutoStigX.UP = Convert.ToSingle(ConfigurationManager.AppSettings["StigX_UP"].ToString());
  1266. FormHOZMainObject.m_MeasureFile.MParam.AutoStigX.Down = Convert.ToSingle(ConfigurationManager.AppSettings["StigX_Down"].ToString());
  1267. FormHOZMainObject.m_MeasureFile.MParam.AutoStigX.Step = Convert.ToSingle(ConfigurationManager.AppSettings["StigX_Step"].ToString());
  1268. FormHOZMainObject.m_MeasureFile.MParam.AutoStigX.Range = Convert.ToSingle(ConfigurationManager.AppSettings["StigX_Range"].ToString());
  1269. FormHOZMainObject.m_MeasureFile.MParam.AutoStigX.fStep = Convert.ToSingle(ConfigurationManager.AppSettings["StigX_FStep"].ToString());
  1270. FormHOZMainObject.m_MeasureFile.MParam.AutoStigY.UP = Convert.ToSingle(ConfigurationManager.AppSettings["StigY_UP"].ToString());
  1271. FormHOZMainObject.m_MeasureFile.MParam.AutoStigY.Down = Convert.ToSingle(ConfigurationManager.AppSettings["StigY_Down"].ToString());
  1272. FormHOZMainObject.m_MeasureFile.MParam.AutoStigY.Step = Convert.ToSingle(ConfigurationManager.AppSettings["StigY_Step"].ToString());
  1273. FormHOZMainObject.m_MeasureFile.MParam.AutoStigY.Range = Convert.ToSingle(ConfigurationManager.AppSettings["StigY_Range"].ToString());
  1274. FormHOZMainObject.m_MeasureFile.MParam.AutoStigY.fStep = Convert.ToSingle(ConfigurationManager.AppSettings["StigY_FStep"].ToString());
  1275. FormHOZMainObject.m_MeasureFile.IsModified = true;
  1276. FormHOZMainObject.m_MeasureFile.MParam.ScanRotCor = Convert.ToSingle(ConfigurationManager.AppSettings["ScanRotCur"].ToString());
  1277. FormHOZMainObject.m_MeasureFile.MParam.PixelSizeCor = Convert.ToSingle(ConfigurationManager.AppSettings["PixelSize_Y_Cur"].ToString());
  1278. FormHOZMainObject.m_MeasureFile.MParam.EDS = Convert.ToBoolean(ConfigurationManager.AppSettings["Is_EDS"].ToString());
  1279. FormHOZMainObject.m_MeasureFile.MParam.EDSZ = Convert.ToSingle(ConfigurationManager.AppSettings["EDS_Z"].ToString()) / 1000;
  1280. FormHOZMainObject.m_MeasureFile.MParam.EDSV = Convert.ToSingle(ConfigurationManager.AppSettings["EDS_V"].ToString());
  1281. FormHOZMainObject.m_MeasureFile.MParam.EDSA = Convert.ToSingle(ConfigurationManager.AppSettings["EDS_A"].ToString()) / 1000000000;
  1282. FormHOZMainObject.m_MeasureFile.MParam.EDSParam.XrayCollectMode =Convert.ToInt16( ConfigurationManager.AppSettings["EDS_XrayMode"].ToString());
  1283. if (Directory.Exists(FormHOZMainObject.m_MeasureFile.FilePath))//如果已经存在硬盘上要重新保存文件
  1284. {
  1285. FormHOZMainObject.m_MeasureFile.Save();
  1286. }
  1287. }
  1288. private void button1_Click(object sender, EventArgs e)
  1289. {
  1290. //保存测量文件的参数
  1291. SaveMeasureFile();
  1292. }
  1293. #endregion
  1294. private void chkFIBAdjust_CheckedChanged(object sender, EventArgs e)
  1295. {
  1296. if (!chkFIBAdjust.Checked)
  1297. {
  1298. chkFIBAtuoAdjust.Checked = false;
  1299. chkFIBAtuoAdjust.Visible = false;
  1300. }
  1301. else
  1302. {
  1303. chkFIBAtuoAdjust.Visible = true;
  1304. }
  1305. if (chkFIBAtuoAdjust.Checked)
  1306. {
  1307. label4.Visible = false;
  1308. tbBrightness.Visible = false;
  1309. label7.Visible = false;
  1310. label5.Visible = false;
  1311. tbContrast.Visible = false;
  1312. label8.Visible = false;
  1313. }
  1314. else
  1315. {
  1316. label4.Visible = true;
  1317. tbBrightness.Visible = true;
  1318. label7.Visible = true;
  1319. label5.Visible = true;
  1320. tbContrast.Visible = true;
  1321. label8.Visible = true;
  1322. }
  1323. }
  1324. private void chkFIBAtuoAdjust_CheckedChanged(object sender, EventArgs e)
  1325. {
  1326. if (chkFIBAtuoAdjust.Checked)
  1327. {
  1328. label4.Visible = false;
  1329. tbBrightness.Visible = false;
  1330. label7.Visible = false;
  1331. label5.Visible = false;
  1332. tbContrast.Visible = false;
  1333. label8.Visible = false;
  1334. }
  1335. else
  1336. {
  1337. label4.Visible = true;
  1338. tbBrightness.Visible = true;
  1339. label7.Visible = true;
  1340. label5.Visible = true;
  1341. tbContrast.Visible = true;
  1342. label8.Visible = true;
  1343. }
  1344. }
  1345. private void tbBrightness_KeyPress(object sender, KeyPressEventArgs e)
  1346. {
  1347. textBox_KeyPress(tbBrightness.Text, sender, e);
  1348. }
  1349. private void tbContrast_KeyPress(object sender, KeyPressEventArgs e)
  1350. {
  1351. textBox_KeyPress(tbContrast.Text, sender, e);
  1352. }
  1353. private void tbGear1to2_KeyPress(object sender, KeyPressEventArgs e)
  1354. {
  1355. textBox_KeyPress(tbGear1to2.Text, sender, e);
  1356. }
  1357. private void tbGear2to3_KeyPress(object sender, KeyPressEventArgs e)
  1358. {
  1359. textBox_KeyPress(tbGear2to3.Text, sender, e);
  1360. }
  1361. private void tbGear3to4_KeyPress(object sender, KeyPressEventArgs e)
  1362. {
  1363. textBox_KeyPress(tbGear3to4.Text, sender, e);
  1364. }
  1365. private void tbGear1to2_Xdeviation_KeyPress(object sender, KeyPressEventArgs e)
  1366. {
  1367. textBox_KeyPress(tbGear1to2.Text, sender, e);
  1368. }
  1369. private void tbGear2to3_Xdeviation_KeyPress(object sender, KeyPressEventArgs e)
  1370. {
  1371. textBox_KeyPress(tbGear2to3.Text, sender, e);
  1372. }
  1373. private void tbGear3to4_Xdeviation_KeyPress(object sender, KeyPressEventArgs e)
  1374. {
  1375. textBox_KeyPress(tbGear3to4.Text, sender, e);
  1376. }
  1377. private void tbGear1to2_Ydeviation_KeyPress(object sender, KeyPressEventArgs e)
  1378. {
  1379. textBox_KeyPress(tbGear1to2.Text, sender, e);
  1380. }
  1381. private void tbGear2to3_Ydeviation_KeyPress(object sender, KeyPressEventArgs e)
  1382. {
  1383. textBox_KeyPress(tbGear2to3.Text, sender, e);
  1384. }
  1385. private void tbGear3to4_Ydeviation_KeyPress(object sender, KeyPressEventArgs e)
  1386. {
  1387. textBox_KeyPress(tbGear3to4.Text, sender, e);
  1388. }
  1389. private void tbContrast_MaskInputRejected(object sender, MaskInputRejectedEventArgs e)
  1390. {
  1391. }
  1392. private void tbContrast_KeyPress_1(object sender, KeyPressEventArgs e)
  1393. {
  1394. }
  1395. private void tbContrast_TextChanged(object sender, EventArgs e)
  1396. {
  1397. if(Convert.ToInt32(tbContrast.Text)>100|| Convert.ToInt32(tbContrast.Text)<0)
  1398. {
  1399. tbContrast.Text="0";
  1400. }
  1401. }
  1402. private void tbBrightness_TextChanged(object sender, EventArgs e)
  1403. {
  1404. if (Convert.ToInt32(tbBrightness.Text) > 100 || Convert.ToInt32(tbBrightness.Text) < 0)
  1405. {
  1406. tbBrightness.Text = "0";
  1407. }
  1408. }
  1409. private void btnHandSavePoints_Click(object sender, EventArgs e)
  1410. {
  1411. UserControls.FormExportPoints uCExport = new UserControls.FormExportPoints();
  1412. uCExport.ShowDialog();
  1413. List<CutHole> ListCutHole = uCExport.ListCutHole;
  1414. //文件路径
  1415. //string CutHoleFilePath = FormHOZMainObject.m_MeasureFile.CutHoleFilePath;
  1416. FormHOZMainObject.CreateCutHoleList(ListCutHole);
  1417. FormHOZMainObject.m_MeasureFile.ListCutHole = ListCutHole;
  1418. //显示导入的切孔数量
  1419. lblCutHoleCount.Text = string.Format("成功导入{0}个切孔", ListCutHole.Count);
  1420. //tbCutHoleFilePath.Text = CutHoleFilePath;
  1421. //保存测量文件
  1422. if (Directory.Exists(FormHOZMainObject.m_MeasureFile.FilePath))
  1423. {
  1424. FormHOZMainObject.m_MeasureFile.Save();
  1425. }
  1426. }
  1427. private void cbbWYP_SelectedIndexChanged(object sender, EventArgs e)
  1428. {
  1429. SetTypel();
  1430. }
  1431. private void SetTypel()
  1432. {
  1433. if (cbbWYP.Text == "0")
  1434. {
  1435. //cbbWCS.Text = FormHOZMainObject.m_MeasureFile.MParam.VendorType0;//厂商
  1436. cbbWLZ.Text = FormHOZMainObject.m_MeasureFile.MParam.StraightenTimesType0;//拉直放大倍数
  1437. cbbWQGD.Text = FormHOZMainObject.m_MeasureFile.MParam.PositioningVoltageeType0;//定位电压
  1438. cbbWQGF.Text = FormHOZMainObject.m_MeasureFile.MParam.PositioningTimesType0;//定位放大倍数
  1439. cbbWPZD.Text = FormHOZMainObject.m_MeasureFile.MParam.PhotoVoltageeType0;//拍照电压
  1440. cbbWPZF.Text = FormHOZMainObject.m_MeasureFile.MParam.PhotoTimesType0;//拍照放大倍数
  1441. cbbEDSV.Text = FormHOZMainObject.m_MeasureFile.MParam.SEMVoltageeType0;//能谱电压值
  1442. cbbEDSA.Text = FormHOZMainObject.m_MeasureFile.MParam.SEMCurrentType0;//能谱电流值
  1443. label27.Text = "0-AA Hole";
  1444. }
  1445. else
  1446. if (cbbWYP.Text == "1")
  1447. {
  1448. //cbbWCS.Text = FormHOZMainObject.m_MeasureFile.MParam.VendorType1;//厂商
  1449. cbbWLZ.Text = FormHOZMainObject.m_MeasureFile.MParam.StraightenTimesType1;//拉直放大倍数
  1450. cbbWQGD.Text = FormHOZMainObject.m_MeasureFile.MParam.PositioningVoltageeType1;//定位电压
  1451. cbbWQGF.Text = FormHOZMainObject.m_MeasureFile.MParam.PositioningTimesType1;//定位放大倍数
  1452. cbbWPZD.Text = FormHOZMainObject.m_MeasureFile.MParam.PhotoVoltageeType1;//拍照电压
  1453. cbbWPZF.Text = FormHOZMainObject.m_MeasureFile.MParam.PhotoTimesType1;//拍照放大倍数
  1454. cbbEDSV.Text = FormHOZMainObject.m_MeasureFile.MParam.SEMVoltageeType1;//能谱电压值
  1455. cbbEDSA.Text = FormHOZMainObject.m_MeasureFile.MParam.SEMCurrentType1;//能谱电流值
  1456. label27.Text = "1-AA区";
  1457. }
  1458. else
  1459. if (cbbWYP.Text == "2")
  1460. {
  1461. //cbbWCS.Text = FormHOZMainObject.m_MeasureFile.MParam.VendorType2;//厂商
  1462. cbbWLZ.Text = FormHOZMainObject.m_MeasureFile.MParam.StraightenTimesType2;//拉直放大倍数
  1463. cbbWQGD.Text = FormHOZMainObject.m_MeasureFile.MParam.PositioningVoltageeType2;//定位电压
  1464. cbbWQGF.Text = FormHOZMainObject.m_MeasureFile.MParam.PositioningTimesType2;//定位放大倍数
  1465. cbbWPZD.Text = FormHOZMainObject.m_MeasureFile.MParam.PhotoVoltageeType2;//拍照电压
  1466. cbbWPZF.Text = FormHOZMainObject.m_MeasureFile.MParam.PhotoTimesType2;//拍照放大倍数
  1467. cbbEDSV.Text = FormHOZMainObject.m_MeasureFile.MParam.SEMVoltageeType2;//能谱电压值
  1468. cbbEDSA.Text = FormHOZMainObject.m_MeasureFile.MParam.SEMCurrentType2;//能谱电流值
  1469. label27.Text = "2-Pad bending";
  1470. }
  1471. else
  1472. if (cbbWYP.Text == "3")
  1473. {
  1474. //cbbWCS.Text = FormHOZMainObject.m_MeasureFile.MParam.VendorType3;//厂商
  1475. cbbWLZ.Text = FormHOZMainObject.m_MeasureFile.MParam.StraightenTimesType3;//拉直放大倍数
  1476. cbbWQGD.Text = FormHOZMainObject.m_MeasureFile.MParam.PositioningVoltageeType3;//定位电压
  1477. cbbWQGF.Text = FormHOZMainObject.m_MeasureFile.MParam.PositioningTimesType3;//定位放大倍数
  1478. cbbWPZD.Text = FormHOZMainObject.m_MeasureFile.MParam.PhotoVoltageeType3;//拍照电压
  1479. cbbWPZF.Text = FormHOZMainObject.m_MeasureFile.MParam.PhotoTimesType3;//拍照放大倍数
  1480. cbbEDSV.Text = FormHOZMainObject.m_MeasureFile.MParam.SEMVoltageeType3;//能谱电压值
  1481. cbbEDSA.Text = FormHOZMainObject.m_MeasureFile.MParam.SEMCurrentType3;//能谱电流值
  1482. label27.Text = "3-DDIC";
  1483. }
  1484. else
  1485. if (cbbWYP.Text == "4")
  1486. {
  1487. //cbbWCS.Text = FormHOZMainObject.m_MeasureFile.MParam.VendorType3;//厂商
  1488. cbbWLZ.Text = FormHOZMainObject.m_MeasureFile.MParam.StraightenTimesType4;//拉直放大倍数
  1489. cbbWQGD.Text = FormHOZMainObject.m_MeasureFile.MParam.PositioningVoltageeType4;//定位电压
  1490. cbbWQGF.Text = FormHOZMainObject.m_MeasureFile.MParam.PositioningTimesType4;//定位放大倍数
  1491. cbbWPZD.Text = FormHOZMainObject.m_MeasureFile.MParam.PhotoVoltageeType4;//拍照电压
  1492. cbbWPZF.Text = FormHOZMainObject.m_MeasureFile.MParam.PhotoTimesType4;//拍照放大倍数
  1493. cbbEDSV.Text = FormHOZMainObject.m_MeasureFile.MParam.SEMVoltageeType4;//能谱电压值
  1494. cbbEDSA.Text = FormHOZMainObject.m_MeasureFile.MParam.SEMCurrentType4;//能谱电流值
  1495. label27.Text = "4-射频IC-1";
  1496. }
  1497. else
  1498. if (cbbWYP.Text == "5")
  1499. {
  1500. //cbbWCS.Text = FormHOZMainObject.m_MeasureFile.MParam.VendorType3;//厂商
  1501. cbbWLZ.Text = FormHOZMainObject.m_MeasureFile.MParam.StraightenTimesType5;//拉直放大倍数
  1502. cbbWQGD.Text = FormHOZMainObject.m_MeasureFile.MParam.PositioningVoltageeType5;//定位电压
  1503. cbbWQGF.Text = FormHOZMainObject.m_MeasureFile.MParam.PositioningTimesType5;//定位放大倍数
  1504. cbbWPZD.Text = FormHOZMainObject.m_MeasureFile.MParam.PhotoVoltageeType5;//拍照电压
  1505. cbbWPZF.Text = FormHOZMainObject.m_MeasureFile.MParam.PhotoTimesType5;//拍照放大倍数
  1506. cbbEDSV.Text = FormHOZMainObject.m_MeasureFile.MParam.SEMVoltageeType5;//能谱电压值
  1507. cbbEDSA.Text = FormHOZMainObject.m_MeasureFile.MParam.SEMCurrentType5;//能谱电流值
  1508. label27.Text = "5-射频IC-1";
  1509. }
  1510. }
  1511. }
  1512. }