towersadsa

3
tower.vbs (page #1) '/*--------------------------------------------------------------------------------------+ '| '| $RCSfile: tower.vbs,v $ '| $Revision: 1.2 $ '| $Date: 2013/11/15 22:25:37 $ '| '| $Copyright: (c) 2013 Bentley Systems, Incorporated. All rights reserved. $ '| '+--------------------------------------------------------------------------------------*/ Sub Main 'DESCRIPTION: A Simple Tower Set StwApp = GetObject (,"StWizard.Application") Begin Dialog UserDialog 400,175,"Tower Parameters" ' %GRID:10,7,1,1 Text 20,7,160,21,"Base Dimension:",.tBaseSize Text 20,7,160,21,"Base Dimension:",.tBaseSize Text 20,35,160,21,"Top Dimension:",.tTopSize Text 20,98,170,21,"No. of Bays Along Height:",.tNBay Text 20,63,160,21,"Height:",.Height TextBox 200,7,90,21,.dBase TextBox 200,35,90,21,.dTop TextBox 200,63,90,21,.dHeight TextBox 200,98,90,21,.nBay OKButton 210,147,140,21 CancelButton 30,147,150,21 End Dialog Dim dlg As UserDialog Dim dlgResult As Integer Dim LengthB As Double Dim LengthT As Double Dim Height As Double Dim nBay As Integer Dim NumOfNodes As Integer Dim NumOfNodes As Integer Dim NumOfMembers As Integer Dim NumOfChords As Integer Dim NumOfHoops As Integer Dim NumOfVCrosses As Integer Dim NumOfHCrosses As Integer Dim dH As Double Dim dX As Double Dim ElemDefinition As Integer '2 for Beams/Truss, 4 for Elements, 8 for Solids Dim NodeX() As Double Dim NodeY() As Double Dim NodeZ() As Double Dim MembData() As Integer 'Initialization dlg.dBase = "8" dlg.dBase = "8" dlg.dTop = "4" dlg.dHeight = "50" dlg.nBay = "6" 'Popup the dialog dlgResult = Dialog(dlg) Debug.Clear If dlgResult = -1 Then 'OK button pressed 'Get the values LengthB = Abs( CDbl(dlg.dBase) ) LengthT = Abs( CDbl(dlg.dTop) ) Printed by BoltPDF (c) NCH Software. Free for non-commercial use only.

Upload: allen-paul-alcantara

Post on 12-Dec-2015

38 views

Category:

Documents


9 download

DESCRIPTION

asdsada

TRANSCRIPT

Page 1: Towersadsa

tower.vbs (page #1)

'/*--------------------------------------------------------------------------------------+'|'| $RCSfile: tower.vbs,v $'| $Revision: 1.2 $

'| $Date: 2013/11/15 22:25:37 $'|'| $Copyright: (c) 2013 Bentley Systems, Incorporated. All rights reserved. $'|

'+--------------------------------------------------------------------------------------*/Sub Main'DESCRIPTION: A Simple Tower

Set StwApp = GetObject (,"StWizard.Application")

Begin Dialog UserDialog 400,175,"Tower Parameters" ' %GRID:10,7,1,1 Text 20,7,160,21,"Base Dimension:",.tBaseSize Text 20,7,160,21,"Base Dimension:",.tBaseSize

Text 20,35,160,21,"Top Dimension:",.tTopSize Text 20,98,170,21,"No. of Bays Along Height:",.tNBay Text 20,63,160,21,"Height:",.Height TextBox 200,7,90,21,.dBase

TextBox 200,35,90,21,.dTop TextBox 200,63,90,21,.dHeight TextBox 200,98,90,21,.nBay OKButton 210,147,140,21

CancelButton 30,147,150,21 End Dialog

Dim dlg As UserDialog

Dim dlgResult As Integer Dim LengthB As Double Dim LengthT As Double Dim Height As Double

Dim nBay As Integer

Dim NumOfNodes As Integer Dim NumOfNodes As Integer

Dim NumOfMembers As Integer Dim NumOfChords As Integer Dim NumOfHoops As Integer Dim NumOfVCrosses As Integer

Dim NumOfHCrosses As Integer

Dim dH As Double Dim dX As Double

Dim ElemDefinition As Integer '2 for Beams/Truss, 4 for Elements, 8 for Solids

Dim NodeX() As Double

Dim NodeY() As Double Dim NodeZ() As Double Dim MembData() As Integer

'Initialization dlg.dBase = "8" dlg.dBase = "8" dlg.dTop = "4" dlg.dHeight = "50"

dlg.nBay = "6"

'Popup the dialog dlgResult = Dialog(dlg)

Debug.Clear

If dlgResult = -1 Then 'OK button pressed

'Get the values LengthB = Abs( CDbl(dlg.dBase) ) LengthT = Abs( CDbl(dlg.dTop) )

Height = Abs( CDbl(dlg.dHeight) ) nBay = Abs( CInt(dlg.nBay) )

Printed by BoltPDF (c) NCH Software. Free for non-commercial use only.

Page 2: Towersadsa

tower.vbs (page #2)

'Calculate panel dimension dH = Height/nBay dX = (LengthB-LengthT)/2/nBay

NumOfNodes = (nBay + 1)*4

NumOfChords = nBay*4 NumOfHoops = nBay*4 NumOfVCrosses = nBay*8 NumOfHCrosses = nBay*2

'Top Grid + Bottom Grid + Flare Members NumOfMembers = NumOfChords + NumOfHoops + NumOfVCrosses '+ NumOfHCrosses

Debug.Print "Nodes = ";NumOfNodes Debug.Print "Members = ";NumOfMembers Debug.Print "Members = ";NumOfMembers

ElemDefinition = 2

'ReAllocate Array ReDim NodeX(NumOfNodes-1) As Double ReDim NodeY(NumOfNodes-1) As Double ReDim NodeZ(NumOfNodes-1) As Double ReDim MembData(NumOfMembers-1, ElemDefinition) As Integer

'Generate Nodal coordinate here --- Debug.Print "Nodal Coordinates" NodeNum = 0

For I = 1 To nBay+1 NodeX(NodeNum) = 0.0+(I-1)*dX NodeY(NodeNum) = (I-1)*dH NodeZ(NodeNum) = 0.0+(I-1)*dX

NodeX(NodeNum+1) = LengthB-(I-1)*dX NodeX(NodeNum+1) = LengthB-(I-1)*dX NodeY(NodeNum+1) = (I-1)*dH NodeZ(NodeNum+1) = 0.0+(I-1)*dX

NodeX(NodeNum+2) = LengthB-(I-1)*dX NodeY(NodeNum+2) = (I-1)*dH NodeZ(NodeNum+2) = LengthB-(I-1)*dX

NodeX(NodeNum+3) = 0.0+(I-1)*dX NodeY(NodeNum+3) = (I-1)*dH NodeZ(NodeNum+3) = LengthB-(I-1)*dX

NodeNum = NodeNum+4

Next I

'Generate Member Incidences here --- Debug.Print "Member Incidences"

MembNum = 0 MembNum = 0

'Chords For I = 1 To nBay For J = 1 To 4 MembData(MembNum+J-1,0) = MembNum + J MembData(MembNum+J-1,1) = (I-1)*4+J MembData(MembNum+J-1,2) = I*4+J Next J MembNum = MembNum + 4 Next I

'Hoops For I = 1 To nBay For J = 1 To 3 MembData(MembNum+J-1,0) = MembNum + J MembData(MembNum+J-1,1) = I*4+J MembData(MembNum+J-1,2) = I*4+J+1

Printed by BoltPDF (c) NCH Software. Free for non-commercial use only.

Page 3: Towersadsa

tower.vbs (page #3)

Next J MembNum = MembNum + 3

MembData(MembNum,0) = MembNum MembData(MembNum,1) = I*4+4 MembData(MembNum,2) = I*4+1

MembNum = MembNum+1

Next I

'Vertical X-bracings For I = 1 To nBay For J = 1 To 3 MembData(MembNum+J-1,0) = MembNum + J MembData(MembNum+J-1,1) = (I-1)*4+J MembData(MembNum+J-1,1) = (I-1)*4+J MembData(MembNum+J-1,2) =I*4+J+1 Next J MembNum = MembNum + 3

MembData(MembNum,0) = MembNum MembData(MembNum,1) = (I-1)*4+4 MembData(MembNum,2) = I*4+1

MembNum = MembNum+1

For J = 1 To 3 MembData(MembNum+J-1,0) = MembNum + J MembData(MembNum+J-1,1) = (I-1)*4+J+1 MembData(MembNum+J-1,2) =I*4+J Next J MembNum = MembNum + 3

MembData(MembNum,0) = MembNum MembData(MembNum,1) = (I-1)*4+1 MembData(MembNum,1) = (I-1)*4+1 MembData(MembNum,2) = (I+1)*4

MembNum = MembNum+1 Next I

'Interface with Structural Wizard StwApp.InterFace.AllocateMemory StwApp.InterFace.SetModelName("Tower Model")

StwApp.InterFace.SetNoOfNodes(NumOfNodes) StwApp.InterFace.SetNodes NodeX, NodeY, NodeZ

StwApp.InterFace.SetNoOfMembers(NumOfMembers) StwApp.InterFace.SetMembers MembData

StwApp.GenerateUserModel

ElseIf dlgResult = 0 Then 'Cancel button pressed Debug.Print "Cancel button Pressed" End If

Set StwApp = Nothing

End Sub

Printed by BoltPDF (c) NCH Software. Free for non-commercial use only.