//用于提取参数 保存到文件 public BaseKeyLayerParams(KeyLayerParams layer) { ycbh = layer.ycbh; ycsd = layer.ycsd; mcms = layer.mcms; fypjxs = layer.fypjxs; fypjxsxz = layer.fypjxsxz; gzmtjsj = layer.gzmtjsj; cfcdcjwy = layer.cfcdcjwy; gzmtjjl = layer.gzmtjjl; zx = layer.zx; qx = layer.qx; cdyxbj = layer.cdyxbj; gdydj = layer.gdydj; qxhckj = layer.qxhckj; cfkckjjl = layer.cfkckjjl; sjxcxs = layer.sjxcxs; yczdxcz = layer.yczdxcz; jsdjscjwy = layer.jsdjscjwy; jsdjslcwy = layer.jsdjscjwy; //套管安全系数部分 tgwj = layer.tgwj; tgbh = layer.tgbh; tgtxml = layer.tgtxml; lsqycd = layer.lsqycd; klqd = layer.klqd; lsyl = layer.lsyl; lsaqxs = layer.lsaqxs; jqqycd = layer.jqqycd; kjqd = layer.kjqd; zdjqyl = layer.zdjqyl; zdjqyb = layer.zdjqyb; jqaqxs = layer.jqaqxs; }
//计算关键层和竖三带 private void click_showKeyRow(object sender, RoutedEventArgs e) { //先撤销之前的变色 foreach (KeyLayerParams nbr in keyLayers) { layers[nbr.ycbh - 1].IsKeyLayer = false; } //当前关键层变色显示 int[] biaoHaoList = null; double[] pjxsList = null; bool isOk = getKeyLayer(ref biaoHaoList, ref pjxsList); if(!isOk) { return; } else if (biaoHaoList == null || pjxsList == null) { MessageBox.Show("未计算出关键层,请检查数据合理性"); return; } keyLayers.Clear(); int count = biaoHaoList.Length; for (int i = 0; i < count; i++) { KeyLayerParams layer = new KeyLayerParams(this); layer.ycbh = biaoHaoList[i]; layer.fypjxs = pjxsList[i]; layer.ycsd = layers[biaoHaoList[i] - 1].LeiJiShenDu; layer.mcms = layers[biaoHaoList[i] - 1].JuLiMeiShenDu; layer.fypjxsxz = layer.fypjxs * pjxsxz; keyLayers.Add(layer); layers[biaoHaoList[i] - 1].IsKeyLayer = true; } //竖三带计算 try { var array1 = (MWNumericArray)logic.calHm(FuYanXCL, CaiGao, SuiZhangXS, Mcqj); double maoLuoDai = array1.ToScalarDouble(); maoLuoDaiTb.Text = maoLuoDai.ToString("f3"); var array2 = (MWNumericArray)logic.calHl(CaiGao, 1); double lieXiDai = array2.ToScalarDouble(); lieXiDaiTb.Text = lieXiDai.ToString("f3"); bool bWanquDai = false; for (int i = keyLayers.Count; i > 0; i--) { if (keyLayers[i - 1].ycsd > lieXiDai) { continue; } bWanquDai = true; wanQuDaiIndex = i - 1; double wanquDai = keyLayers[i - 1].ycsd; wanQuDaiTb.Text = wanquDai.ToString("f3"); break; } if(!bWanquDai) { MessageBox.Show("没有找到弯曲带,请检查数据合理性"); } } catch (Exception) { e.ToString(); MessageBox.Show("竖三带计算出错,请检查数据合理性"); } }
//打开文件 public bool openFile(string filePath) { if (filePath == null) { FilePath = filePath; return true; } object obj = DataSaveAndRestore.restoreObj(filePath); if (obj == null || !(obj is DataSaveAndRestore.DataToSave)) { return false; } DataSaveAndRestore.DataToSave data = obj as DataSaveAndRestore.DataToSave; //恢复基本参数 layers.Clear(); foreach (BaseLayerBaseParams baseParam in data.Layers) { LayerBaseParams layer = new LayerBaseParams(this, baseParam); layers.Add(layer); } //恢复关键层数据 keyLayers.Clear(); foreach (BaseKeyLayerParams baseParam in data.KeyLayers) { KeyLayerParams layer = new KeyLayerParams(this, baseParam); keyLayers.Add(layer); } //恢复关键层其他数据 if (data.KeyLayerData != null && data.KeyLayerData.Count == 13) { int i = 0; mcqj = data.KeyLayerData[i++]; FuYanXCL = data.KeyLayerData[i++]; CaiGao = data.KeyLayerData[i++]; SuiZhangXS = data.KeyLayerData[i++]; maoLuoDaiTb.Text = data.KeyLayerData[i++].ToString("f3"); lieXiDaiTb.Text = data.KeyLayerData[i++].ToString("f3"); wanQuDaiTb.Text = data.KeyLayerData[i++].ToString("f3"); mchd = data.KeyLayerData[i++]; pjxsxz = data.KeyLayerData[i++]; hcqZxcd = data.KeyLayerData[i++]; hcqQxcd = data.KeyLayerData[i++]; gzmsd = data.KeyLayerData[i++]; jswzjl = data.KeyLayerData[i++]; //没有刷新ui meiCengQingJIaoTb.Text = mcqj + ""; fuYanXCLTb.Text = FuYanXCL + ""; caiGaoTb.Text = CaiGao + ""; suiZhangXSTb.Text = SuiZhangXS + ""; meiCengHouDuTb.Text = mchd + ""; xiuZhengXishuTb.Text = pjxsxz + ""; hcqZXcdTb.Text = hcqZxcd + ""; hcqQXcdTb.Text = hcqQxcd + ""; gZMTJSDTb.Text = gzmsd + ""; jswzjlTb.Text = jswzjl + ""; } //恢复水泥环历史数据 zengYis.Clear(); foreach (BaseZengYiParams baseParam in data.ZengYis) { ZengYiParams param = new ZengYiParams(this, baseParam); zengYis.Add(param); } //恢复人工设计数据 manuDesignParams.copyAndEvent(data.ManuDesignParams); FilePath = filePath; return true; }