9
林憲良 富台工程股份有限公司 工程師 / 國立成功大學 碩士 前言 工程技術日新月翼,軟硬體及施工方法也 大幅提升,工程設計軟件則是逐步更新,近來 更掀起一股以 BIM 概念(圖 1)執行工程的風 潮,此概念借由 3D+2D 的幾合形狀讓非專業工 程師也可參與討論,讓每一個工程團隊的成員, 對整體工程有相同的理解,使結構工程師所建 立的模型可與電機、消防、建築領域作整體的 系統整合及干涉檢查,並且擺脫經驗概估投標 報價的傳統模式,快速且精準的計算工程數量 且以此數量做為報價的合理依據,避免人為的 疏失,造成不必要的成本損失,並達到成本及 預算的控制。 Plant Design Management System –PDMS SMART PLAN 3D–SP3D 是近十幾年來出現最 先進的工廠設計軟體系統,主要運用在石油、 化工及天然氣等超大型工廠設計,目的是為了 簡化工程設計過程,有效率的重覆使用現有數 具,並可以在整個工廠的生命週期中,對工廠 進行維護。但對土木專業而言太過於簡化反 而無法表現設計細節,因此以 STRUCTURE - TEKLA 作為土木專業與 PDMS SP3D 的溝通 平台,並配合 TEKLA OPENAPI 開發之相關應 用程式,可大幅提升工作效率及品質。 一、 TEKLA 與 PDMS 及 SP3D 之 差異 PDMS SP3D 兩款軟體大致上並無太大 的差異,在此則不針對細微的變化做討論,相 較下 TEKLA PDMS SP3D 在系統的設置、 座標、桿件建立及零星結構 ( 如樓梯、爬梯、 扶手等 ) 的設定複雜程度有極大的不同,一般 設計建模常用的相關設定比較如下: 應用介紹 OPEN API TEKLA 78 技師期刊 73 圖 1 BIM 概念示意圖

TEKLAŠ€師期刊(第61期起)/73/078.pdf · 2016-07-05 · tekla 作為土木專業與pdms 或sp3d 的溝通 平台,並配合tekla openapi開發之相關應 用程式,可大幅提升工作效率及品質。

  • Upload
    others

  • View
    7

  • Download
    0

Embed Size (px)

Citation preview

Page 1: TEKLAŠ€師期刊(第61期起)/73/078.pdf · 2016-07-05 · tekla 作為土木專業與pdms 或sp3d 的溝通 平台,並配合tekla openapi開發之相關應 用程式,可大幅提升工作效率及品質。

林憲良 富台工程股份有限公司 工程師 / 國立成功大學 碩士

前言

工程技術日新月翼,軟硬體及施工方法也

大幅提升,工程設計軟件則是逐步更新,近來

更掀起一股以 BIM 概念(圖 1)執行工程的風

潮,此概念借由 3D+2D 的幾合形狀讓非專業工

程師也可參與討論,讓每一個工程團隊的成員,

對整體工程有相同的理解,使結構工程師所建

立的模型可與電機、消防、建築領域作整體的

系統整合及干涉檢查,並且擺脫經驗概估投標

報價的傳統模式,快速且精準的計算工程數量

且以此數量做為報價的合理依據,避免人為的

疏失,造成不必要的成本損失,並達到成本及

預算的控制。

Plant Design Management System –PDMS 及

SMART PLAN 3D–SP3D 是近十幾年來出現最

先進的工廠設計軟體系統,主要運用在石油、

化工及天然氣等超大型工廠設計,目的是為了

簡化工程設計過程,有效率的重覆使用現有數

具,並可以在整個工廠的生命週期中,對工廠

進行維護。但對土木專業而言太過於簡化反

而無法表現設計細節,因此以 STRUCTURE - TEKLA 作為土木專業與 PDMS 或 SP3D 的溝通

平台,並配合 TEKLA OPENAPI 開發之相關應

用程式,可大幅提升工作效率及品質。

