CN118094899A - 一种关联cad和sap2000的管桁架自动化建模分析方法 - Google Patents

一种关联cad和sap2000的管桁架自动化建模分析方法 Download PDF

Info

Publication number
CN118094899A
CN118094899A CN202410169392.8A CN202410169392A CN118094899A CN 118094899 A CN118094899 A CN 118094899A CN 202410169392 A CN202410169392 A CN 202410169392A CN 118094899 A CN118094899 A CN 118094899A
Authority
CN
China
Prior art keywords
node
load
battery
batteries
sap2000
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202410169392.8A
Other languages
English (en)
Inventor
马小平
蔡玉军
张海
段熙宾
刘玉玉
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
China Railway First Survey and Design Institute Group Ltd
Original Assignee
China Railway First Survey and Design Institute Group Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by China Railway First Survey and Design Institute Group Ltd filed Critical China Railway First Survey and Design Institute Group Ltd
Priority to CN202410169392.8A priority Critical patent/CN118094899A/zh
Publication of CN118094899A publication Critical patent/CN118094899A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/20Design optimisation, verification or simulation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/10Geometric CAD
    • G06F30/13Architectural design, e.g. computer-aided architectural design [CAAD] related to design of buildings, bridges, landscapes, production plants or roads
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2111/00Details relating to CAD techniques
    • G06F2111/04Constraint-based CAD
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2119/00Details relating to the type or aim of the analysis or the optimisation
    • G06F2119/14Force analysis or force optimisation, e.g. static or dynamic forces

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Geometry (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Evolutionary Computation (AREA)
  • General Engineering & Computer Science (AREA)
  • Structural Engineering (AREA)
  • Computational Mathematics (AREA)
  • Civil Engineering (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Architecture (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

本发明公开了一种关联CAD和SAP2000的管桁架自动化建模分析方法。现有建模方法在自动化方面存在滞后。本发明对管桁架CAD图整理,将整理后的图纸载入Rhino;在Rhino Grasshopper下,编译CAD向SAP2000自动化建模分析电池组;打开SAP2000,在Grasshopper下,单击Boolean Toggle电池,调用SAP2000,完成模型的建立与计算;在Grasshopper下,应用Panel电池连接自动化建模分析电池组输出端,显示恒载、活载、荷载组合下的结构位移最大值及对应节点编号。本发明构建起二维图纸与结构计算响应间的桥梁,实现模型的自动化建立与计算。

Description

一种关联CAD和SAP2000的管桁架自动化建模分析方法
技术领域
本发明属于建筑结构技术领域,具体涉及一种关联CAD和SAP2000的管桁架自动化建模分析方法。
背景技术
随着5G、AI、大数据等技术与建筑行业的深度融合发展,建筑业新一轮科技革命和产业变革正深入推进。勘察设计行业的数字化转型发展已经成为大势所趋。信息化是数字化、智能化发展的基础。然而,在结构设计校核过程中,常面临图纸信息向结构信息的传递,以及由结构信息计算获取力学响应信息的问题。传统方法通过人工翻模,再导入其他结构分析软件中实现,耗时费力的同时,与数字化、智能化的设计发展方向背道而驰。参数化、自动化等设计手段的运用,使得工程设计人员可从多个维度、多个层次实现结构模型的重构、计算、优化,进而提升工作效率。
针对结构设计而言,信息化、数字化的核心在于结构信息的参数化传递以及自动化计算。结构信息的参数化传递包含非结构化数据向结构化数据的传递以及不同结构化数据之间的传递。结构信息的自动化计算包含各类型有限元分析软件的自动化调用以及既有分析软件的轻量化嵌入。
然而,既有技术方法虽然在基于二维图纸自动化生成结构模型方面已有了一定基础,但在自动化计算方面却存在较大滞后,从而导致整个建模分析流程受阻。其原因主要如下:
(1)既有的自动化建模方法以几何模型构建为主,容易忽略材料属性、截面类型、荷载及边界条件等物理信息的传递与输入,从而导致模型信息不充足而无法进行结构计算;
(2)既有方法在模型构建完毕后,需要将几何模型导入至其他结构分析软件中,进而设置模型计算所需的参数,完成求解计算。因此,该方面并没有建立二维图纸信息到结构计算响应的直接联系。
发明内容
为了弥补现有技术的不足,本发明提供一种关联CAD和SAP2000的管桁架自动化建模分析方法,借助RhinoGrasshopper和Python平台,构建起二维图纸信息与结构计算响应之间的桥梁,无损传递模型信息,实现模型的自动化建立与计算。
为了实现上述目的,本发明所采用的技术方案为:
一种关联CAD和SAP2000的管桁架自动化建模分析方法,其特征在于:包括如下步骤:
步骤一:对二维管桁架平面的CAD图纸进行整理,得到整理后的管桁架平面图纸;
步骤二:将所述整理后的管桁架平面图纸载入Rhino软件中,在RhinoGrasshopper环境下,应用Guid电池框选图纸中所有杆件图层文字;应用Panel电池设置截面信息读取格式;应用Curve电池框选图纸中所有杆件图层线;应用Point电池点选图纸中作为约束支座的图层线交点;应用Point电池点选图纸中施加集中荷载的图层线交点;应用Number Slider电池设置恒荷载数值;应用NumberSlider电池设置活荷载数值;应用NumberSlider电池设置恒荷载组合值系数;应用NumberSlider电池设置活荷载组合值系数;应用Panel电池设置SAP2000程序调用路径;应用Panel电池设置SAP2000模型保存路径;应用Panel电池设置SAP2000模型名称;应用Panel电池设置钢材材料类型;应用BooleanToggle电池设置程序启动布尔开关;
步骤三:在Rhino Grasshopper环境下,编译开发CAD向SAP2000自动化建模分析电池组;
步骤四:打开SAP2000结构计算软件,在Grasshopper环境下,单击步骤二中的Boolean Toggle电池,程序调用SAP2000,完成模型的建立与计算;
步骤五:在Grasshopper环境下,应用Panel电池连接步骤三中编译开发的CAD向SAP2000自动化建模分析电池组的输出端,显示恒载、活载、荷载组合下的结构位移最大值及其对应的节点编号。
进一步,所述步骤一中,整理后的管桁架平面图纸保留表征构件所须的图层线条及截面尺寸标注。
进一步,所述CAD向SAP2000自动化建模分析电池组,其输入参数包括:截面信息,与上述步骤二中所有杆件图层文字的Guid电池相连;截面命名方式,与上述步骤二中截面信息读取格式的Panel电池相连;杆件曲线,与上述步骤二中所有杆件图层线的Curve电池相连;约束节点,与上述步骤二中作为约束支座的图层线交点的Point电池相连;施加荷载节点,与上述步骤二中施加集中荷载的图层线交点的Point电池相连;恒荷载,与上述步骤二中恒荷载数值的Number Slider电池相连;活荷载,与上述步骤二中活荷载数值的NumberSlider电池相连;恒荷载系数,与上述步骤二中恒荷载系数的NumberSlider电池相连;活荷载系数,与上述步骤二中活荷载系数的NumberSlider电池相连;SAP2000程序路径,与上述步骤二中SAP2000程序调用路径的Panel电池相连;文件保存路径,与上述步骤二中SAP2000模型保存路径的Panel电池相连;模型名称,与上述步骤二中SAP2000模型名称的Panel电池相连;钢材属性,与上述步骤二中钢材材料类型的Panel电池相连;启动按钮,与上述步骤二中程序启动布尔开关的Boolean Toggle电池相连。
进一步,所述步骤三中,CAD向SAP2000自动化建模分析的步骤具体包括:
步骤3.1:应用C# Script电池提取截面信息输入参数的参数文本和参数平面;应用GhPythonScript电池和ClearTree电池将参数文本转化为截面名称列表;应用GhPythonScript电池、Construct Point电池、Clear Tree电池提取参数平面中心点坐标,并转化为截面名称文本所在平面中心点列表;
步骤3.2:应用Curve Nearest Object电池,按照杆件曲线输入变量中曲线列表的顺序,从上述步骤1中截面名称文本所在平面中心点列表中,依次确定距离每一条曲线最近的截面文本所在平面中心点;依据截面命名方式输入参数,利用GhPython Script电池提取获得所有杆件直径列表和所有杆件壁厚列表,并形成所有杆件直径列表的Data电池和所有杆件壁厚列表Data电池;
步骤3.3:应用Rotate 3D电池和UnitY电池,将杆件曲线输入变量中的所有杆件曲线从XY平面转化为YZ平面,得到旋转后所有杆件曲线列表;应用EndPoints电池和Deconstruct电池,提取旋转后所有杆件曲线列表中曲线起点、终点坐标,并形成所有杆件起点X坐标列表的Data电池、所有杆件起点Y坐标列表的Data电池、所有杆件起点Z坐标列表的Data电池、所有杆件终点X坐标列表的Data电池、所有杆件终点Y坐标列表的Data电池、所有杆件终点Z坐标列表的Data电池;
步骤3.4:应用Rotate 3D电池和UnitY电池,将约束节点输入变量中的所有点从XY平面转化为YZ平面,得到旋转后所有约束节点列表;应用Deconstruct电池提取旋转后所有约束节点列表中所有约束节点的X坐标的Data电池、所有约束节点的Y坐标的Data电池、所有约束节点的Z坐标的Data电池;
步骤3.5:应用Rotate 3D电池和UnitY电池,将施加荷载节点输入变量中的所有点从XY平面转化为YZ平面,得到旋转后所有施加荷载节点列表;应用Deconstruct电池提取旋转后所有施加荷载节点列表中所有施加荷载节点的X坐标的Data电池、所有施加荷载节点的Y坐标的Data电池、所有施加荷载节点的Z坐标的Data电池;
步骤3.6:应用GH_CPython电池,通过Python语言调用SAP2000 API建模计算,完成结构分析,得到调用SAP2000 API建模计算的GH_CPython电池。
进一步,所述步骤3.6中,所得到的调用SAP2000 API建模计算的GH_CPython电池,其输入参数具体包括如下:
1)Diam,与上述步骤3.2中所有杆件直径列表的Data电池相连;
2)Thin,与上述步骤3.2中所有杆件壁厚列表的Data电池相连;
3)Node_X_S,与上述步骤3.3中所有杆件起点X坐标列表的Data电池相连;
4)Node_Y_S,与上述步骤3.3中所有杆件起点Y坐标列表的Data电池相连;
5)Node_Z_S,与上述步骤3.3中所有杆件起点Z坐标列表的Data电池相连;
6)Node_X_E,与上述步骤3.3中所有杆件终点X坐标列表的Data电池相连;
7)Node_Y_E,与上述步骤3.3中所有杆件终点Y坐标列表的Data电池相连;
8)Node_Z_E,与上述步骤3.3中所有杆件终点Z坐标列表的Data电池相连;
9)Node_Res_X,与上述步骤3.4中所有约束节点X坐标的Data电池相连;
10)Node_Res_Y,与上述步骤3.4中所有约束节点Y坐标的Data电池相连;
11)Node_Res_Z,与上述步骤3.4中所有约束节点Z坐标的Data电池相连;
12)Node_Load_X,与上述步骤3.5中所有施加荷载节点X坐标的Data电池相连;
13)Node_Load_Y,与上述步骤3.5中所有施加荷载节点Y坐标的Data电池相连;
14)Node_Load_Z,与上述步骤3.5中所有施加荷载节点Z坐标的Data电池相连;
15)Load_Dead,与恒荷载输入参数相连;
16)Load_Live,与活荷载输入参数相连;
17)Dead_ComIndex,与恒荷载系数输入参数相连;
18)Live_ComIndex,与活荷载系数输入参数相连;
19)SAP_Path,与SAP2000程序路径输入参数相连;
20)File_Path,与文件保存路径输入参数相连;
21)Model_Name,与模型名称输入参数相连;
22)Model_Mat,与钢材属性输入参数相连;
23)Run,与启动按钮输入参数相连。
进一步,所述步骤3.6中,调用SAP2000 API建模计算的步骤如下:
步骤3.6.1:在GH_CPython电池环境下,调用sys、comtypes.client、in32com.client、os外部库;
步骤3.6.2:应用os.path.exists判断文件保存路径File_Path是否存在,若存在,跳过,若不存在,则以File_Path创建新路径;应用AttachToInstance连接到当前运行的SAP2000程序,若存在正在运行的SAP2000程序,则应用comtypes.client.GetActiveObject("CSI.SAP2000.API.SapObject")获取当前激活的SAP2000对象,并命名为mySapObject,若不存在,则提示错误;
步骤3.6.3:应用mySapObject.SapModel创建名为SapModel的SAP2000模型对象;应用SapModel.InitializeNewModel设置单位为N,mm;应用SapModel.File.NewBlank创建新的空白模型;
步骤3.6.4:应用SapObject.SapModel.PropMaterial.SetMaterial定义编号为1,名称为Model_Mat的新材料;SapObject.SapModel.PropMaterial.SetMPIsotropic设置上述新材料为各向同性材料,弹性模量为206000 MPa,泊松比为0.2;
步骤3.6.5:循环调用杆件直径列表变量Diam和杆件壁厚列表变量Thin,应用SapModel.PropFrame.SetPipe定义杆件截面形式;
步骤3.6.6:循环调用杆件起点X坐标列表变量Node_X_S、杆件起点Y坐标列表变量Node_Y_S、杆件起点Z坐标列表变量Node_Z_S、杆件终点X坐标列表变量Node_X_E、杆件终点Y坐标列表变量Node_Y_E、杆件终点Z坐标列表变量Node_Z_E,应用SapModel.FrameObj.AddByCoord创建杆件;
步骤3.6.7:应用SapModel.FrameObj.SetReleases释放所有杆件两端的转动自由度;
步骤3.6.8:应用SapModel.FrameObj.GetPoints获取各杆件起始点编号,应用SapModel.PointObj.GetCoordCartesian获取起始点编号的空间坐标,循环调用约束节点X坐标变量Node_Res_X、约束节点Y坐标变量Node_Res_Y、约束节点Z坐标变量Node_Res_Z,判断起始点编号的空间坐标是否与约束节点坐标一致,若是,则应用SapModel.PointObj.SetRestraint约束该点X、Y、Z三个方向的平动;
步骤3.6.9:应用SapModel.LoadPatterns.Add添加恒荷载模式和活载荷模式;应用SapModel.LoadCases.StaticLinear.SetCase添加活荷载工况;应用SapModel.RespCombo.Add创建荷载组合,应用SapModel.RespCombo.SetCaseList设置荷载组合中恒荷载组合值系数为恒荷载系数Dead_ComIndex,应用SapModel.RespCombo.SetCaseList设置荷载组合中活荷载组合值系数为活荷载系数Live_ComIndex;
步骤3.6.10:循环获取各杆件起点、终点的笛卡尔坐标,分别与施加荷载节点X坐标变量Node_Load_X、施加荷载节点Y坐标变量Node_Load_Y、施加荷载节点Z坐标变量Node_Load_Z对比,若坐标一致,则应用SapModel.PointObj.SetLoadForce在该点沿Z轴负方向施加大小为Load_Dead的恒荷载,应用SapModel.PointObj.SetLoadForce在该点沿Z轴负方向施加大小为Load_Live的活荷载;
步骤3.6.11:应用SapModel.File.Save保存文件;应用SapModel.Analyze.SetActiveDOF设置激活自由度为Y轴自由度、Z轴自由度、绕X轴自由度;应用SapModel.Analyze.RunAnalysis启动分析;应用SapModel.PointObj.Count确定模型节点个数;
步骤3.6.12:循环调用每个节点,应用SapModel.Results.Setup.SetCaseSelectedForOutput选择输出结果的荷载类型为恒荷载;应用SapModel.Results.JointDispl提取每个节点Z方向的位移;比较每个节点Z方向的位移,确定节点在恒荷载下的最大位移和对应节点编号;
步骤3.6.13):循环调用每个节点,应用SapModel.Results.Setup.SetCaseSelectedForOutput选择输出结果的荷载类型为活荷载;应用SapModel.Results.JointDispl提取每个节点Z方向的位移;比较每个节点Z方向的位移,确定节点在活荷载下的最大位移和对应节点编号;
步骤3.6.14:循环调用每个节点,应用SapModel.Results.Setup.SetCaseSelectedForOutput选择输出结果的荷载类型为组合荷载;应用SapModel.Results.JointDispl提取每个节点Z方向的位移;比较每个节点Z方向的位移,确定节点在组合荷载下的最大位移和对应节点编号;
步骤3.6.15:应用SapModel.View.RefreshView更新SAP2000程序界面;定义输出列表变量output。
进一步,所述步骤3.6.15中,通过输出列表变量output,分别导出恒载下节点位移最大值、恒载下位移最大值对应的节点编号、活载下节点位移最大值、活载下位移最大值对应的节点编号、荷载组合下节点位移最大值、荷载组合下位移最大值对应的节点编号。
本发明的有益效果:
1)本发明实现了基于二维图纸信息的结构计算模型自动生成与分析;
2)本发明显著提高了建模分析效率,相比手动方法,效率提升约95%以上;
3)本发明操作步骤清晰,使用方法简单,便于工程人员的模型重构和对比验证。
附图说明
图1为本发明操作流程图;
图2为本发明CAD向SAP2000自动化建模分析电池包的内部架构;
图3为基于本发明方法得到的钢桁架计算结果。
具体实施方式
下面结合具体实施方式对本发明进行详细的说明。
本发明用于CAD二维图纸向SAP2000三维结构模型的自动化建模分析,如图1所示,本发明包括如下步骤:
步骤一:对二维管桁架平面的CAD图纸进行整理,保留表征构件所须的图层线条及截面尺寸标注,得到整理后的管桁架平面图纸。
步骤二:将所述整理后的管桁架平面图纸载入Rhino软件中,在RhinoGrasshopper环境下创建并设置各类参数电池。所得参数电池如下:
1)应用Guid电池框选图纸中所有杆件图层文字;
2)应用Panel电池设置截面信息读取格式;
3)应用Curve电池框选图纸中所有杆件图层线;
4)应用Point电池点选图纸中作为约束支座的图层线交点;
5)应用Point电池点选图纸中施加集中荷载的图层线交点;
6)应用Number Slider电池设置恒荷载数值;
7)应用Number Slider电池设置活荷载数值;
8)应用Number Slider电池设置恒荷载组合值系数;
9)应用Number Slider电池设置活荷载组合值系数;
10)应用Panel电池设置SAP2000程序调用路径;
11)应用Panel电池设置SAP2000模型保存路径;
12)应用Panel电池设置SAP2000模型名称;
13)应用Panel电池设置钢材材料类型;
14)应用Boolean Toggle电池设置程序启动布尔开关。
步骤三:在Rhino Grasshopper环境下,编译开发CAD向SAP2000自动化建模分析电池组(图2);所得的CAD向SAP2000自动化建模分析电池组,其输入参数包括:
1)截面信息,与上述步骤二中所有杆件图层文字的Guid电池相连;
2)截面命名方式,与上述步骤二中截面信息读取格式的Panel电池相连;
3)杆件曲线,与上述步骤二中所有杆件图层线的Curve电池相连;
4)约束节点,与上述步骤二中作为约束支座的图层线交点的Point电池相连;
5)施加荷载节点,与上述步骤二中施加集中荷载的图层线交点的Point电池相连;
6)恒荷载,与上述步骤二中恒荷载数值的Number Slider电池相连;
7)活荷载,与上述步骤二中活荷载数值的Number Slider电池相连;
8)恒荷载系数,与上述步骤二中恒荷载系数的NumberSlider电池相连;
9)活荷载系数,与上述步骤二中活荷载系数的NumberSlider电池相连;
10)SAP2000程序路径,与上述步骤二中SAP2000程序调用路径的Panel电池相连;
11)文件保存路径,与上述步骤二中SAP2000模型保存路径的Panel电池相连;
12)模型名称,与上述步骤二中SAP2000模型名称的Panel电池相连;
13)钢材属性,与上述步骤二中钢材材料类型的Panel电池相连;
14)启动按钮,与上述步骤二中程序启动布尔开关的Boolean Toggle电池相连。
其中,CAD向SAP2000自动化建模分析的步骤具体包括:
步骤3.1:应用C# Script电池提取截面信息输入参数的参数文本和参数平面;应用GhPythonScript电池和ClearTree电池将参数文本转化为截面名称列表;应用GhPythonScript电池、Construct Point电池、Clear Tree电池提取参数平面中心点坐标,并转化为截面名称文本所在平面中心点列表。
步骤3.2:应用Curve Nearest Object电池,按照杆件曲线输入变量中曲线列表的顺序,从上述步骤1中截面名称文本所在平面中心点列表中,依次确定距离每一条曲线最近的截面文本所在平面中心点;依据截面命名方式输入参数,利用GhPython Script电池提取获得所有杆件直径列表和所有杆件壁厚列表,并形成所有杆件直径列表的Data电池和所有杆件壁厚列表Data电池。
步骤3.3:应用Rotate 3D电池和UnitY电池,将杆件曲线输入变量中的所有杆件曲线从XY平面转化为YZ平面,得到旋转后所有杆件曲线列表;应用EndPoints电池和Deconstruct电池,提取旋转后所有杆件曲线列表中曲线起点、终点坐标,并形成所有杆件起点X坐标列表的Data电池、所有杆件起点Y坐标列表的Data电池、所有杆件起点Z坐标列表的Data电池、所有杆件终点X坐标列表的Data电池、所有杆件终点Y坐标列表的Data电池、所有杆件终点Z坐标列表的Data电池。
步骤3.4:应用Rotate 3D电池和UnitY电池,将约束节点输入变量中的所有点从XY平面转化为YZ平面,得到旋转后所有约束节点列表;应用Deconstruct电池提取旋转后所有约束节点列表中所有约束节点的X坐标的Data电池、所有约束节点的Y坐标的Data电池、所有约束节点的Z坐标的Data电池。
步骤3.5:应用Rotate 3D电池和UnitY电池,将施加荷载节点输入变量中的所有点从XY平面转化为YZ平面,得到旋转后所有施加荷载节点列表;应用Deconstruct电池提取旋转后所有施加荷载节点列表中所有施加荷载节点的X坐标的Data电池、所有施加荷载节点的Y坐标的Data电池、所有施加荷载节点的Z坐标的Data电池。
步骤3.6:应用GH_CPython电池,通过Python语言调用SAP2000 API建模计算,完成结构分析,得到调用SAP2000 API建模计算的GH_CPython电池。所得到的调用SAP2000 API建模计算的GH_CPython电池,其输入参数具体包括如下:
1)Diam,与上述步骤2中所有杆件直径列表的Data电池相连;
2)Thin,与上述步骤2中所有杆件壁厚列表的Data电池相连;
3)Node_X_S,与上述步骤3中所有杆件起点X坐标列表的Data电池相连;
4)Node_Y_S,与上述步骤3中所有杆件起点Y坐标列表的Data电池相连;
5)Node_Z_S,与上述步骤3中所有杆件起点Z坐标列表的Data电池相连;
6)Node_X_E,与上述步骤3中所有杆件终点X坐标列表的Data电池相连;
7)Node_Y_E,与上述步骤3中所有杆件终点Y坐标列表的Data电池相连;
8)Node_Z_E,与上述步骤3中所有杆件终点Z坐标列表的Data电池相连;
9)Node_Res_X,与上述步骤4中所有约束节点X坐标的Data电池相连;
10)Node_Res_Y,与上述步骤4中所有约束节点Y坐标的Data电池相连;
11)Node_Res_Z,与上述步骤4中所有约束节点Z坐标的Data电池相连;
12)Node_Load_X,与上述步骤5中所有施加荷载节点X坐标的Data电池相连;
13)Node_Load_Y,与上述步骤5中所有施加荷载节点Y坐标的Data电池相连;
14)Node_Load_Z,与上述步骤5中所有施加荷载节点Z坐标的Data电池相连;
15)Load_Dead,与恒荷载输入参数相连;
16)Load_Live,与活荷载输入参数相连;
17)Dead_ComIndex,与恒荷载系数输入参数相连;
18)Live_ComIndex,与活荷载系数输入参数相连;
19)SAP_Path,与SAP2000程序路径输入参数相连;
20)File_Path,与文件保存路径输入参数相连;
21)Model_Name,与模型名称输入参数相连;
22)Model_Mat,与钢材属性输入参数相连;
23)Run,与启动按钮输入参数相连。
调用SAP2000 API建模计算的步骤如下:
步骤3.6.1:在GH_CPython电池环境下,调用sys、comtypes.client、in32com.client、os外部库;
步骤3.6.2:应用os.path.exists判断文件保存路径File_Path是否存在,若存在,跳过,若不存在,则以File_Path创建新路径;应用AttachToInstance连接到当前运行的SAP2000程序,若存在正在运行的SAP2000程序,则应用comtypes.client.GetActiveObject("CSI.SAP2000.API.SapObject")获取当前激活的SAP2000对象,并命名为mySapObject,若不存在,则提示错误。
步骤3.6.3:应用mySapObject.SapModel创建名为SapModel的SAP2000模型对象;应用SapModel.InitializeNewModel设置单位为N,mm;应用SapModel.File.NewBlank创建新的空白模型。
步骤3.6.4:应用SapObject.SapModel.PropMaterial.SetMaterial定义编号为1,名称为Model_Mat的新材料;SapObject.SapModel.PropMaterial.SetMPIsotropic设置上述新材料为各向同性材料,弹性模量为206000 MPa,泊松比为0.2。
步骤3.6.5:循环调用杆件直径列表变量Diam和杆件壁厚列表变量Thin,应用SapModel.PropFrame.SetPipe定义杆件截面形式。
步骤3.6.6:循环调用杆件起点X坐标列表变量Node_X_S、杆件起点Y坐标列表变量Node_Y_S、杆件起点Z坐标列表变量Node_Z_S、杆件终点X坐标列表变量Node_X_E、杆件终点Y坐标列表变量Node_Y_E、杆件终点Z坐标列表变量Node_Z_E,应用SapModel.FrameObj.AddByCoord创建杆件。
步骤3.6.7:应用SapModel.FrameObj.SetReleases释放所有杆件两端的转动自由度。
步骤3.6.8:应用SapModel.FrameObj.GetPoints获取各杆件起始点编号,应用SapModel.PointObj.GetCoordCartesian获取起始点编号的空间坐标,循环调用约束节点X坐标变量Node_Res_X、约束节点Y坐标变量Node_Res_Y、约束节点Z坐标变量Node_Res_Z,判断起始点编号的空间坐标是否与约束节点坐标一致,若是,则应用SapModel.PointObj.SetRestraint约束该点X、Y、Z三个方向的平动。
步骤3.6.9:应用SapModel.LoadPatterns.Add添加恒荷载模式和活载荷模式;应用SapModel.LoadCases.StaticLinear.SetCase添加活荷载工况;应用SapModel.RespCombo.Add创建荷载组合,应用SapModel.RespCombo.SetCaseList设置荷载组合中恒荷载组合值系数为恒荷载系数Dead_ComIndex,应用SapModel.RespCombo.SetCaseList设置荷载组合中活荷载组合值系数为活荷载系数Live_ComIndex。
步骤3.6.10:循环获取各杆件起点、终点的笛卡尔坐标,分别与施加荷载节点X坐标变量Node_Load_X、施加荷载节点Y坐标变量Node_Load_Y、施加荷载节点Z坐标变量Node_Load_Z对比,若坐标一致,则应用SapModel.PointObj.SetLoadForce在该点沿Z轴负方向施加大小为Load_Dead的恒荷载,应用SapModel.PointObj.SetLoadForce在该点沿Z轴负方向施加大小为Load_Live的活荷载。
步骤3.6.11:应用SapModel.File.Save保存文件;应用SapModel.Analyze.SetActiveDOF设置激活自由度为Y轴自由度、Z轴自由度、绕X轴自由度;应用SapModel.Analyze.RunAnalysis启动分析;应用SapModel.PointObj.Count确定模型节点个数。
步骤3.6.12:循环调用每个节点,应用SapModel.Results.Setup.SetCaseSelectedForOutput选择输出结果的荷载类型为恒荷载;应用SapModel.Results.JointDispl提取每个节点Z方向的位移;比较每个节点Z方向的位移,确定节点在恒荷载下的最大位移和对应节点编号。
步骤3.6.13:循环调用每个节点,应用SapModel.Results.Setup.SetCaseSelectedForOutput选择输出结果的荷载类型为活荷载;应用SapModel.Results.JointDispl提取每个节点Z方向的位移;比较每个节点Z方向的位移,确定节点在活荷载下的最大位移和对应节点编号。
步骤3.6.14:循环调用每个节点,应用SapModel.Results.Setup.SetCaseSelectedForOutput选择输出结果的荷载类型为组合荷载;应用SapModel.Results.JointDispl提取每个节点Z方向的位移;比较每个节点Z方向的位移,确定节点在组合荷载下的最大位移和对应节点编号。
步骤3.6.15:应用SapModel.View.RefreshView更新SAP2000程序界面;定义输出列表变量output,分别导出恒载下节点位移最大值、恒载下位移最大值对应的节点编号、活载下节点位移最大值、活载下位移最大值对应的节点编号、荷载组合下节点位移最大值、荷载组合下位移最大值对应的节点编号。
具体实施例如下:
以某站房钢结构屋盖为例,对本发明方法进行验证。该屋盖采用管桁架结构,桁架杆件均为圆管,最大截面φ402×20,最小截面φ76×6,材质Q355C。整个屋架沿南北方向,由12榀主桁架组成。应用本发明方法对该屋架12榀主桁架进行分析计算,考虑100 kN的恒荷载和80 kN的活荷载作用,恒、活载组合值系数分别为1.3和1.4。计算结果如图3所示。专业设计师通过CAD模型完成一榀桁架的模型建立与计算,大概需要30 min,而采用插件计算,仅需1~2分钟,效率提升95%以上。除了计算效率的显著提升,本发明方法中参数化的材料属性定义、荷载大小调整、约束节点设置,均使模型分析的灵活性增强。同时,在Grasshopper中通过简单的数据结果可视化处理,直观显示了恒载、活载、恒活载组合下结构的最大位移及相应节点,有助于工程师高效地判断结构薄弱部位或大变形区域。
本发明的内容不限于实施例所列举,本领域普通技术人员通过阅读本发明说明书而对本发明技术方案采取的任何等效的变换,均为本发明的权利要求所涵盖。

