下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
空间杆系结构快速蒙皮oapi控件的开发
许多大型结构使用网络结构、网络结构或刚介结构等空间杆件系统。这些复杂的结构通常需要有限的分析,在分析中,不可避免地存在着加载负荷的问题,如恒载、活载和风载。由于大倾角结构的许多特点,工程师在建模时通常只制作通用框架结构,而在构建复杂的表面覆盖工作之前,无法解决下一个加载问题。这是金元软件在工程应用中的一个巨大障碍。本文在这方面讨论了大型高速表面单元的进程,以及在设计中使用程序编制和应用于大型结构的程序。文献中讨论基于CAD技术的蒙板结构程序的开发,该程序可以实现对SAP2000及ANSYS等各类通用有限元软件中的空间杆系结构进行蒙板.但该程序尚有不足之处,在于必须先将几何模型导入到CAD中进行转换后再导出到有限元软件中,若能直接在有限元软件中实现蒙板,将具备更高的效率.本文拟通过对SAP2000进行二次开发,从而直接在SAP2000中实现蒙板功能.SAP2000软件已有近40年的发展历史,是一款集成化、高效率和实用的通用结构分析与设计软件,在世界范围内广泛应用.从11.0版本之后,SAP2000开始引进了SAP2000API(ApplicationProgrammingInterface),即应用软件编程接口.用户可以编写程序,通过API调用SAP2000的内部功能,实现模型的自动创建、自动分析和自动结果输出.这给了用户一个宽阔的自定义平台.而开发平台语言既有微软的各种.NET语言,如C#、VB.NET、F#等,亦可以是EXCEL、WORD内嵌的VBA语句,甚至是MATLAB等语言.有了API这个开发平台,用户可以实现对SAP2000的建模、分析、优化、计算结果提取等灵活处理,建立与其他软件的数据连接平台.在这几种开发语言及平台中,.NET平台具有非常强大的编程能力,它可以开发出可直接内嵌于SAP2000内部的OAPI插件库,这与VBA等外部控制程序具有很大的不同,可极大地提升SAP2000的使用功能.至今为止,涉及SAP2000API的相关文献较少,最常见的文献是金土木公司余承飞的网络文献《SAP2000API指南》,文中介绍了SAP2000API相关的各项开发工作.此外,冯克义在第一届金土木结构软件全国用户大会会议上讨论了利用VBA实现ANSYS与SAP2000两个软件平台中的数据连接.傅建清讨论了利用VBA语言对SAP2000软件进行二次开发.邱元等介绍了利用C#进行网壳快速建模.本文将介绍以.NET为开发平台,以C#为开发语言,利用SAP2000的API函数,在基于方位角定义的多边形自动构建方法基础上,开发SAP2000空间杆系蒙板OAPI插件的全过程.1程序应用模块SAP2000OAPI插件的开发流程如图1所示.以本项目为例进行说明.(1)打开VisualStudio建立一个Windows类库,如mengban.cs.(2)添加对SAP2000.EXE的引用,建立一个名字为cPlugin的类,添加main函数(因为SAP2000在执行插件时,会调用相应的cPlugin内的main函数.)为了实现可视化的界面,可以先在项目中插入一个FORM1窗口,再进行进一步的操作,下面是显示一个窗体的代码.(3)接下来,可以采用类似普通C#项目的编写方法,键入相关代码,编写程序应用模块,内嵌各种SAP2000API语句.(4)编译成COM组件(具体如mengban.DLL文件),需要特别注意的是必须在项目属性中,勾选“为com互操作注册”,并且将AssemblyInfo.cs中的[assembly:ComVisible(false)]语句中的false改为true,方可成为可见的COM组件.(5)如果在本机中直接调用这个插件,可以用以下步骤实现:在SAP2000的菜单→工具→添加/显示插件中,插件名称中键入mengban(即是刚才mengban.cs中的namespace的名称),在菜单文字中键入如“网壳”之类的文字,若状态显示OK,则表明此插件安装成功.若要将此插件提供给他人使用,则步骤要麻烦一些.相关的帮助文件及网络上的资料均未提及如何实现此步骤,经过探索研究,本文作者提出如下可行的实现方法,其核心步骤是生成安装文件.在VisualStudio中生成上述COM组件后,可在菜单栏文件→添加→新建项目,弹出窗口选择安装和部署下的安装项目,目录必须在之前建立的类库项目目录下.在新界面中的应用程序文件夹添加输出项目,弹出对话框,选择主输出,选择确定.弹出存在依赖项的提示,选择确定.这时,VisualStudio界面右上角的解决方案资源管理器中,将出现Setup项目,如Setup1.在其检测到的依赖项中选择Sap2000.exe,在下方属性窗口的Exclude项选为True,这样可以排除生成Sap2000.exe文件,减小安装文件大小.最后,在菜单栏的生成→生成Setup项目的解决方案,并在安装项目目录下找到Setup.exe和Setup1.msi两个文件,其他电脑上运行Setup.exe之后,即可采取前文所述在本机中调用插件的步骤在目标机器中的Sap2000内添加相应插件.2基于方位角的双边算法本文研究的“蒙板”程序,其目标是在已知节点位置以及杆件起始端节点连接编号的基础上,根据几何关系构建封闭区域的算法,如图2所示.图中虚线仅为显示需要,区域边仍在各节点的连线上.从计算几何的范畴上讲,这是属于空间多边形拓扑关系的生成算法,是计算机图形学中的关键算法之一,在地理学GIS等方面均有应用.闫浩文等提出了一种基于方位角定义的多边形自动构建方案,利用多边形搜索的最小角法则,进行2N(N为弧段数)次方位角计算搜索出所有的多边形.梁晓文等提出了基于夹角变化趋势判断多边形搜索方向的算法,根据左转或右转算法得到的点组顺序,分别计算由起始点出发的弧段的方位角,根据相邻弧段夹角的和来判断多边形的搜索方向,实现了每一多边形都由左转算法生成,完成了多边形的自动建立.杨海宏经研究发现双邻点判断法可以在算法至关重要的2个环节处大大减少运算量,显著提高算法效率.Ling等通过计算假设弧段的向量外积,来确定封闭多边形的顺时针方向,提高了多边形构建的效率.周立新等提出基于图的拓扑信息自动生成所有的最小多边形的方法,避免了进行多边形内角的计算与比较.罗芳等通过在特定类型网格中搜索结点的算法,实现了闭合坐标链多边形数据拓扑关系的快速构建.本文采用基于方位角定义自动构建多边形,并引入相邻边路径权重的方法进行蒙板编程,有效地避免了多次生成重复区域的问题.3建模想法3.1节点名称的实现首先,在SAP2000中选中需要蒙皮的杆件及相应的杆端节点,获取所有选中的空间网格杆件及节点的信息,如节点的坐标,杆件的起点及终点节点编号等.(1)获取选中的点和杆件的名称.通过SAP2000的API函数SapModel.SelectObj.GetSelected(refNumberItems,refObjectTypes,refObjectNames)函数来实现.其中,NumberItems是所选择物体的总数,ObjectType是一个包括了所有选择物体的类型的Array数组(1是点类型,2是框架,3是索,4是预应力筋,5是面,6是实体,7是连接单元),而ObjectName是一个保存了所有选择对象名称的Array数组.通过对数据进行分类,可以将节点和杆件的名称分离出来,利用C#中的ArrayList进行存储.(2)通过SapModel.PointObj.GetCoordCartesian函数来获得每个节点的直角坐标系坐标值.(3)通过SapModel.FrameObj.GetPoints函数来获得每根杆件的起点及终点的节点编号.第(2)(3)步的数据可以通过C#中的HASHTABLE数据结构来进行存储.3.2问题描述与描述大部分的空间结构中,需要进行蒙板操作的杆件,其空间杆系的拓扑关系和平面投影部分的拓扑关系是一致的,如图3(a)所示,但也有少部分会出现如图3(b)的情况,如球壳等.鉴于蒙板程序的复杂性,本文蒙板程序考虑较常见的图3(a)情况.这类结构的空间网格与平面投影网格存在相同拓扑关系,因此可将空间网格投影为平面网格后,先通过确定平面网格上各节点的拓扑关系,进而得到空间网格的拓扑关系.程序考虑xy、yz、zx三种投影情况,用户可自行进行选择,若遇到更复杂的情况,用户只需分批进行蒙板即可.以xy投影面为例,将选中的空间网格投影到xy平面上,得到一个xy平面网格结构,此时,在.NET编程中,只需简单地屏蔽其中某一坐标即可.问题描述为:已知如图2(a)的节点及线段的连接关系,要求程序自动查找出图2(b)的封闭区隔.以下均以xy平面为例进行阐述.3.3基于an优势的方位角通过得到的平面网格点的x、y坐标值计算所有线段的方位角.本文定义方位角为:从平面直角坐标系x轴的正半轴起,逆时针旋转到某条线段的角度称为该条线段的方位角θ,如图4所示,θ取值范围为[0,2π)该步相对应的部分代码如下,代码运行时提取节点的x、y坐标值,实现将空间网格向xy平面进行投影,并通过自定义的Angle函数来计算平面网格上线段的方位角.3.4最小多边搜索的算法描述本文采用基于方位角的拓扑多边形查找算法.此算法是针对所有节点进行历遍,逐一循环寻找出所有的最小多边形.以图5中的节点1、2为例,来描述算法的计算流程.节点1与节点2、3、4、8、9相连接,此时,计算所有与节点1相连接的线段与水平轴正向的有向夹角,亦即上文定义的方位角θ,范围为[0,2π).定义(i,j)为杆件名称,其中,i、j分别为杆件两端节点号.根据方位角对与1相连的所有杆件按升序进行排序,可得到(1,3)、(1,4)、(1,2)、(1,8)、(1,9).针对图中所有节点均进行这样的处理,从而实现每个节点均对应有一批按方位角排序的杆件.以节点1为例,首先处理(1,3)杆件,此时寻找以1为起点的第一个最小多边形走出了第一步1→3.与节点3相连有多根杆件,按方位角排序之后是…(3,4)、(3、1)…采用最小多边形逆时针走动的原则,与(3,1)杆件最相邻的杆件是(3,4),那么此时最小多边形走出了第二步1→3→4.同理,到了节点4,与(4,3)杆件最相邻的杆件是(4,1),那么此时最小多边形走出了第三步1→3→4→1.根据查询回到了起点,此时表明找到了第一个封闭的区域A,此区域中除边界外不包含能连接任何两个节点的杆件,是一个最小的多边形.历遍与1相邻的所有杆件,可以得到B、C、D、E等区域.由于考虑的是平面拓扑问题,从图2中可以看出,每根杆件最多同时属于两个区域,且由于采用了逆时针走法,因此,从节点i→j及从节点j→i最多均为各1次.此时,采用有向网络的记法,将已形成封闭区域的各杆件的i→j或j→i记录下来,具体做法是用一数据结构将各杆件的初始连接权值由初始值0变为1.完成了节点1的查找后,到下一个节点2进行同样的操作.此时,可以按照上一步的方法得到封闭区域F和G,而后,在继续进行杆件(2,7)和(2,1)的搜索时,会遇到该杆件已有方向权值1(因为已被节点1进行了搜索),故此两杆件跳过,完成节点2搜索.根据此原则对所有节点进行逐一历遍,可完成所有最小多边形的查找.此算法亦会遇到特殊情况,如孤杆,此时的搜索会出现i→j→i的情况,无法形成区域,因此,在程序中必须限制回路节点总数≥3且除起点外回路多边形顶点不重号.同时,此算法会产生一环绕整区域外一整圈的一个多边形回路,此多边形必须通过判断去除.以下是搜索生成最小多边形的部分代码.3.5程序的实现和应用由上述步骤已经确定的平面网格拓扑关系,将组成每个最小多边形的节点还原到空间坐标中.根据节点及相应的杆件单元,在空间坐标中进行生成面域操作,亦即完成各个空间网格的蒙皮.此部分可以通过SAP2000API的SapModel.AreaObj.AddByPoint函数来实现.图6是本程序的界面及相应的两个工程应用范例,图6(a)、(b)分别为程序在多跨正放四角锥双层平板网架结构和单层凯威特球壳结构中的应用.在笔者的P42.8G的CPU及1G内存的PC机上,采用SAP2000V14版本,对第一个工程含有3612根杆件的空间杆系结构实现蒙板的时间为0.774s,对第二个工程含有3660根杆件的空间杆系结构实现蒙板的时间为0.808s.可以看出,本程序具有相当高的效率,可大大提高工程效率.而且本文所介绍的程序对平面结构和空间结构均可进行蒙板功能.3.6对于点或者4节点的区域,网络要对各自由于SAP2000中的板单元节点数只能是3节点或者4节点,对于大于4个节点的区域,必须对该区域进行划分才能顺利将板加上.关于板块划分问题,本文采取与文献同样的处理方法,此处不再赘述.4风荷载组合及风荷载组合根据上述完成的程序,已顺利添加了所需的蒙板.在此基础上,还利用SAP2000API中丰富的函数,添加相应的荷载模式、荷载组合,如添加规范中球壳复杂的风荷载,根据不同结构高度进行不同的风荷载组合等.进行空间结构的全过程计算直至提取结果等非常实用的功能亦都可通过以上方法得到实现,但由于此部分非本文关键叙述问题,宜待另文再详细介绍.5板oapo合成本的数值分析本文详细介绍了如何在.NET平台上,以C#为开发语言,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 临床药事培训课件
- 脱毛免责协议书
- 中成药治疗视网膜色素变性临床应用指南课件
- (2026年)小儿支原体肺炎的护理
- 数字化文旅应用场景构建的关键技术与服务模式研究
- KTV消防安全知识培训
- 食品安全标签法规解析与实务
- 建筑工地防尘降噪措施计划
- 防灾减灾技术集成-洞察及研究
- 气候变化与金融风险协同-洞察及研究
- 2026年部编版新教材语文二年级上册期末无纸笔检测题(评价方案)
- 大学计算机教程-计算与人工智能导论(第4版)课件 第8章 计算机视觉
- 2025年广东省第一次普通高中学业水平合格性考试(春季高考)英语试题(含答案详解)
- 中国马克思主义与当代2024版教材课后思考题答案
- 2026年日历表(每月一页、可编辑、可备注)
- 2025年大一上数学分析期末考试题及答案
- 人工智能+-智能图像处理课件
- 保险公司早会-保险激励专题教学课件
- 九江市村级卫生室诊所医疗机构卫生院社区卫生服务中心地理位置地址信息汇总
- 会计职业生涯规划书
- 液压传动课程设计-卧式半自动组合机床液压系统
评论
0/150
提交评论