civil-tools-v 0.0.1__py3-none-any.whl → 0.0.3__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.
Files changed (48) hide show
  1. CivilTools/Const/CAD.py +2 -0
  2. CivilTools/Const/Concrete.py +144 -0
  3. CivilTools/Const/Steel.py +21 -0
  4. CivilTools/Const/__init__.py +3 -0
  5. CivilTools/DXFGenerator/BasicDXF.py +238 -1
  6. CivilTools/DXFGenerator/DetailDXF.py +324 -0
  7. CivilTools/DXFGenerator/DrawingAttribs.py +45 -0
  8. CivilTools/DXFGenerator/LayerManager.py +37 -0
  9. CivilTools/DXFGenerator/__init__.py +3 -0
  10. CivilTools/FigureGenerator/BasicPNGPlotter.py +28 -25
  11. CivilTools/FigureGenerator/BasicPltPlotter.py +115 -1
  12. CivilTools/FigureGenerator/SeismicReport/ShearMassRatio.py +73 -0
  13. CivilTools/FigureGenerator/SeismicReport/ShearMoment.py +71 -0
  14. CivilTools/FigureGenerator/SeismicReport/__init__.py +2 -0
  15. CivilTools/FigureGenerator/StairCalculationSheetPNGPlotter.py +2 -8
  16. CivilTools/ReportGenerator/BasicGenerator.py +109 -83
  17. CivilTools/ReportGenerator/DocParagraph.py +3 -5
  18. CivilTools/ReportGenerator/DocPicture.py +7 -8
  19. CivilTools/ReportGenerator/DocTable.py +11 -11
  20. CivilTools/ReportGenerator/SeismicReport.py +302 -143
  21. CivilTools/ReportGenerator/SeismicReportTemplate.py +523 -202
  22. CivilTools/ReportGenerator/StairCalculationReport.py +249 -185
  23. CivilTools/ReportGenerator/UtilFunctions.py +108 -104
  24. CivilTools/ReportGenerator/__init__.py +2 -2
  25. CivilTools/YDBLoader/BuildingDefine/Beam/Beam.py +12 -15
  26. CivilTools/YDBLoader/BuildingDefine/Column/Column.py +5 -5
  27. CivilTools/YDBLoader/BuildingDefine/ComponentType.py +1 -1
  28. CivilTools/YDBLoader/BuildingDefine/Geometry/Grid.py +8 -12
  29. CivilTools/YDBLoader/BuildingDefine/Geometry/Joint.py +11 -10
  30. CivilTools/YDBLoader/BuildingDefine/Geometry/StandFloor.py +1 -1
  31. CivilTools/YDBLoader/BuildingDefine/GlobalResult/BasicResult.py +44 -24
  32. CivilTools/YDBLoader/BuildingDefine/GlobalResult/SeismicResult.py +168 -54
  33. CivilTools/YDBLoader/BuildingDefine/Section/Section.py +26 -31
  34. CivilTools/YDBLoader/BuildingDefine/Section/ShapeEnum.py +9 -9
  35. CivilTools/YDBLoader/BuildingDefine/Slab/Slab.py +1 -1
  36. CivilTools/YDBLoader/BuildingDefine/StairPart/LoadDefine.py +16 -10
  37. CivilTools/YDBLoader/BuildingDefine/StairPart/StairComponent.py +41 -37
  38. CivilTools/YDBLoader/BuildingDefine/StairPart/StairPart.py +133 -78
  39. CivilTools/YDBLoader/SQLiteConnector/Connector.py +16 -8
  40. CivilTools/YDBLoader/SQLiteConnector/RowDataFactory.py +19 -17
  41. CivilTools/YDBLoader/SQLiteConnector/YDBTableName.py +31 -20
  42. CivilTools/YDBLoader/YDBLoader.py +128 -110
  43. {civil_tools_v-0.0.1.dist-info → civil_tools_v-0.0.3.dist-info}/METADATA +88 -5
  44. civil_tools_v-0.0.3.dist-info/RECORD +60 -0
  45. {civil_tools_v-0.0.1.dist-info → civil_tools_v-0.0.3.dist-info}/WHEEL +1 -1
  46. civil_tools_v-0.0.1.dist-info/RECORD +0 -50
  47. {civil_tools_v-0.0.1.dist-info → civil_tools_v-0.0.3.dist-info}/LICENSE +0 -0
  48. {civil_tools_v-0.0.1.dist-info → civil_tools_v-0.0.3.dist-info}/top_level.txt +0 -0