一、�TEKLA 與 PDMS 及 SP3D 之差異

PDMS 及 SP3D 兩款軟體大致上並無太大

的差異,在此則不針對細微的變化做討論,相

較下 TEKLA 與 PDMS 及 SP3D 在系統的設置、

座標、桿件建立及零星結構 ( 如樓梯、爬梯、

扶手等 ) 的設定複雜程度有極大的不同,一般

設計建模常用的相關設定比較如下:

應用介紹

OPEN APITEKLA

78 技師期刊 73

圖 1 BIM 概念示意圖

Page 2: TEKLAŠ€師期刊(第61期起)/73/078.pdf · 2016-07-05 · tekla 作為土木專業與pdms 或sp3d 的溝通 平台,並配合tekla openapi開發之相關應 用程式,可大幅提升工作效率及品質。

1、設置 一般使用上,PDMS/SP3D 須先設置一

個 SECSION 文件,建立一個數據資料庫。而

TEKLA 對初級用戶是通過選擇不同國家來調

用不同的型鋼資料庫和語言設置。硬體方面,

PDMS/SP3D 對顯卡要求較為嚴苛,TEKLA 則

支持各種主流的顯卡。

2、軸線設置石化工業等項目的軸線網非常巨大且繁

瑣,須使用到絕對座標與相對座標結合的方式

來完成。PDMS/SP3D 建的基礎是將整個廠區的

三維模型由單用戶或是多用戶使用絕對座標建

立起來。於整體模型中,用戶可以完全預覽到

整廠區的模型,即時發現並糾正單體結合部位

的錯誤。TEKLA 在工業項目中一般採用每個單

體獨自建立模型文件,對公共用項目則分區、

分標高來劃分。此種劃分方法有利於提高電腦

的運行速度,提高設計效率。且每個模型也擁

有各自相對的軸線網系統,同時可以查詢其絕

對座標。但是只將單體的 TEKLA 模型逐個輸

出到SPR等軟體後,才能將整個模型拼湊出來,

無法即時檢查單體與單體之間結合部位。

3、桿件的創建兩款軟體在桿件複製時的區別非常大,

TEKLA 採用的是複製和黏貼結合輸入各個方

向的距離的應用方法,操作十分簡單明瞭。

PDMS/SP3D 由於桿件之間的關聯性,每次只能

複製一次,無法實現同樣桿件的多次複製一次

完成。

4、樓板的鋪設在 TEKLA 中可以使用梁的屬性,通過兩

點創建板元素,使用板的屬性,通過多點定位

板的邊界來創建。PDMS/SP3D 中樓板的屬性是

板,創建的方法較多元,可以像 TEKLA 一樣

也可以使用桿件作為邊界來定義樓板。

5、基礎的創建TEKLA 對獨立基礎和聯合基礎的建立可以

參照樓板的創建方法,也有專門的混凝土模組

提供其中鋼筋及接頭的建立。PDMS/SP3D 中獨

立基礎有專門的命令來創建,創建後可以通過

修改參數的方式改變短柱和灌漿,但無法在其

中添加鋼筋等詳細訊息,大型底板則只能按照

設備基礎的創建方式建立。

6、零星結構(如樓梯、爬梯、扶手等)零星結構這些構件一般都是由管材、板件、

角鋼及槽鋼等型鋼組合而成,在 TEKLA 中通

過巨集命令進行間距、尺寸等參數的修改。樓

梯可以依用途來設定且可以帶休息平台或不

帶,爬梯可是直式爬梯、斜式爬梯,甚至是螺

旋爬梯,扶手也可以滿足不同項目的設計要求。

用戶可以使用 VC.NET 等編譯程式對巨集進行

開發,加入對話式視窗,增加了 TEKLA 的開

發性。PDMS/SP3D 的標準程序對這些零星結構

支援比較單一,參數設置主面向外型,而非細

部連結。

7、節點的創建和調整節點的創建和調整在鋼結構設計中一直

