-
通过C#完成窗体开发,掌握定义类及常用控件(CheckListbox、Listbox、Chart、DataGridView)的使用及数据绑定。
-
基于Python及人工神经网络(ANN)建立加速度反应谱曲线预测模型,通过输入影响系数最大值、特征周期及阻尼比预测规范反应谱曲线。
SRP第一课的学习任务为尝试开发如图1所示的winForm窗体。本模板实例已开源,对C#编程感兴趣的朋友可点击“阅读原文”查看。在结构专业领域,AutoCAD、Revit、Etabs、SAP2000等主流软件均提供了C#的接口,因此掌握C#将会是你结构生涯中的一大利器!
-
关键知识点
-
类的定义
-
/// <summary>
-
/// 国家反应谱
-
/// </summary>
-
public class GBCodeSpectrum
-
{
-
/// <summary>
-
/// 阻尼比
-
/// </summary>
-
private double DampingRatio {set; get;}
-
-
/// <summary>
-
/// 特征周期值
-
/// </summary>
-
private double ModelTg {set; get;}
-
-
/// <summary>
-
/// 地震影响系数最大值
-
/// </summary>
-
private double ModelAfaMax {set; get;}
-
-
/// <summary>
-
/// 6s后是否拉平处理
-
/// </summary>
-
private bool is6Horizontal {set; get;}
-
-
/// <summary>
-
/// 反应谱曲线
-
/// </summary>
-
private List<SpectrumParam> SpectrumValues {set; get;}
-
}
-
函数指针Func及Action
-
//5Tg到6.0规范公式
-
Func<double,double> getAfa = subPeriod =>
-
{
-
return (this.Factor2 * Math.Pow(0.2,this.Gamma) - this.Factor1 * (subPeriod - 5 * this.ModelTg)) * this.ModelAfaMax;
-
};
-
……………
-
/*省略*/
-
………………
-
//Tg到5Tg
-
else if(period <=5*this.ModelTg)
-
return Math.Pow(this.ModelTg / period, this.Gamma) * this.Factor2 * this.ModelAfaMax;
-
//6s内
-
else if(period <=6) return getAfa(period);
-
//6s外
-
else return this.is6Horizontal ? getAfa(6): getAfa(period);
-
简单LINQ:form,where,select
-
/// <summary>
-
/// 反应谱列表
-
/// </summary>
-
publicList<GBCodeSpectrum>SpectrumList
-
{
-
get
-
{
-
return(from spectrum in this.spectrumList
-
select spectrum).ToList();
-
}
-
}
-
反射的使用
-
/// <summary>
-
/// 获得反应谱结果
-
/// </summary>
-
/// <param name="propertyName">属性名称</param>
-
/// <returns>属性值列表</returns>
-
public List<double> GetValueList(string propertyName)
-
{
-
return this.SpectrumValues.GetPropertyList(propertyName).ConvertAll(d =>(double)d);
-
}
-
控件的数据绑定
-
//获得勾选的对象
-
var spectrumObjs =this.SpectrumCheckListbox.GetObjects().ConvertAll(s =>(GBCodeSpectrum)s);
-
//获得数据
-
var data = this.Spectrums.GetData(spectrumObjs);
-
//修改表格
-
this.SpectrumDataGridView.AddDatas(data);
-
//绘图
-
this.Spectrums.ToChart(this.SpecturmChart, spectrumObjs);
点击“阅读原文”可查看本模板实例代码!
精彩回顾:
【会议总结】OpenSEES Days Eurasia 2019 in PolyU
-
PBSD
【PBSD】2019年更新历史——结构抗震性能设计软件PBSD
【PBSD】超限工程好助手:结构抗震性能设计软件PBSD功能简介
【PBSD】V1.0.5.0版正式发布:免费地震动工具箱之教学视频
【PBSD】【OpenSEES】【YTO】智能化的结构弹塑性分析全套解决方案
-
OpenSees
【OpenSEES】OpenSEES历史版本下载:v1.7.2-v3.1.0
【OpenSees】应力元纤维单元的Localization Issues
【OpenSEES】浅析迭代(二):基于LineSearch优化迭代算法
【OpenSEES】浅析迭代(三):基于Krylov优化迭代算法
【OpenSees】SecAggregator为DispBC赋予剪切刚度乃无用功
-
工具
【工具】OSRun [OpenSees运行辅助工具][开源]
【工具】FSV [OpenSees纤维截面可视化工具][开源]