@@ -2,50 +2,58 @@ import math
2
2
  from .StairComponent import Component
3
3
  from typing import List
4
4
 
5
+
5
6
  class Position:
6
7
  @property
7
8
  def lower_elevation(self):
8
9
  return min(self.left_elevation, self.right_elevation)
10
+
9
11
  @property
10
12
  def higher_elevation(self):
11
13
  return max(self.left_elevation, self.right_elevation)
14
+
12
15
  @property
13
16
  def total_height(self):
14
17
  return self.higher_elevation - self.lower_elevation
18
+
15
19
  @property
16
20
  def left_plat_length(self):
17
21
  return self.left_x2 - self.left_x1
22
+
18
23
  @property
19
24
  def right_plat_length(self):
20
25
  return self.right_x2 - self.right_x1
26
+
21
27
  @property
22
28
  def main_plat_length(self):
23
29
  return self.right_x1 - self.left_x2
24
30
 
25
- def __init__(self, left_elevation, right_elevation, left_x1,left_x2
26
- , right_x1, right_x2):
31
+ def __init__(
32
+ self, left_elevation, right_elevation, left_x1, left_x2, right_x1, right_x2
33
+ ):
27
34
  self.left_elevation = left_elevation
28
35
  self.right_elevation = right_elevation
29
36
  self.left_x1 = left_x1
30
37
  self.left_x2 = left_x2
31
38
  self.right_x1 = right_x1
32
39
  self.right_x2 = right_x2
33
-
40
+
41
+
34
42
  class StairBeam:
35
-
36
- def __init__(self,width, height, offset):
37
- self.width = width
43
+
44
+ def __init__(self, width, height, offset):
45
+ self.width = width
38
46
  self.height = height
39
47
  self.offset = offset
40
48
 
41
49
 
42
50
  class StairPart:
43
-
51
+
44
52
  @property
45
53
  def stair_type(self):
46
- left_extend = self.beam_list[1].offset + self.beam_list[1].width/2
47
- right_extend = self.beam_list[2].offset + self.beam_list[2].width/2
48
- if left_extend>=self.STAIR_EXTEND_LIMIT:
54
+ left_extend = self.beam_list[1].offset + self.beam_list[1].width / 2
55
+ right_extend = self.beam_list[2].offset + self.beam_list[2].width / 2
56
+ if left_extend >= self.STAIR_EXTEND_LIMIT:
49
57
  if right_extend >= self.STAIR_EXTEND_LIMIT:
50
58
  return "DT"
51
59
  else:
@@ -55,152 +63,199 @@ class StairPart:
55
63
  return "CT"
56
64
  else:
57
65
  return "AT"
58
-
66
+
59
67
  @property
60
68
  def stair_elevation_range(self):
61
69
  return f"{self.position.lower_elevation/1000:.3f}~{self.position.higher_elevation/1000:.3f}"
62
-
70
+
63
71
  @property
64
72
  def total_height(self):
65
73
  return abs(self.position.left_elevation - self.position.right_elevation)
66
-
74
+
67
75
  @property
68
76
  def equivlent_main_slab_thick(self):
69
77
  slope = math.atan(self.position.total_height / self.position.main_plat_length)
70
78
  thick_1 = self.main_thick / math.cos(slope)
71
79
  thick_2 = self.position.total_height / self.step_num / 2
72
80
  return thick_1 + thick_2
73
-
81
+
74
82
  @property
75
83
  def total_horizental_length(self):
76
84
  length = self.position.right_x1 - self.position.left_x2
77
- length += self.beam_list[1].offset + self.beam_list[1].width/2
78
- length += self.beam_list[2].offset + self.beam_list[2].width/2
85
+ length += self.beam_list[1].offset + self.beam_list[1].width / 2
86
+ length += self.beam_list[2].offset + self.beam_list[2].width / 2
79
87
  return length
88
+
80
89
  @property
81
90
  def left_extend_length(self):