是個非常重要的課題,TEKLA 節點資料庫千

變萬化,用戶可以選擇一塊板、一塊螺栓去創

建節點,自由度非常高。特別是針對某些特

殊結構來說,自定義節點變的相當重要。而

PDMS/ SP3D 的節點創建就比較注重連接性,

在PDMS/SP3D中節點這個操作叫作組件連接,

在形式上將兩根構件連在一起,具體的參數設

置單一,只能顯示板的大小,暫時無法達到細

部設計要求,給其他專業的碰撞檢核帶來一定

的困難。兩款軟體都有碰撞檢核,由於 TEKLA的節點較為細緻,校核結果更為精確,甚至能

判斷出板件與螺栓之間的碰撞。PDMS/SP3D 主

要是用來檢核管道、管橋與構件之間的碰撞,

結果比較粗曠,例如扶手和小管道或者儀表之

間的碰撞一般很難被檢察出來。

TEKLA OPEN API 應用介紹

79技師期刊 73

Page 3: TEKLAŠ€師期刊(第61期起)/73/078.pdf · 2016-07-05 · tekla 作為土木專業與pdms 或sp3d 的溝通 平台,並配合tekla openapi開發之相關應 用程式,可大幅提升工作效率及品質。

二、API 的使用時機

1、自動創建工具使用 API 可以創建模型或圖紙的自動控制

項,這些控制項可以用於典型的常用工程或某

些特定實例。

a. 創建基本模型。

b. 插入含有圖紙資訊的 AutoCAD 節點大

樣圖。

c. 為布置圖自動創建標註尺寸。

2、實現 TEKLA 與其他軟體的整合 API

可以應用於實現 TEKLA 模型和圖紙與其

他軟體的資訊傳輸,例如:a. OFFICE 軟體。

b. A&D 類軟體。

c. MIS&ERP 軟體等。

3、創建具有新功能的應用程式,可以透

過 API 為 TEKLA 添加新的功能或資訊,

例如:a. RFI 管理。

b. 部件間新的連接節點。

三、Tekla�API 基本的使用方法

Tekla Structures API 是用 Microsoft .NET 技

術或 COM 技術開發 Tekla Structures 模型應用

程式,這些外接程式可為 .NET 或 COM 的應用

程式(*.exe)、Macros(*.cs)或者 Microsoft Office 的 VBA 程式,其主要是由五大模型數據

資料庫組成:

a. Tekla.Structures.Model.dll• Connection to model database 連接模型

資料庫

• Model object manipulation 模型物體的

操作

• Parts, bolts, rebars, loads, grids.. 零件、

螺栓、鋼筋、荷載、軸線…

• Picking/selection from model 在模型裏

點取 / 選擇

b. Tekla.Structures.Drawings.dll• Connection to drawing database 連接圖

紙資料庫

• Drawing object manipulation 圖紙目標

的操作

• Views, dimensions, text,graphics.. 視圖、

標注、文本、顯示…

• Picking/selection from drawings 在圖紙

裏點取 / 選擇

c. Tekla.Structures.Plugins.dll• Create new intelligent objects 創建新的

智慧組件

• Used in model and drawings 在模型和圖

紙裏使用

• Input management, UI, dependency 輸入 、用戶介面、相關

• Connections, ViewDimensioning..節點、

標注顯示

e. Tekla.Technology.Scripting.dll• Record and Run UI actions 記錄、運行

用戶介面的操作

• Model and Drawing API support 模型和

圖紙的 API 支援

• Report generator, OpenExtranet.. 生成報

告、打開 Extranet• Can be used only in scripting 僅通過腳本

使用

Tekla Structures 坐標系統撰寫程式時必須瞭解軟體模型的三度空間

座標,一般不論是分析軟體或建築軟體大致上

都會有兩個座標空間,一個是用來定義結構幾

何形狀的整體座標系統(圖 2),而由於結構

