通过C#完成窗体开发,掌握定义类及常用控件(CheckListbox、Listbox、Chart、DataGridView)的使用及数据绑定。
基于Python及人工神经网络(ANN)建立加速度反应谱曲线预测模型,通过输入影响系数最大值、特征周期及阻尼比预测规范反应谱曲线。
SRP第一课的学习任务为尝试开发如图1所示的winForm窗体。本模板实例已开源,对C#编程感兴趣的朋友可点击“阅读原文”查看。在结构专业领域,AutoCAD、Revit、Etabs、SAP等主流软件均提供了C#的接口,因此掌握C#将会是你结构生涯中的一大利器!
图1学习任务一:C#窗体示例关键知识点
类的定义
///summary
///国家反应谱
////summary
publicclassGBCodeSpectrum
{
///summary
///阻尼比
////summary
privatedoubleDampingRatio{set;get;}
///summary
///特征周期值
////summary
privatedoubleModelTg{set;get;}
///summary
///地震影响系数最大值
////summary
privatedoubleModelAfaMax{set;get;}
///summary
///6s后是否拉平处理
////summary
privateboolis6Horizontal{set;get;}
///summary
///反应谱曲线
////summary
privateListSpectrumParamSpectrumValues{set;get;}
}
函数指针Func及Action
//5Tg到6.0规范公式
Funcdouble,doublegetAfa=subPeriod=
{
return(this.Factor2*Math.Pow(0.2,this.Gamma)-this.Factor1*(subPeriod-5*this.ModelTg))*this.ModelAfaMax;
};
……………
/*省略*/
………………
//Tg到5Tg
elseif(period=5*this.ModelTg)
returnMath.Pow(this.ModelTg/period,this.Gamma)*this.Factor2*this.ModelAfaMax;
//6s内
elseif(period=6)returngetAfa(period);
//6s外
elsereturnthis.is6Horizontal?getAfa(6):getAfa(period);
简单LINQ:form,where,select
///summary
///反应谱列表
////summary
publicListGBCodeSpectrumSpectrumList
{
get
{
return(fromspectruminthis.spectrumList
selectspectrum).ToList();
}
}
反射的使用
///summary
///获得反应谱结果
////summary
///paramname="propertyName"属性名称/param
///returns属性值列表/returns
publicListdoubleGetValueList(stringpropertyName)
{
returnthis.SpectrumValues.GetPropertyList(propertyName).ConvertAll(d=(double)d);
}
控件的数据绑定
//获得勾选的对象
varspectrumObjs=this.SpectrumCheckListbox.GetObjects().ConvertAll(s=(GBCodeSpectrum)s);
//获得数据
vardata=this.Spectrums.GetData(spectrumObjs);
//修改表格
this.SpectrumDataGridView.AddDatas(data);
//绘图
this.Spectrums.ToChart(this.SpecturmChart,spectrumObjs);
点击“阅读原文”可查看本模板实例代码!
精彩回顾:
OpenSEESDaysEurasiainPolyU
年精选推送集锦
Python效率测试与调用.Net的基本方法
分段解析法及多软件反应谱求解结果对比探究[开源]
弹性时程分析如何考虑周期折减系数
YJKtoOpenSees:框架结构算例验证
YJKtoOpenSees:剪力墙结构算例验证PBSD年更新历史——结构抗震性能设计软件PBSD
超限工程好助手:结构抗震性能设计软件PBSD功能简介
V1.0.5.0版正式发布:免费地震动工具箱之教学视频
弹性时程分析的实现与功能测试
YTP导模工具使用手册
智能化的结构弹塑性分析全套解决方案
人工波生成功能测试[开源]
与国家高规对比浅谈反应谱的修正与完善
性能设计基本方法与PBSD的实现OpenSees
OpenSEES历史版本下载:v1.7.2-v3.1.0浅析两类纤维单元:位移元与应力元24类纤维截面剖分TCL函数浅析纤维单元的数值积分方法浅析分布塑性铰单元的数值积分方法应力元纤维单元的LocalizationIssues宏观梁柱单元的强度软化模拟浅析剪力墙宏观单元:MVLEM浅析剪力墙宏观单元:SFI-MVLEM浅析剪力墙宏观单元:分层壳单元浅析迭代(一)浅析迭代(二):基于LineSearch优化迭代算法浅析迭代(三):基于Krylov优化迭代算法SecAggregator为DispBC赋予剪切刚度乃无用功PM截面分析实例如何利用应变控制截面分析的进程低周往复加载实例:荷载位移双控SDOF非线性动力时程分析的实现与算例
工具
PC端文字识别小工具2.0[Mini_OCR]
OSRun[OpenSees运行辅助工具][开源]
FSV[OpenSees纤维截面可视化工具][开源]WilsonWu