Claims (7)

1.一种关联CAD和SAP2000的管桁架自动化建模分析方法,其特征在于:包括如下步骤:
步骤一:对二维管桁架平面的CAD图纸进行整理,得到整理后的管桁架平面图纸;
步骤二:将所述整理后的管桁架平面图纸载入Rhino软件中,在Rhino Grasshopper环境下,应用Guid电池框选图纸中所有杆件图层文字;应用Panel电池设置截面信息读取格式;应用Curve电池框选图纸中所有杆件图层线;应用Point电池点选图纸中作为约束支座的图层线交点;应用Point电池点选图纸中施加集中荷载的图层线交点;应用NumberSlider电池设置恒荷载数值;应用NumberSlider电池设置活荷载数值;应用NumberSlider电池设置恒荷载组合值系数;应用NumberSlider电池设置活荷载组合值系数;应用Panel电池设置SAP2000程序调用路径;应用Panel电池设置SAP2000模型保存路径;应用Panel电池设置SAP2000模型名称;应用Panel电池设置钢材材料类型;应用Boolean Toggle电池设置程序启动布尔开关;
步骤三:在Rhino Grasshopper环境下,编译开发CAD向SAP2000自动化建模分析电池组;
步骤四:打开SAP2000结构计算软件,在Grasshopper环境下,单击步骤二中的BooleanToggle电池,程序调用SAP2000,完成模型的建立与计算;
步骤五:在Grasshopper环境下,应用Panel电池连接步骤三中编译开发的CAD向SAP2000自动化建模分析电池组的输出端,显示恒载、活载、荷载组合下的结构位移最大值及其对应的节点编号。
2.根据权利要求1所述的一种关联CAD和SAP2000的管桁架自动化建模分析方法,其特征在于:所述步骤一中,整理后的管桁架平面图纸保留表征构件所须的图层线条及截面尺寸标注。
3.根据权利要求1所述的一种关联CAD和SAP2000的管桁架自动化建模分析方法,其特征在于:所述CAD向SAP2000自动化建模分析电池组,其输入参数包括:截面信息,与上述步骤二中所有杆件图层文字的Guid电池相连;截面命名方式,与上述步骤二中截面信息读取格式的Panel电池相连;杆件曲线,与上述步骤二中所有杆件图层线的Curve电池相连;约束节点,与上述步骤二中作为约束支座的图层线交点的Point电池相连;施加荷载节点,与上述步骤二中施加集中荷载的图层线交点的Point电池相连;恒荷载,与上述步骤二中恒荷载数值的Number Slider电池相连;活荷载,与上述步骤二中活荷载数值的Number Slider电池相连;恒荷载系数,与上述步骤二中恒荷载系数的NumberSlider电池相连;活荷载系数,与上述步骤二中活荷载系数的NumberSlider电池相连;SAP2000程序路径,与上述步骤二中SAP2000程序调用路径的Panel电池相连;文件保存路径,与上述步骤二中SAP2000模型保存路径的Panel电池相连;模型名称,与上述步骤二中SAP2000模型名称的Panel电池相连;钢材属性,与上述步骤二中钢材材料类型的Panel电池相连;启动按钮,与上述步骤二中程序启动布尔开关的Boolean Toggle电池相连。
4.根据权利要求3所述的一种关联CAD和SAP2000的管桁架自动化建模分析方法,其特征在于:所述步骤三中,CAD向SAP2000自动化建模分析的步骤具体包括:
步骤3.1:应用C# Script电池提取截面信息输入参数的参数文本和参数平面;应用GhPythonScript电池和ClearTree电池将参数文本转化为截面名称列表;应用GhPythonScript电池、Construct Point电池、Clear Tree电池提取参数平面中心点坐标,并转化为截面名称文本所在平面中心点列表;
步骤3.2:应用Curve Nearest Object电池,按照杆件曲线输入变量中曲线列表的顺序,从上述步骤一中截面名称文本所在平面中心点列表中,依次确定距离每一条曲线最近的截面文本所在平面中心点;依据截面命名方式输入参数,利用GhPython Script电池提取获得所有杆件直径列表和所有杆件壁厚列表,并形成所有杆件直径列表的Data电池和所有杆件壁厚列表Data电池;
步骤3.3:应用Rotate 3D电池和UnitY电池,将杆件曲线输入变量中的所有杆件曲线从XY平面转化为YZ平面,得到旋转后所有杆件曲线列表;应用EndPoints电池和Deconstruct电池,提取旋转后所有杆件曲线列表中曲线起点、终点坐标,并形成所有杆件起点X坐标列表的Data电池、所有杆件起点Y坐标列表的Data电池、所有杆件起点Z坐标列表的Data电池、所有杆件终点X坐标列表的Data电池、所有杆件终点Y坐标列表的Data电池、所有杆件终点Z坐标列表的Data电池;
步骤3.4:应用Rotate 3D电池和UnitY电池,将约束节点输入变量中的所有点从XY平面转化为YZ平面,得到旋转后所有约束节点列表;应用Deconstruct电池提取旋转后所有约束节点列表中所有约束节点的X坐标的Data电池、所有约束节点的Y坐标的Data电池、所有约束节点的Z坐标的Data电池;
步骤3.5:应用Rotate 3D电池和UnitY电池,将施加荷载节点输入变量中的所有点从XY平面转化为YZ平面,得到旋转后所有施加荷载节点列表;应用Deconstruct电池提取旋转后所有施加荷载节点列表中所有施加荷载节点的X坐标的Data电池、所有施加荷载节点的Y坐标的Data电池、所有施加荷载节点的Z坐标的Data电池;
步骤3.6:应用GH_CPython电池,通过Python语言调用SAP2000 API建模计算,完成结构分析,得到调用SAP2000 API建模计算的GH_CPython电池。
5.根据权利要求4所述的一种关联CAD和SAP2000的管桁架自动化建模分析方法,其特征在于:所述步骤3.6中,所得到的调用SAP2000 API建模计算的GH_CPython电池,其输入参数具体包括如下:
1)Diam,与上述步骤3.2中所有杆件直径列表的Data电池相连;
2)Thin,与上述步骤3.2中所有杆件壁厚列表的Data电池相连;
3)Node_X_S,与上述步骤3.3中所有杆件起点X坐标列表的Data电池相连;
4)Node_Y_S,与上述步骤3.3中所有杆件起点Y坐标列表的Data电池相连;
5)Node_Z_S,与上述步骤3.3中所有杆件起点Z坐标列表的Data电池相连;
6)Node_X_E,与上述步骤3.3中所有杆件终点X坐标列表的Data电池相连;
7)Node_Y_E,与上述步骤3.3中所有杆件终点Y坐标列表的Data电池相连;
8)Node_Z_E,与上述步骤3.3中所有杆件终点Z坐标列表的Data电池相连;
9)Node_Res_X,与上述步骤3.4中所有约束节点X坐标的Data电池相连;
10)Node_Res_Y,与上述步骤3.4中所有约束节点Y坐标的Data电池相连;
11)Node_Res_Z,与上述步骤3.4中所有约束节点Z坐标的Data电池相连;
12)Node_Load_X,与上述步骤3.5中所有施加荷载节点X坐标的Data电池相连;
13)Node_Load_Y,与上述步骤3.5中所有施加荷载节点Y坐标的Data电池相连;
14)Node_Load_Z,与上述步骤3.5中所有施加荷载节点Z坐标的Data电池相连;
15)Load_Dead,与恒荷载输入参数相连;
16)Load_Live,与活荷载输入参数相连;
17)Dead_ComIndex,与恒荷载系数输入参数相连;
18)Live_ComIndex,与活荷载系数输入参数相连;
19)SAP_Path,与SAP2000程序路径输入参数相连;
20)File_Path,与文件保存路径输入参数相连;
21)Model_Name,与模型名称输入参数相连;
22)Model_Mat,与钢材属性输入参数相连;
23)Run,与启动按钮输入参数相连。
6.根据权利要求5所述的一种关联CAD和SAP2000的管桁架自动化建模分析方法,其特征在于:所述步骤3.6中,调用SAP2000 API建模计算的步骤如下:
步骤3.6.1:在GH_CPython电池环境下,调用sys、comtypes.client、in32com.client、os外部库;
步骤3.6.2:应用os.path.exists判断文件保存路径File_Path是否存在,若存在,跳过,若不存在,则以File_Path创建新路径;应用AttachToInstance连接到当前运行的SAP2000程序,若存在正在运行的SAP2000程序,则应用comtypes.client.GetActiveObject("CSI.SAP2000.API.SapObject")获取当前激活的SAP2000对象,并命名为mySapObject,若不存在,则提示错误;
步骤3.6.3:应用mySapObject.SapModel创建名为SapModel的SAP2000模型对象;应用SapModel.InitializeNewModel设置单位为N,mm;应用SapModel.File.NewBlank创建新的空白模型;
步骤3.6.4:应用SapObject.SapModel.PropMaterial.SetMaterial定义编号为1,名称为Model_Mat的新材料;SapObject.SapModel.PropMaterial.SetMPIsotropic设置上述新材料为各向同性材料,弹性模量为206000 MPa,泊松比为0.2;
步骤3.6.5:循环调用杆件直径列表变量Diam和杆件壁厚列表变量Thin,应用SapModel.PropFrame.SetPipe定义杆件截面形式;
步骤3.6.6:循环调用杆件起点X坐标列表变量Node_X_S、杆件起点Y坐标列表变量Node_Y_S、杆件起点Z坐标列表变量Node_Z_S、杆件终点X坐标列表变量Node_X_E、杆件终点Y坐标列表变量Node_Y_E、杆件终点Z坐标列表变量Node_Z_E,应用SapModel.FrameObj.AddByCoord创建杆件;
步骤3.6.7:应用SapModel.FrameObj.SetReleases释放所有杆件两端的转动自由度;
步骤3.6.8:应用SapModel.FrameObj.GetPoints获取各杆件起始点编号,应用SapModel.PointObj.GetCoordCartesian获取起始点编号的空间坐标,循环调用约束节点X坐标变量Node_Res_X、约束节点Y坐标变量Node_Res_Y、约束节点Z坐标变量Node_Res_Z,判断起始点编号的空间坐标是否与约束节点坐标一致,若是,则应用SapModel.PointObj.SetRestraint约束该点X、Y、Z三个方向的平动;
步骤3.6.9:应用SapModel.LoadPatterns.Add添加恒荷载模式和活载荷模式;应用SapModel.LoadCases.StaticLinear.SetCase添加活荷载工况;应用SapModel.RespCombo.Add创建荷载组合,应用SapModel.RespCombo.SetCaseList设置荷载组合中恒荷载组合值系数为恒荷载系数Dead_ComIndex,应用SapModel.RespCombo.SetCaseList设置荷载组合中活荷载组合值系数为活荷载系数Live_ComIndex;
步骤3.6.10:循环获取各杆件起点、终点的笛卡尔坐标,分别与施加荷载节点X坐标变量Node_Load_X、施加荷载节点Y坐标变量Node_Load_Y、施加荷载节点Z坐标变量Node_Load_Z对比,若坐标一致,则应用SapModel.PointObj.SetLoadForce在该点沿Z轴负方向施加大小为Load_Dead的恒荷载,应用SapModel.PointObj.SetLoadForce在该点沿Z轴负方向施加大小为Load_Live的活荷载;
步骤3.6.11:应用SapModel.File.Save保存文件;应用SapModel.Analyze.SetActiveDOF设置激活自由度为Y轴自由度、Z轴自由度、绕X轴自由度;应用SapModel.Analyze.RunAnalysis启动分析;应用SapModel.PointObj.Count确定模型节点个数;
步骤3.6.12:循环调用每个节点,应用SapModel.Results.Setup.SetCaseSelectedForOutput选择输出结果的荷载类型为恒荷载;应用SapModel.Results.JointDispl提取每个节点Z方向的位移;比较每个节点Z方向的位移,确定节点在恒荷载下的最大位移和对应节点编号;
步骤3.6.13):循环调用每个节点,应用SapModel.Results.Setup.SetCaseSelectedForOutput选择输出结果的荷载类型为活荷载;应用SapModel.Results.JointDispl提取每个节点Z方向的位移;比较每个节点Z方向的位移,确定节点在活荷载下的最大位移和对应节点编号;
步骤3.6.14:循环调用每个节点,应用SapModel.Results.Setup.SetCaseSelectedForOutput选择输出结果的荷载类型为组合荷载;应用SapModel.Results.JointDispl提取每个节点Z方向的位移;比较每个节点Z方向的位移,确定节点在组合荷载下的最大位移和对应节点编号;
步骤3.6.15:应用SapModel.View.RefreshView更新SAP2000程序界面;定义输出列表变量output。
7.根据权利要求6所述的一种关联CAD和SAP2000的管桁架自动化建模分析方法,其特征在于:所述步骤3.6.15中,通过输出列表变量output,分别导出恒载下节点位移最大值、恒载下位移最大值对应的节点编号、活载下节点位移最大值、活载下位移最大值对应的节点编号、荷载组合下节点位移最大值、荷载组合下位移最大值对应的节点编号。
CN202410169392.8A 2024-02-06 2024-02-06 一种关联cad和sap2000的管桁架自动化建模分析方法 Pending CN118094899A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202410169392.8A CN118094899A (zh) 2024-02-06 2024-02-06 一种关联cad和sap2000的管桁架自动化建模分析方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202410169392.8A CN118094899A (zh) 2024-02-06 2024-02-06 一种关联cad和sap2000的管桁架自动化建模分析方法