82
- if self.stair_type =="AT" or self.stair_type == "CT":
91
+ if self.stair_type == "AT" or self.stair_type == "CT":
83
92
  return 0
84
93
  else:
85
- return self.beam_list[1].offset + self.beam_list[1].width/2
86
-
94
+ return self.beam_list[1].offset + self.beam_list[1].width / 2
95
+
87
96
  @property
88
97
  def right_extend_length(self):
89
- if self.stair_type =="AT" or self.stair_type == "BT":
98
+ if self.stair_type == "AT" or self.stair_type == "BT":
90
99
  return 0
91
100
  else:
92
- return self.beam_list[2].offset + self.beam_list[2].width/2
93
-
94
- @property
101
+ return self.beam_list[2].offset + self.beam_list[2].width / 2
102
+
103
+ @property
95
104
  def stair_length_list(self):
96
- return [self.left_extend_length,self.total_horizental_length - self.left_extend_length - self.right_extend_length,self.right_extend_length]
97
-
105
+ return [
106
+ self.left_extend_length,
107
+ self.total_horizental_length
108
+ - self.left_extend_length
109
+ - self.right_extend_length,
110
+ self.right_extend_length,
111
+ ]
112
+
98
113
  @property
99
114
  def up_real_rebar_str(self):
100
115
  return f"E{self.up_d:d}@{self.up_dis:d}"
101
-
116
+
102
117
  @property
103
118
  def up_real_rebar_area(self):
104
119
  return f"{(self.up_d*self.up_d * math.pi/4/self.up_dis):.3f}"
105
-
106
-
107
-
108
-
109
120
 
110
- def get_calculate_moments(self)->List[float]:
121
+ def get_calculate_moments(self) -> List[float]:
111
122
  if self.stair_type == "AT":
112
- return [0,0,self.components[0].m_2,0,0]
123
+ return [0, 0, self.components[0].m_2, 0, 0]
113
124
  elif self.stair_type == "BT":
114
- return [0,self.components[0].m_2,self.components[1].m_2,0,0]
125
+ return [0, self.components[0].m_2, self.components[1].m_2, 0, 0]
115
126
  elif self.stair_type == "CT":
116
- return [0,0,self.components[0].m_2,self.components[1].m_2,0]
127
+ return [0, 0, self.components[0].m_2, self.components[1].m_2, 0]
117
128
  elif self.stair_type == "DT":
118
- return [0,self.components[0].m_2,self.components[1].m_2,self.components[2].m_2,0]
119
- return [0,10,20,10,0]
120
-
121
- def get_calculate_shears(self)->List[float]:
129
+ return [
130
+ 0,
131
+ self.components[0].m_2,
132
+ self.components[1].m_2,
133
+ self.components[2].m_2,
134
+ 0,
135
+ ]
136
+ return [0, 10, 20, 10, 0]
137
+
138
+ def get_calculate_shears(self) -> List[float]:
122
139
  if self.stair_type == "AT":
123
- return [0,0,self.components[0].v1,self.components[0].v2,self.components[1].v1,self.components[1].v2,0,0]
140
+ return [
141
+ 0,
142
+ 0,
143
+ self.components[0].v1,
144
+ self.components[0].v2,
145
+ self.components[1].v1,
146
+ self.components[1].v2,
147
+ 0,
148
+ 0,
149
+ ]
124
150
  elif self.stair_type == "BT":
125
- return [self.components[0].v1,self.components[0].v2,self.components[1].v1,self.components[1].v2,self.components[2].v1,self.components[2].v2,0,0]
151
+ return [
152
+ self.components[0].v1,
153
+ self.components[0].v2,
154
+ self.components[1].v1,
155
+ self.components[1].v2,
156
+ self.components[2].v1,
157
+ self.components[2].v2,
158
+ 0,
159
+ 0,
160
+ ]
126
161
  elif self.stair_type == "CT":
127
- return [0,0,self.components[0].v1,self.components[0].v2,self.components[1].v1,self.components[1].v2,self.components[2].v1,self.components[2].v2]
162
+ return [
163
+ 0,
164
+ 0,
165
+ self.components[0].v1,
166
+ self.components[0].v2,
167
+ self.components[1].v1,
168
+ self.components[1].v2,
169
+ self.components[2].v1,
170
+ self.components[2].v2,
171
+ ]
128
172
  elif self.stair_type == "DT":