斷面的多樣化,則須要局部座標系統(圖 3)

專輯

80 技師期刊 73

結構設計中的 API技術應用

Page 4: TEKLAŠ€師期刊(第61期起)/73/078.pdf · 2016-07-05 · tekla 作為土木專業與pdms 或sp3d 的溝通 平台,並配合tekla openapi開發之相關應 用程式,可大幅提升工作效率及品質。

來定義主軸的方向,且局部座標系統只能為直

角系座標。

TEKLA API 的開發可藉由 C++ 或 C# 來完

成,本文則利用 C# 作說明,首先使用者須開

啟 C# 軟件並新增一個 Window Form 專案,注

意 C# 內建並無 Tekal 的五大模型數據資料的庫

模組,所以必須於開啟新編輯器時引用 Tekla的模組(如圖 4、圖 5),完成後即可在編輯器

中編寫程式碼。

以下將利用實例一及實例二介紹如何透過

Tekla Open API 設計一個創建鋼梁和 RC 梁配筋

到 Tekla Structures 模型的小程式,編寫前需添

加 Tekla. Structures. Model.dll 和 Tekla.Structures.dll 的引用,只有在添加引用後才能使用 Tekla Structures.NET API。

四、應用實例範例

實例一 鋼構梁的創建

using Tekla.Structures;using Tekla.Structures.Model;using Tekla.Structures.Geometry3d;using TSM = Tekla.Structures.Model;using TS3D = Tekla.Structures.Geometry3d;查看 Form1.cs 的代碼(右鍵單擊視窗,

在對話方塊中選擇查看代碼),在頂部已存

在的"using"類引用行後添加 using Tekla.Structures.Model 和 using Tekla Structures =Tekla.Structures 的類引用。返回 Form1.cs 視窗,增

加一個按鈕,將按鈕拖放至視窗並命名為 Creat Beam,然後雙擊按鈕查看點擊按鈕事件的設計

代碼。

private void button1_Click(object sender, EventArgs e)

