osis-python 0.3.8__tar.gz → 0.3.9__tar.gz
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.3.8/src/osis_python.egg-info → osis_python-0.3.9}/PKG-INFO +1 -1
- {osis_python-0.3.8 → osis_python-0.3.9/src/osis_python.egg-info}/PKG-INFO +1 -1
- {osis_python-0.3.8 → osis_python-0.3.9}/src/pyosis/__init__.py +1 -1
- {osis_python-0.3.8 → osis_python-0.3.9}/src/pyosis/section/manager.py +46 -4
- {osis_python-0.3.8 → osis_python-0.3.9}/LICENSE +0 -0
- {osis_python-0.3.8 → osis_python-0.3.9}/README.md +0 -0
- {osis_python-0.3.8 → osis_python-0.3.9}/pyproject.toml +0 -0
- {osis_python-0.3.8 → osis_python-0.3.9}/setup.cfg +0 -0
- {osis_python-0.3.8 → osis_python-0.3.9}/src/osis_python.egg-info/SOURCES.txt +0 -0
- {osis_python-0.3.8 → osis_python-0.3.9}/src/osis_python.egg-info/dependency_links.txt +0 -0
- {osis_python-0.3.8 → osis_python-0.3.9}/src/osis_python.egg-info/requires.txt +0 -0
- {osis_python-0.3.8 → osis_python-0.3.9}/src/osis_python.egg-info/top_level.txt +0 -0
- {osis_python-0.3.8 → osis_python-0.3.9}/src/pyosis/boundary/__init__.py +0 -0
- {osis_python-0.3.8 → osis_python-0.3.9}/src/pyosis/boundary/interface.py +0 -0
- {osis_python-0.3.8 → osis_python-0.3.9}/src/pyosis/boundary/manager.py +0 -0
- {osis_python-0.3.8 → osis_python-0.3.9}/src/pyosis/control/__init__.py +0 -0
- {osis_python-0.3.8 → osis_python-0.3.9}/src/pyosis/control/control.py +0 -0
- {osis_python-0.3.8 → osis_python-0.3.9}/src/pyosis/control/io.py +0 -0
- {osis_python-0.3.8 → osis_python-0.3.9}/src/pyosis/control/manager.py +0 -0
- {osis_python-0.3.8 → osis_python-0.3.9}/src/pyosis/control/nonlinear.py +0 -0
- {osis_python-0.3.8 → osis_python-0.3.9}/src/pyosis/core/__init__.py +0 -0
- {osis_python-0.3.8 → osis_python-0.3.9}/src/pyosis/core/all_func.py +0 -0
- {osis_python-0.3.8 → osis_python-0.3.9}/src/pyosis/core/client.py +0 -0
- {osis_python-0.3.8 → osis_python-0.3.9}/src/pyosis/core/command.py +0 -0
- {osis_python-0.3.8 → osis_python-0.3.9}/src/pyosis/core/engine.py +0 -0
- {osis_python-0.3.8 → osis_python-0.3.9}/src/pyosis/dynamic/__init__.py +0 -0
- {osis_python-0.3.8 → osis_python-0.3.9}/src/pyosis/dynamic/load_to_mass.py +0 -0
- {osis_python-0.3.8 → osis_python-0.3.9}/src/pyosis/dynamic/manager.py +0 -0
- {osis_python-0.3.8 → osis_python-0.3.9}/src/pyosis/dynamic/modal.py +0 -0
- {osis_python-0.3.8 → osis_python-0.3.9}/src/pyosis/dynamic/seismic.py +0 -0
- {osis_python-0.3.8 → osis_python-0.3.9}/src/pyosis/element/__init__.py +0 -0
- {osis_python-0.3.8 → osis_python-0.3.9}/src/pyosis/element/interface.py +0 -0
- {osis_python-0.3.8 → osis_python-0.3.9}/src/pyosis/element/manager.py +0 -0
- {osis_python-0.3.8 → osis_python-0.3.9}/src/pyosis/general/__init__.py +0 -0
- {osis_python-0.3.8 → osis_python-0.3.9}/src/pyosis/general/interface.py +0 -0
- {osis_python-0.3.8 → osis_python-0.3.9}/src/pyosis/geometry/__init__.py +0 -0
- {osis_python-0.3.8 → osis_python-0.3.9}/src/pyosis/geometry/interface.py +0 -0
- {osis_python-0.3.8 → osis_python-0.3.9}/src/pyosis/geometry/manager.py +0 -0
- {osis_python-0.3.8 → osis_python-0.3.9}/src/pyosis/live/__init__.py +0 -0
- {osis_python-0.3.8 → osis_python-0.3.9}/src/pyosis/live/analysis.py +0 -0
- {osis_python-0.3.8 → osis_python-0.3.9}/src/pyosis/live/grade.py +0 -0
- {osis_python-0.3.8 → osis_python-0.3.9}/src/pyosis/live/lane.py +0 -0
- {osis_python-0.3.8 → osis_python-0.3.9}/src/pyosis/live/manager.py +0 -0
- {osis_python-0.3.8 → osis_python-0.3.9}/src/pyosis/load/__init__.py +0 -0
- {osis_python-0.3.8 → osis_python-0.3.9}/src/pyosis/load/loadcase.py +0 -0
- {osis_python-0.3.8 → osis_python-0.3.9}/src/pyosis/load/manager.py +0 -0
- {osis_python-0.3.8 → osis_python-0.3.9}/src/pyosis/load/static.py +0 -0
- {osis_python-0.3.8 → osis_python-0.3.9}/src/pyosis/load/tendon.py +0 -0
- {osis_python-0.3.8 → osis_python-0.3.9}/src/pyosis/material/__init__.py +0 -0
- {osis_python-0.3.8 → osis_python-0.3.9}/src/pyosis/material/interface.py +0 -0
- {osis_python-0.3.8 → osis_python-0.3.9}/src/pyosis/material/manager.py +0 -0
- {osis_python-0.3.8 → osis_python-0.3.9}/src/pyosis/node/__init__.py +0 -0
- {osis_python-0.3.8 → osis_python-0.3.9}/src/pyosis/node/interface.py +0 -0
- {osis_python-0.3.8 → osis_python-0.3.9}/src/pyosis/node/manager.py +0 -0
- {osis_python-0.3.8 → osis_python-0.3.9}/src/pyosis/post/__init__.py +0 -0
- {osis_python-0.3.8 → osis_python-0.3.9}/src/pyosis/post/combine.py +0 -0
- {osis_python-0.3.8 → osis_python-0.3.9}/src/pyosis/post/design_check.py +0 -0
- {osis_python-0.3.8 → osis_python-0.3.9}/src/pyosis/post/display.py +0 -0
- {osis_python-0.3.8 → osis_python-0.3.9}/src/pyosis/post/manager.py +0 -0
- {osis_python-0.3.8 → osis_python-0.3.9}/src/pyosis/project/__init__.py +0 -0
- {osis_python-0.3.8 → osis_python-0.3.9}/src/pyosis/project/interface.py +0 -0
- {osis_python-0.3.8 → osis_python-0.3.9}/src/pyosis/project/manager.py +0 -0
- {osis_python-0.3.8 → osis_python-0.3.9}/src/pyosis/property/__init__.py +0 -0
- {osis_python-0.3.8 → osis_python-0.3.9}/src/pyosis/property/component_thickness.py +0 -0
- {osis_python-0.3.8 → osis_python-0.3.9}/src/pyosis/property/coordinate.py +0 -0
- {osis_python-0.3.8 → osis_python-0.3.9}/src/pyosis/property/creep_shrink.py +0 -0
- {osis_python-0.3.8 → osis_python-0.3.9}/src/pyosis/property/damping.py +0 -0
- {osis_python-0.3.8 → osis_python-0.3.9}/src/pyosis/property/manager.py +0 -0
- {osis_python-0.3.8 → osis_python-0.3.9}/src/pyosis/property/pu_curve.py +0 -0
- {osis_python-0.3.8 → osis_python-0.3.9}/src/pyosis/quick_building/__init__.py +0 -0
- {osis_python-0.3.8 → osis_python-0.3.9}/src/pyosis/quick_building/interface.py +0 -0
- {osis_python-0.3.8 → osis_python-0.3.9}/src/pyosis/result/__init__.py +0 -0
- {osis_python-0.3.8 → osis_python-0.3.9}/src/pyosis/result/check.py +0 -0
- {osis_python-0.3.8 → osis_python-0.3.9}/src/pyosis/result/env.py +0 -0
- {osis_python-0.3.8 → osis_python-0.3.9}/src/pyosis/result/loadcase.py +0 -0
- {osis_python-0.3.8 → osis_python-0.3.9}/src/pyosis/result/manager.py +0 -0
- {osis_python-0.3.8 → osis_python-0.3.9}/src/pyosis/result/result.py +0 -0
- {osis_python-0.3.8 → osis_python-0.3.9}/src/pyosis/section/__init__.py +0 -0
- {osis_python-0.3.8 → osis_python-0.3.9}/src/pyosis/section/common.py +0 -0
- {osis_python-0.3.8 → osis_python-0.3.9}/src/pyosis/section/numeric.py +0 -0
- {osis_python-0.3.8 → osis_python-0.3.9}/src/pyosis/section/param.py +0 -0
- {osis_python-0.3.8 → osis_python-0.3.9}/src/pyosis/section/rebar.py +0 -0
- {osis_python-0.3.8 → osis_python-0.3.9}/src/pyosis/section/rib.py +0 -0
- {osis_python-0.3.8 → osis_python-0.3.9}/src/pyosis/section/steel.py +0 -0
- {osis_python-0.3.8 → osis_python-0.3.9}/src/pyosis/settlement/__init__.py +0 -0
- {osis_python-0.3.8 → osis_python-0.3.9}/src/pyosis/settlement/interface.py +0 -0
- {osis_python-0.3.8 → osis_python-0.3.9}/src/pyosis/settlement/manager.py +0 -0
- {osis_python-0.3.8 → osis_python-0.3.9}/src/pyosis/stability/__init__.py +0 -0
- {osis_python-0.3.8 → osis_python-0.3.9}/src/pyosis/stability/buckling.py +0 -0
- {osis_python-0.3.8 → osis_python-0.3.9}/src/pyosis/stability/manager.py +0 -0
- {osis_python-0.3.8 → osis_python-0.3.9}/src/pyosis/stage/__init__.py +0 -0
- {osis_python-0.3.8 → osis_python-0.3.9}/src/pyosis/stage/define.py +0 -0
- {osis_python-0.3.8 → osis_python-0.3.9}/src/pyosis/stage/manager.py +0 -0
- {osis_python-0.3.8 → osis_python-0.3.9}/src/pyosis/stage/overall.py +0 -0
- {osis_python-0.3.8 → osis_python-0.3.9}/src/pyosis/thickness/__init__.py +0 -0
- {osis_python-0.3.8 → osis_python-0.3.9}/src/pyosis/thickness/interface.py +0 -0
- {osis_python-0.3.8 → osis_python-0.3.9}/src/pyosis/thickness/manager.py +0 -0
- {osis_python-0.3.8 → osis_python-0.3.9}/src/pyosis/transfer/__init__.py +0 -0
- {osis_python-0.3.8 → osis_python-0.3.9}/src/pyosis/transfer/command_map.py +0 -0
- {osis_python-0.3.8 → osis_python-0.3.9}/src/pyosis/transfer/generator.py +0 -0
- {osis_python-0.3.8 → osis_python-0.3.9}/src/pyosis/transfer/parser.py +0 -0
|
@@ -7,7 +7,7 @@ A library for extending OSIS functionality.
|
|
|
7
7
|
A library that allows users to use CAE with great flexibility.
|
|
8
8
|
"""
|
|
9
9
|
|
|
10
|
-
__version__ = "0.3.
|
|
10
|
+
__version__ = "0.3.9"
|
|
11
11
|
__author__ = "CCCC Highway Consultant Co. Ltd." # 中交公路规划设计院 - 工程技术研究中心 - lzh - wjh - myf
|
|
12
12
|
|
|
13
13
|
from .core.engine import OSISEngine
|
|
@@ -106,6 +106,39 @@ class SectionType(Enum):
|
|
|
106
106
|
|
|
107
107
|
NUMERICAL = 51 # 数值截面
|
|
108
108
|
|
|
109
|
+
@dataclass(frozen=False)
|
|
110
|
+
class Rebar:
|
|
111
|
+
"""钢筋基类"""
|
|
112
|
+
has_bent_up_rebar: bool # 是否有弯起钢筋
|
|
113
|
+
has_shear_stirrup: bool # 是否有抗剪箍筋
|
|
114
|
+
has_torsional_stirrup: bool # 是否有扭转箍筋
|
|
115
|
+
has_web_vertical_rebar: bool # 是否有腹板竖筋
|
|
116
|
+
longitudinal_rebars: list[dict] # 纵筋
|
|
117
|
+
longitudinal_rebars_count: int # 纵筋数量
|
|
118
|
+
@staticmethod
|
|
119
|
+
def empty() -> Rebar:
|
|
120
|
+
"""无钢筋信息时的占位对象(内部使用)"""
|
|
121
|
+
return Rebar(
|
|
122
|
+
has_bent_up_rebar=False,
|
|
123
|
+
has_shear_stirrup=False,
|
|
124
|
+
has_torsional_stirrup=False,
|
|
125
|
+
has_web_vertical_rebar=False,
|
|
126
|
+
longitudinal_rebars=[],
|
|
127
|
+
longitudinal_rebars_count=0,
|
|
128
|
+
)
|
|
129
|
+
@classmethod
|
|
130
|
+
def _from_dict(cls, d: dict) -> Rebar:
|
|
131
|
+
"""从接口 dict 构造 Rebar 对象(内部使用)"""
|
|
132
|
+
lr = d.get("longitudinalRebars")
|
|
133
|
+
cnt = d.get("longitudinalRebarsCount")
|
|
134
|
+
return cls(
|
|
135
|
+
has_bent_up_rebar=bool(d.get("hasBentUpRebar")),
|
|
136
|
+
has_shear_stirrup=bool(d.get("hasShearStirrup")),
|
|
137
|
+
has_torsional_stirrup=bool(d.get("hasTorsionalStirrup")),
|
|
138
|
+
has_web_vertical_rebar=bool(d.get("hasWebVerticalRebar")),
|
|
139
|
+
longitudinal_rebars=list(lr) if isinstance(lr, list) else [],
|
|
140
|
+
longitudinal_rebars_count=int(cnt) if cnt is not None else 0,
|
|
141
|
+
)
|
|
109
142
|
|
|
110
143
|
# ──────────────────────────────────────────────
|
|
111
144
|
# Section 基类
|
|
@@ -138,11 +171,19 @@ class Section:
|
|
|
138
171
|
has_concrete_section: bool # 是否有混凝土截面
|
|
139
172
|
has_steel_section: bool # 是否有钢截面
|
|
140
173
|
related_elements: list[int] # 相关单元
|
|
141
|
-
|
|
174
|
+
rebar: Rebar # 钢筋
|
|
142
175
|
@classmethod
|
|
143
176
|
def _from_dict(cls, d: dict) -> Section:
|
|
144
177
|
"""从接口 dict 构造 Section 对象(内部使用)"""
|
|
145
178
|
raw_type = int(d.get("type", 0))
|
|
179
|
+
sp = d.get("stressPoints")
|
|
180
|
+
ct = d.get("contour")
|
|
181
|
+
rel = d.get("relatedElement")
|
|
182
|
+
raw_rebar = d.get("rebar")
|
|
183
|
+
if isinstance(raw_rebar, dict):
|
|
184
|
+
rebar_obj = Rebar._from_dict(raw_rebar)
|
|
185
|
+
else:
|
|
186
|
+
rebar_obj = Rebar.empty()
|
|
146
187
|
return cls(
|
|
147
188
|
no=d.get("no"),
|
|
148
189
|
name=d.get("name"),
|
|
@@ -153,15 +194,16 @@ class Section:
|
|
|
153
194
|
offset_value_y=d.get("offsetValueY"),
|
|
154
195
|
offset_type_z=d.get("offsetTypeZ"),
|
|
155
196
|
offset_value_z=d.get("offsetValueZ"),
|
|
156
|
-
stress_points=list(
|
|
197
|
+
stress_points=list(sp) if isinstance(sp, list) else [],
|
|
157
198
|
boundary=d.get("boundary"),
|
|
158
199
|
height=d.get("height"),
|
|
159
200
|
modeling_point_x=d.get("modelingPointX"),
|
|
160
201
|
modeling_point_y=d.get("modelingPointY"),
|
|
161
|
-
contour=list(
|
|
202
|
+
contour=list(ct) if isinstance(ct, list) else [],
|
|
162
203
|
has_concrete_section=d.get("hasConcreteSection"),
|
|
163
204
|
has_steel_section=d.get("hasSteelSection"),
|
|
164
|
-
related_elements=list(
|
|
205
|
+
related_elements=list(rel) if isinstance(rel, list) else [],
|
|
206
|
+
rebar = rebar_obj,
|
|
165
207
|
)
|
|
166
208
|
|
|
167
209
|
def __repr__(self) -> str:
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|