基于SAP2000的空间网格结构参数化建模与分析

合集下载
相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

基于SAP2000的空间网格结构参数化建模与分析

摘要:本文简要介绍了SAP2000应用编程接口即CSi OAPI的功能特点及其在结

构分析中的应用。我们以空间网格结构建模分析过程为例详细阐述了CSi OAPI在

结构参数化建模、分析及后处理中的流程和方法。本文对应用编程接口及Python

语言在结构分析方面的使用进行了初步的探索,对同类型的工程项目具有借鉴意义。

关键词:CSi OAPI;Python;参数化建模;结构分析;空间网格结构

引言

SAP2000是美国CSi公司(Computer and Structures Inc.)开发研制的通用结构分

析程序,是一款集成化、高效率的通用结构分析设计程序,在世界各国的结构分

析项目中得到广泛应用。SAP2000采用基于对象的有限元技术,可以实现方便的

建模,并具有稳定的分析内核,可对其他分析程序的结果进行对比和校核。

CSi OAPI (CSi Open Application Programming Interface),即CSi 开放应用编程接口,原名SAP2000 API,是SAP2000提供的二次开发接口。它包含了SAP2000中

大部分功能的函数,通过调用可以实现与SAP2000等效的操作或扩充SAP2000的

功能。并且,通过程序操作可以方便地实现批处理、参数化等过程。CSi OAPI目

前支持C#、Visual Basic、Fortran、Matlab和Python等常用编程语言和应用程序。 Python是一种面向对象、解释型的计算机程序设计语言。其语法简洁清晰,

具有很强的可读性,支持面向对象的程序设计。Python属于脚本语言,具有丰富

和强大的函数库,它常被昵称为胶水语言,能够把用其他语言制作的各种模块很

轻松地联结在一起。基于这一特性,很多程序将Python作为二次开发的接口语言进行支持,结构分析中常用的Abaqus即支持Python进行二次开发,新版本的CSi OAPI也开始支持Python。本文中涉及的程序即采用Python语言编写。

本文拟通过一个典型的二次开发程序,介绍CSi OAPI应用的一般过程,实现

对SAP2000既有功能的扩充,使其能更有效地用于结构分析和设计。

1 CSi OAPI开发要点

在SAP2000 最初是在V11版本中推出了应用编程接口功能模块,原名

SAP2000 API,作为开放给用户进行扩充开发的应用程序接口。在SAP2000 V15中,SAP2000不仅完成了诸如界面上的重大改进,也进一步增加完善了API功能,并

且API不只适用于SAP2000程序,同样适用于CSIBridge程序中,此次版本的API

更名为CSi OAPI[1]。在最新的SAP2000 V20版本中,CSi OAPI的各项功能又进行

了升级和强化。

CSi OAPI作为一个通用性强的工具,允许用户通过编程的方式,利用API调用函数,在结构建模、分析和设计过程中进行定制来实现参数化的模型生成、分析

和设计,完成自定义的结果输出和数据提取。同界面交互操作的方式相比,这种

操作方式将扩展设计人员的分析能力,提高效率。用户还可以应用OAPI实现

SAP2000分析程序与第三方软件的连接,实现与其他程序对建筑结构模型信息的

共享。并且,通过Python可以方便地进行数据提取与分析,并对分析结果进行可视化,对进一步的优化提供了便利。

在安装了SAP2000(V11版本以上)和相应开发环境的计算机上,都可以利用

CSi OAPI进行开发。大多数编程语言都可以与OAPI结合来实现用户程序的定制,

如C#,Visual Basic,C++,Fortran,Matlab、Python、VBA等。

不同的编程语言有各自的语法、限制和特点,但程序开发过程都遵循相同的

基本原理。

目前应用OAPI二次开发主要有以下两种方式,外部调用和内部调用。外部调用指通过一个调用API的程序,自动启动SAP2000程序,然后执行批处理的操作。内部调用则是在SAP2000程序内,封装集成SAP2000既有的功能。

OAPI中的函数和数据以面向对象的方式组织在一起,在程序初始时定义类对

象并初始化。各个函数可作为该对象的方法进行调用。OAPI中的函数组织如图1

所示。

OAPI参数分为ByVal和ByRef两种,第一种只是将参数的值传递给函数,第

二种将参数的地址传递给函数,通过第二种方法,可得到多个返回值。参数允许

使用默认值,默认值在函数定义中存在,在调用函数时可以不重新赋予。若要给

后面参数赋值,前面参数可不赋值,但位置要留出。

OAPI函数以一个长整形数作为返回值,如函数执行成功,返回值为0;否则

返回非零值。通过函数返回值,可以判定OAPI函数执行情况。

图1 OAPI 函数组织图

以下为利用python语言调用CSi OAPI的部分程序代码:

import os

import win32com.client

import math

zso= win32com.client.Dispatch(("

Sap2000v15.SapObject"))

zso.ApplicationStart()

zsm = zso.SapModel

zsm.InitializeNewModel()

ret = zsm.File.NewBlank()

2 空间网格建模分析要点

空间网格结构包括球面网壳、圆柱面网壳、平板网架、弦支穹顶等多种。球

面网壳又可以分为凯威特型、联方型、施威德勒型、肋环型、短程线型等。空间

网格结构的组成特点是:以杆件单元为主;节点和杆件的数量大;构成具有较强

的规律性,适合利用程序自动生成并参数化施加荷载和约束。

各种球面网壳的建模过程均类似,下面以凯威特型K6球面网壳为例,介绍参数化建模过程。

2.1 几何构成和控制参数

图2所示是一个K6凯威特球面网壳的控制参数示意图。凯威特型单层球面网壳的几何构型可由网壳跨度S,矢高H,扇区数Kn,径向等分数nx几个参数确定。本例中Kn=6,nx=6。网壳节点编号图和杆件编号图分别如图3、图4所示。

图2 凯威特网壳参数示意图

通过控制参数,可在确定的笛卡尔坐标系下计算得到各个节点的空间三维坐标;根据节点坐标和球面网壳的空间几何组成,生成节点和全部杆件[3、4]。

2.2 节点和杆件建立

规定球面网壳球面的球心作为空间三维坐标系的原点,以竖直向上方向作为

Z轴,以一水平轴作为X轴,由右手定则确定Y轴方向。则确定了空间坐标系以

及网壳在其中的定位。

在CSi OAPI中,分别通过PointObj和FrameObj两个函数建立节点对象和杆件

相关文档
最新文档