osis-python 0.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.
- osis_python-0.1.0.dist-info/METADATA +64 -0
- osis_python-0.1.0.dist-info/RECORD +55 -0
- osis_python-0.1.0.dist-info/WHEEL +5 -0
- osis_python-0.1.0.dist-info/licenses/LICENSE +21 -0
- osis_python-0.1.0.dist-info/top_level.txt +1 -0
- pyosis/__init__.py +15 -0
- pyosis/ai/__init__.py +6 -0
- pyosis/ai/agents/BaseAgent.py +79 -0
- pyosis/ai/agents/DecisionAgent.py +189 -0
- pyosis/ai/agents/MaterialAgent.py +44 -0
- pyosis/ai/agents/ModelAgent.py +42 -0
- pyosis/ai/agents/QuickBuildingAgent.py +74 -0
- pyosis/ai/agents/SectionAgent.py +40 -0
- pyosis/ai/agents/__init__.py +0 -0
- pyosis/boundary/__init__.py +7 -0
- pyosis/boundary/interface.py +90 -0
- pyosis/control/__init__.py +1 -0
- pyosis/control/interface.py +182 -0
- pyosis/core/PyInterface.pyi +153 -0
- pyosis/core/__init__.py +12 -0
- pyosis/core/command.py +180 -0
- pyosis/core/engine.py +13 -0
- pyosis/element/__init__.py +1 -0
- pyosis/element/interface.py +220 -0
- pyosis/general/__init__.py +1 -0
- pyosis/general/interface.py +31 -0
- pyosis/live/__init__.py +3 -0
- pyosis/live/analysis.py +116 -0
- pyosis/live/grade.py +125 -0
- pyosis/live/lane.py +56 -0
- pyosis/load/__init__.py +3 -0
- pyosis/load/loadcase.py +59 -0
- pyosis/load/static.py +274 -0
- pyosis/load/tendon.py +325 -0
- pyosis/material/__init__.py +1 -0
- pyosis/material/interface.py +207 -0
- pyosis/node/__init__.py +1 -0
- pyosis/node/interface.py +51 -0
- pyosis/post/__init__.py +1 -0
- pyosis/post/interface.py +21 -0
- pyosis/property/__init__.py +0 -0
- pyosis/property/coordinate.py +5 -0
- pyosis/property/creep_shrink.py +53 -0
- pyosis/property/damping.py +37 -0
- pyosis/property/pu_curve.py +59 -0
- pyosis/quick_building/__init__.py +1 -0
- pyosis/quick_building/interface.py +298 -0
- pyosis/section/__init__.py +4 -0
- pyosis/section/common.py +325 -0
- pyosis/section/numeric.py +0 -0
- pyosis/section/param.py +96 -0
- pyosis/section/steel.py +0 -0
- pyosis/stage/__init__.py +3 -0
- pyosis/stage/define.py +123 -0
- pyosis/stage/overall.py +85 -0
|
@@ -0,0 +1,220 @@
|
|
|
1
|
+
"""
|
|
2
|
+
Interfaces of OSIS functions
|
|
3
|
+
|
|
4
|
+
========
|
|
5
|
+
|
|
6
|
+
"""
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
from typing import Any, Dict, Literal
|
|
10
|
+
from ..core import OSISEngine, REGISTRY
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
# @REGISTRY.register("Element")
|
|
14
|
+
# def osis_element(nEle: int, eElementType: Literal["BEAM3D", "TRUSS", "SPRING", "CABLE", "SHELL"], params: Dict[str, Any]):
|
|
15
|
+
# '''
|
|
16
|
+
# 创建单元
|
|
17
|
+
|
|
18
|
+
# Args:
|
|
19
|
+
# nEle (int): 单元编号
|
|
20
|
+
# eElementType (str): 单元类型,不区分大小写。BEAM3D = 梁柱单元,TRUSS = 桁架单元,SPRING = 弹簧单元,CABLE = 拉索单元,SHELL = 壳单元
|
|
21
|
+
# params (Dict[str, Any]): 对应单元类型所需要的参数
|
|
22
|
+
# Returns:
|
|
23
|
+
# tuple (bool, str): 是否成功,失败原因
|
|
24
|
+
# '''
|
|
25
|
+
# e = OSISEngine.GetInstance()
|
|
26
|
+
# eElementType = eElementType.upper()
|
|
27
|
+
# return e.OSIS_Element(nEle, eElementType, params)
|
|
28
|
+
|
|
29
|
+
@REGISTRY.register("Element")
|
|
30
|
+
def osis_element_beam3d(nEle: int, eElementType: str="BEAM3D", nNode1: int=1, nNode2: int=2, nMat: int=1, nSec1: int=1, nSec2: int=1,
|
|
31
|
+
nYTrans: Literal[1, 2, 3, 4]=1, nZTrans: Literal[1, 2, 3, 4]=1, dStrain: float=0.0, bFlag: bool=0, dTheta: float=0, bWarping: bool=0):
|
|
32
|
+
'''
|
|
33
|
+
创建梁柱单元
|
|
34
|
+
|
|
35
|
+
Args:
|
|
36
|
+
nEle (int): 单元编号。从 1 开始编号,所有类型的单元均使用同一编号序列。
|
|
37
|
+
eElementType (str): 不能修改,固定为 BEAM3D,不区分大小写
|
|
38
|
+
nNode1 (int): 节点1编号
|
|
39
|
+
nNode2 (int): 节点2编号
|
|
40
|
+
nMat (int): 材料编号
|
|
41
|
+
nSec1 (int): 截面1编号
|
|
42
|
+
nSec2 (int): 截面2编号
|
|
43
|
+
nYTrans (int): y轴截面变化次方,可选值:1, 2, 3, 4
|
|
44
|
+
nZTrans (int): z轴截面变化次方,可选值:1, 2, 3, 4
|
|
45
|
+
dStrain (float): 应变值。默认为 0.00
|
|
46
|
+
bFlag (int): 轴向转角定义方式:
|
|
47
|
+
* 0: 使用beta角定义
|
|
48
|
+
* 1: 使用关键点定义
|
|
49
|
+
dTheta (float): 轴向转角参数:
|
|
50
|
+
* bFlag=0时: 轴向转角(beta角)
|
|
51
|
+
* bFlag=1时: 关键点
|
|
52
|
+
bWarping (int): 翘曲效应标志:
|
|
53
|
+
* 1: 考虑翘曲
|
|
54
|
+
* 0: 不考虑翘曲
|
|
55
|
+
|
|
56
|
+
Returns:
|
|
57
|
+
tuple (bool, str): 是否成功,失败原因
|
|
58
|
+
'''
|
|
59
|
+
pass
|
|
60
|
+
|
|
61
|
+
@REGISTRY.register("Element")
|
|
62
|
+
def osis_element_truss(nEle: int=1, eElementType: str="TRUSS", nNode1: int=1, nNode2: int=2, nMat: int=1, nSec1: int=1, nSec2: int=1, dStrain: float=0.0):
|
|
63
|
+
'''
|
|
64
|
+
创建桁架单元
|
|
65
|
+
|
|
66
|
+
Args:
|
|
67
|
+
nEle (int): 单元编号。从 1 开始编号,所有类型的单元均使用同一编号序列。
|
|
68
|
+
eElementType (str): 不能修改,固定为 TRUSS,不区分大小写
|
|
69
|
+
nNode1 (int): 节点1编号
|
|
70
|
+
nNode2 (int): 节点2编号
|
|
71
|
+
nMat (int): 材料编号
|
|
72
|
+
nSec1 (int): 截面1编号
|
|
73
|
+
nSec2 (int): 截面2编号
|
|
74
|
+
dStrain (float): 应变值,默认为 0.00
|
|
75
|
+
|
|
76
|
+
Returns:
|
|
77
|
+
tuple (bool, str): 是否成功,失败原因
|
|
78
|
+
'''
|
|
79
|
+
pass
|
|
80
|
+
|
|
81
|
+
@REGISTRY.register("Element")
|
|
82
|
+
def osis_element_spring(nEle: int=1, eElementType: str="SPRING", nNode1: int=1, nNode2: int=2, bLinear: int=1, dx: float=10, dy: float=10, dz: float=10, rx: float=10, ry: float=10, rz: float=10, dBeta: float=0.0):
|
|
83
|
+
'''
|
|
84
|
+
创建弹簧单元
|
|
85
|
+
|
|
86
|
+
Args:
|
|
87
|
+
nEle (int): 单元编号。从 1 开始编号,所有类型的单元均使用同一编号序列。
|
|
88
|
+
eElementType (str): 不能修改,固定为 SPRING,不区分大小写
|
|
89
|
+
nNode1 (int): 节点1编号
|
|
90
|
+
nNode2 (int): 节点2编号
|
|
91
|
+
bLinear (int): 弹簧类型标志:
|
|
92
|
+
* 1: 线性弹簧
|
|
93
|
+
* 0: 非线性弹簧
|
|
94
|
+
dx (float/int): x方向自由度参数:
|
|
95
|
+
* 线性弹簧(bLinear=1): 局部坐标系下dx方向的刚度值
|
|
96
|
+
* 非线性弹簧(bLinear=0): 局部坐标系下dx方向的力-位移曲线编号(PUCurve定义)
|
|
97
|
+
dy (float/int): y方向自由度参数:
|
|
98
|
+
* 线性弹簧(bLinear=1): 局部坐标系下dy方向的刚度值
|
|
99
|
+
* 非线性弹簧(bLinear=0): 局部坐标系下dy方向的力-位移曲线编号(PUCurve定义)
|
|
100
|
+
dz (float/int): z方向自由度参数:
|
|
101
|
+
* 线性弹簧(bLinear=1): 局部坐标系下dz方向的刚度值
|
|
102
|
+
* 非线性弹簧(bLinear=0): 局部坐标系下dz方向的力-位移曲线编号(PUCurve定义)
|
|
103
|
+
rx (float/int): 绕x轴旋转自由度参数:
|
|
104
|
+
* 线性弹簧(bLinear=1): 局部坐标系下rx方向的刚度值
|
|
105
|
+
* 非线性弹簧(bLinear=0): 局部坐标系下rx方向的力-位移曲线编号(PUCurve定义)
|
|
106
|
+
ry (float/int): 绕y轴旋转自由度参数:
|
|
107
|
+
* 线性弹簧(bLinear=1): 局部坐标系下ry方向的刚度值
|
|
108
|
+
* 非线性弹簧(bLinear=0): 局部坐标系下ry方向的力-位移曲线编号(PUCurve定义)
|
|
109
|
+
rz (float/int): 绕z轴旋转自由度参数:
|
|
110
|
+
* 线性弹簧(bLinear=1): 局部坐标系下rz方向的刚度值
|
|
111
|
+
* 非线性弹簧(bLinear=0): 局部坐标系下rz方向的力-位移曲线编号(PUCurve定义)
|
|
112
|
+
dBeta (float): 轴向转角(beta角)。默认为 0。
|
|
113
|
+
|
|
114
|
+
Returns:
|
|
115
|
+
tuple (bool, str): 是否成功,失败原因
|
|
116
|
+
'''
|
|
117
|
+
pass
|
|
118
|
+
|
|
119
|
+
@REGISTRY.register("Element")
|
|
120
|
+
def osis_element_cable(nEle: int=1, eElementType: str="CABLE", nNode1: int=1, nNode2: int=2, nMat: int=1, nSec: int=1, eMethod: Literal["UL", "IF", "HF", "VF", "IS"]="UL", dPara: float="10.0"):
|
|
121
|
+
'''
|
|
122
|
+
创建弹簧单元
|
|
123
|
+
|
|
124
|
+
Args:
|
|
125
|
+
nEle (int): 单元编号。从 1 开始编号,所有类型的单元均使用同一编号序列。
|
|
126
|
+
eElementType (str): 不能修改,固定为 CABLE,不区分大小写
|
|
127
|
+
nNode1 (int): 节点1编号。
|
|
128
|
+
nNode2 (int): 节点2编号。
|
|
129
|
+
nMat (int): 材料编号。
|
|
130
|
+
nSec (int): 截面编号。
|
|
131
|
+
eMethod (str): 拉索参数定义方法,可选值:
|
|
132
|
+
* UL: 无应力长度控制
|
|
133
|
+
* IF: 初拉力控制
|
|
134
|
+
* HF: 水平力控制
|
|
135
|
+
* VF: 竖向力控制
|
|
136
|
+
* IS: 初应变控制
|
|
137
|
+
dPara (float): 拉索参数值,根据eMethod的不同代表:
|
|
138
|
+
* UL: 无应力长度
|
|
139
|
+
* IF: 初拉力大小
|
|
140
|
+
* HF: 水平力大小
|
|
141
|
+
* VF: 竖向力大小
|
|
142
|
+
* IS: 初应变值
|
|
143
|
+
|
|
144
|
+
Returns:
|
|
145
|
+
tuple (bool, str): 是否成功,失败原因
|
|
146
|
+
'''
|
|
147
|
+
pass
|
|
148
|
+
|
|
149
|
+
@REGISTRY.register("Element")
|
|
150
|
+
def osis_element_shell(nEle: int=1, eElementType: str="CABLE", bIsThin: bool=1, nMat: int=1, nThk: int=1, nNode1: int=1, nNode2: int=2, nNode3: int=3, nNode4: int = None):
|
|
151
|
+
'''
|
|
152
|
+
创建弹簧单元
|
|
153
|
+
|
|
154
|
+
Args:
|
|
155
|
+
nEle (int): 单元编号。从 1 开始编号,所有类型的单元均使用同一编号序列。
|
|
156
|
+
eElementType (str): 不能修改,固定为 SHELL,不区分大小写
|
|
157
|
+
bIsThin (bool):
|
|
158
|
+
nMat (int): 材料编号。
|
|
159
|
+
nThk (int):
|
|
160
|
+
nNode1 (int): 节点1编号。
|
|
161
|
+
nNode1 (int): 节点2编号。
|
|
162
|
+
nNode1 (int): 节点3编号。
|
|
163
|
+
nNode1 (int): 节点4编号,可缺省
|
|
164
|
+
|
|
165
|
+
Returns:
|
|
166
|
+
tuple (bool, str): 是否成功,失败原因
|
|
167
|
+
'''
|
|
168
|
+
pass
|
|
169
|
+
|
|
170
|
+
@REGISTRY.register("ElementDel")
|
|
171
|
+
def osis_element_del(nEle: int=1):
|
|
172
|
+
"""删除一个单元
|
|
173
|
+
|
|
174
|
+
Args:
|
|
175
|
+
nEle (int): 单元编号,从 1 开始计数
|
|
176
|
+
|
|
177
|
+
Returns:
|
|
178
|
+
tuple (bool, str):
|
|
179
|
+
- bool: 操作是否成功
|
|
180
|
+
- str: 失败原因(如果操作失败)
|
|
181
|
+
"""
|
|
182
|
+
pass
|
|
183
|
+
|
|
184
|
+
@REGISTRY.register("ElementMod")
|
|
185
|
+
def osis_element_mod(nOld: int=1, nNew: int=2):
|
|
186
|
+
"""修改一个单元的编号。单元编号存在时,交换
|
|
187
|
+
|
|
188
|
+
Args:
|
|
189
|
+
nOld (int): 旧编号
|
|
190
|
+
nNew (int): 新编号
|
|
191
|
+
|
|
192
|
+
Returns:
|
|
193
|
+
tuple (bool, str):
|
|
194
|
+
- bool: 操作是否成功
|
|
195
|
+
- str: 失败原因(如果操作失败)
|
|
196
|
+
"""
|
|
197
|
+
pass
|
|
198
|
+
|
|
199
|
+
@REGISTRY.register("EleGrp")
|
|
200
|
+
def osis_element_group(strName: str="单元组1", eOP: Literal["c", "a", "s", "r", "aa", "ra", "m", "d"]='a', param: list=[1]):
|
|
201
|
+
'''
|
|
202
|
+
分配边界给节点(一般支撑,节点弹性支撑)
|
|
203
|
+
|
|
204
|
+
Args:
|
|
205
|
+
strName (str): 边界编号
|
|
206
|
+
eOP (str): 操作
|
|
207
|
+
* c = 创建
|
|
208
|
+
* a = 添加
|
|
209
|
+
* s = 替换
|
|
210
|
+
* r = 移除
|
|
211
|
+
* aa = 添加全部
|
|
212
|
+
* ra = 移除全部
|
|
213
|
+
* m = 修改组名
|
|
214
|
+
* d = 删除
|
|
215
|
+
param (list): 待操作的编号,支持的格式:*,*to*;*by*,仅用于替换。例子:[2,3,5,8to10] [2by3,5by6,8by10] 重合的编号自动忽略
|
|
216
|
+
Returns:
|
|
217
|
+
tuple (bool, str): 是否成功,失败原因
|
|
218
|
+
'''
|
|
219
|
+
pass
|
|
220
|
+
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
from .interface import *
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
from ..core import REGISTRY
|
|
2
|
+
|
|
3
|
+
@REGISTRY.register("Replot")
|
|
4
|
+
def osis_replot():
|
|
5
|
+
"""
|
|
6
|
+
重新绘制窗口
|
|
7
|
+
|
|
8
|
+
Returns:
|
|
9
|
+
tuple (bool, str): 是否成功,失败原因
|
|
10
|
+
"""
|
|
11
|
+
pass
|
|
12
|
+
|
|
13
|
+
@REGISTRY.register("Clear")
|
|
14
|
+
def osis_clear():
|
|
15
|
+
"""
|
|
16
|
+
清空项目
|
|
17
|
+
|
|
18
|
+
Returns:
|
|
19
|
+
tuple (bool, str): 是否成功,失败原因
|
|
20
|
+
"""
|
|
21
|
+
pass
|
|
22
|
+
|
|
23
|
+
@REGISTRY.register("Solve")
|
|
24
|
+
def osis_solve():
|
|
25
|
+
"""
|
|
26
|
+
求解工程
|
|
27
|
+
|
|
28
|
+
Returns:
|
|
29
|
+
tuple (bool, str): 是否成功,失败原因
|
|
30
|
+
"""
|
|
31
|
+
pass
|
pyosis/live/__init__.py
ADDED
pyosis/live/analysis.py
ADDED
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
from typing import Dict, Any, Literal
|
|
2
|
+
from ..core import REGISTRY
|
|
3
|
+
|
|
4
|
+
@REGISTRY.register("LiveAnal")
|
|
5
|
+
def osis_live_analysis(strName: str, strCode: str, eSubCmbType: Literal[1, 0]):
|
|
6
|
+
'''
|
|
7
|
+
定义或修改活载工况
|
|
8
|
+
|
|
9
|
+
Args:
|
|
10
|
+
strName (str): 活载工况名
|
|
11
|
+
strCode (str): 规范名,计算冲击系数和横向折减
|
|
12
|
+
eSubCmbType (int): 子工况组合类型
|
|
13
|
+
* 1 = 单独(包络)
|
|
14
|
+
* 0 = 组合(相加)
|
|
15
|
+
Returns:
|
|
16
|
+
tuple (bool, str): 返回一个元组,包含:
|
|
17
|
+
- bool: 操作是否成功
|
|
18
|
+
- str: 失败原因(如果操作失败)
|
|
19
|
+
'''
|
|
20
|
+
pass
|
|
21
|
+
|
|
22
|
+
@REGISTRY.register("LiveAnalDel")
|
|
23
|
+
def osis_live_analysis_del(strName: str):
|
|
24
|
+
'''
|
|
25
|
+
删除活载工况
|
|
26
|
+
|
|
27
|
+
Args:
|
|
28
|
+
strName (str): 名称
|
|
29
|
+
|
|
30
|
+
Returns:
|
|
31
|
+
tuple (bool, str): 返回一个元组,包含:
|
|
32
|
+
- bool: 操作是否成功
|
|
33
|
+
- str: 失败原因(如果操作失败)
|
|
34
|
+
'''
|
|
35
|
+
pass
|
|
36
|
+
|
|
37
|
+
@REGISTRY.register("LiveAnalMod")
|
|
38
|
+
def osis_live_analysis_mod(strOldName: str, strNewName: str):
|
|
39
|
+
'''
|
|
40
|
+
修改活载工况名称
|
|
41
|
+
|
|
42
|
+
Args:
|
|
43
|
+
strOldName (str): 旧名称
|
|
44
|
+
strOldName (str): 新名称
|
|
45
|
+
|
|
46
|
+
Returns:
|
|
47
|
+
tuple (bool, str): 返回一个元组,包含:
|
|
48
|
+
- bool: 操作是否成功
|
|
49
|
+
- str: 失败原因(如果操作失败)
|
|
50
|
+
'''
|
|
51
|
+
pass
|
|
52
|
+
|
|
53
|
+
@REGISTRY.register("LiveAnalInc")
|
|
54
|
+
def osis_live_analysis_inc(strName: str, eOP: Literal["a", "m"], strLiveSubName: str, strLiveGradeName: str, dFactor: int, bFlage: bool,
|
|
55
|
+
eBridgeType: Literal['SIMPLE', "CONTINUOUS", "ARCH", "CABLE_STAYED", "CABLE_STAYED_AUS", "SUSPENSION", "CUSTOM"], param: list['int'], lane: list['str']):
|
|
56
|
+
# Name, OP, LiveSub, LiveGrade, factor, muFlag, bridgeType, para_i..., LaneLoad_i, LaneLoad_j, ...
|
|
57
|
+
'''
|
|
58
|
+
定义活载工况,加入或修改子工况
|
|
59
|
+
|
|
60
|
+
Args:
|
|
61
|
+
strName (str): 活载工况名称
|
|
62
|
+
eOP (str): 操作
|
|
63
|
+
* a = 添加
|
|
64
|
+
* m = 修改
|
|
65
|
+
strLiveSubName (str): 子工况名称
|
|
66
|
+
strLiveGradeName (str): 活载名(osis_livegrade定义)
|
|
67
|
+
dFactor (int): 缩放系数
|
|
68
|
+
bFlag: 是否考虑冲击系数
|
|
69
|
+
* 1 = 考虑
|
|
70
|
+
* 0 = 不考虑
|
|
71
|
+
eBridgeType (str): 按照计算冲击系数划分的桥型
|
|
72
|
+
* SIMPLE = 简支梁桥
|
|
73
|
+
* CONTINUOUS = 连续梁桥
|
|
74
|
+
* ARCH = 拱桥
|
|
75
|
+
* CABLE_STAYED = 斜拉桥(无辅助墩)
|
|
76
|
+
* CABLE_STAYED_AUS = 斜拉桥(有辅助墩)
|
|
77
|
+
* SUSPENSION = 悬索桥
|
|
78
|
+
* CUSTOM = 自定义,用户直接输入基频
|
|
79
|
+
param (list): 计算冲击系数的参数或冲击系数
|
|
80
|
+
* SIMPLE = 桥长、弹模、惯性矩、质量
|
|
81
|
+
* CONTINUOUS = 基频计算常数a、基频计算常数b、桥长、弹模、惯性矩、质量
|
|
82
|
+
* ARCH = 拱厚变化系数、拱桥矢跨比、桥长、弹模、惯性矩,质量
|
|
83
|
+
* CABLE_STAYED = 计算常数、主跨跨径
|
|
84
|
+
* CABLE_STAYED_AUX = 计算常数、主跨跨径
|
|
85
|
+
* SUSPENSION = 主跨跨径、弹模、惯性矩、主缆水平拉力、质量
|
|
86
|
+
* CUSTOM = 用户直接输入基频
|
|
87
|
+
|
|
88
|
+
lane (list): 车道线名
|
|
89
|
+
|
|
90
|
+
Returns:
|
|
91
|
+
tuple (bool, str): 返回一个元组,包含:
|
|
92
|
+
- bool: 操作是否成功
|
|
93
|
+
- str: 失败原因(如果操作失败)
|
|
94
|
+
'''
|
|
95
|
+
pass
|
|
96
|
+
|
|
97
|
+
@REGISTRY.register("LiveAnalInc")
|
|
98
|
+
def osis_live_analysis_inc_mod(strName: str, eOP: Literal["d", "mn"], strLiveSubName: str, strNewName: str=None):
|
|
99
|
+
# Name, OP, LiveSub, LiveGrade, factor, muFlag, bridgeType, para_i..., LaneLoad_i, LaneLoad_j, ...
|
|
100
|
+
'''
|
|
101
|
+
定义活载工况,删除或修改子工况
|
|
102
|
+
|
|
103
|
+
Args:
|
|
104
|
+
strName (str): 活载工况名称
|
|
105
|
+
eOP (str): 操作
|
|
106
|
+
* d = 删除
|
|
107
|
+
* mn = 修改名称
|
|
108
|
+
strLiveSubName (str): 子工况名称
|
|
109
|
+
strNewName (str): 新的名称,eOP = d 时不需要
|
|
110
|
+
|
|
111
|
+
Returns:
|
|
112
|
+
tuple (bool, str): 返回一个元组,包含:
|
|
113
|
+
- bool: 操作是否成功
|
|
114
|
+
- str: 失败原因(如果操作失败)
|
|
115
|
+
'''
|
|
116
|
+
pass
|
pyosis/live/grade.py
ADDED
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
from typing import Dict, Any, Literal
|
|
2
|
+
from ..core import REGISTRY
|
|
3
|
+
|
|
4
|
+
# @REGISTRY.register("LiveGrade")
|
|
5
|
+
# def osis_live_grade(strName: str,
|
|
6
|
+
# eCode: Literal["JTGD60_2015", "CUSTOM"],
|
|
7
|
+
# eLiveLoadType: Literal["HIGHWAY_I", "HIGHWAY_II", "VEHICLE", "CROWD", "FATIGUE_I", "FATIGUE_II", "FATIGUE_III"],
|
|
8
|
+
# params: Dict[str, Any]):
|
|
9
|
+
# '''
|
|
10
|
+
# 定义活载
|
|
11
|
+
|
|
12
|
+
# Args:
|
|
13
|
+
# strName (str): 名称
|
|
14
|
+
# eCode (str): 规范类型,JTGD60_2015,不区分大小写
|
|
15
|
+
# eLiveLoadType (str): 活载类型,不区分大小写
|
|
16
|
+
# params (dict): 附加参数
|
|
17
|
+
# - CROWD: eBridgeType=桥类型, dPara=人群横向宽度
|
|
18
|
+
# - FATIGUE_II: dCenterDis=车辆中心间距
|
|
19
|
+
|
|
20
|
+
# Returns:
|
|
21
|
+
# tuple (bool, str): 是否成功,失败原因
|
|
22
|
+
# '''
|
|
23
|
+
# e = OSISEngine.GetInstance()
|
|
24
|
+
# eCode = eCode.upper()
|
|
25
|
+
# eLiveLoadType = eLiveLoadType.upper()
|
|
26
|
+
# return e.OSIS_LiveGrade(strName, eCode, eLiveLoadType, params)
|
|
27
|
+
@REGISTRY.register("LiveGrade")
|
|
28
|
+
def osis_livegrade_highway(strName: str="活载-HIGHWAY", eCode: str="JTGD60_2015", eLiveLoadType: Literal["HIGHWAY_I", "HIGHWAY_II"]="HIGHWAY_I"):
|
|
29
|
+
'''
|
|
30
|
+
定义活载-公路活载
|
|
31
|
+
|
|
32
|
+
Args:
|
|
33
|
+
strName (str): 名称
|
|
34
|
+
eCode (str): 规范类型,不区分大小写,固定为 JTGD60_2015
|
|
35
|
+
eLiveLoadType (str): 活载类型,不区分大小写
|
|
36
|
+
* HIGHWAY_I: 公路I级
|
|
37
|
+
* HIGHWAY_II: 公路II级
|
|
38
|
+
|
|
39
|
+
Returns:
|
|
40
|
+
tuple (bool, str): 是否成功,失败原因
|
|
41
|
+
'''
|
|
42
|
+
pass
|
|
43
|
+
|
|
44
|
+
@REGISTRY.register("LiveGrade")
|
|
45
|
+
def osis_livegrade_highway(strName: str="活载-HIGHWAY", eCode: str="JTGD60_2015", eLiveLoadType: Literal["VEHICLE"]="VEHICLE"):
|
|
46
|
+
'''
|
|
47
|
+
定义活载-车辆荷载
|
|
48
|
+
|
|
49
|
+
Args:
|
|
50
|
+
strName (str): 名称
|
|
51
|
+
eCode (str): 规范类型,不区分大小写,固定为 JTGD60_2015
|
|
52
|
+
eLiveLoadType (str): 活载类型,不区分大小写,固定为 VEHICLE
|
|
53
|
+
|
|
54
|
+
dPara (float): 人群横向宽度
|
|
55
|
+
|
|
56
|
+
Returns:
|
|
57
|
+
tuple (bool, str): 是否成功,失败原因
|
|
58
|
+
'''
|
|
59
|
+
pass
|
|
60
|
+
|
|
61
|
+
@REGISTRY.register("LiveGrade")
|
|
62
|
+
def osis_livegrade_crowd(strName: str="活载-CROWD", eCode: str="JTGD60_2015", eLiveLoadType: str="CROWD", eBridgeType: Literal["BRIDGE_COMMON", "BRIDGE_CROWD_WITH", "BRIDGE_CROWD_ONLY"]="BRIDGE_COMMON", dPara: float=10):
|
|
63
|
+
'''
|
|
64
|
+
定义活载-人群荷载
|
|
65
|
+
|
|
66
|
+
Args:
|
|
67
|
+
strName (str): 名称
|
|
68
|
+
eCode (str): 规范类型,JTGD60_2015,不区分大小写
|
|
69
|
+
eLiveLoadType (str): 活载类型,不区分大小写,固定为 CROWD
|
|
70
|
+
eBridgeType (str): 桥类型,不区分大小写
|
|
71
|
+
* BRIDGE_COMMON 一般桥
|
|
72
|
+
* BRIDGE_CROWD_WITH 行人密集桥
|
|
73
|
+
* BRIDGE_CROWD_ONLY 专用行人桥
|
|
74
|
+
dPara (float): 人群横向宽度
|
|
75
|
+
|
|
76
|
+
Returns:
|
|
77
|
+
tuple (bool, str): 是否成功,失败原因
|
|
78
|
+
'''
|
|
79
|
+
pass
|
|
80
|
+
|
|
81
|
+
@REGISTRY.register("LiveGrade")
|
|
82
|
+
def osis_livegrade_fatigue(strName: str="活载-FATIGUE", eCode: str="JTGD60_2015", eLiveLoadType: Literal["FATIGUE_I", "FATIGUE_II", "FATIGUE_III"]="FATIGUE_I", dPara: float=None):
|
|
83
|
+
'''
|
|
84
|
+
定义活载-疲劳模型
|
|
85
|
+
|
|
86
|
+
Args:
|
|
87
|
+
strName (str): 名称
|
|
88
|
+
eCode (str): 规范类型,JTGD60_2015,不区分大小写
|
|
89
|
+
eLiveLoadType (str): 活载类型,不区分大小写
|
|
90
|
+
* FATIGUE_I 疲劳模型I
|
|
91
|
+
* FATIGUE_II 疲劳模型II
|
|
92
|
+
* FATIGUE_III 疲劳模型III
|
|
93
|
+
dPara (float): 车辆中心间距,仅 eLiveLoadType 为 FATIGUE_II 时需要填写
|
|
94
|
+
|
|
95
|
+
Returns:
|
|
96
|
+
tuple (bool, str): 是否成功,失败原因
|
|
97
|
+
'''
|
|
98
|
+
pass
|
|
99
|
+
|
|
100
|
+
@REGISTRY.register("LiveGradeDel")
|
|
101
|
+
def osis_livegrade_del(strName: str="活载1"):
|
|
102
|
+
'''
|
|
103
|
+
删除活载等级
|
|
104
|
+
|
|
105
|
+
Args:
|
|
106
|
+
strName (str): 名称
|
|
107
|
+
|
|
108
|
+
Returns:
|
|
109
|
+
tuple (bool, str): 是否成功,失败原因
|
|
110
|
+
'''
|
|
111
|
+
pass
|
|
112
|
+
|
|
113
|
+
@REGISTRY.register("LiveGradeMod")
|
|
114
|
+
def osis_livegrade_mod(strOldName: str, strNewName: str):
|
|
115
|
+
'''
|
|
116
|
+
修改编号
|
|
117
|
+
|
|
118
|
+
Args:
|
|
119
|
+
strOldName (str): 旧名称
|
|
120
|
+
strOldName (str): 新名称
|
|
121
|
+
|
|
122
|
+
Returns:
|
|
123
|
+
tuple (bool, str): 是否成功,失败原因
|
|
124
|
+
'''
|
|
125
|
+
pass
|
pyosis/live/lane.py
ADDED
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
from typing import Dict, Any, Literal
|
|
2
|
+
from ..core import REGISTRY
|
|
3
|
+
|
|
4
|
+
@REGISTRY.register("InflAlgo")
|
|
5
|
+
def osis_lane_ve(strName: str, eType: Literal["VE"], dLength: float, eOriention: Literal[-1, 0, 1], eRef: Literal[0, 1], param: list):
|
|
6
|
+
# Name, type, length, vehOri, ref, par1,par2, par3
|
|
7
|
+
'''
|
|
8
|
+
InflAlgo 的 Docstring
|
|
9
|
+
Returns:
|
|
10
|
+
tuple (bool, str): 返回一个元组,包含:
|
|
11
|
+
- bool: 操作是否成功
|
|
12
|
+
- str: 失败原因(如果操作失败)
|
|
13
|
+
'''
|
|
14
|
+
pass
|
|
15
|
+
|
|
16
|
+
@REGISTRY.register("InflAlgo")
|
|
17
|
+
def osis_lane_tcb(strName: str, eType: Literal["TCB"], ESel: str, dLength: float, eOriention: Literal[-1, 0, 1], eRef: Literal[0, 1], param: list):
|
|
18
|
+
'''
|
|
19
|
+
InflAlgo 的 Docstring
|
|
20
|
+
Returns:
|
|
21
|
+
tuple (bool, str): 返回一个元组,包含:
|
|
22
|
+
- bool: 操作是否成功
|
|
23
|
+
- str: 失败原因(如果操作失败)
|
|
24
|
+
'''
|
|
25
|
+
pass
|
|
26
|
+
|
|
27
|
+
@REGISTRY.register("InflAlgoDel")
|
|
28
|
+
def osis_lane_del(strName: str):
|
|
29
|
+
'''
|
|
30
|
+
删除车道线
|
|
31
|
+
|
|
32
|
+
Args:
|
|
33
|
+
strName (str): 名称
|
|
34
|
+
|
|
35
|
+
Returns:
|
|
36
|
+
tuple (bool, str): 返回一个元组,包含:
|
|
37
|
+
- bool: 操作是否成功
|
|
38
|
+
- str: 失败原因(如果操作失败)
|
|
39
|
+
'''
|
|
40
|
+
pass
|
|
41
|
+
|
|
42
|
+
@REGISTRY.register("InflAlgoMod")
|
|
43
|
+
def osis_lane_mod(strOldName: str, strNewName: str):
|
|
44
|
+
'''
|
|
45
|
+
修改车道线名称
|
|
46
|
+
|
|
47
|
+
Args:
|
|
48
|
+
strOldName (str): 旧名称
|
|
49
|
+
strOldName (str): 新名称
|
|
50
|
+
|
|
51
|
+
Returns:
|
|
52
|
+
tuple (bool, str): 返回一个元组,包含:
|
|
53
|
+
- bool: 操作是否成功
|
|
54
|
+
- str: 失败原因(如果操作失败)
|
|
55
|
+
'''
|
|
56
|
+
pass
|
pyosis/load/__init__.py
ADDED
pyosis/load/loadcase.py
ADDED
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
"""
|
|
2
|
+
Interfaces of OSIS functions
|
|
3
|
+
|
|
4
|
+
========
|
|
5
|
+
|
|
6
|
+
荷载工况相关
|
|
7
|
+
|
|
8
|
+
"""
|
|
9
|
+
from typing import Literal
|
|
10
|
+
from ..core import REGISTRY
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
@REGISTRY.register("LoadCase")
|
|
14
|
+
def osis_loadcase(strName: str="自定义工况1", eLoadCaseType: Literal["USER", "D", "DC", "DW", "DD", "CS"]="USER", dScalar: float=1.0, strPrompt: str =""):
|
|
15
|
+
'''
|
|
16
|
+
创建荷载工况
|
|
17
|
+
|
|
18
|
+
Args:
|
|
19
|
+
strName (str): 荷载工况名称
|
|
20
|
+
eLoadCaseType (str): 荷载工况类型,不区分大小写。
|
|
21
|
+
* USER = 用户定义的荷载
|
|
22
|
+
* D = 桥规(JTJ 021-89)中的荷编号1(结构重力)
|
|
23
|
+
* DC = 结构和非结构附属荷载
|
|
24
|
+
* DW = 铺装和设备荷载
|
|
25
|
+
* DD = 桩端摩擦力
|
|
26
|
+
* CS = 施工阶段荷载
|
|
27
|
+
dScalar (float): 系数,默认1.0
|
|
28
|
+
strPrompt (str): 说明,默认空
|
|
29
|
+
Returns:
|
|
30
|
+
tuple (bool, str): 是否成功,失败原因
|
|
31
|
+
'''
|
|
32
|
+
pass
|
|
33
|
+
|
|
34
|
+
@REGISTRY.register('LoadCaseDel')
|
|
35
|
+
def osis_loadcase_del(strName: str="自定义工况1"):
|
|
36
|
+
'''
|
|
37
|
+
删除荷载工况
|
|
38
|
+
|
|
39
|
+
Args:
|
|
40
|
+
strName (str): 荷载工况名称
|
|
41
|
+
|
|
42
|
+
Returns:
|
|
43
|
+
tuple (bool, str): 是否成功,失败原因
|
|
44
|
+
'''
|
|
45
|
+
pass
|
|
46
|
+
|
|
47
|
+
@REGISTRY.register("LCMod")
|
|
48
|
+
def osis_loadcase_mod(strOldName: str="自定义工况1", strNewName: str="自定义工况2"):
|
|
49
|
+
'''
|
|
50
|
+
定义或修改荷载工况
|
|
51
|
+
|
|
52
|
+
Args:
|
|
53
|
+
strOldName (str): 旧名称
|
|
54
|
+
strNewName (str): 新名称
|
|
55
|
+
|
|
56
|
+
Returns:
|
|
57
|
+
tuple (bool, str): 是否成功,失败原因
|
|
58
|
+
'''
|
|
59
|
+
pass
|