129
- return [self.components[0].v1,self.components[0].v2,self.components[1].v1,self.components[1].v2,self.components[2].v1,self.components[2].v2,self.components[3].v1,self.components[3].v2,]
130
- return [0,0,0,10,20,10,0,0]
131
-
173
+ return [
174
+ self.components[0].v1,
175
+ self.components[0].v2,
176
+ self.components[1].v1,
177
+ self.components[1].v2,
178
+ self.components[2].v1,
179
+ self.components[2].v2,
180
+ self.components[3].v1,
181
+ self.components[3].v2,
182
+ ]
183
+ return [0, 0, 0, 10, 20, 10, 0, 0]
184
+
132
185
  def get_left_slab_table_moments(self):
133
186
  moments = self.get_calculate_moments()
134
- return [0,moments[1]*0.25,moments[1]]
135
-
187
+ return [0, moments[1] * 0.25, moments[1]]
188
+
136
189
  def get_main_table_moments(self):
137
190
  moments = self.get_calculate_moments()
138
- return [moments[1],moments[2],moments[3]]
191
+ return [moments[1], moments[2], moments[3]]
139
192
 
140
193
  def get_right_slab_table_moments(self):
141
194
  moments = self.get_calculate_moments()
142
- return [moments[3],moments[3]*0.25,0]
143
-
144
-
195
+ return [moments[3], moments[3] * 0.25, 0]
196
+
145
197
  def get_left_slab_table_shears(self):
146
198
  shears = self.get_calculate_shears()
147
- return [shears[0],(shears[0]+shears[1])/2,shears[1]]
148
-
199
+ return [shears[0], (shears[0] + shears[1]) / 2, shears[1]]
200
+
149
201
  def get_main_table_shears(self):
150
202
  shears = self.get_calculate_shears()
151
- return [shears[2],(shears[2]+shears[5])/2,shears[5]]
203
+ return [shears[2], (shears[2] + shears[5]) / 2, shears[5]]
152
204
 
153
205
  def get_right_slab_table_shears(self):
154
206
  shears = self.get_calculate_shears()
155
- return [shears[6],(shears[6]+shears[7])/2,shears[7]]
156
-
157
- def get_shear_validate(self, which_side,ft,cover_thick):
207
+ return [shears[6], (shears[6] + shears[7]) / 2, shears[7]]
208
+
209
+ def get_shear_validate(self, which_side, ft, cover_thick):
158
210
  if which_side == "left":
159
211
  shears = self.get_left_slab_table_shears()
160
- shear_limit = 0.7*1*ft*(self.left_thick - cover_thick)*1000/1000
212
+ shear_limit = 0.7 * 1 * ft * (self.left_thick - cover_thick) * 1000 / 1000
161
213
  elif which_side == "right":
162
214
  shears = self.get_right_slab_table_shears()
163
- shear_limit = 0.7*1*ft*(self.right_thick - cover_thick)*1000/1000
215
+ shear_limit = 0.7 * 1 * ft * (self.right_thick - cover_thick) * 1000 / 1000
164
216
  else:
165
217
  shears = self.get_main_table_shears()
166
- shear_limit = 0.7*1*ft*(self.main_thick - cover_thick)*1000/1000
218
+ shear_limit = 0.7 * 1 * ft * (self.main_thick - cover_thick) * 1000 / 1000
167
219
  max_shear = max([abs(i) for i in shears])
168
- if max_shear<=shear_limit:
220
+ if max_shear <= shear_limit:
169
221
  shear_context = f"Vmax={max_shear:.2f}kN < 0.7βhftbh0={shear_limit:.2f}kN,抗剪截面满足要求!"
170
222
  else:
171
223
  shear_context = f"Vmax={max_shear:.2f}kN > 0.7βhftbh0={shear_limit:.2f}kN,抗剪截面不满足要求!"
172
-
224
+
173
225
  return shear_context
174
-
175
-
176
-
226
+
177
227
  def init_default_data(self):
178
228
  self.stair_width = 1500
179
229
  self.stair_well_width = 100