Publications (1)

Publication Number Publication Date
CN118094899A true CN118094899A (zh) 2024-05-28

Family

ID=91152275

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202410169392.8A Pending CN118094899A (zh) 2024-02-06 2024-02-06 一种关联cad和sap2000的管桁架自动化建模分析方法

Country Status (1)

Country Link
CN (1) CN118094899A (zh)

Similar Documents

Publication Publication Date Title
WO2022257099A1 (zh) 基于bim的装配式建筑智能出图方法
Bazjanac Acquisition of building geometry in the simulation of energy performance
CN113642069B (zh) 基于bim和异构系统的建筑风荷载快速迭代设计方法
CN107273543B (zh) 一种dgn数据格式的转换方法
CN109214068A (zh) 基于bim的底层装配式建筑信息提取方法
CN106600700B (zh) 一种三维模型数据处理系统
CN107066676A (zh) 一种基于卫星板壳结构的有限元自动化建模方法
CN113140041A (zh) 一种基于云端的建筑领域三维自动建模系统及其建模方法
JP2006164219A (ja) 有限要素解析用インターフェース、有限要素解析用インターフェースのプログラムを記録したコンピュータ読み取り可能な記録媒体、高付加価値通信網を利用した有限要素解析方法、有限要素解析用並列処理計算機および有限要素解析用計算機
CN112651057A (zh) 铁路钢管混凝土系杆拱桥bim模型自动化创建系统及方法
CN111881578B (zh) 基于图数据库的机械产品数字孪生模型分层建模方法
Ma et al. A cloud-based BIM platform for information collaboration
CN115587784A (zh) 一种应用于钢结构数字化加工制造的bim方法
CN111581700A (zh) 基于catia模型添加bim属性并输出bim属性表的方法
CN112182886A (zh) 工程模型生成方法、装置、计算机设备和存储介质
CN115062376A (zh) 输电铁塔的三维数字化模型创建方法及装置
CN104143215A (zh) 索膜结构的信息化模型设计方法
CN114170377A (zh) 一种基于bim的历史建筑特色构件族库构建方法及系统
CN118094899A (zh) 一种关联cad和sap2000的管桁架自动化建模分析方法
CN115061662B (zh) 一种基于mbse的互联平台异构模型集成方法以及系统
CN109614701B (zh) 一种卫星太阳电池阵多学科仿真系统及方法
CN111191327A (zh) 五关节焊接机器人参数化自动建模系统
CN116541929A (zh) 室外堆场土建标准化单元参数化bim模型的构建方法
CN115222221A (zh) 智能化集成平台的构建方法、装置、设备及存储介质
CN113742824A (zh) 一种轻量化钢结构智慧协同设计云平台及其操作方法

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination