private void bt_CheckGo_Click(object sender, EventArgs e) { MainForm mmf = this.Owner as MainForm;//主窗口 ModelForm1 mf = mmf.ModelForm; TextBox messagebox = mmf.MessageTool.Tb_out; MidasGenModel.model.Bmodel mm = mf.CurModel; if (tb_Elems.Text.Length == 0) { lb_out.Text = "提示:没有指定单元号!"; } List <int> eles = SelectCollection.StringToList(tb_Elems.Text); int num = eles.Count;//选择单元数 int i = 1; mmf.MessageTool.Tb_out.AppendText(Environment.NewLine + "************单元验算开始************"); mmf.MessageTool.Tb_out.AppendText(Environment.NewLine + " 开始验算"); foreach (int ele in eles) { //mf.CheckTable.CheckElemByNum(ref mm, ele); CodeCheck.RefreshDesignPara(ref mm, mf.CheckModel, ele); CodeCheck.CalDesignPara_lemda(ref mm, ele); CodeCheck.CalDesignPara_phi(ref mm, ele, 1); //计算y向轴压稳定系数 CodeCheck.CalDesignPara_phi(ref mm, ele, 2); //计算z向轴压稳定系数 mf.CheckTable.CheckElemByNum_N(ref mm, ele, ref mf.CheckModel); string info = " " + i.ToString() + " of " + num.ToString() + " 验算完成!"; //ReplaceLastLine(ref messagebox, info); mmf.MessageTool.Tb_out.AppendText(Environment.NewLine + info); i++; } mmf.MessageTool.Tb_out.AppendText(Environment.NewLine + "************单元验算结束************"); }
private void bt_GoCheck_Click(object sender, EventArgs e) { MainForm mmf = this.Owner as MainForm; //主窗口 ModelForm1 mf = mmf.ModelForm; //模型窗口 TextBox messagebox = mmf.MessageTool.Tb_out; MidasGenModel.model.Bmodel mm = mf.CurModel; //激活地震组合有问题 mm.RSCombineActive(cb_isdizhen.Checked);//激活地震组合 if (tb_Elems.Text.Length == 0) { lb_out.Text = "提示:没有指定单元号!"; } List <int> eles = SelectCollection.StringToList(tb_Elems.Text); int num = eles.Count;//选择单元数 int i = 1; mmf.MessageTool.Tb_out.AppendText(Environment.NewLine + "************单元验算开始************"); mmf.MessageTool.Tb_out.AppendText(Environment.NewLine + " 开始验算"); foreach (int ele in eles) { mf.CheckTable.CheckElemByNum(ref mm, ele); //lb_out.Text = "提示:"+i.ToString()+" of "+num.ToString()+ "验算完成" ; string info = " " + i.ToString() + " of " + num.ToString() + " 验算完成!"; ReplaceLastLine(ref messagebox, info); i++; } mmf.MessageTool.Tb_out.AppendText(Environment.NewLine + "************单元验算结束************"); }
/// <summary> /// 初始化对话框参数 /// </summary> public void InitForm() { MainForm mmf = this.Owner as MainForm;//主窗口 MidasGenModel.model.Bmodel mm = mmf.ModelForm.CurModel; iMaxElem = mm.MaxElem;//取得最大单元号 }
private void bt_Run_Click(object sender, EventArgs e) { if (rtb_midasin.Text.Length == 0) { rtb_midasout.Text = "没有输入Midas格式的选择集"; return; } List <int> nns = SelectCollection.StringToList(rtb_midasin.Text); MainForm mmf = this.Owner as MainForm;//主窗口 ModelForm1 mf = mmf.ModelForm; MidasGenModel.model.Bmodel mm = mf.CurModel; List <Triangle> Tras = mm.getDelaunayTriangleByNodes(nns); rtb_midasout.Clear();//清屏 rtb_midasout.AppendText("\n转换成功,共" + Tras.Count.ToString() + "个三角形"); //进行三角形过滤 if (cb_Con.Checked) { double Ang_con = double.Parse(tb_Ang.Text); List <Triangle> TransNew = new List <Triangle>(); //畸形三角形过滤 foreach (Triangle tt in Tras) { if (tt.getMaxAngle() <= Ang_con) { TransNew.Add(tt); } } Tras = TransNew;//更新新的三角形集合 rtb_midasout.AppendText("\n进行△过滤后,共" + Tras.Count.ToString() + "个三角形"); } //下面转换成板单元命令流 int i = 1; rtb_midasout.AppendText("\n*ELEMENT"); foreach (Triangle ang in Tras) { MidasGenModel.DelaunayTriangulator.Point pt1 = ang.Vertex1; MidasGenModel.DelaunayTriangulator.Point pt2 = ang.Vertex2; MidasGenModel.DelaunayTriangulator.Point pt3 = ang.Vertex3; int n1 = mm.getNode(pt1.X, pt1.Y, pt1.Z); int n2 = mm.getNode(pt2.X, pt2.Y, pt2.Z); int n3 = mm.getNode(pt3.X, pt3.Y, pt3.Z); int iNum = i + iMaxElem;//单元号 string trout = "\n " + iNum.ToString() + ", PLATE, 5, 2, " + n1 + ", " + n2 + ", " + n3; rtb_midasout.AppendText(trout); //提示信息输出 label1.Text = "提示:板单元" + i.ToString() + "已生成..."; this.Refresh(); i++; } //更新最大单元号 iMaxElem = iMaxElem + i; }