180
- self.beam_list = [StairBeam(300,500,0),StairBeam(300,500, 0),StairBeam(300,500,0),StairBeam(300,500,0)]
181
- self.set_thickness(140,140,140)
182
- self.set_real_rebar(10,150,10,150)
183
-
184
- def __init__(self, position:Position,step_num):
230
+ self.beam_list = [
231
+ StairBeam(300, 500, 0),
232
+ StairBeam(300, 500, 0),
233
+ StairBeam(300, 500, 0),
234
+ StairBeam(300, 500, 0),
235
+ ]
236
+ self.set_thickness(140, 140, 140)
237
+ self.set_real_rebar(10, 150, 10, 150)
238
+
239
+ def __init__(self, position: Position, step_num):
185
240
  self.position = position
186
241
  self.step_num = step_num
187
242
  self.init_default_data()
188
-
243
+
189
244
  self.STAIR_EXTEND_LIMIT = 200
190
245
 
191
- def set_thickness(self, left_thick, main_thick,right_thick):
246
+ def set_thickness(self, left_thick, main_thick, right_thick):
192
247
  self.left_thick = left_thick
193
248
  self.main_thick = main_thick
194
249
  self.right_thick = right_thick
195
-
196
- def set_beam_offset(self, i,offset):
250
+
251
+ def set_beam_offset(self, i, offset):
197
252
  self.beam_list[i].offset = offset
198
-
199
- def set_real_rebar(self, up_d,up_dis,down_d,down_dis):
253
+
254
+ def set_real_rebar(self, up_d, up_dis, down_d, down_dis):
200
255
  self.up_d = up_d
201
256
  self.up_dis = up_dis
202
257
  self.down_d = down_d
203
258
  self.down_dis = down_dis
204
-
205
- def set_calculate_result(self, components:List[Component]):
206
- self.components = components
259
+
260
+ def set_calculate_result(self, components: List[Component]):
261
+ self.components = components
@@ -2,16 +2,19 @@ from typing import List
2
2
  import sqlite3
3
3
  import os
4
4
 
5
+
5
6
  class Connector:
6
7
 
7
8
  def __init__(self, file_path=None):
8
9
  self.set_db_file(file_path)
9
10
  self.connection = None
10
11
  self.cursor = None
11
-
12
+
12
13
  def set_db_file(self, file_path):
13
14
  if file_path != None and not os.path.exists(file_path):
14
- raise AttributeError("The file_path is not existed, please check your file path. ")
15
+ raise AttributeError(
16
+ "The file_path is not existed, please check your file path. "
17
+ )
15
18
  self.__file_path = file_path
16
19
 
17
20
  def connect(self):
@@ -19,13 +22,15 @@ class Connector:
19
22
  建立与 SQLite 数据库的连接
20
23
  """
21
24
  if self.__file_path == None:
22
- raise AttributeError("The file_path is None, you should set db file path before connect. Try the method [set_db_file]. ")
25
+ raise AttributeError(
26
+ "The file_path is None, you should set db file path before connect. Try the method [set_db_file]. "
27
+ )
23
28
  try:
24
29
  self.connection = sqlite3.connect(self.__file_path)
25
30
  self.cursor = self.connection.cursor()
26
31
  except sqlite3.Error as e:
27
32
  print(f"连接数据库时出错: {e}")
28
-
33
+
29
34
  def extract_table(self, table_name):
30
35
  """
31
36
  从指定的表中提取数据
@@ -42,7 +47,7 @@ class Connector:
42
47
  print(f"从表 {table_name} 提取数据时出错: {e}")
43
48
  return []
44
49
 
45
- def extract_table_by_columns(self, table_name, column_list:List[str]):
50
+ def extract_table_by_columns(self, table_name, column_list: List[str]):
46
51
  """
47
52
  从指定的表中提取数据
48
53
  :param table_name: 要提取数据的表名
@@ -60,12 +65,15 @@ class Connector:
60
65
  print(f"从表 {table_name} 提取数据时出错: {e}")
61
66
  return []
62
67
 
63
- def is_table_in_db(self, table_name:str):
64
-
68
+ def is_table_in_db(self, table_name: str):
69
+
65
70
  if self.cursor is None:
66
71
  self.connect()
67
72
  try:
68
- self.cursor.execute("SELECT name FROM sqlite_master WHERE type='table' AND name=?", (table_name,))
73
+ self.cursor.execute(
74
+ "SELECT name FROM sqlite_master WHERE type='table' AND name=?",
75
+ (table_name,),
76
+ )
69
77
  result = self.cursor.fetchone()
70
78
  return result
71
79
  except sqlite3.Error as e:
@@ -1,45 +1,47 @@
1
1
  from typing import List
2
2
 
3
+
3
4
  class RowDataFactory:
4
- '''
5
+ """
5
6
  This Class is used to extract data form row_data