{Model myModel = new Model();Beam myBeam = new Beam(new TS3D.

Point(1000, 1000, 1000), new TS3D.Point(6000, 6000, 1000));

myBeam.Material.MaterialString = “A36";m y B e a m . P r o f i l e . P r o f i l e S t r i n g =

“RH488X300X11X18";myBeam.Insert();myModel.CommitChanges();}

圖 3 Tekla Structure 局部座標系統

圖 2 Tekla Structure 整體座標系統

圖 4

圖 5

TEKLA OPEN API 應用介紹

81技師期刊 73

Page 5: TEKLAŠ€師期刊(第61期起)/73/078.pdf · 2016-07-05 · tekla 作為土木專業與pdms 或sp3d 的溝通 平台,並配合tekla openapi開發之相關應 用程式,可大幅提升工作效率及品質。

double MaximumX = Beam.GetSolid().MaximumPoint.X;double MaximumY = Beam.GetSolid().MaximumPoint.Y;double MaximumZ = Beam.GetSolid().MaximumPoint.Z;double MidX = (MinimumX + MaximumX) / 2.0;

創建縱向鋼筋

由極值找出 RC 梁的輪廓點,即可定義下層

鋼筋的形狀,上述程式中 MidX 是用來控制搭接

的位置,本程式搭接預設位置為梁中點處。

Polygon Polygon = new Polygon();Polygon.Points.Add(new TS3D.Point(MinimumX, MinimumY, MaximumZ));Polygon.Points.Add(new TS3D.Point(MinimumX, MinimumY, MinimumZ));Polygon.Points.Add(new TS3D.Point(MidX, MinimumY, MinimumZ));

Polygon Polygon2 = new Polygon();Polygon2.Points.Add(new TS3D.Point(MinimumX, MaximumY, MaximumZ));Polygon2.Points.Add(new TS3D.Point(MinimumX, MaximumY, MinimumZ));Polygon2.Points.Add(new TS3D.Point(MidX, MaximumY, MinimumZ));

建立下層鋼筋

RebarGroup RebarGroup1 = new RebarGroup();RebarGroup1.Polygons.Add(Polygon);

以上代碼可以增加到 click 方法中,這樣當

點擊按鈕的時候將會在 points (1000,1000,1000) 和(6000,6000,1000) 間創建一個梁。以上都完成後,

只要確認 Tekla Structures 模型已經打開,在從

Visual Studio DEBUG 功能表中選擇開始後就可以

運行程式設計含有 Create Beam 按鈕的表單就出

現了,點擊 Create Beam 按鈕,鋼梁將會創建在 打開的 Tekla Structures 模型中。

通常在使用 Tekla.Net API 類別前,需要初

始化 Tekla Structures 軟體和設計程式間的連接,

且需要創建一個新的繼承類別 Tekla. Structures. Model:

Model myModel = new Model();

實例二 RC 梁自動化配筋程式

RC 模組比鋼構模組需多增加一組 Solid 的

類,其主要功用是用來描述斷面的輪廓,找出梁

桿件兩端的極大極小值並配合 Polygon 屬性建立

箍筋群組。

using TSM = Tekla.Structures.Model;using TS3D = Tekla.Structures.Geometry3d;using TSMUI = Tekla.Structures.Model.UI;using TSS = Tekla.Structures.Solid;

建立一 RC 梁

Beam Beam = new Beam(new TS3D.Point(0, 0, 0), new TS3D.Point(5000, 0, 0));

Beam.Profile.ProfileString = “600X400";Beam.Material.MaterialString = “280";Beam.Finish = “PAINT";Beam.Insert();

double MinimumX = Beam.GetSolid().MinimumPoint.X;double MinimumY = Beam.GetSolid().MinimumPoint.Y;double MinimumZ = Beam.GetSolid().MinimumPoint.Z;

專輯

82 技師期刊 73

結構設計中的 API技術應用

Page 6: TEKLAŠ€師期刊(第61期起)/73/078.pdf · 2016-07-05 · tekla 作為土木專業與pdms 或sp3d 的溝通 平台,並配合tekla openapi開發之相關應 用程式,可大幅提升工作效率及品質。

RebarGroup1.Polygons.Add(Polygon2);RebarGroup1.RadiusValues.Add(37.5);RebarGroup1.SpacingType = RebarGroup.RebarGroupSpacingTypeEnum.SPACING_TYPE_TARGET_SPACE;

SpacingType 共有 7 種型式:

EXACT_SPACINGS( 準確間距值 )EXACT_NUMBER( 按鋼筋數量平均分配 )TARGET_SPACE( 按物件間隔距離分佈 )EXACT_SPACE_FLEX_AT_START( 調變第一個間距以使用準確間距值 )EXACT_SPACE_FLEX_AT_END( 調變最後一個間距以使用準確間距值 )EXACT_SPACE_FLEX_AT_BOTH( 調變前後間距以使用準確間距值 )EXACT_SPACE_FLEX_AT_MIDDLE( 調變中央間距以使用準確間距值 )

RebarGroup1.Spacings.Add(50.0);RebarGroup1.ExcludeType = RebarGroup.

ExcludeTypeEnum.EXCLUDE_TYPE_NONE;

EXCLUDE_TYPE 為鋼筋現顯的機制,共

有四種表現的態樣 ( 如下所示 ),一般常使用

TYPE_NONE 顯示全部的鋼筋。

EXCLUDE_TYPE_NONE無 ( 包括全部的鋼筋 )EXCLUDE_TYPE_FIRST 第一個鋼筋

EXCLUDE_TYPE_LAST 最後一個鋼筋

EXCLUDE_TYPE_BOTH第一個和最後一個

RebarGroup1.Father = Beam;RebarGroup1.Name = “RebarGroup1";RebarGroup1.Class = 3;RebarGroup1.Size = “D13";RebarGroup1.NumberingSeries.StartNumber

= 0;RebarGroup1.NumberingSeries.Prefix =

“Group";RebarGroup1.Grade = “SD280";R e b a r G r o u p 1 . S t a r t H o o k . S h a p e =

RebarHookData.RebarHookShapeEnum.NO_HOOK;

RebarHookShapeEnum 為彎鉤型狀的定義

屬性,共有五種型式

NO_HOOK.( 不使用彎鉤 ) HOOK_90_DEGREES. (90 度彎鉤 )HOOK_135_DEGREES. (135 度彎鉤 )HOOK_180_DEGREES. (180 度彎鉤 )CUSTOM_HOOK. ( 用戶自定義彎鉤 )

R e b a r G r o u p 1 . E n d H o o k . S h a p e = RebarHookData.RebarHookShapeEnum.NO_HOOK;

RebarGroup1.OnPlaneOffsets.Add(25.0);RebarGroup1.OnPlaneOffsets.Add(25.0); RebarGroup1.OnPlaneOffsets.Add(25.0);

利 用 O F F S E T _ T Y P E _ C O V E R _THICKNESS 設定鋼筋起始點及終點的保護層

厚度

RebarGroup1.StartPointOffsetType =Reinforcement.RebarOffsetTypeEnum

TEKLA OPEN API 應用介紹

83技師期刊 73

Page 7: TEKLAŠ€師期刊(第61期起)/73/078.pdf · 2016-07-05 · tekla 作為土木專業與pdms 或sp3d 的溝通 平台,並配合tekla openapi開發之相關應 用程式,可大幅提升工作效率及品質。

.OFFSET_TYPE_COVER_THICKNESS;RebarGroup1.StartPointOffsetValue = 40;Reba rGroup1 .EndPo in tOff se tType =

Reinforcement.RebarOffsetTypeEnum.OFFSET_TYPE_COVER_THICKNESS;RebarGroup1.EndPointOffsetValue = 40 ;RebarGroup1.FromPlaneOffset = 40;將定義完成的下層鋼筋插入至 Tekla 模型

空間

RebarGroup1.Insert();

Polygon Polygon3 = new Polygon();Polygon3.Points.Add(new TS3D.Point(MidX, MinimumY, MinimumZ));P o l y g o n 3 . P o i n t s . A d d ( n e w T S 3 D .

Point(MaximumX, MinimumY, MinimumZ));P o l y g o n 3 . P o i n t s . A d d ( n e w T S 3 D .

Point(MaximumX, MinimumY, MaximumZ));

Polygon Polygon4 = new Polygon();Polygon4.Points.Add(new TS3D.Point(MidX,

MaximumY, MinimumZ));P o l y g o n 4 . P o i n t s . A d d ( n e w T S 3 D .

Point(MaximumX, MaximumY, MinimumZ));P o l y g o n 4 . P o i n t s . A d d ( n e w T S 3 D .

Point(MaximumX, MaximumY, MaximumZ));

R e b a r G r o u p R e b a r G r o u p 2 = n e w RebarGroup();

RebarGroup2.Polygons.Add(Polygon3);RebarGroup2.Polygons.Add(Polygon4);RebarGroup2.RadiusValues.Add(37.5);RebarGroup2.SpacingType = RebarGroup.

RebarGroupSpacingTypeEnum.SPACING_TYPE_TARGET_SPACE;RebarGroup2.Spacings.Add(50.0);RebarGroup2.ExcludeType = RebarGroup.

ExcludeTypeEnum.EXCLUDE_TYPE_NONE;

RebarGroup2.Father = Beam;RebarGroup2.Name = “RebarGroup2";RebarGroup2.Class = 3;RebarGroup2.Size = “D13";RebarGroup2.NumberingSeries.StartNumber

= 0;RebarGroup2.NumberingSeries.Prefix =

“Group";RebarGroup2.Grade = “SD280";R e b a r G r o u p 2 . S t a r t H o o k . S h a p e =

RebarHookData.RebarHookShapeEnum.NO_HOOK;

R e b a r G r o u p 2 . E n d H o o k . S h a p e = RebarHookData.RebarHookShapeEnum.NO_HOOK;

RebarGroup2.OnPlaneOffsets.Add(25.0);RebarGroup2.OnPlaneOffsets.Add(25.0);RebarGroup2.OnPlaneOffsets.Add(25.0);

RebarGroup2.Star tPointOffse tType = Reinforcement.RebarOffsetTypeEnum

.OFFSET_TYPE_COVER_THICKNESS;RebarGroup2.StartPointOffsetValue = 40;Reba rGroup2 .EndPo in tOff se tType =

Reinforcement.RebarOffsetTypeEnum.OFFSET_TYPE_COVER_THICKNESS;RebarGroup2.EndPointOffsetValue = 40;RebarGroup2.FromPlaneOffset = 40;RebarGroup2.Insert();R e b a r S p l i c e R e b a r S p l i c e = n e w

RebarSplice(RebarGroup1, RebarGroup2);

上層縱向鋼筋可參照上述程式撰寫,其設

定與下層鋼筋大同小異,但要注意上下層主筋

須錯開才不會有鋼筋碰撞的問題。

創建箍筋

箍筋的創建與縱向鋼筋的創建方法原理大

致是相同,只是箍筋創建需要使用 RebarGroup

專輯

84 技師期刊 73

結構設計中的 API技術應用

Page 8: TEKLAŠ€師期刊(第61期起)/73/078.pdf · 2016-07-05 · tekla 作為土木專業與pdms 或sp3d 的溝通 平台,並配合tekla openapi開發之相關應 用程式,可大幅提升工作效率及品質。

類,運用 RebarGroup 類可以使箍筋創建更有效

率。

程式撰寫完成後可利用 C# 開始偵錯

(F5),程式將被運行並進行偵錯,而且 C# 會

產生一執行檔 (.exe) 存放在專案資料夾底下

的 \bin\Debug 中,為求整體性可以將 .exe 檔放

置 C:\TeklaStructures\19.0\Environments\taiwan \macros\modeling 中並製作一個以 .CS 檔,此後

便可以直接由 Tekla\ 工具 \ 巨集來呼叫上述創

建梁鋼筋的執行檔執行配筋。

.CS 檔程式碼內容如下所示:

using Tekla.Structures;using Tekla.Structures.Model;namespace Tekla.Technology.Akit.UserScript

{public class Script {public static void Run(Tekla.Technology.Akit.

IScript akit) {System.Diagnostics.Process Process = new

System.Diagnostics.Process();Process.EnableRaisingEvents=false;System.String xs_dir = System.Environment.

GetEnvironmentVariable

(“XS_DIR");Process.StartInfo.FileName = xs_dir + Process.Start();Process.WaitForExit();}}}透過前述的程式碼內容,配合 SAP 2000

API 或是 STAAD 的 OPEN_STAAD,可製作自

動化匯入模組將分析模型的桿件導入 Tekla 並

完成配筋動作,目前 Tekla 在台灣代理商的努

力下已有搭配 ETABS 分析軟體且透過 EXCEL來達到自動化配筋的模組。偶爾會有局部配筋

量修改的需求,若想針對既有構件修改,在此

種情況下使用以下幾種屬性來判斷選取物件的

輪廓、方向及桿件的資訊,可得到最有效及最

快的修正。

枚舉 Tekla Structures 模型物件

在很多實際應用中,使用者須輸入最基本

的操作就是用戶的預先選擇,也就是使用者需

要先選擇模型視圖中需要處理的物體,如下實

例介紹的就是使用枚舉的方法選擇所有 Beam類型的物體。

ModelObjectEnumerator myEnum =myModel.GetModelObjectSelector().GetSelectedObjects();while(myEnum.MoveNext()){Beam myPart = myEnum.Current as Beam;if(myPart != null){...}}

建立工作平面

在多數實際使用中,需要設置當前工作

TEKLA OPEN API 應用介紹

85技師期刊 73

Page 9: TEKLAŠ€師期刊(第61期起)/73/078.pdf · 2016-07-05 · tekla 作為土木專業與pdms 或sp3d 的溝通 平台,並配合tekla openapi開發之相關應 用程式,可大幅提升工作效率及品質。

平面以讓實際操作是在當前平面坐標系上。如

下實例介紹如何設置工作平面為沿著梁的坐標

系。這種方法我們可以確保程式的運行和輸出

不依靠 3D 模型中梁的位置和方向,來達到簡

化程式設計的目的,甚至在程式改變當前工作

面時,先前用戶設置的工作平面依然可以被恢

復使用。

// first store current work planeTransformationPlane currentPlane =myModel.GetWorkPlaneHandler().GetCurrentTransformationPlane();// set new work plane same as part's local

coordsysTransformationPlane localPlane = newT r a n s f o r m a t i o n P l a n e ( m y P a r t .

GetCoordinateSystem());myModel.GetWorkPlaneHandler().SetCurrentTransformationPlane(localPlane);…

// remember to restore current work planemyModel.GetWorkPlaneHandler().SetCurrentTransformationPlane(currentPla

ne);

獲取物件的幾何資料

經實例一的例句所創建的梁在 Tekla 中只

是一條直線,因此進一步的設計須要考慮物體

具體詳細幾何尺寸以及如何在程式設計中使用

它。所以,撰寫程式時需要得到目標物體的最

少限度的資料,也就是一些必要物體邊界線的

資料,然而,為得到邊界線角點,我們需要零

件物體的幾何資料作為參考引用。

// get solid of part to be used for rebar point calculations

Solid solid = myPart.GetSolid() as Solid;

五、應用與建議

TEKLA 在模型建立上具有非常龐大且齊

全的資料庫,用戶在使用上也擁有極高的自由

度,並可藉由 TEKLA OPENAPI 的模組開發可

以省去過多的重複性操作及大量資料處理的時

間。TEKLA 雖然有大量資料庫及高自由度,但

因屬整合性軟件故本身並無運算分析的功能,

其分析設計部分需仰賴與設計軟體 (SAP 2000/ STAAD.pro …) 間的數據傳遞獲得,故在建立

鋼構接頭時並不會自動檢核螺栓、連接板或結

構局部構件強度。一般使用者常以為依照分析

結果針對構件尺寸選擇接頭即可,往往忽略接

頭螺栓鎖固位置並非在梁中心,而此偏心對接

頭強度的折減也不容小覷,前述盲點可以利用

API 技術得到自動檢核篩選功能,減少誤差產

生。此外筆者建議藉由 TEKLA OPENAPI 結合

OFFICE 作業系統及結構分析軟體 (SAP 2000/STAAD.pro),讓使用者可以透過量化的數據報

表了解接頭的使用狀況,在未來競標時可以掌

握精準優勢,且對於設計與施工進行時的干涉

模擬將有實質上的助益。

參考文獻[1] TEKLA Structures Basic Design 基礎教材 (

歐亞電腦股份有限公司 )[2] TEKLA Open API– 程式開發講義 ( 歐亞電腦

股份有限公司 )。[3] TEKLA Structures 樣板編輯 3.x 版 進階教材

( 歐亞電腦股份有限公司 )。[4] TEKLA Open API – 程式開發範例 ( 歐亞電

腦股份有限公司 )。[5] T E K L A O p e n A P I–D e v e l o p e r s G

u i d e ,Reference, Manual, Examples, Self-Learning Exercises, Templates。

[6] 柏克德工程有限公司,「淺談 SMART PLAN 3D ( 智能工廠三維軟件 ) 與 TEKLA

STRUCTURE 異同」,2010。

專輯

86 技師期刊 73

結構設計中的 API技術應用