-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathIdentifyFrameOrientationType.cls
93 lines (74 loc) · 2.55 KB
/
IdentifyFrameOrientationType.cls
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
VERSION 1.0 CLASS
BEGIN
MultiUse = -1 'True
END
Attribute VB_Name = "IdentifyFrameOrientationType"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = False
Attribute VB_Exposed = False
'@Folder("Operation.ConnAnalysis")
Private mCompleteMsgAddition As String
Private mTerminateMsgMain As String, mTerminateMsgAdditional As String
Private model As New StrModel
Private dsManager As New DataSheetManager
Private mDsSys As New DataSheetSystem
Private frmTypeClassifier As New FrameTypeClassifier
Public Property Get CompleteMessageAddition() As String
CompleteMessageAddition = mCompleteMessageAddition
End Property
Public Property Get TerminateMessageMain() As String
TerminateMessageMain = mTerminateMessageMain
End Property
Public Property Get TerminateMessageAddition() As String
TerminateMessageAddition = mTerminateMessageAddition
End Property
Function Main() As Integer
Dim ret As Integer
ret = CheckDataBeforeStart
If Not ret = 0 Then
GoTo ExitFunction
End If
g_log.WriteLog "Classifing Elements Orientation Type."
FormStrObj
ClassifyFrameType
WriteData
mDsSys.prop("isCreated", "frameOrientationType") = True
g_log.WriteLog "Classification of Frames Orientation Type Completed."
g_log.WriteLog ""
ExitFunction:
Main = ret
End Function
Private Function CheckDataBeforeStart() As Integer
Application.Calculate
If Not mDsSys.prop("isWSImported", "ws_frame") Or Not mDsSys.prop("isWSImported", "ws_joint") Then
mTerminateMsgMain = "no data is found in the workbook! The macro will be terminated."
CheckDataBeforeStart = -1
End If
End Function
Private Sub FormStrObj()
Dim ret As Integer
ret = model.Constructor.FormJointObj
ret = model.Constructor.FormFrmObj
End Sub
Private Sub ClassifyFrameType()
Dim i As Long
Dim frm As StrFrame, frms As Collection
Dim frmType As EleOrientationType
Set frms = model.frames
For Each frm In frms
frmType = frmTypeClassifier.Classify(frm)
frm.orientationType = frmType
g_log.WriteLog "Frame '" & frm.Name & "' is '" & frm.OrientationTypeStr & "' 1D element."
Next
End Sub
Private Sub WriteData()
Dim dsFrm As oDataSheet
Set dsFrm = dsManager.DSFrameData
Dim df As clsDataFrame
Set df = model.GetDataframe(obj_frm, "OrientationTypeStr")
g_log.WriteLog "Writing result to worksheets..."
With dsFrm.tagSelector
dsFrm.WriteDataframe df, True, False, .EleOrientationType
End With
End Sub