6
- '''
7
+ """
8
+
7
9
  @classmethod
8
- def extract_int(cls,row_data:List,index:int):
9
- RowDataFactory.__list_index_check(row_data,index)
10
+ def extract_int(cls, row_data: List, index: int):
11
+ RowDataFactory.__list_index_check(row_data, index)
10
12
  return RowDataFactory.convert_to_int(row_data[index])
11
13
 
12
14
  @classmethod
13
- def extract_float(cls,row_data:List,index:int):
14
- RowDataFactory.__list_index_check(row_data,index)
15
+ def extract_float(cls, row_data: List, index: int):
16
+ RowDataFactory.__list_index_check(row_data, index)
15
17
  return RowDataFactory.convert_to_float(row_data[index])
16
-
18
+
17
19
  @classmethod
18
- def extract_list(cls, row_data:List,index:int):
19
- RowDataFactory.__list_index_check(row_data,index)
20
+ def extract_list(cls, row_data: List, index: int):
21
+ RowDataFactory.__list_index_check(row_data, index)
20
22
  try:
21
- result = list(row_data[index].split(','))
23
+ result = list(row_data[index].split(","))
22
24
  except SyntaxError:
23
25
  raise TypeError(f"Value: {row_data[index]} cannot be converted to list.")
24
26
  return result
25
27
 
26
28
  @classmethod
27
- def convert_to_float(cls,string:"str"):
29
+ def convert_to_float(cls, string: "str"):
28
30
  try:
29
31
  result = (float)(string)
30
32
  except SyntaxError:
31
33
  raise TypeError(f"Value: {string} cannot be converted to float.")
32
34
  return result
33
-
35
+
34
36
  @classmethod
35
- def convert_to_int(cls,string:"str"):
37
+ def convert_to_int(cls, string: "str"):
36
38
  try:
37
39
  result = (int)(string)
38
40
  except SyntaxError:
39
41
  raise TypeError(f"Value: {string} cannot be converted to int.")
40
42
  return result
41
-
43
+
42
44
  @classmethod
43
- def __list_index_check(cls,row_data:List,index:int):
44
- if len(row_data)<=index:
45
- raise IndexError("Index out of the range.")
45
+ def __list_index_check(cls, row_data: List, index: int):
46
+ if len(row_data) <= index:
47
+ raise IndexError("Index out of the range.")
@@ -1,4 +1,5 @@
1
1
  from enum import Enum
2
+
2
3
  ID = "ID"
3
4
  STD_FLR_ID = "StdFlrID"
4
5
  JOINT_ID = "JtID"
@@ -16,24 +17,24 @@ FLOOR_NUM = "FlrNo"
16
17
  TOWER_NUM = "TowNo"
17
18
 
18
19
 
19
- class YDBTableName():
20
+ class YDBTableName:
20
21
  JOINT_TABLE_NAME = "tblJoint"
21
- JOINT_TABLE_USEFUL_COLUMNS = [ID,"X","Y",STD_FLR_ID]
22
-
22
+ JOINT_TABLE_USEFUL_COLUMNS = [ID, "X", "Y", STD_FLR_ID]
23
+
23
24
  GRID_TABLE_NAME = "tblGrid"
24
- GRID_TABLE_USEFUL_COLUMNS = [ID,JOINT_ID_1,JOINT_ID_2]
25
+ GRID_TABLE_USEFUL_COLUMNS = [ID, JOINT_ID_1, JOINT_ID_2]
25
26
  """
26
27
  0-ID ,
27
28
  1-Joint1_ID ,
28
29
  2-Joint2_ID ,
29
30
  """
30
-
31
+
31
32
  COLUMN_SECTION_TABLE_NAME = "tblColSect"
32
33
  BEAM_SECTION_TABLE_NAME = "tblBeamSect"
33
- SECTION_TABLE_USEFUL_COLUMNS = [ID,"Mat","Kind","ShapeVal"]
34
-
34
+ SECTION_TABLE_USEFUL_COLUMNS = [ID, "Mat", "Kind", "ShapeVal"]
35
+
35
36
  COLUMN_TABLE_NAME = "tblColSeg"
36
- COLUMN_TABLE_USEFUL_COLUMNS = [ID,JOINT_ID,SECTION_ID,ECC_X,ECC_Y,ROTATION]
37
+ COLUMN_TABLE_USEFUL_COLUMNS = [ID, JOINT_ID, SECTION_ID, ECC_X, ECC_Y, ROTATION]
37
38
  """
38
39
  0-ID ,
39
40
  1-Joint_ID ,
@@ -42,9 +43,9 @@ class YDBTableName():
42
43
  4-EccY ,
43
44
  5-Rotation
44
45
  """
45
-
46
+
46
47
  BEAM_TABLE_NAME = "tblBeamSeg"
47
- BEAM_TABLE_USEFUL_COLUMNS = [ID,GRID_ID,SECTION_ID,ECC,"HDiff1","HDiff2"]
48
+ BEAM_TABLE_USEFUL_COLUMNS = [ID, GRID_ID, SECTION_ID, ECC, "HDiff1", "HDiff2"]
48
49
  """
49
50
  0-ID ,
50
51
  1-Grid_ID ,
@@ -55,7 +56,14 @@ class YDBTableName():
55
56
  """
56
57
 
57
58
  RESULT_PERIOD_TABLE = "calEigenInf"
58
- RESULT_PERIOD_USEFUL_COLUMNS = ["ModuleID","EigenNo","Period","Angle","CoeffInf","mInf"]
59
+ RESULT_PERIOD_USEFUL_COLUMNS = [
60
+ "ModuleID",
61
+ "EigenNo",
62
+ "Period",
63
+ "Angle",
64
+ "CoeffInf",
65
+ "mInf",
66
+ ]
59
67
  """
60
68
  0-moduleID
61
69
  1-EigenNo
@@ -67,20 +75,26 @@ class YDBTableName():
67
75
  the sum of all xmass_par should larger than 0.9]
68
76
  """
69
77
 
70
- RESULT_MASS_TABLE = "preFlrTowProp"
71
- RESULT_MASS_USEFUL_COLUMNS = [FLOOR_NUM,TOWER_NUM,"MassInf"]
78
+ RESULT_MASS_TABLE = "preFlrTowProp"
79
+ RESULT_MASS_USEFUL_COLUMNS = [FLOOR_NUM, TOWER_NUM, "MassInf"]
72
80
  """
73
81
  0-floor_num ,
74
82
  1-tower_num ,
75
83
  2-mass_info, list of string, [unknown, dead_load, live_load, plus_load],
76
84
  """
77
-
85
+
78
86
  RESULT_FLOOR_DATA_TABLE = "dsnStatFlrData"
79
87
  """包含了大多数楼层计算结果,包括风、地震的各类外力、承载力、刚度等"""
80
88
  RESULT_FLOOR_DATA_USEFUL_COLUMNS_SEISMIC = [
81
- FLOOR_NUM,TOWER_NUM,"FlrFXInf","FlrFYInf", # 0 1 2 3
82
- "FlrVXInf","FlrVYInf","FlrMXInf","FlrMYInf", # 4 5 6 7
83
- ]
89
+ FLOOR_NUM,
90
+ TOWER_NUM,
91
+ "FlrFXInf",
92
+ "FlrFYInf", # 0 1 2 3
93
+ "FlrVXInf",
94
+ "FlrVYInf",
95
+ "FlrMXInf",
96
+ "FlrMYInf", # 4 5 6 7
97
+ ]
84
98
  """
85
99
  0-floor_num ,
86
100
  1-tower_num ,
@@ -91,6 +105,3 @@ class YDBTableName():
91
105
  6-X方向地震倾覆力矩,
92
106
  7-Y方向地震倾覆力矩,
93
107
  """
94
-
95
-
96
-