ETABS是一款常用的結(jié)構(gòu)設(shè)計軟件怒医,能夠?qū)崿F(xiàn)快速建模岭埠、分析等功能裹刮。這里以ETABS 2015為例音榜,闡述利用ETABS API進行二次開發(fā)的方法。
文章的主要參考文獻為ETASB自帶的CSi API ETABS 2015.chm捧弃,結(jié)合自身開發(fā)實例進行說明赠叼。
先看一個簡單的C#例子擦囊,用于獲取模型的連接(link)數(shù)目和名稱。
using ETABS2015;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Reflection;
namespace PostProcess
{
? ? public class cPlugin
? ? {
? ? ? ? public void Main(ref ETABS2015.cSapModel SapModel, ref ETABS2015.cPluginCallback ISapPlugin)
? ? ? ? {
? ? ? ? ? ? //Create By Ron-Wang
? ? ? ? ? ? //用于獲取API函數(shù)調(diào)用的返回值嘴办,若為0則調(diào)用成功
? ? ? ? ? ? int ret = 0;
? ? ? ? ? ? //用于設(shè)置模型的單位制
? ? ? ? ? ? ret = SapModel.SetPresentUnits(eUnits.kN_m_C);
? ? ? ? ? ? //連接數(shù)
? ? ? ? ? ? int numLink = 0;
? ? ? ? ? ? //連接名稱
? ? ? ? ? ? string[] linkName = null;
? ? ? ? ? ? //獲取連接信息
? ? ? ? ? ? ret = SapModel.LinkObj.GetNameList(ref numLink,ref linkName);
? ? ? ? ? ? //彈窗
? ? ? ? ? ? if (ret != 0)
? ? ? ? ? ? ? ? MessageBox.Show("獲取連接失斔渤 !");
? ? ? ? ? ? else
? ? ? ? ? ? {
? ? ? ? ? ? ? ? if (numLink > 0)
? ? ? ? ? ? ? ? ? ? MessageBox.Show("有" + numLink + "個連接");
? ? ? ? ? ? ? ? else
? ? ? ? ? ? ? ? ? ? MessageBox.Show("無連接");
? ? ? ? ? ? }
? ? ? ? }
? ? }
}
上述例子中涧郊,首先應(yīng)該添加ETABS2015引用贯被。這里的PostProcess是命名空間,注意插件開發(fā)的類名必須是cPlugin(也可以編程實現(xiàn)外部調(diào)用妆艘,后面會說到)M睢!Main主函數(shù)批旺,參數(shù)可以先不管幌陕。
API中的函數(shù)要用SapModel(本身就是一個Interface)進行調(diào)用,例如第一個:
ret = SapModel.SetPresentUnits(eUnits.kN_m_C);
表示模型設(shè)置單位制為kN-m-C汽煮,ret是函數(shù)的返回值搏熄,若為0則表示調(diào)用成功。eUnits是API中定義的一個Enumeration暇赤,具體如下:
再看另外一個函數(shù)調(diào)用:
ret = SapModel.LinkObj.GetNameList(ref numLink,ref linkName);
LinkObj也是一個Interface搬卒,GetNameList是其中一個函數(shù),表示獲取連接名稱列表翎卓。ref表示參數(shù)按引用傳遞契邀,這里numLink和linkName都由函數(shù)賦值,分別對應(yīng)模型中連接個數(shù)和相應(yīng)的名稱列表失暴,數(shù)據(jù)類型為int與string[]坯门。
除了上述例子用到的Interfaces,ETABS API中還提供其他各種各樣的Interfaces逗扒,比如獲取分析結(jié)果的AnalysisResults(可以獲取需要的分析結(jié)果古戴,進行后處理、輸出)矩肩、設(shè)置分析結(jié)果工況等信息的AnalysisResultsSetup以及各種單元的Interfaces等现恼,這些在后續(xù)會相應(yīng)提到。
謝謝您的閱讀與支持黍檩!
文章內(nèi)容原創(chuàng)叉袍,如需轉(zhuǎn)載或內(nèi)容合作,請聯(lián)系作者:wangrongxin168@163.com