midas-civil 1.0.9__py3-none-any.whl → 1.1.0__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of midas-civil might be problematic. Click here for more details.
- midas_civil/__init__.py +1 -1
- midas_civil/_element.py +6 -0
- midas_civil/_mapi.py +8 -1
- midas_civil/_material.py +4 -0
- midas_civil/_node.py +7 -0
- midas_civil/_result_extract.py +57 -3
- midas_civil/_section/_TapdbSecSS.py +129 -1
- midas_civil/_section/_dbSecSS.py +117 -10
- midas_civil/_section/_pscSS.py +30 -0
- midas_civil/_thickness.py +5 -0
- {midas_civil-1.0.9.dist-info → midas_civil-1.1.0.dist-info}/METADATA +2 -1
- {midas_civil-1.0.9.dist-info → midas_civil-1.1.0.dist-info}/RECORD +15 -15
- {midas_civil-1.0.9.dist-info → midas_civil-1.1.0.dist-info}/WHEEL +0 -0
- {midas_civil-1.0.9.dist-info → midas_civil-1.1.0.dist-info}/licenses/LICENSE +0 -0
- {midas_civil-1.0.9.dist-info → midas_civil-1.1.0.dist-info}/top_level.txt +0 -0
midas_civil/__init__.py
CHANGED
midas_civil/_element.py
CHANGED
|
@@ -352,6 +352,12 @@ class Element:
|
|
|
352
352
|
Element.elements = []
|
|
353
353
|
Element.ids = []
|
|
354
354
|
Element.__elemDIC__={}
|
|
355
|
+
|
|
356
|
+
@staticmethod
|
|
357
|
+
def clear():
|
|
358
|
+
Element.elements = []
|
|
359
|
+
Element.ids = []
|
|
360
|
+
Element.__elemDIC__={}
|
|
355
361
|
|
|
356
362
|
# --- Element Type Subclasses ---
|
|
357
363
|
|
midas_civil/_mapi.py
CHANGED
|
@@ -3,6 +3,7 @@ import sys
|
|
|
3
3
|
from colorama import Fore, Style
|
|
4
4
|
try:import winreg
|
|
5
5
|
except: pass
|
|
6
|
+
import time
|
|
6
7
|
|
|
7
8
|
|
|
8
9
|
|
|
@@ -124,6 +125,9 @@ def MidasAPI(method:str, command:str, body:dict={})->dict:
|
|
|
124
125
|
"MAPI-Key": mapi_key
|
|
125
126
|
}
|
|
126
127
|
|
|
128
|
+
start_time = time.perf_counter()
|
|
129
|
+
|
|
130
|
+
|
|
127
131
|
if method == "POST":
|
|
128
132
|
response = requests.post(url=url, headers=headers, json=body)
|
|
129
133
|
elif method == "PUT":
|
|
@@ -133,8 +137,11 @@ def MidasAPI(method:str, command:str, body:dict={})->dict:
|
|
|
133
137
|
elif method == "DELETE":
|
|
134
138
|
response = requests.delete(url=url, headers=headers)
|
|
135
139
|
|
|
140
|
+
end_time = time.perf_counter()
|
|
141
|
+
elapsed_time = end_time - start_time
|
|
142
|
+
|
|
136
143
|
if NX.debug_print:
|
|
137
|
-
print(method
|
|
144
|
+
print(f"{method} | URL : {command} | STATUS : {response.status_code} | TIME : {elapsed_time:.4f} sec")
|
|
138
145
|
|
|
139
146
|
|
|
140
147
|
|
midas_civil/_material.py
CHANGED
midas_civil/_node.py
CHANGED
midas_civil/_result_extract.py
CHANGED
|
@@ -135,7 +135,7 @@ class Result :
|
|
|
135
135
|
"TABLE_NAME": tableName,
|
|
136
136
|
"STYLES": {
|
|
137
137
|
"FORMAT": "Fixed",
|
|
138
|
-
"PLACE":
|
|
138
|
+
"PLACE": 5
|
|
139
139
|
}
|
|
140
140
|
}
|
|
141
141
|
}
|
|
@@ -162,7 +162,7 @@ class Result :
|
|
|
162
162
|
|
|
163
163
|
|
|
164
164
|
|
|
165
|
-
# ---------- Result TABLE ------------------------------
|
|
165
|
+
# ---------- Result TABLE (For ALL TABLES)------------------------------
|
|
166
166
|
@staticmethod
|
|
167
167
|
def ResultTable(tabletype:str,keys=[],loadcase:list=[],cs_stage=[],force_unit='KN',len_unit='M'):
|
|
168
168
|
'''
|
|
@@ -177,7 +177,7 @@ class Result :
|
|
|
177
177
|
"TABLE_TYPE": tabletype,
|
|
178
178
|
"STYLES": {
|
|
179
179
|
"FORMAT": "Fixed",
|
|
180
|
-
"PLACE":
|
|
180
|
+
"PLACE": 5
|
|
181
181
|
}
|
|
182
182
|
}
|
|
183
183
|
}
|
|
@@ -204,3 +204,57 @@ class Result :
|
|
|
204
204
|
ss_json = MidasAPI("POST","/post/table",js_dat)
|
|
205
205
|
_setUNIT(currUNIT)
|
|
206
206
|
return _JSToDF_ResTable(ss_json)
|
|
207
|
+
|
|
208
|
+
|
|
209
|
+
class TABLE :
|
|
210
|
+
@staticmethod
|
|
211
|
+
def BeamForce_VBM(keys=[],loadcase:list=[],items=['all'],parts=["PartI", "PartJ"],components=['all'],force_unit='KN',len_unit='M'):
|
|
212
|
+
'''
|
|
213
|
+
Keys : List{int} -> Element/ Node IDs | str -> Structure Group Name
|
|
214
|
+
Loadcase : Loadcase name followed by type. eg. DeadLoad(ST)
|
|
215
|
+
Items to display : [ "Axial" , "Shear-y" , "Shear-z" , "Torsion" , "Moment-y" , "Moment-z"]
|
|
216
|
+
Parts : ["PartI", "Part1/4", "Part2/4", "Part3/4", "PartJ"]
|
|
217
|
+
Components (colms of tabulart result): [ "Elem", "Load", "Part", "Component", "Axial", "Shear-y", "Shear-z", "Torsion", "Moment-y", "Moment-z" ]
|
|
218
|
+
|
|
219
|
+
'''
|
|
220
|
+
|
|
221
|
+
js_dat = {
|
|
222
|
+
"Argument": {
|
|
223
|
+
"TABLE_NAME": "SS_Table",
|
|
224
|
+
"TABLE_TYPE": "BEAMFORCEVBM",
|
|
225
|
+
"STYLES": {
|
|
226
|
+
"FORMAT": "Fixed",
|
|
227
|
+
"PLACE": 5
|
|
228
|
+
},
|
|
229
|
+
"PARTS" : parts
|
|
230
|
+
}
|
|
231
|
+
}
|
|
232
|
+
|
|
233
|
+
|
|
234
|
+
if isinstance(keys,list):
|
|
235
|
+
if keys!=[]:
|
|
236
|
+
js_dat["Argument"]['NODE_ELEMS'] = {"KEYS": keys}
|
|
237
|
+
elif isinstance(keys,str):
|
|
238
|
+
js_dat["Argument"]['NODE_ELEMS'] = {"STRUCTURE_GROUP_NAME": keys}
|
|
239
|
+
|
|
240
|
+
|
|
241
|
+
if loadcase!=[]: js_dat["Argument"]['LOAD_CASE_NAMES'] = loadcase
|
|
242
|
+
|
|
243
|
+
if components!=['all']:
|
|
244
|
+
if "Elem" not in components: components.append("Elem")
|
|
245
|
+
if "Load" not in components: components.append("Load")
|
|
246
|
+
if "Part" not in components: components.append("Part")
|
|
247
|
+
if "Component" not in components: components.append("Component")
|
|
248
|
+
js_dat["Argument"]['COMPONENTS'] = components
|
|
249
|
+
|
|
250
|
+
if items!=['all']:
|
|
251
|
+
js_dat["Argument"]['ITEM_TO_DISPLAY'] = items
|
|
252
|
+
|
|
253
|
+
|
|
254
|
+
|
|
255
|
+
currUNIT = _getUNIT()
|
|
256
|
+
Model.units(force=force_unit,length=len_unit)
|
|
257
|
+
ss_json = MidasAPI("POST","/post/table",js_dat)
|
|
258
|
+
_setUNIT(currUNIT)
|
|
259
|
+
return _JSToDF_ResTable(ss_json)
|
|
260
|
+
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
from ._offsetSS import Offset
|
|
2
2
|
from ._offsetSS import _common
|
|
3
|
+
import math
|
|
3
4
|
|
|
4
5
|
class _SS_TAPERED_DBUSER(_common):
|
|
5
6
|
|
|
@@ -44,4 +45,131 @@ class _SS_TAPERED_DBUSER(_common):
|
|
|
44
45
|
|
|
45
46
|
@staticmethod
|
|
46
47
|
def _objectify(id,name,type,shape,offset,uShear,u7DOF,js):
|
|
47
|
-
return _SS_TAPERED_DBUSER(name,shape,js['SECT_BEFORE']['SECT_I']['vSIZE'],js['SECT_BEFORE']['SECT_J']['vSIZE'],offset,uShear,u7DOF,id)
|
|
48
|
+
return _SS_TAPERED_DBUSER(name,shape,js['SECT_BEFORE']['SECT_I']['vSIZE'],js['SECT_BEFORE']['SECT_J']['vSIZE'],offset,uShear,u7DOF,id)
|
|
49
|
+
|
|
50
|
+
def _centerLine(shape,end):
|
|
51
|
+
if end:
|
|
52
|
+
shape.PARAMS = shape.PARAMS_J
|
|
53
|
+
# print(' J end taken')
|
|
54
|
+
else:
|
|
55
|
+
# print(' I end taken')
|
|
56
|
+
shape.PARAMS = shape.PARAMS_I
|
|
57
|
+
|
|
58
|
+
if shape.SHAPE == 'SB' :
|
|
59
|
+
H,B = shape.PARAMS[:2]
|
|
60
|
+
|
|
61
|
+
sect_lin_con = [[1,2],[3,1]]
|
|
62
|
+
|
|
63
|
+
sect_cg_LT = [-B/2,H/2]
|
|
64
|
+
sect_cg_CC = [0,0]
|
|
65
|
+
sect_cg_RB = [B/2,-H/2]
|
|
66
|
+
|
|
67
|
+
if H > B :
|
|
68
|
+
sect_shape = [[0,0],[0,H/2],[0,-H/2],[0,H/4],[0,-H/4]]
|
|
69
|
+
sect_thk = [B,B,B,B]
|
|
70
|
+
sect_thk_off = [0,0,0,0]
|
|
71
|
+
else :
|
|
72
|
+
sect_shape = [[0,0],[B/2,0],[-B/2,0],[B/4,0],[-B/4,0]]
|
|
73
|
+
sect_thk = [H,H,H,H]
|
|
74
|
+
sect_thk_off = [0,0,0,0]
|
|
75
|
+
|
|
76
|
+
elif shape.SHAPE == 'L' :
|
|
77
|
+
H,B,tw,tf = shape.PARAMS[:4]
|
|
78
|
+
|
|
79
|
+
sect_cg_LT = [0,0]
|
|
80
|
+
sect_cg_CC = [(H*tw*tw+B*B*tf)/(2*(B*tw+H*tf)),-(H*H*tw+B*tf*tf)/(2*(B*tw+H*tf))]
|
|
81
|
+
sect_cg_RB = [B,-H]
|
|
82
|
+
|
|
83
|
+
# sect_shape = [[0.5*tw,-H],[0.5*tw,-0.5*tf],[B,-0.5*tf]]
|
|
84
|
+
sect_shape = [[0,-H],[0,0],[B,0]]
|
|
85
|
+
sect_lin_con = [[3,2],[2,1]]
|
|
86
|
+
sect_thk = [tw,tf]
|
|
87
|
+
# sect_thk_off = [0,0]
|
|
88
|
+
sect_thk_off = [tw/2,tf/2]
|
|
89
|
+
|
|
90
|
+
elif shape.SHAPE == 'C' :
|
|
91
|
+
H,B1,tw,tf1,B2,tf2 = shape.PARAMS[:6]
|
|
92
|
+
if B2 == 0 : B2 = B1
|
|
93
|
+
if tf2 == 0 : tf2 = tf1
|
|
94
|
+
|
|
95
|
+
sect_cg_LT = [0,0]
|
|
96
|
+
sect_cg_CC = [(B1+B2)*0.2,-H*0.5]
|
|
97
|
+
sect_cg_RB = [max(B1,B2),-H]
|
|
98
|
+
|
|
99
|
+
# sect_shape = [[0.5*tw,-0.5*tf1],[B1,-0.5*tf1],[0.5*tw,-H+0.5*tf2],[B2,-H+0.5*tf2]]
|
|
100
|
+
sect_shape = [[0,0],[B1,0],[0,-H],[B2,-H]]
|
|
101
|
+
sect_lin_con = [[2,1],[1,3],[3,4]]
|
|
102
|
+
sect_thk = [tf1,tw,tf2]
|
|
103
|
+
# sect_thk_off = [0,0,0]
|
|
104
|
+
sect_thk_off = [tf1/2,tw/2,tf2/2]
|
|
105
|
+
|
|
106
|
+
elif shape.SHAPE == 'H' :
|
|
107
|
+
H,B1,tw,tf1,B2,tf2,r1,r2 = shape.PARAMS[:8]
|
|
108
|
+
if B2 == 0 : B2 = B1
|
|
109
|
+
if tf2 == 0 : tf2 = tf1
|
|
110
|
+
|
|
111
|
+
sect_cg_LT = [-0.5*max(B1,B2),0.5*H]
|
|
112
|
+
sect_cg_CC = [0,0]
|
|
113
|
+
sect_cg_RB = [0.5*max(B1,B2),-0.5*H]
|
|
114
|
+
|
|
115
|
+
sect_shape = [[-0.5*B1,0.5*(H-tf1)],[0,0.5*(H-tf1)],[0.5*B1,0.5*(H-tf1)],[-0.5*B2,-0.5*(H-tf2)],[0,-0.5*(H-tf2)],[0.5*B2,-0.5*(H-tf2)]]
|
|
116
|
+
sect_lin_con = [[2,1],[3,2],[2,5],[4,5],[5,6]]
|
|
117
|
+
sect_thk = [tf1,tf1,tw,tf2,tf2]
|
|
118
|
+
sect_thk_off = [0,0,0,0,0]
|
|
119
|
+
|
|
120
|
+
elif shape.SHAPE == 'T' :
|
|
121
|
+
H,B,tw,tf = shape.PARAMS[:4]
|
|
122
|
+
|
|
123
|
+
sect_cg_LT = [-B*0.5,0]
|
|
124
|
+
sect_cg_CC = [0,-H*0.3]
|
|
125
|
+
sect_cg_RB = [B*0.5,-H]
|
|
126
|
+
|
|
127
|
+
sect_shape = [[-0.5*B,-0.5*tf],[0,-0.5*tf],[0.5*B,-0.5*tf],[0,-H]]
|
|
128
|
+
sect_lin_con = [[2,1],[3,2],[2,4]]
|
|
129
|
+
sect_thk = [tf,tf,tw]
|
|
130
|
+
sect_thk_off = [0,0,0]
|
|
131
|
+
|
|
132
|
+
elif shape.SHAPE == 'B' :
|
|
133
|
+
H,B,tw,tf1,C,tf2 = shape.PARAMS[:6]
|
|
134
|
+
if tf2 == 0 : tf2 = tf1
|
|
135
|
+
|
|
136
|
+
sect_cg_LT = [-0.5*B,0.5*H]
|
|
137
|
+
sect_cg_CC = [0,0]
|
|
138
|
+
sect_cg_RB = [0.5*B,-0.5*H]
|
|
139
|
+
|
|
140
|
+
# sect_shape = [[0.5*(B-tw),0.5*(H-tf1)],[-0.5*(B-tw),0.5*(H-tf1)],[-0.5*(B-tw),-0.5*(H-tf2)],[0.5*(B-tw),-0.5*(H-tf2)]]
|
|
141
|
+
sect_shape = [[0.5*B,0.5*H],[-0.5*B,0.5*H],[-0.5*B,-0.5*H],[0.5*B,-0.5*H]]
|
|
142
|
+
|
|
143
|
+
sect_lin_con = [[1,2],[2,3],[3,4],[4,1]]
|
|
144
|
+
sect_thk = [tf1,tw,tf2,tw]
|
|
145
|
+
# sect_thk_off = [0,0,0,0]
|
|
146
|
+
sect_thk_off = [0.5*tf1,0.5*tw,0.5*tf2,0.5*tw]
|
|
147
|
+
|
|
148
|
+
elif shape.SHAPE == 'P' :
|
|
149
|
+
D,tw = shape.PARAMS[:2]
|
|
150
|
+
|
|
151
|
+
# R = 0.5*(D-tw)
|
|
152
|
+
R = 0.5*D
|
|
153
|
+
|
|
154
|
+
sect_cg_LT = [-R,R]
|
|
155
|
+
sect_cg_CC = [0,0]
|
|
156
|
+
sect_cg_RB = [R,-R]
|
|
157
|
+
|
|
158
|
+
sect_shape = []
|
|
159
|
+
sect_lin_con = []
|
|
160
|
+
sect_thk = []
|
|
161
|
+
sect_thk_off = []
|
|
162
|
+
|
|
163
|
+
n = 16
|
|
164
|
+
for i in range(n):
|
|
165
|
+
sect_shape.append([R*math.sin(i*2*math.pi/n),R*math.cos(i*2*math.pi/n)])
|
|
166
|
+
sect_lin_con.append([i+1,i+2])
|
|
167
|
+
sect_thk.append(tw)
|
|
168
|
+
sect_thk_off.append(-0.5*tw)
|
|
169
|
+
sect_lin_con[-1] = [i+1,1]
|
|
170
|
+
|
|
171
|
+
|
|
172
|
+
|
|
173
|
+
sect_cg = (sect_cg_LT,sect_cg_CC,sect_cg_RB)
|
|
174
|
+
|
|
175
|
+
return sect_shape, sect_thk ,sect_thk_off, sect_cg , sect_lin_con
|
midas_civil/_section/_dbSecSS.py
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
from ._offsetSS import Offset
|
|
2
2
|
from ._offsetSS import _common
|
|
3
|
+
import math
|
|
3
4
|
|
|
4
5
|
class _SS_DBUSER(_common):
|
|
5
6
|
|
|
@@ -42,16 +43,122 @@ class _SS_DBUSER(_common):
|
|
|
42
43
|
def _objectify(id,name,type,shape,offset,uShear,u7DOF,js):
|
|
43
44
|
return _SS_DBUSER(name,shape,js['SECT_BEFORE']['SECT_I']['vSIZE'],offset,uShear,u7DOF,id)
|
|
44
45
|
|
|
45
|
-
def _centerLine(shape):
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
tw = shape.PARAMS[2]
|
|
49
|
-
tf = shape.PARAMS[3]
|
|
46
|
+
def _centerLine(shape,end):
|
|
47
|
+
if shape.SHAPE == 'SB' :
|
|
48
|
+
H,B = shape.PARAMS[:2]
|
|
50
49
|
|
|
51
|
-
|
|
50
|
+
sect_lin_con = [[1,2],[3,1]]
|
|
52
51
|
|
|
53
|
-
|
|
52
|
+
sect_cg_LT = [-B/2,H/2]
|
|
53
|
+
sect_cg_CC = [0,0]
|
|
54
|
+
sect_cg_RB = [B/2,-H/2]
|
|
54
55
|
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
56
|
+
if H > B :
|
|
57
|
+
sect_shape = [[0,0],[0,H/2],[0,-H/2],[0,H/4],[0,-H/4]]
|
|
58
|
+
sect_thk = [B,B,B,B]
|
|
59
|
+
sect_thk_off = [0,0,0,0]
|
|
60
|
+
else :
|
|
61
|
+
sect_shape = [[0,0],[B/2,0],[-B/2,0],[B/4,0],[-B/4,0]]
|
|
62
|
+
sect_thk = [H,H,H,H]
|
|
63
|
+
sect_thk_off = [0,0,0,0]
|
|
64
|
+
|
|
65
|
+
elif shape.SHAPE == 'L' :
|
|
66
|
+
H,B,tw,tf = shape.PARAMS[:4]
|
|
67
|
+
|
|
68
|
+
sect_cg_LT = [0,0]
|
|
69
|
+
sect_cg_CC = [(H*tw*tw+B*B*tf)/(2*(B*tw+H*tf)),-(H*H*tw+B*tf*tf)/(2*(B*tw+H*tf))]
|
|
70
|
+
sect_cg_RB = [B,-H]
|
|
71
|
+
|
|
72
|
+
# sect_shape = [[0.5*tw,-H],[0.5*tw,-0.5*tf],[B,-0.5*tf]]
|
|
73
|
+
sect_shape = [[0,-H],[0,0],[B,0]]
|
|
74
|
+
sect_lin_con = [[3,2],[2,1]]
|
|
75
|
+
sect_thk = [tw,tf]
|
|
76
|
+
# sect_thk_off = [0,0]
|
|
77
|
+
sect_thk_off = [tw/2,tf/2]
|
|
78
|
+
|
|
79
|
+
elif shape.SHAPE == 'C' :
|
|
80
|
+
H,B1,tw,tf1,B2,tf2 = shape.PARAMS[:6]
|
|
81
|
+
if B2 == 0 : B2 = B1
|
|
82
|
+
if tf2 == 0 : tf2 = tf1
|
|
83
|
+
|
|
84
|
+
sect_cg_LT = [0,0]
|
|
85
|
+
sect_cg_CC = [(B1+B2)*0.2,-H*0.5]
|
|
86
|
+
sect_cg_RB = [max(B1,B2),-H]
|
|
87
|
+
|
|
88
|
+
# sect_shape = [[0.5*tw,-0.5*tf1],[B1,-0.5*tf1],[0.5*tw,-H+0.5*tf2],[B2,-H+0.5*tf2]]
|
|
89
|
+
sect_shape = [[0,0],[B1,0],[0,-H],[B2,-H]]
|
|
90
|
+
sect_lin_con = [[2,1],[1,3],[3,4]]
|
|
91
|
+
sect_thk = [tf1,tw,tf2]
|
|
92
|
+
# sect_thk_off = [0,0,0]
|
|
93
|
+
sect_thk_off = [tf1/2,tw/2,tf2/2]
|
|
94
|
+
|
|
95
|
+
elif shape.SHAPE == 'H' :
|
|
96
|
+
H,B1,tw,tf1,B2,tf2,r1,r2 = shape.PARAMS[:8]
|
|
97
|
+
if B2 == 0 : B2 = B1
|
|
98
|
+
if tf2 == 0 : tf2 = tf1
|
|
99
|
+
|
|
100
|
+
sect_cg_LT = [-0.5*max(B1,B2),0.5*H]
|
|
101
|
+
sect_cg_CC = [0,0]
|
|
102
|
+
sect_cg_RB = [0.5*max(B1,B2),-0.5*H]
|
|
103
|
+
|
|
104
|
+
sect_shape = [[-0.5*B1,0.5*(H-tf1)],[0,0.5*(H-tf1)],[0.5*B1,0.5*(H-tf1)],[-0.5*B2,-0.5*(H-tf2)],[0,-0.5*(H-tf2)],[0.5*B2,-0.5*(H-tf2)]]
|
|
105
|
+
sect_lin_con = [[2,1],[3,2],[2,5],[4,5],[5,6]]
|
|
106
|
+
sect_thk = [tf1,tf1,tw,tf2,tf2]
|
|
107
|
+
sect_thk_off = [0,0,0,0,0]
|
|
108
|
+
|
|
109
|
+
elif shape.SHAPE == 'T' :
|
|
110
|
+
H,B,tw,tf = shape.PARAMS[:4]
|
|
111
|
+
|
|
112
|
+
sect_cg_LT = [-B*0.5,0]
|
|
113
|
+
sect_cg_CC = [0,-H*0.3]
|
|
114
|
+
sect_cg_RB = [B*0.5,-H]
|
|
115
|
+
|
|
116
|
+
sect_shape = [[-0.5*B,-0.5*tf],[0,-0.5*tf],[0.5*B,-0.5*tf],[0,-H]]
|
|
117
|
+
sect_lin_con = [[2,1],[3,2],[2,4]]
|
|
118
|
+
sect_thk = [tf,tf,tw]
|
|
119
|
+
sect_thk_off = [0,0,0]
|
|
120
|
+
|
|
121
|
+
elif shape.SHAPE == 'B' :
|
|
122
|
+
H,B,tw,tf1,C,tf2 = shape.PARAMS[:6]
|
|
123
|
+
if tf2 == 0 : tf2 = tf1
|
|
124
|
+
|
|
125
|
+
sect_cg_LT = [-0.5*B,0.5*H]
|
|
126
|
+
sect_cg_CC = [0,0]
|
|
127
|
+
sect_cg_RB = [0.5*B,-0.5*H]
|
|
128
|
+
|
|
129
|
+
# sect_shape = [[0.5*(B-tw),0.5*(H-tf1)],[-0.5*(B-tw),0.5*(H-tf1)],[-0.5*(B-tw),-0.5*(H-tf2)],[0.5*(B-tw),-0.5*(H-tf2)]]
|
|
130
|
+
sect_shape = [[0.5*B,0.5*H],[-0.5*B,0.5*H],[-0.5*B,-0.5*H],[0.5*B,-0.5*H]]
|
|
131
|
+
|
|
132
|
+
sect_lin_con = [[1,2],[2,3],[3,4],[4,1]]
|
|
133
|
+
sect_thk = [tf1,tw,tf2,tw]
|
|
134
|
+
# sect_thk_off = [0,0,0,0]
|
|
135
|
+
sect_thk_off = [0.5*tf1,0.5*tw,0.5*tf2,0.5*tw]
|
|
136
|
+
|
|
137
|
+
elif shape.SHAPE == 'P' :
|
|
138
|
+
D,tw = shape.PARAMS[:2]
|
|
139
|
+
|
|
140
|
+
# R = 0.5*(D-tw)
|
|
141
|
+
R = 0.5*D
|
|
142
|
+
|
|
143
|
+
sect_cg_LT = [-R,R]
|
|
144
|
+
sect_cg_CC = [0,0]
|
|
145
|
+
sect_cg_RB = [R,-R]
|
|
146
|
+
|
|
147
|
+
sect_shape = []
|
|
148
|
+
sect_lin_con = []
|
|
149
|
+
sect_thk = []
|
|
150
|
+
sect_thk_off = []
|
|
151
|
+
|
|
152
|
+
n = 16
|
|
153
|
+
for i in range(n):
|
|
154
|
+
sect_shape.append([R*math.sin(i*2*math.pi/n),R*math.cos(i*2*math.pi/n)])
|
|
155
|
+
sect_lin_con.append([i+1,i+2])
|
|
156
|
+
sect_thk.append(tw)
|
|
157
|
+
sect_thk_off.append(-0.5*tw)
|
|
158
|
+
sect_lin_con[-1] = [i+1,1]
|
|
159
|
+
|
|
160
|
+
|
|
161
|
+
|
|
162
|
+
sect_cg = (sect_cg_LT,sect_cg_CC,sect_cg_RB)
|
|
163
|
+
|
|
164
|
+
return sect_shape, sect_thk ,sect_thk_off, sect_cg , sect_lin_con
|
midas_civil/_section/_pscSS.py
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
from ._offsetSS import Offset
|
|
2
2
|
from ._offsetSS import _common
|
|
3
|
+
import math
|
|
3
4
|
|
|
4
5
|
|
|
5
6
|
|
|
@@ -114,6 +115,35 @@ class _SS_PSC_12CELL(_common):
|
|
|
114
115
|
vD[0],vD[1],vD[2],vD[3],vD[4],vD[5],vD[6],vD[7],
|
|
115
116
|
offset,uShear,u7DOF,id)
|
|
116
117
|
|
|
118
|
+
def _centerLine(shape,end):
|
|
119
|
+
if shape.SHAPE == '1CEL':
|
|
120
|
+
BO1 = shape.BO1
|
|
121
|
+
BO2 = shape.BO2
|
|
122
|
+
BO3 = shape.BO3
|
|
123
|
+
HO1 = shape.HO1
|
|
124
|
+
HO2 = shape.HO2
|
|
125
|
+
HO3 = shape.HO3
|
|
126
|
+
HI1 = shape.HI1
|
|
127
|
+
HI5 = shape.HI5
|
|
128
|
+
BI3 = shape.BI3
|
|
129
|
+
|
|
130
|
+
sect_lin_con = [[1,2],[2,3],[3,4],[2,5],[3,6],[5,6]]
|
|
131
|
+
|
|
132
|
+
sect_cg_LT = [0,0]
|
|
133
|
+
sect_cg_RB = [2*(BO1+BO2+BO3),-(HO1+HO2+HO3)]
|
|
134
|
+
sect_cg_CC = [(BO1+BO2+BO3),-(HO1+HO2+HO3)/2]
|
|
135
|
+
|
|
136
|
+
sect_shape = [[0,0],[BO1,0],[BO1+2*(BO2+BO3),0],[2*(BO1+BO2+BO3),0],[BO1+BO2,-HO1-HO3-HO2],[BO1+BO2+2*BO3,-HO1-HO3-HO2]]
|
|
137
|
+
sect_thk = [HO1,HI1,HO1,BO3-BI3,BO3-BI3,HI5]
|
|
138
|
+
sect_thk_off = [-HO1/2,-HI1/2,-HO1/2,(BO3-BI3)/2,-(BO3-BI3)/2,HI5/2]
|
|
139
|
+
|
|
140
|
+
|
|
141
|
+
|
|
142
|
+
sect_cg = (sect_cg_LT,sect_cg_CC,sect_cg_RB)
|
|
143
|
+
|
|
144
|
+
return sect_shape, sect_thk ,sect_thk_off, sect_cg , sect_lin_con
|
|
145
|
+
|
|
146
|
+
|
|
117
147
|
|
|
118
148
|
|
|
119
149
|
|
midas_civil/_thickness.py
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: midas_civil
|
|
3
|
-
Version: 1.0
|
|
3
|
+
Version: 1.1.0
|
|
4
4
|
Summary: Python library for MIDAS Civil NX
|
|
5
5
|
Home-page: https://github.com/MIDASIT-Co-Ltd/midas-civil-python
|
|
6
6
|
Author: Sumit Shekhar
|
|
@@ -14,6 +14,7 @@ Requires-Dist: polars
|
|
|
14
14
|
Requires-Dist: xlsxwriter
|
|
15
15
|
Requires-Dist: requests
|
|
16
16
|
Requires-Dist: scipy
|
|
17
|
+
Requires-Dist: colorama
|
|
17
18
|
Dynamic: author
|
|
18
19
|
Dynamic: author-email
|
|
19
20
|
Dynamic: description
|
|
@@ -1,36 +1,36 @@
|
|
|
1
1
|
midas_civil/_BoundaryChangeAssignment.py,sha256=8lQC0DZ8zAXuPfchBdhqUaLZhZMog51EffQcKeayrlc,9511
|
|
2
|
-
midas_civil/__init__.py,sha256=
|
|
2
|
+
midas_civil/__init__.py,sha256=BTE7nEPN7fTfwk686EuvD7mBxvyxf0MrEITZt7zDqu0,2328
|
|
3
3
|
midas_civil/_analysiscontrol.py,sha256=r2zp7fdC_m-WfO7KSXU4SzVjOgLWg4Wm0djl7X1ioZo,24456
|
|
4
4
|
midas_civil/_boundary.py,sha256=s5mgZIc1b0-P7AdWuaPAQ5cIbHL5CR1YRKJA7KE4W_U,32958
|
|
5
5
|
midas_civil/_construction.py,sha256=q9C3gGdvky5t7jCDzd6lBRv6pm8cMycI91xfkgDV37Y,40673
|
|
6
6
|
midas_civil/_construction_backup.py,sha256=Pj7V-NYCkkT-aMjKXfs1jKa9klsGh48UXDLwn3BLYTY,18225
|
|
7
|
-
midas_civil/_element.py,sha256=
|
|
7
|
+
midas_civil/_element.py,sha256=o6gJcOAKsoUA77uNDFNGUrmMV6DSz1SKP5g2MbtMui4,36212
|
|
8
8
|
midas_civil/_group.py,sha256=ul0gPtAhfuc9HPQkVw2dfV0jqCLvnTbxAlx6hEBUmyI,9882
|
|
9
9
|
midas_civil/_load.py,sha256=twsfqofTzbnMHXShfMRSP61ll7CTBA5qos33od7nQ9E,30170
|
|
10
|
-
midas_civil/_mapi.py,sha256=
|
|
11
|
-
midas_civil/_material.py,sha256=
|
|
10
|
+
midas_civil/_mapi.py,sha256=b-leROZA9Ii-sSawBrBPgGS6ow5JXzEYGh5DvkXAOI8,7749
|
|
11
|
+
midas_civil/_material.py,sha256=x96yHu96X3wE9KF7dW2vzbFg9_58CMQ6Gk8maBfLzNM,69573
|
|
12
12
|
midas_civil/_model.py,sha256=huUlmIZVsBbThszrEIhvb9owOSmdggylXaJeK4g7lxY,16735
|
|
13
13
|
midas_civil/_movingload.py,sha256=a1i5fNc7oCmWTjVXbyBEYzDr5BO7NTXPVCKgvjzxuX4,80000
|
|
14
|
-
midas_civil/_node.py,sha256=
|
|
14
|
+
midas_civil/_node.py,sha256=qcBar89tEvHfziEvEvreJT8DjJ152CryIETHNKdqr2o,8956
|
|
15
15
|
midas_civil/_result copy.py,sha256=siTMENLIwF_6rvydSjP9aQAWaIlt0pReiqNyDhDevGk,24290
|
|
16
16
|
midas_civil/_result.py,sha256=nzXY2lh_342M45TMq2hBYwSp41_wAHyGFSfvt9h2vXc,7638
|
|
17
|
-
midas_civil/_result_extract.py,sha256=
|
|
17
|
+
midas_civil/_result_extract.py,sha256=IJLnlzIKOP8yxaLCXqOuRKiYUYMQfzj37fTCBs0iuTM,7884
|
|
18
18
|
midas_civil/_settlement.py,sha256=0ZkKutTjQ7Wg47ohfrc6SgoZY1xyP9_ylGQlCVBH-2U,5124
|
|
19
19
|
midas_civil/_temperature.py,sha256=Sr5fRgUHzMx6tfr1E0Nw7ZLYKUmzoH1h6Sl-APqFkHo,24208
|
|
20
20
|
midas_civil/_tendon.py,sha256=oNeT0e5VIWIDhhUfxdf2KQKXdiCkbN7fWjVYjPzs7mg,33464
|
|
21
|
-
midas_civil/_thickness.py,sha256=
|
|
21
|
+
midas_civil/_thickness.py,sha256=rKbU0QKkL9AeFnE-MNVY9ZwwQ-u2Ea-Rq9TeNafsvWQ,3335
|
|
22
22
|
midas_civil/_utils.py,sha256=nTF6btow2TK4mufyKupbjwagjlYp5WVRJmfchYAUdMk,2881
|
|
23
23
|
midas_civil/_view.py,sha256=o7rkfoQzmgAb3dT0ujPIQLVwVlveo3rMRIbZU1UosZo,849
|
|
24
|
-
midas_civil/_section/_TapdbSecSS.py,sha256=
|
|
24
|
+
midas_civil/_section/_TapdbSecSS.py,sha256=biwt38Twlmb6DuueZG_KbuMCIv1Sq3TAl4ay-30LnRU,5933
|
|
25
25
|
midas_civil/_section/__init__.py,sha256=subwWGtIRFfz19i2mtLPuQbViFAR8-xZY7eHLBGUWO4,15250
|
|
26
26
|
midas_civil/_section/_compositeSS.py,sha256=mrHOkjHkbuVOLAd1dGEiLruyqmye_mv9H99UJIdWdiQ,9942
|
|
27
|
-
midas_civil/_section/_dbSecSS.py,sha256=
|
|
27
|
+
midas_civil/_section/_dbSecSS.py,sha256=GmVm8gxsLxnDsmJsl73koHYn1GRHVo_KDOoijz_j4_o,5541
|
|
28
28
|
midas_civil/_section/_offsetSS.py,sha256=kHjwp_PCeBKWqYKoQCy0s4d8O5Gb0Vk6e1MWMOGxql4,1377
|
|
29
|
-
midas_civil/_section/_pscSS.py,sha256=
|
|
29
|
+
midas_civil/_section/_pscSS.py,sha256=aTgFxN0WzT6fBdtPgUicBByFq6KyLMmzoyBD-eVUop8,15214
|
|
30
30
|
midas_civil/_section/_tapPSC1CellSS.py,sha256=bjpuOgIot2yQd2zirE6vVmVlgfco1f83RlI7DwIicdU,6700
|
|
31
31
|
midas_civil/_section/_unSupp.py,sha256=46A_a5CzDpQM7bqglkFzIvq6VG7Lj9J6qflY3nwZlqI,1674
|
|
32
|
-
midas_civil-1.0.
|
|
33
|
-
midas_civil-1.0.
|
|
34
|
-
midas_civil-1.0.
|
|
35
|
-
midas_civil-1.0.
|
|
36
|
-
midas_civil-1.0.
|
|
32
|
+
midas_civil-1.1.0.dist-info/licenses/LICENSE,sha256=zrL4RwZC4rb-by_ZHKXwKdIwcs6ATy59TPZ9HxPHCrs,1071
|
|
33
|
+
midas_civil-1.1.0.dist-info/METADATA,sha256=YX6pmfkhA9Og-0Kszbc6S6qnP9H8kIJBWY7kg5XzZck,2109
|
|
34
|
+
midas_civil-1.1.0.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
35
|
+
midas_civil-1.1.0.dist-info/top_level.txt,sha256=_NFmrlN5V9OxJ-PAO4s_om8OA8uupXho3QqZcSsnbuI,12
|
|
36
|
+
midas_civil-1.1.0.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|