osis-python 0.3.8__tar.gz → 0.4.0__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.4.0}/PKG-INFO +1 -1
- {osis_python-0.3.8 → osis_python-0.4.0/src/osis_python.egg-info}/PKG-INFO +1 -1
- {osis_python-0.3.8 → osis_python-0.4.0}/src/osis_python.egg-info/SOURCES.txt +1 -0
- {osis_python-0.3.8 → osis_python-0.4.0}/src/pyosis/__init__.py +1 -1
- {osis_python-0.3.8 → osis_python-0.4.0}/src/pyosis/boundary/manager.py +3 -3
- {osis_python-0.3.8 → osis_python-0.4.0}/src/pyosis/dynamic/manager.py +38 -2
- {osis_python-0.3.8 → osis_python-0.4.0}/src/pyosis/element/manager.py +45 -0
- {osis_python-0.3.8 → osis_python-0.4.0}/src/pyosis/live/manager.py +2 -0
- {osis_python-0.3.8 → osis_python-0.4.0}/src/pyosis/post/manager.py +14 -0
- {osis_python-0.3.8 → osis_python-0.4.0}/src/pyosis/section/common.py +3 -3
- osis_python-0.4.0/src/pyosis/section/composite.py +229 -0
- {osis_python-0.3.8 → osis_python-0.4.0}/src/pyosis/section/manager.py +880 -577
- {osis_python-0.3.8 → osis_python-0.4.0}/LICENSE +0 -0
- {osis_python-0.3.8 → osis_python-0.4.0}/README.md +0 -0
- {osis_python-0.3.8 → osis_python-0.4.0}/pyproject.toml +0 -0
- {osis_python-0.3.8 → osis_python-0.4.0}/setup.cfg +0 -0
- {osis_python-0.3.8 → osis_python-0.4.0}/src/osis_python.egg-info/dependency_links.txt +0 -0
- {osis_python-0.3.8 → osis_python-0.4.0}/src/osis_python.egg-info/requires.txt +0 -0
- {osis_python-0.3.8 → osis_python-0.4.0}/src/osis_python.egg-info/top_level.txt +0 -0
- {osis_python-0.3.8 → osis_python-0.4.0}/src/pyosis/boundary/__init__.py +0 -0
- {osis_python-0.3.8 → osis_python-0.4.0}/src/pyosis/boundary/interface.py +0 -0
- {osis_python-0.3.8 → osis_python-0.4.0}/src/pyosis/control/__init__.py +0 -0
- {osis_python-0.3.8 → osis_python-0.4.0}/src/pyosis/control/control.py +0 -0
- {osis_python-0.3.8 → osis_python-0.4.0}/src/pyosis/control/io.py +0 -0
- {osis_python-0.3.8 → osis_python-0.4.0}/src/pyosis/control/manager.py +0 -0
- {osis_python-0.3.8 → osis_python-0.4.0}/src/pyosis/control/nonlinear.py +0 -0
- {osis_python-0.3.8 → osis_python-0.4.0}/src/pyosis/core/__init__.py +0 -0
- {osis_python-0.3.8 → osis_python-0.4.0}/src/pyosis/core/all_func.py +0 -0
- {osis_python-0.3.8 → osis_python-0.4.0}/src/pyosis/core/client.py +0 -0
- {osis_python-0.3.8 → osis_python-0.4.0}/src/pyosis/core/command.py +0 -0
- {osis_python-0.3.8 → osis_python-0.4.0}/src/pyosis/core/engine.py +0 -0
- {osis_python-0.3.8 → osis_python-0.4.0}/src/pyosis/dynamic/__init__.py +0 -0
- {osis_python-0.3.8 → osis_python-0.4.0}/src/pyosis/dynamic/load_to_mass.py +0 -0
- {osis_python-0.3.8 → osis_python-0.4.0}/src/pyosis/dynamic/modal.py +0 -0
- {osis_python-0.3.8 → osis_python-0.4.0}/src/pyosis/dynamic/seismic.py +0 -0
- {osis_python-0.3.8 → osis_python-0.4.0}/src/pyosis/element/__init__.py +0 -0
- {osis_python-0.3.8 → osis_python-0.4.0}/src/pyosis/element/interface.py +0 -0
- {osis_python-0.3.8 → osis_python-0.4.0}/src/pyosis/general/__init__.py +0 -0
- {osis_python-0.3.8 → osis_python-0.4.0}/src/pyosis/general/interface.py +0 -0
- {osis_python-0.3.8 → osis_python-0.4.0}/src/pyosis/geometry/__init__.py +0 -0
- {osis_python-0.3.8 → osis_python-0.4.0}/src/pyosis/geometry/interface.py +0 -0
- {osis_python-0.3.8 → osis_python-0.4.0}/src/pyosis/geometry/manager.py +0 -0
- {osis_python-0.3.8 → osis_python-0.4.0}/src/pyosis/live/__init__.py +0 -0
- {osis_python-0.3.8 → osis_python-0.4.0}/src/pyosis/live/analysis.py +0 -0
- {osis_python-0.3.8 → osis_python-0.4.0}/src/pyosis/live/grade.py +0 -0
- {osis_python-0.3.8 → osis_python-0.4.0}/src/pyosis/live/lane.py +0 -0
- {osis_python-0.3.8 → osis_python-0.4.0}/src/pyosis/load/__init__.py +0 -0
- {osis_python-0.3.8 → osis_python-0.4.0}/src/pyosis/load/loadcase.py +0 -0
- {osis_python-0.3.8 → osis_python-0.4.0}/src/pyosis/load/manager.py +0 -0
- {osis_python-0.3.8 → osis_python-0.4.0}/src/pyosis/load/static.py +0 -0
- {osis_python-0.3.8 → osis_python-0.4.0}/src/pyosis/load/tendon.py +0 -0
- {osis_python-0.3.8 → osis_python-0.4.0}/src/pyosis/material/__init__.py +0 -0
- {osis_python-0.3.8 → osis_python-0.4.0}/src/pyosis/material/interface.py +0 -0
- {osis_python-0.3.8 → osis_python-0.4.0}/src/pyosis/material/manager.py +0 -0
- {osis_python-0.3.8 → osis_python-0.4.0}/src/pyosis/node/__init__.py +0 -0
- {osis_python-0.3.8 → osis_python-0.4.0}/src/pyosis/node/interface.py +0 -0
- {osis_python-0.3.8 → osis_python-0.4.0}/src/pyosis/node/manager.py +0 -0
- {osis_python-0.3.8 → osis_python-0.4.0}/src/pyosis/post/__init__.py +0 -0
- {osis_python-0.3.8 → osis_python-0.4.0}/src/pyosis/post/combine.py +0 -0
- {osis_python-0.3.8 → osis_python-0.4.0}/src/pyosis/post/design_check.py +0 -0
- {osis_python-0.3.8 → osis_python-0.4.0}/src/pyosis/post/display.py +0 -0
- {osis_python-0.3.8 → osis_python-0.4.0}/src/pyosis/project/__init__.py +0 -0
- {osis_python-0.3.8 → osis_python-0.4.0}/src/pyosis/project/interface.py +0 -0
- {osis_python-0.3.8 → osis_python-0.4.0}/src/pyosis/project/manager.py +0 -0
- {osis_python-0.3.8 → osis_python-0.4.0}/src/pyosis/property/__init__.py +0 -0
- {osis_python-0.3.8 → osis_python-0.4.0}/src/pyosis/property/component_thickness.py +0 -0
- {osis_python-0.3.8 → osis_python-0.4.0}/src/pyosis/property/coordinate.py +0 -0
- {osis_python-0.3.8 → osis_python-0.4.0}/src/pyosis/property/creep_shrink.py +0 -0
- {osis_python-0.3.8 → osis_python-0.4.0}/src/pyosis/property/damping.py +0 -0
- {osis_python-0.3.8 → osis_python-0.4.0}/src/pyosis/property/manager.py +0 -0
- {osis_python-0.3.8 → osis_python-0.4.0}/src/pyosis/property/pu_curve.py +0 -0
- {osis_python-0.3.8 → osis_python-0.4.0}/src/pyosis/quick_building/__init__.py +0 -0
- {osis_python-0.3.8 → osis_python-0.4.0}/src/pyosis/quick_building/interface.py +0 -0
- {osis_python-0.3.8 → osis_python-0.4.0}/src/pyosis/result/__init__.py +0 -0
- {osis_python-0.3.8 → osis_python-0.4.0}/src/pyosis/result/check.py +0 -0
- {osis_python-0.3.8 → osis_python-0.4.0}/src/pyosis/result/env.py +0 -0
- {osis_python-0.3.8 → osis_python-0.4.0}/src/pyosis/result/loadcase.py +0 -0
- {osis_python-0.3.8 → osis_python-0.4.0}/src/pyosis/result/manager.py +0 -0
- {osis_python-0.3.8 → osis_python-0.4.0}/src/pyosis/result/result.py +0 -0
- {osis_python-0.3.8 → osis_python-0.4.0}/src/pyosis/section/__init__.py +0 -0
- {osis_python-0.3.8 → osis_python-0.4.0}/src/pyosis/section/numeric.py +0 -0
- {osis_python-0.3.8 → osis_python-0.4.0}/src/pyosis/section/param.py +0 -0
- {osis_python-0.3.8 → osis_python-0.4.0}/src/pyosis/section/rebar.py +0 -0
- {osis_python-0.3.8 → osis_python-0.4.0}/src/pyosis/section/rib.py +0 -0
- {osis_python-0.3.8 → osis_python-0.4.0}/src/pyosis/section/steel.py +0 -0
- {osis_python-0.3.8 → osis_python-0.4.0}/src/pyosis/settlement/__init__.py +0 -0
- {osis_python-0.3.8 → osis_python-0.4.0}/src/pyosis/settlement/interface.py +0 -0
- {osis_python-0.3.8 → osis_python-0.4.0}/src/pyosis/settlement/manager.py +0 -0
- {osis_python-0.3.8 → osis_python-0.4.0}/src/pyosis/stability/__init__.py +0 -0
- {osis_python-0.3.8 → osis_python-0.4.0}/src/pyosis/stability/buckling.py +0 -0
- {osis_python-0.3.8 → osis_python-0.4.0}/src/pyosis/stability/manager.py +0 -0
- {osis_python-0.3.8 → osis_python-0.4.0}/src/pyosis/stage/__init__.py +0 -0
- {osis_python-0.3.8 → osis_python-0.4.0}/src/pyosis/stage/define.py +0 -0
- {osis_python-0.3.8 → osis_python-0.4.0}/src/pyosis/stage/manager.py +0 -0
- {osis_python-0.3.8 → osis_python-0.4.0}/src/pyosis/stage/overall.py +0 -0
- {osis_python-0.3.8 → osis_python-0.4.0}/src/pyosis/thickness/__init__.py +0 -0
- {osis_python-0.3.8 → osis_python-0.4.0}/src/pyosis/thickness/interface.py +0 -0
- {osis_python-0.3.8 → osis_python-0.4.0}/src/pyosis/thickness/manager.py +0 -0
- {osis_python-0.3.8 → osis_python-0.4.0}/src/pyosis/transfer/__init__.py +0 -0
- {osis_python-0.3.8 → osis_python-0.4.0}/src/pyosis/transfer/command_map.py +0 -0
- {osis_python-0.3.8 → osis_python-0.4.0}/src/pyosis/transfer/generator.py +0 -0
- {osis_python-0.3.8 → osis_python-0.4.0}/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.
|
|
10
|
+
__version__ = "0.4.0"
|
|
11
11
|
__author__ = "CCCC Highway Consultant Co. Ltd." # 中交公路规划设计院 - 工程技术研究中心 - lzh - wjh - myf
|
|
12
12
|
|
|
13
13
|
from .core.engine import OSISEngine
|
|
@@ -293,7 +293,7 @@ class ElstcSptBoundary(Boundary):
|
|
|
293
293
|
is_occupied=d.get("isOccupied"),
|
|
294
294
|
is_selected=d.get("isSelected"),
|
|
295
295
|
is_ploted=d.get("isPloted"),
|
|
296
|
-
constraints=list(d.get("constraints")),
|
|
296
|
+
# constraints=list(d.get("constraints")),
|
|
297
297
|
coor_no=d.get("coorNO"),
|
|
298
298
|
k_values=list(d.get("k")),
|
|
299
299
|
elastic_k=list(d.get("elasticK")),
|
|
@@ -333,8 +333,8 @@ class GeneralElstcSptBoundary(Boundary):
|
|
|
333
333
|
flag_m=d.get("flagM"),
|
|
334
334
|
flag_c=d.get("flagC"),
|
|
335
335
|
stiffness_matrix=list(d.get("stiffnessMatrix")),
|
|
336
|
-
mass_matrix=list(d.get("massMatrix")),
|
|
337
|
-
damping_matrix=list(d.get("dampingMatrix")),
|
|
336
|
+
# mass_matrix=list(d.get("massMatrix")),
|
|
337
|
+
# damping_matrix=list(d.get("dampingMatrix")),
|
|
338
338
|
)
|
|
339
339
|
|
|
340
340
|
def __repr__(self) -> str:
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
|
|
8
8
|
from __future__ import annotations
|
|
9
9
|
|
|
10
|
-
from dataclasses import dataclass
|
|
10
|
+
from dataclasses import dataclass, field
|
|
11
11
|
from typing import Literal
|
|
12
12
|
|
|
13
13
|
from .load_to_mass import (
|
|
@@ -28,18 +28,54 @@ from .seismic import (
|
|
|
28
28
|
)
|
|
29
29
|
from ..core.client import osis_client
|
|
30
30
|
|
|
31
|
-
|
|
31
|
+
@dataclass(frozen=False)
|
|
32
|
+
class LoadToMassLcPara:
|
|
33
|
+
"""荷载转换质量中的单个荷载工况参数"""
|
|
34
|
+
load_case: str
|
|
35
|
+
mass_factor: float
|
|
36
|
+
g: float
|
|
37
|
+
mass_dir: list[int] = field(default_factory=lambda: [1, 1, 1]) # [X, Y, Z]
|
|
38
|
+
trans_node_force: bool = True # transNForce
|
|
39
|
+
trans_beam_force: bool = True # transBForce
|
|
40
|
+
trans_surface_force: bool = False # transSForce
|
|
41
|
+
@classmethod
|
|
42
|
+
def _from_dict(cls, d: dict) -> LoadToMassLcPara:
|
|
43
|
+
return cls(
|
|
44
|
+
load_case=d.get("loadCase"),
|
|
45
|
+
mass_factor=d.get("massFactor"),
|
|
46
|
+
g=d.get("G"),
|
|
47
|
+
mass_dir=list(d.get("massDir") or [1, 1, 1]),
|
|
48
|
+
trans_node_force=bool(d.get("transNForce")),
|
|
49
|
+
trans_beam_force=bool(d.get("transBForce")),
|
|
50
|
+
trans_surface_force=bool(d.get("transSForce")),
|
|
51
|
+
)
|
|
32
52
|
# ──────────────────────────────────────────────
|
|
33
53
|
# 管理类
|
|
34
54
|
# ──────────────────────────────────────────────
|
|
35
55
|
@dataclass(frozen=False)
|
|
36
56
|
class LoadToMass:
|
|
37
57
|
name: str
|
|
58
|
+
no: int
|
|
59
|
+
analysis_type: int = 0
|
|
60
|
+
ok: bool = False
|
|
61
|
+
related_stages: list[int] = field(default_factory=list)
|
|
62
|
+
lc_paras_count: int = 0
|
|
63
|
+
lc_paras: list[LoadToMassLcPara] = field(default_factory=list)
|
|
38
64
|
|
|
39
65
|
@classmethod
|
|
40
66
|
def _from_dict(cls, d: dict) -> LoadToMass:
|
|
41
67
|
return cls(
|
|
42
68
|
name=d.get("name"),
|
|
69
|
+
no=d.get("no"),
|
|
70
|
+
analysis_type=d.get("analysisType", 0),
|
|
71
|
+
ok=bool(d.get("ok")),
|
|
72
|
+
related_stages=list(d.get("relatedStages") or []),
|
|
73
|
+
lc_paras_count=d.get("lcParasCount", 0),
|
|
74
|
+
lc_paras=[
|
|
75
|
+
LoadToMassLcPara._from_dict(p)
|
|
76
|
+
for p in (d.get("lcParas") or [])
|
|
77
|
+
if isinstance(p, dict)
|
|
78
|
+
],
|
|
43
79
|
)
|
|
44
80
|
|
|
45
81
|
class LoadToMassManager:
|
|
@@ -24,6 +24,9 @@ from .interface import (
|
|
|
24
24
|
osis_element_del,
|
|
25
25
|
osis_element_mod,
|
|
26
26
|
osis_element_group,
|
|
27
|
+
osis_taperele,
|
|
28
|
+
osis_element_tapereledel,
|
|
29
|
+
osis_element_taperelemod,
|
|
27
30
|
)
|
|
28
31
|
|
|
29
32
|
|
|
@@ -380,6 +383,48 @@ class TaperEleGroupManager:
|
|
|
380
383
|
taper_ele_groups = [TaperEleGroup._from_dict(d) for d in resp.get("data", []) if "name" in d]
|
|
381
384
|
return taper_ele_groups
|
|
382
385
|
|
|
386
|
+
def create(
|
|
387
|
+
self,
|
|
388
|
+
name: str,
|
|
389
|
+
z_type: Literal["0", "1"],
|
|
390
|
+
z_trans: float = 1.0,
|
|
391
|
+
z_pos: Literal["0", "1"] = "0",
|
|
392
|
+
z_dis: float = 0.0,
|
|
393
|
+
y_type: Literal["0", "1"] = "0",
|
|
394
|
+
y_trans: float = 1.0,
|
|
395
|
+
y_pos: Literal["0", "1"] = "0",
|
|
396
|
+
y_dis: float = 0.0,
|
|
397
|
+
*eles: str,
|
|
398
|
+
|
|
399
|
+
) -> TaperEleGroup:
|
|
400
|
+
"""创建变截面单元组"""
|
|
401
|
+
ok, err = osis_taperele(
|
|
402
|
+
name,
|
|
403
|
+
z_type,
|
|
404
|
+
z_trans,
|
|
405
|
+
z_pos,
|
|
406
|
+
z_dis,
|
|
407
|
+
y_type,
|
|
408
|
+
y_trans,
|
|
409
|
+
y_pos,
|
|
410
|
+
y_dis,
|
|
411
|
+
*eles,
|
|
412
|
+
)
|
|
413
|
+
if not ok:
|
|
414
|
+
raise RuntimeError(f"创建变截面单元组 {name} 失败: {err}")
|
|
415
|
+
return self.get(name)
|
|
416
|
+
|
|
417
|
+
def delete(self, name: str) -> None:
|
|
418
|
+
ok, err = osis_element_tapereledel(name)
|
|
419
|
+
if not ok:
|
|
420
|
+
raise RuntimeError(f"删除变截面单元组 {name} 失败: {err}")
|
|
421
|
+
|
|
422
|
+
def rename(self, old_name: str, new_name: str) -> TaperEleGroup:
|
|
423
|
+
ok, err = osis_element_taperelemod(old_name, new_name)
|
|
424
|
+
if not ok:
|
|
425
|
+
raise RuntimeError(f"重命名变截面单元组 {old_name} -> {new_name} 失败: {err}")
|
|
426
|
+
return self.get(new_name)
|
|
427
|
+
|
|
383
428
|
def get(self, name: str | list[str]) -> TaperEleGroup | list[TaperEleGroup | None] | None:
|
|
384
429
|
"""根据名称获取变截面单元组
|
|
385
430
|
Args:
|
|
@@ -501,6 +501,8 @@ class LiveGradeManager:
|
|
|
501
501
|
Raises:
|
|
502
502
|
RuntimeError: 创建失败时抛出异常
|
|
503
503
|
"""
|
|
504
|
+
raise RuntimeError(f"暂不支持创建LiveGrade对象")
|
|
505
|
+
# TODO 需要修改DB文件grade字段值
|
|
504
506
|
ok, err = osis_livegrade_crowd(name, "JTGD60_2015", "CROWD", eBridgeType, dPara)
|
|
505
507
|
if not ok:
|
|
506
508
|
raise RuntimeError(f"创建人群荷载等级 {name} 失败: {err}")
|
|
@@ -10,6 +10,8 @@ from __future__ import annotations
|
|
|
10
10
|
|
|
11
11
|
from typing import Literal
|
|
12
12
|
|
|
13
|
+
from ..core import osis_run
|
|
14
|
+
|
|
13
15
|
from .combine import (
|
|
14
16
|
osis_combine_create,
|
|
15
17
|
osis_combine_post,
|
|
@@ -495,6 +497,18 @@ class PostManager:
|
|
|
495
497
|
if not ok:
|
|
496
498
|
raise RuntimeError(f"删除验算作用 ({item}) 失败: {err}")
|
|
497
499
|
|
|
500
|
+
# ═══════════════════════════════════════════
|
|
501
|
+
# 快捷功能
|
|
502
|
+
# ═══════════════════════════════════════════
|
|
503
|
+
|
|
504
|
+
def combination_and_check():
|
|
505
|
+
'''
|
|
506
|
+
自动组合与验算
|
|
507
|
+
'''
|
|
508
|
+
ok, err = osis_run("CombinationAndCheck")
|
|
509
|
+
if not ok:
|
|
510
|
+
raise RuntimeError(f"自动组合与验算失败: {err}")
|
|
511
|
+
|
|
498
512
|
# ═══════════════════════════════════════════
|
|
499
513
|
# 结果显示
|
|
500
514
|
# ═══════════════════════════════════════════
|
|
@@ -371,7 +371,7 @@ def osis_section_conventionalbox(nSec: int, strName: str, eSectionType: Literal[
|
|
|
371
371
|
pass
|
|
372
372
|
|
|
373
373
|
@REGISTRY.register('Section')
|
|
374
|
-
def
|
|
374
|
+
def osis_section_streamed_box(nSec: int, strName: str, eSectionType: Literal["STREAMEDBOX"]="STREAMEDBOX",
|
|
375
375
|
H: float=4.0, BtL: float=20.0, BtR: float=20.0, BbL: float=10.5, BbR: float=10.5, Bs: float=0.8,
|
|
376
376
|
Tt: float=0.28, Tb1: float=0.27, Tb2: float=0.27, Tw: float=0.25, Ttj: float=0.5, Tbj: float=0.27, Twj: float=0.4,
|
|
377
377
|
nCellNum: int=5, Bi1: float=4.7, Bi2: float=6.85, Bi3: float=6, Bi4: float=6.85,
|
|
@@ -384,12 +384,12 @@ def osis_section_flat_box(nSec: int, strName: str, eSectionType: Literal["FLATBO
|
|
|
384
384
|
eSlopeType: Literal["Integral", "CastInPlace"]="Integral",
|
|
385
385
|
i: float=0.0, i1: float=0.0, i2: float=0.0, i3: float=0.0, i4: float=0.0,
|
|
386
386
|
R1: float=0.5, R2: float=0.2):
|
|
387
|
-
"""定义或修改扁平箱梁截面(
|
|
387
|
+
"""定义或修改扁平箱梁截面(STREAMEDBOX)。
|
|
388
388
|
|
|
389
389
|
Args:
|
|
390
390
|
nSec (int): 截面编号,从1开始编号。
|
|
391
391
|
strName (str): 截面名称。
|
|
392
|
-
eSectionType (str): 截面类型,固定为
|
|
392
|
+
eSectionType (str): 截面类型,固定为 STREAMEDBOX。
|
|
393
393
|
H (float): 截面高度。
|
|
394
394
|
BtL (float): 设计线左顶板宽。
|
|
395
395
|
BtR (float): 设计线右顶板宽。
|
|
@@ -0,0 +1,229 @@
|
|
|
1
|
+
from typing import Literal
|
|
2
|
+
|
|
3
|
+
from ..core import REGISTRY
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
@REGISTRY.register("Section")
|
|
7
|
+
def osis_section_composite_steel_i(
|
|
8
|
+
Index: int,
|
|
9
|
+
Name: str,
|
|
10
|
+
Type: Literal["COMPOSITESTEELI"],
|
|
11
|
+
Bt: float,
|
|
12
|
+
Bc: float,
|
|
13
|
+
Tt1: float,
|
|
14
|
+
Tt2: float,
|
|
15
|
+
Tt3: float,
|
|
16
|
+
Tc1: float,
|
|
17
|
+
Tc2: float,
|
|
18
|
+
B1: float,
|
|
19
|
+
B2: float,
|
|
20
|
+
x1: float,
|
|
21
|
+
x2: float,
|
|
22
|
+
x3: float,
|
|
23
|
+
GirderNum: Literal["SINGLE", "DOUBLE", "TRIPLE"],
|
|
24
|
+
H1: float,
|
|
25
|
+
Bf1: float,
|
|
26
|
+
Bb1: float,
|
|
27
|
+
Tf1: float,
|
|
28
|
+
Tb1: float,
|
|
29
|
+
Tw1: float,
|
|
30
|
+
WebRibPos1: Literal["LEFT", "RIGHT", "BOTH"],
|
|
31
|
+
MiddleSameWithSide: Literal[0, 1],
|
|
32
|
+
H2: float,
|
|
33
|
+
Bf2: float,
|
|
34
|
+
Bb2: float,
|
|
35
|
+
Tf2: float,
|
|
36
|
+
Tb2: float,
|
|
37
|
+
Tw2: float,
|
|
38
|
+
WebRibPos2: Literal["LEFT", "RIGHT", "BOTH"],
|
|
39
|
+
):
|
|
40
|
+
"""定义或修改工字型钢组合截面(COMPOSITESTEELI)。
|
|
41
|
+
|
|
42
|
+
Args:
|
|
43
|
+
Index: 截面编号
|
|
44
|
+
Name: 截面名
|
|
45
|
+
Type: 固定为 COMPOSITESTEELI
|
|
46
|
+
Bt: 板宽
|
|
47
|
+
Bc: 悬臂长
|
|
48
|
+
Tt1: 标准段板厚
|
|
49
|
+
Tt2: 两侧加厚段板厚
|
|
50
|
+
Tt3: 中间加厚段板厚
|
|
51
|
+
Tc1: 悬臂端板厚
|
|
52
|
+
Tc2: 悬臂倒角处板厚
|
|
53
|
+
B1: 两侧加厚段板宽
|
|
54
|
+
B2: 中间加厚段板宽
|
|
55
|
+
x1, x2, x3: 倒角
|
|
56
|
+
GirderNum: SINGLE=单梁, DOUBLE=双梁, TRIPLE=三梁
|
|
57
|
+
H1, Bf1, Bb1, Tf1, Tb1, Tw1, WebRibPos1: 边梁
|
|
58
|
+
MiddleSameWithSide: 中梁构造同边梁,1=相同,0=不同
|
|
59
|
+
H2, Bf2, Bb2, Tf2, Tb2, Tw2, WebRibPos2: 中梁(MiddleSameWithSide=1 时 H2 等可填 0)
|
|
60
|
+
"""
|
|
61
|
+
pass
|
|
62
|
+
|
|
63
|
+
@REGISTRY.register("Section")
|
|
64
|
+
def osis_section_composite_steel_trough(
|
|
65
|
+
Index: int,
|
|
66
|
+
Name: str,
|
|
67
|
+
Type: Literal["COMPOSITESTEELTROUGH"],
|
|
68
|
+
Bt: float,
|
|
69
|
+
Bc: float,
|
|
70
|
+
Tt1: float,
|
|
71
|
+
Tt2: float,
|
|
72
|
+
Tt3: float,
|
|
73
|
+
Tc1: float,
|
|
74
|
+
Tc2: float,
|
|
75
|
+
B1: float,
|
|
76
|
+
B2: float,
|
|
77
|
+
x1: float,
|
|
78
|
+
x2: float,
|
|
79
|
+
x3: float,
|
|
80
|
+
H1: float,
|
|
81
|
+
Bb: float,
|
|
82
|
+
Bf1: float,
|
|
83
|
+
Tf1: float,
|
|
84
|
+
Tb: float,
|
|
85
|
+
Tw1: float,
|
|
86
|
+
RightSameWithLeft: Literal[0, 1],
|
|
87
|
+
HasSteelI: Literal[0, 1],
|
|
88
|
+
H2: float,
|
|
89
|
+
Bf2: float,
|
|
90
|
+
Bf3: float,
|
|
91
|
+
Tf2: float,
|
|
92
|
+
Tf3: float,
|
|
93
|
+
Tw2: float,
|
|
94
|
+
):
|
|
95
|
+
"""定义或修改槽型钢组合截面(COMPOSITESTEELTROUGH)。
|
|
96
|
+
|
|
97
|
+
Args:
|
|
98
|
+
Index: 截面编号
|
|
99
|
+
Name: 截面名
|
|
100
|
+
Type: 固定为 COMPOSITESTEELTROUGH
|
|
101
|
+
Bt: 板宽
|
|
102
|
+
Bc: 悬臂长
|
|
103
|
+
Tt1: 标准段板厚
|
|
104
|
+
Tt2: 两侧加厚段板厚
|
|
105
|
+
Tt3: 中间加厚段板厚
|
|
106
|
+
Tc1: 悬臂端板厚
|
|
107
|
+
Tc2: 悬臂倒角处板厚
|
|
108
|
+
B1: 两侧加厚段板宽
|
|
109
|
+
B2: 中间加厚段板宽
|
|
110
|
+
x1, x2, x3: 倒角
|
|
111
|
+
H1: 主梁梁高
|
|
112
|
+
Bb: 主梁底板宽
|
|
113
|
+
Bf1: 主梁上翼缘宽
|
|
114
|
+
Tf1: 主梁上翼缘厚
|
|
115
|
+
Tb: 主梁底板厚
|
|
116
|
+
Tw1: 主梁腹板厚
|
|
117
|
+
RightSameWithLeft: 右腹板加劲肋布置是否与左侧相同,1=相同,0=不同
|
|
118
|
+
HasSteelI: 是否有小纵梁,1=有,0=无
|
|
119
|
+
H2, Bf2, Bf3, Tf2, Tf3, Tw2: 小纵梁(HasSteelI=0 时可填 0)
|
|
120
|
+
"""
|
|
121
|
+
pass
|
|
122
|
+
@REGISTRY.register("Section")
|
|
123
|
+
def osis_section_composite_steel_box(
|
|
124
|
+
Index: int,
|
|
125
|
+
Name: str,
|
|
126
|
+
Type: Literal["COMPOSITESTEELBOX"],
|
|
127
|
+
Bt: float,
|
|
128
|
+
Bc: float,
|
|
129
|
+
Tt1: float,
|
|
130
|
+
Tt2: float,
|
|
131
|
+
Tt3: float,
|
|
132
|
+
Tc1: float,
|
|
133
|
+
Tc2: float,
|
|
134
|
+
B1: float,
|
|
135
|
+
B2: float,
|
|
136
|
+
x1: float,
|
|
137
|
+
x2: float,
|
|
138
|
+
x3: float,
|
|
139
|
+
GirderNum: Literal["SINGLE", "DOUBLE", "TRIPLE"],
|
|
140
|
+
H1: float,
|
|
141
|
+
Bf1: float,
|
|
142
|
+
Bct: float,
|
|
143
|
+
Bb: float,
|
|
144
|
+
Bcb: float,
|
|
145
|
+
Tf1: float,
|
|
146
|
+
Tb: float,
|
|
147
|
+
Tw1: float,
|
|
148
|
+
SameLayout: Literal[0, 1],
|
|
149
|
+
H2: float,
|
|
150
|
+
Bf2: float,
|
|
151
|
+
Bf3: float,
|
|
152
|
+
Tf2: float,
|
|
153
|
+
Tf3: float,
|
|
154
|
+
Tw2: float,
|
|
155
|
+
):
|
|
156
|
+
"""定义或修改箱型钢组合截面(COMPOSITESTEELBOX)。
|
|
157
|
+
|
|
158
|
+
Args:
|
|
159
|
+
Index: 截面编号
|
|
160
|
+
Name: 截面名
|
|
161
|
+
Type: 固定为 COMPOSITESTEELBOX
|
|
162
|
+
Bt: 板宽
|
|
163
|
+
Bc: 悬臂长
|
|
164
|
+
Tt1: 标准段板厚
|
|
165
|
+
Tt2: 两侧加厚段板厚
|
|
166
|
+
Tt3: 中间加厚段板厚
|
|
167
|
+
Tc1: 悬臂端板厚
|
|
168
|
+
Tc2: 悬臂倒角处板厚
|
|
169
|
+
B1: 两侧加厚段板宽
|
|
170
|
+
B2: 中间加厚段板宽
|
|
171
|
+
x1, x2, x3: 倒角
|
|
172
|
+
GirderNum: SINGLE=单梁, DOUBLE=双梁, TRIPLE=三梁
|
|
173
|
+
H1: 主梁梁高
|
|
174
|
+
Bf1: 主梁上翼缘宽
|
|
175
|
+
Bct: 主梁上翼缘悬出宽
|
|
176
|
+
Bb: 主梁下翼缘宽
|
|
177
|
+
Bcb: 主梁下翼缘悬出宽
|
|
178
|
+
Tf1: 主梁上翼缘厚
|
|
179
|
+
Tb: 主梁下翼缘厚
|
|
180
|
+
Tw1: 主梁腹板厚
|
|
181
|
+
SameLayout: 下翼缘加劲肋布置与上翼缘是否相同,1=相同,0=不同
|
|
182
|
+
H2, Bf2, Bf3, Tf2, Tf3, Tw2: 小纵梁/次梁(单梁时可填 0)
|
|
183
|
+
"""
|
|
184
|
+
pass
|
|
185
|
+
|
|
186
|
+
@REGISTRY.register("Section")
|
|
187
|
+
def osis_section_composite_custom(
|
|
188
|
+
Index: int,
|
|
189
|
+
Name: str,
|
|
190
|
+
Type: Literal["COMPOSITECUSTOM"],
|
|
191
|
+
PartNum: int,
|
|
192
|
+
BaseE: float,
|
|
193
|
+
BaseMu: float,
|
|
194
|
+
):
|
|
195
|
+
"""定义或修改自定义组合截面(COMPOSITECUSTOM)。"""
|
|
196
|
+
pass
|
|
197
|
+
|
|
198
|
+
|
|
199
|
+
@REGISTRY.register("SectionPart")
|
|
200
|
+
def osis_section_part_polygon(
|
|
201
|
+
SecIndex: int,
|
|
202
|
+
PartIndex: int,
|
|
203
|
+
PartMatType: Literal["Concrete", "Steel"],
|
|
204
|
+
PartE: float,
|
|
205
|
+
PartMu: float,
|
|
206
|
+
PartDensity: float,
|
|
207
|
+
PartGeoType: Literal["Polygon"],
|
|
208
|
+
ContourMatrix: str,
|
|
209
|
+
ContourWidth: str,
|
|
210
|
+
):
|
|
211
|
+
"""自定义组合截面 - 面域 Part(Polygon)。"""
|
|
212
|
+
pass
|
|
213
|
+
|
|
214
|
+
|
|
215
|
+
@REGISTRY.register("SectionPart")
|
|
216
|
+
def osis_section_part_line(
|
|
217
|
+
SecIndex: int,
|
|
218
|
+
PartIndex: int,
|
|
219
|
+
PartMatType: Literal["Concrete", "Steel"],
|
|
220
|
+
PartE: float,
|
|
221
|
+
PartMu: float,
|
|
222
|
+
PartDensity: float,
|
|
223
|
+
PartGeoType: Literal["Line"],
|
|
224
|
+
PointMatrix: str,
|
|
225
|
+
LineMatrix: str,
|
|
226
|
+
WidthMatrix: str,
|
|
227
|
+
):
|
|
228
|
+
"""自定义组合截面 - 线域 Part(Line)。"""
|
|
229
|
+
pass
|