osis-python 0.6.1__tar.gz → 0.6.3__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.6.1/src/osis_python.egg-info → osis_python-0.6.3}/PKG-INFO +25 -25
- {osis_python-0.6.1 → osis_python-0.6.3}/README.md +24 -24
- {osis_python-0.6.1 → osis_python-0.6.3/src/osis_python.egg-info}/PKG-INFO +25 -25
- {osis_python-0.6.1 → osis_python-0.6.3}/src/pyosis/__init__.py +1 -1
- {osis_python-0.6.1 → osis_python-0.6.3}/src/pyosis/boundary/manager.py +199 -42
- {osis_python-0.6.1 → osis_python-0.6.3}/src/pyosis/control/manager.py +178 -24
- {osis_python-0.6.1 → osis_python-0.6.3}/src/pyosis/dynamic/manager.py +141 -24
- {osis_python-0.6.1 → osis_python-0.6.3}/src/pyosis/element/manager.py +246 -57
- {osis_python-0.6.1 → osis_python-0.6.3}/src/pyosis/geometry/manager.py +31 -6
- {osis_python-0.6.1 → osis_python-0.6.3}/src/pyosis/live/manager.py +43 -18
- {osis_python-0.6.1 → osis_python-0.6.3}/src/pyosis/load/manager.py +494 -351
- {osis_python-0.6.1 → osis_python-0.6.3}/src/pyosis/material/manager.py +26 -7
- {osis_python-0.6.1 → osis_python-0.6.3}/src/pyosis/project/manager.py +36 -20
- {osis_python-0.6.1 → osis_python-0.6.3}/src/pyosis/property/manager.py +263 -84
- {osis_python-0.6.1 → osis_python-0.6.3}/src/pyosis/section/manager.py +284 -41
- {osis_python-0.6.1 → osis_python-0.6.3}/src/pyosis/settlement/manager.py +84 -27
- {osis_python-0.6.1 → osis_python-0.6.3}/src/pyosis/stability/manager.py +42 -31
- {osis_python-0.6.1 → osis_python-0.6.3}/src/pyosis/thickness/manager.py +36 -14
- {osis_python-0.6.1 → osis_python-0.6.3}/LICENSE +0 -0
- {osis_python-0.6.1 → osis_python-0.6.3}/pyproject.toml +0 -0
- {osis_python-0.6.1 → osis_python-0.6.3}/setup.cfg +0 -0
- {osis_python-0.6.1 → osis_python-0.6.3}/src/osis_python.egg-info/SOURCES.txt +0 -0
- {osis_python-0.6.1 → osis_python-0.6.3}/src/osis_python.egg-info/dependency_links.txt +0 -0
- {osis_python-0.6.1 → osis_python-0.6.3}/src/osis_python.egg-info/requires.txt +0 -0
- {osis_python-0.6.1 → osis_python-0.6.3}/src/osis_python.egg-info/top_level.txt +0 -0
- {osis_python-0.6.1 → osis_python-0.6.3}/src/pyosis/boundary/__init__.py +0 -0
- {osis_python-0.6.1 → osis_python-0.6.3}/src/pyosis/boundary/interface.py +0 -0
- {osis_python-0.6.1 → osis_python-0.6.3}/src/pyosis/control/__init__.py +0 -0
- {osis_python-0.6.1 → osis_python-0.6.3}/src/pyosis/control/control.py +0 -0
- {osis_python-0.6.1 → osis_python-0.6.3}/src/pyosis/control/io.py +0 -0
- {osis_python-0.6.1 → osis_python-0.6.3}/src/pyosis/control/nonlinear.py +0 -0
- {osis_python-0.6.1 → osis_python-0.6.3}/src/pyosis/core/__init__.py +0 -0
- {osis_python-0.6.1 → osis_python-0.6.3}/src/pyosis/core/all_func.py +0 -0
- {osis_python-0.6.1 → osis_python-0.6.3}/src/pyosis/core/apdl_sync.py +0 -0
- {osis_python-0.6.1 → osis_python-0.6.3}/src/pyosis/core/basic_manager.py +0 -0
- {osis_python-0.6.1 → osis_python-0.6.3}/src/pyosis/core/build.py +0 -0
- {osis_python-0.6.1 → osis_python-0.6.3}/src/pyosis/core/client.py +0 -0
- {osis_python-0.6.1 → osis_python-0.6.3}/src/pyosis/core/command.py +0 -0
- {osis_python-0.6.1 → osis_python-0.6.3}/src/pyosis/core/engine.py +0 -0
- {osis_python-0.6.1 → osis_python-0.6.3}/src/pyosis/core/exceptions.py +0 -0
- {osis_python-0.6.1 → osis_python-0.6.3}/src/pyosis/core/references.py +0 -0
- {osis_python-0.6.1 → osis_python-0.6.3}/src/pyosis/core/solver.py +0 -0
- {osis_python-0.6.1 → osis_python-0.6.3}/src/pyosis/core/sync_apdl_cli.py +0 -0
- {osis_python-0.6.1 → osis_python-0.6.3}/src/pyosis/display/__init__.py +0 -0
- {osis_python-0.6.1 → osis_python-0.6.3}/src/pyosis/display/interface.py +0 -0
- {osis_python-0.6.1 → osis_python-0.6.3}/src/pyosis/display/manager.py +0 -0
- {osis_python-0.6.1 → osis_python-0.6.3}/src/pyosis/dynamic/__init__.py +0 -0
- {osis_python-0.6.1 → osis_python-0.6.3}/src/pyosis/dynamic/load_to_mass.py +0 -0
- {osis_python-0.6.1 → osis_python-0.6.3}/src/pyosis/dynamic/modal.py +0 -0
- {osis_python-0.6.1 → osis_python-0.6.3}/src/pyosis/dynamic/seismic.py +0 -0
- {osis_python-0.6.1 → osis_python-0.6.3}/src/pyosis/element/__init__.py +0 -0
- {osis_python-0.6.1 → osis_python-0.6.3}/src/pyosis/element/interface.py +0 -0
- {osis_python-0.6.1 → osis_python-0.6.3}/src/pyosis/general/__init__.py +0 -0
- {osis_python-0.6.1 → osis_python-0.6.3}/src/pyosis/general/interface.py +0 -0
- {osis_python-0.6.1 → osis_python-0.6.3}/src/pyosis/geometry/__init__.py +0 -0
- {osis_python-0.6.1 → osis_python-0.6.3}/src/pyosis/geometry/interface.py +0 -0
- {osis_python-0.6.1 → osis_python-0.6.3}/src/pyosis/live/__init__.py +0 -0
- {osis_python-0.6.1 → osis_python-0.6.3}/src/pyosis/live/analysis.py +0 -0
- {osis_python-0.6.1 → osis_python-0.6.3}/src/pyosis/live/grade.py +0 -0
- {osis_python-0.6.1 → osis_python-0.6.3}/src/pyosis/live/lane.py +0 -0
- {osis_python-0.6.1 → osis_python-0.6.3}/src/pyosis/load/__init__.py +0 -0
- {osis_python-0.6.1 → osis_python-0.6.3}/src/pyosis/load/loadcase.py +0 -0
- {osis_python-0.6.1 → osis_python-0.6.3}/src/pyosis/load/static.py +0 -0
- {osis_python-0.6.1 → osis_python-0.6.3}/src/pyosis/load/tendon.py +0 -0
- {osis_python-0.6.1 → osis_python-0.6.3}/src/pyosis/material/__init__.py +0 -0
- {osis_python-0.6.1 → osis_python-0.6.3}/src/pyosis/material/interface.py +0 -0
- {osis_python-0.6.1 → osis_python-0.6.3}/src/pyosis/node/__init__.py +0 -0
- {osis_python-0.6.1 → osis_python-0.6.3}/src/pyosis/node/interface.py +0 -0
- {osis_python-0.6.1 → osis_python-0.6.3}/src/pyosis/node/manager.py +0 -0
- {osis_python-0.6.1 → osis_python-0.6.3}/src/pyosis/post/__init__.py +0 -0
- {osis_python-0.6.1 → osis_python-0.6.3}/src/pyosis/post/combine.py +0 -0
- {osis_python-0.6.1 → osis_python-0.6.3}/src/pyosis/post/design_check.py +0 -0
- {osis_python-0.6.1 → osis_python-0.6.3}/src/pyosis/post/display.py +0 -0
- {osis_python-0.6.1 → osis_python-0.6.3}/src/pyosis/post/manager.py +0 -0
- {osis_python-0.6.1 → osis_python-0.6.3}/src/pyosis/project/__init__.py +0 -0
- {osis_python-0.6.1 → osis_python-0.6.3}/src/pyosis/project/interface.py +0 -0
- {osis_python-0.6.1 → osis_python-0.6.3}/src/pyosis/property/__init__.py +0 -0
- {osis_python-0.6.1 → osis_python-0.6.3}/src/pyosis/property/component_thickness.py +0 -0
- {osis_python-0.6.1 → osis_python-0.6.3}/src/pyosis/property/coordinate.py +0 -0
- {osis_python-0.6.1 → osis_python-0.6.3}/src/pyosis/property/creep_shrink.py +0 -0
- {osis_python-0.6.1 → osis_python-0.6.3}/src/pyosis/property/damping.py +0 -0
- {osis_python-0.6.1 → osis_python-0.6.3}/src/pyosis/property/pu_curve.py +0 -0
- {osis_python-0.6.1 → osis_python-0.6.3}/src/pyosis/quick_building/__init__.py +0 -0
- {osis_python-0.6.1 → osis_python-0.6.3}/src/pyosis/quick_building/interface.py +0 -0
- {osis_python-0.6.1 → osis_python-0.6.3}/src/pyosis/result/__init__.py +0 -0
- {osis_python-0.6.1 → osis_python-0.6.3}/src/pyosis/result/check.py +0 -0
- {osis_python-0.6.1 → osis_python-0.6.3}/src/pyosis/result/env.py +0 -0
- {osis_python-0.6.1 → osis_python-0.6.3}/src/pyosis/result/loadcase.py +0 -0
- {osis_python-0.6.1 → osis_python-0.6.3}/src/pyosis/result/manager.py +0 -0
- {osis_python-0.6.1 → osis_python-0.6.3}/src/pyosis/result/result.py +0 -0
- {osis_python-0.6.1 → osis_python-0.6.3}/src/pyosis/section/__init__.py +0 -0
- {osis_python-0.6.1 → osis_python-0.6.3}/src/pyosis/section/common.py +0 -0
- {osis_python-0.6.1 → osis_python-0.6.3}/src/pyosis/section/composite.py +0 -0
- {osis_python-0.6.1 → osis_python-0.6.3}/src/pyosis/section/numeric.py +0 -0
- {osis_python-0.6.1 → osis_python-0.6.3}/src/pyosis/section/param.py +0 -0
- {osis_python-0.6.1 → osis_python-0.6.3}/src/pyosis/section/rebar.py +0 -0
- {osis_python-0.6.1 → osis_python-0.6.3}/src/pyosis/section/rib.py +0 -0
- {osis_python-0.6.1 → osis_python-0.6.3}/src/pyosis/section/steel.py +0 -0
- {osis_python-0.6.1 → osis_python-0.6.3}/src/pyosis/settlement/__init__.py +0 -0
- {osis_python-0.6.1 → osis_python-0.6.3}/src/pyosis/settlement/interface.py +0 -0
- {osis_python-0.6.1 → osis_python-0.6.3}/src/pyosis/stability/__init__.py +0 -0
- {osis_python-0.6.1 → osis_python-0.6.3}/src/pyosis/stability/buckling.py +0 -0
- {osis_python-0.6.1 → osis_python-0.6.3}/src/pyosis/stage/__init__.py +0 -0
- {osis_python-0.6.1 → osis_python-0.6.3}/src/pyosis/stage/define.py +0 -0
- {osis_python-0.6.1 → osis_python-0.6.3}/src/pyosis/stage/manager.py +0 -0
- {osis_python-0.6.1 → osis_python-0.6.3}/src/pyosis/stage/overall.py +0 -0
- {osis_python-0.6.1 → osis_python-0.6.3}/src/pyosis/thickness/__init__.py +0 -0
- {osis_python-0.6.1 → osis_python-0.6.3}/src/pyosis/thickness/interface.py +0 -0
- {osis_python-0.6.1 → osis_python-0.6.3}/src/pyosis/transfer/__init__.py +0 -0
- {osis_python-0.6.1 → osis_python-0.6.3}/src/pyosis/transfer/generator.py +0 -0
- {osis_python-0.6.1 → osis_python-0.6.3}/src/pyosis/transfer/matrix.py +0 -0
- {osis_python-0.6.1 → osis_python-0.6.3}/src/pyosis/transfer/out_to_python.py +0 -0
- {osis_python-0.6.1 → osis_python-0.6.3}/src/pyosis/transfer/parser.py +0 -0
- {osis_python-0.6.1 → osis_python-0.6.3}/src/pyosis/transfer/routes.py +0 -0
- {osis_python-0.6.1 → osis_python-0.6.3}/src/pyosis/transfer/split.py +0 -0
- {osis_python-0.6.1 → osis_python-0.6.3}/tests/test_delete_occupied.py +0 -0
- {osis_python-0.6.1 → osis_python-0.6.3}/tests/test_project_manager.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: osis-python
|
|
3
|
-
Version: 0.6.
|
|
3
|
+
Version: 0.6.3
|
|
4
4
|
Summary: A Python client library for Osis APDL
|
|
5
5
|
Author-email: "CCCC Highway Consultant Co. Ltd." <support@osisbim.com>
|
|
6
6
|
License-Expression: MIT
|
|
@@ -88,7 +88,7 @@ n2 = engine.node.create(no=2, x=15, y=0, z=0)
|
|
|
88
88
|
|
|
89
89
|
# Create elements
|
|
90
90
|
elem = engine.element.create_beam3d(
|
|
91
|
-
no=1, node1=n1.no, node2=n2.no,
|
|
91
|
+
no=1, node1=n1.no, node2=n2.no, mat=mat.no, sec1=sec.no, sec2=sec.no
|
|
92
92
|
)
|
|
93
93
|
|
|
94
94
|
# Create boundaries
|
|
@@ -136,7 +136,7 @@ from pyosis.material import material_manager
|
|
|
136
136
|
from pyosis.node import node_manager
|
|
137
137
|
|
|
138
138
|
mat = material_manager.create_conc(no=1, name="C30", code="JTG3362_2018", grade="C30")
|
|
139
|
-
node = node_manager.create(0, 0, 0)
|
|
139
|
+
node = node_manager.create(no=None, x=0, y=0, z=0)
|
|
140
140
|
```
|
|
141
141
|
|
|
142
142
|
### 4. Using OSISSolver — Start the Solver Directly (Solver-Only Mode)
|
|
@@ -208,8 +208,8 @@ engine.boundary.group.create("AbutmentBoundaries", "a", "1to2")
|
|
|
208
208
|
|
|
209
209
|
# Various boundary types
|
|
210
210
|
engine.boundary.create_general(no=1, x=1, y=1, z=1, rx=1, ry=1, rz=1, rw=1) # General support
|
|
211
|
-
engine.boundary.create_master_slave(no=1, node=1, dx=1, dy=1, dz=1, rx=0, ry=1, rz=1, coincident=
|
|
212
|
-
engine.boundary.create_rigid(no=1,
|
|
211
|
+
engine.boundary.create_master_slave(no=1, node=1, dx=1, dy=1, dz=1, rx=0, ry=1, rz=1, coincident=1) # Master-slave
|
|
212
|
+
engine.boundary.create_rigid(no=1, node_i=1) # Rigid link
|
|
213
213
|
engine.boundary.create_elstcspt(no=1, coor="", x=0, dx=1e9, y=0, dy=1e9, z=0, dz=1e9) # Elastic support
|
|
214
214
|
|
|
215
215
|
# Tendons
|
|
@@ -260,12 +260,12 @@ engine.prop.creep_shrink.create(no=1, name="Creep1", avg_humidity=70.0,
|
|
|
260
260
|
# Damping (Rayleigh 自定义系数)
|
|
261
261
|
engine.prop.damping.create_rayleigh_custom(name="Damping1", alpha=0.05, beta=0.005)
|
|
262
262
|
|
|
263
|
-
# P-U curve (no, name, curve_type, num, values)
|
|
264
|
-
# curve_type: 1
|
|
265
|
-
engine.prop.pu_curve.create(
|
|
263
|
+
# P-U curve (no, name, curve_type, num, *values)
|
|
264
|
+
# curve_type: 0 = force, 1 = moment
|
|
265
|
+
engine.prop.pu_curve.create(1, "PU1", 1, 3, 0, 0.01, 1000, 0.02, 1500)
|
|
266
266
|
|
|
267
267
|
# Element thickness assignment (thickness, op, *elems)
|
|
268
|
-
engine.prop.assign_component_thickness(
|
|
268
|
+
engine.prop.assign_component_thickness(0.3, "a", 1)
|
|
269
269
|
|
|
270
270
|
# Shell thickness (no, in_plane, out_plane)
|
|
271
271
|
engine.thickness.create(no=1, in_plane=0.3, out_plane=0.3)
|
|
@@ -277,13 +277,13 @@ The `GeometryManager` supports querying geometric entities:
|
|
|
277
277
|
|
|
278
278
|
```python
|
|
279
279
|
# Get all splines
|
|
280
|
-
splines = engine.geometry.all(
|
|
280
|
+
splines = engine.geometry.all()
|
|
281
281
|
|
|
282
282
|
# Get a specific spline
|
|
283
|
-
spline = engine.geometry.get("
|
|
283
|
+
spline = engine.geometry.get("curve1")
|
|
284
284
|
|
|
285
|
-
# Filter by type
|
|
286
|
-
arcs = engine.geometry.
|
|
285
|
+
# Filter by type (General / Natural / Arc3D / Arc2D)
|
|
286
|
+
arcs = [s for s in engine.geometry.all() if s.spline_type.name == "Arc3D"]
|
|
287
287
|
```
|
|
288
288
|
|
|
289
289
|
### Data Class Objects
|
|
@@ -299,7 +299,7 @@ print(elem.mat) # Material ID
|
|
|
299
299
|
# Objects support operations (operations下沉 to object)
|
|
300
300
|
lc = engine.load.get("Self-weight")
|
|
301
301
|
lc.create_gravity()
|
|
302
|
-
lc.create_nforce(1,
|
|
302
|
+
lc.create_nforce(1, fx=1000)
|
|
303
303
|
```
|
|
304
304
|
|
|
305
305
|
### Explicit Numbering
|
|
@@ -363,23 +363,23 @@ engine.control.set_inc_tendon(True)
|
|
|
363
363
|
engine.control.set_nonlinear(geom=False, link=False)
|
|
364
364
|
|
|
365
365
|
# Sections
|
|
366
|
-
engine.section.create_circle("CircleSection1", d=0.219, tw=0.012
|
|
367
|
-
engine.section.create_circle("CircleSection2", d=0.180, tw=0.008
|
|
366
|
+
engine.section.create_circle(no=1, name="CircleSection1", d=0.219, tw=0.012)
|
|
367
|
+
engine.section.create_circle(no=2, name="CircleSection2", d=0.180, tw=0.008)
|
|
368
368
|
|
|
369
369
|
# Materials
|
|
370
370
|
engine.material.create_steel(
|
|
371
|
-
"Steel1", code="JTGD64_2015", grade="Q345", dmp=0.05
|
|
371
|
+
no=1, name="Steel1", code="JTGD64_2015", grade="Q345", dmp=0.05
|
|
372
372
|
)
|
|
373
373
|
|
|
374
374
|
# Nodes
|
|
375
|
-
engine.node.create(0, 5, 0
|
|
376
|
-
engine.node.create(15, 5, 0
|
|
377
|
-
engine.node.create(7.5, 0, 0
|
|
378
|
-
engine.node.create(
|
|
375
|
+
engine.node.create(no=1, x=0, y=5, z=0)
|
|
376
|
+
engine.node.create(no=2, x=15, y=5, z=0)
|
|
377
|
+
engine.node.create(no=3, x=7.5, y=0, z=0)
|
|
378
|
+
engine.node.create(no=4, x=20, y=0, z=0)
|
|
379
379
|
|
|
380
380
|
# Elements
|
|
381
|
-
engine.element.create_beam3d(1,
|
|
382
|
-
engine.element.create_beam3d(2,
|
|
381
|
+
engine.element.create_beam3d(no=1, node1=1, node2=3, mat=1, sec1=1, sec2=1)
|
|
382
|
+
engine.element.create_beam3d(no=2, node1=2, node2=3, mat=1, sec1=2, sec2=2)
|
|
383
383
|
|
|
384
384
|
# Boundaries
|
|
385
385
|
engine.boundary.create_general(no=1)
|
|
@@ -391,8 +391,8 @@ lc = engine.load.create(
|
|
|
391
391
|
load_case_type="USER",
|
|
392
392
|
prompt="Two forces applied at nodes 3 and 4"
|
|
393
393
|
)
|
|
394
|
-
lc.create_nforce(3,
|
|
395
|
-
lc.create_nforce(4,
|
|
394
|
+
lc.create_nforce(3, fx=0, fy=-1000000, fz=0)
|
|
395
|
+
lc.create_nforce(4, fx=200000, fy=0, fz=0)
|
|
396
396
|
|
|
397
397
|
# Solve
|
|
398
398
|
engine.solve()
|
|
@@ -57,7 +57,7 @@ n2 = engine.node.create(no=2, x=15, y=0, z=0)
|
|
|
57
57
|
|
|
58
58
|
# Create elements
|
|
59
59
|
elem = engine.element.create_beam3d(
|
|
60
|
-
no=1, node1=n1.no, node2=n2.no,
|
|
60
|
+
no=1, node1=n1.no, node2=n2.no, mat=mat.no, sec1=sec.no, sec2=sec.no
|
|
61
61
|
)
|
|
62
62
|
|
|
63
63
|
# Create boundaries
|
|
@@ -105,7 +105,7 @@ from pyosis.material import material_manager
|
|
|
105
105
|
from pyosis.node import node_manager
|
|
106
106
|
|
|
107
107
|
mat = material_manager.create_conc(no=1, name="C30", code="JTG3362_2018", grade="C30")
|
|
108
|
-
node = node_manager.create(0, 0, 0)
|
|
108
|
+
node = node_manager.create(no=None, x=0, y=0, z=0)
|
|
109
109
|
```
|
|
110
110
|
|
|
111
111
|
### 4. Using OSISSolver — Start the Solver Directly (Solver-Only Mode)
|
|
@@ -177,8 +177,8 @@ engine.boundary.group.create("AbutmentBoundaries", "a", "1to2")
|
|
|
177
177
|
|
|
178
178
|
# Various boundary types
|
|
179
179
|
engine.boundary.create_general(no=1, x=1, y=1, z=1, rx=1, ry=1, rz=1, rw=1) # General support
|
|
180
|
-
engine.boundary.create_master_slave(no=1, node=1, dx=1, dy=1, dz=1, rx=0, ry=1, rz=1, coincident=
|
|
181
|
-
engine.boundary.create_rigid(no=1,
|
|
180
|
+
engine.boundary.create_master_slave(no=1, node=1, dx=1, dy=1, dz=1, rx=0, ry=1, rz=1, coincident=1) # Master-slave
|
|
181
|
+
engine.boundary.create_rigid(no=1, node_i=1) # Rigid link
|
|
182
182
|
engine.boundary.create_elstcspt(no=1, coor="", x=0, dx=1e9, y=0, dy=1e9, z=0, dz=1e9) # Elastic support
|
|
183
183
|
|
|
184
184
|
# Tendons
|
|
@@ -229,12 +229,12 @@ engine.prop.creep_shrink.create(no=1, name="Creep1", avg_humidity=70.0,
|
|
|
229
229
|
# Damping (Rayleigh 自定义系数)
|
|
230
230
|
engine.prop.damping.create_rayleigh_custom(name="Damping1", alpha=0.05, beta=0.005)
|
|
231
231
|
|
|
232
|
-
# P-U curve (no, name, curve_type, num, values)
|
|
233
|
-
# curve_type: 1
|
|
234
|
-
engine.prop.pu_curve.create(
|
|
232
|
+
# P-U curve (no, name, curve_type, num, *values)
|
|
233
|
+
# curve_type: 0 = force, 1 = moment
|
|
234
|
+
engine.prop.pu_curve.create(1, "PU1", 1, 3, 0, 0.01, 1000, 0.02, 1500)
|
|
235
235
|
|
|
236
236
|
# Element thickness assignment (thickness, op, *elems)
|
|
237
|
-
engine.prop.assign_component_thickness(
|
|
237
|
+
engine.prop.assign_component_thickness(0.3, "a", 1)
|
|
238
238
|
|
|
239
239
|
# Shell thickness (no, in_plane, out_plane)
|
|
240
240
|
engine.thickness.create(no=1, in_plane=0.3, out_plane=0.3)
|
|
@@ -246,13 +246,13 @@ The `GeometryManager` supports querying geometric entities:
|
|
|
246
246
|
|
|
247
247
|
```python
|
|
248
248
|
# Get all splines
|
|
249
|
-
splines = engine.geometry.all(
|
|
249
|
+
splines = engine.geometry.all()
|
|
250
250
|
|
|
251
251
|
# Get a specific spline
|
|
252
|
-
spline = engine.geometry.get("
|
|
252
|
+
spline = engine.geometry.get("curve1")
|
|
253
253
|
|
|
254
|
-
# Filter by type
|
|
255
|
-
arcs = engine.geometry.
|
|
254
|
+
# Filter by type (General / Natural / Arc3D / Arc2D)
|
|
255
|
+
arcs = [s for s in engine.geometry.all() if s.spline_type.name == "Arc3D"]
|
|
256
256
|
```
|
|
257
257
|
|
|
258
258
|
### Data Class Objects
|
|
@@ -268,7 +268,7 @@ print(elem.mat) # Material ID
|
|
|
268
268
|
# Objects support operations (operations下沉 to object)
|
|
269
269
|
lc = engine.load.get("Self-weight")
|
|
270
270
|
lc.create_gravity()
|
|
271
|
-
lc.create_nforce(1,
|
|
271
|
+
lc.create_nforce(1, fx=1000)
|
|
272
272
|
```
|
|
273
273
|
|
|
274
274
|
### Explicit Numbering
|
|
@@ -332,23 +332,23 @@ engine.control.set_inc_tendon(True)
|
|
|
332
332
|
engine.control.set_nonlinear(geom=False, link=False)
|
|
333
333
|
|
|
334
334
|
# Sections
|
|
335
|
-
engine.section.create_circle("CircleSection1", d=0.219, tw=0.012
|
|
336
|
-
engine.section.create_circle("CircleSection2", d=0.180, tw=0.008
|
|
335
|
+
engine.section.create_circle(no=1, name="CircleSection1", d=0.219, tw=0.012)
|
|
336
|
+
engine.section.create_circle(no=2, name="CircleSection2", d=0.180, tw=0.008)
|
|
337
337
|
|
|
338
338
|
# Materials
|
|
339
339
|
engine.material.create_steel(
|
|
340
|
-
"Steel1", code="JTGD64_2015", grade="Q345", dmp=0.05
|
|
340
|
+
no=1, name="Steel1", code="JTGD64_2015", grade="Q345", dmp=0.05
|
|
341
341
|
)
|
|
342
342
|
|
|
343
343
|
# Nodes
|
|
344
|
-
engine.node.create(0, 5, 0
|
|
345
|
-
engine.node.create(15, 5, 0
|
|
346
|
-
engine.node.create(7.5, 0, 0
|
|
347
|
-
engine.node.create(
|
|
344
|
+
engine.node.create(no=1, x=0, y=5, z=0)
|
|
345
|
+
engine.node.create(no=2, x=15, y=5, z=0)
|
|
346
|
+
engine.node.create(no=3, x=7.5, y=0, z=0)
|
|
347
|
+
engine.node.create(no=4, x=20, y=0, z=0)
|
|
348
348
|
|
|
349
349
|
# Elements
|
|
350
|
-
engine.element.create_beam3d(1,
|
|
351
|
-
engine.element.create_beam3d(2,
|
|
350
|
+
engine.element.create_beam3d(no=1, node1=1, node2=3, mat=1, sec1=1, sec2=1)
|
|
351
|
+
engine.element.create_beam3d(no=2, node1=2, node2=3, mat=1, sec1=2, sec2=2)
|
|
352
352
|
|
|
353
353
|
# Boundaries
|
|
354
354
|
engine.boundary.create_general(no=1)
|
|
@@ -360,8 +360,8 @@ lc = engine.load.create(
|
|
|
360
360
|
load_case_type="USER",
|
|
361
361
|
prompt="Two forces applied at nodes 3 and 4"
|
|
362
362
|
)
|
|
363
|
-
lc.create_nforce(3,
|
|
364
|
-
lc.create_nforce(4,
|
|
363
|
+
lc.create_nforce(3, fx=0, fy=-1000000, fz=0)
|
|
364
|
+
lc.create_nforce(4, fx=200000, fy=0, fz=0)
|
|
365
365
|
|
|
366
366
|
# Solve
|
|
367
367
|
engine.solve()
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: osis-python
|
|
3
|
-
Version: 0.6.
|
|
3
|
+
Version: 0.6.3
|
|
4
4
|
Summary: A Python client library for Osis APDL
|
|
5
5
|
Author-email: "CCCC Highway Consultant Co. Ltd." <support@osisbim.com>
|
|
6
6
|
License-Expression: MIT
|
|
@@ -88,7 +88,7 @@ n2 = engine.node.create(no=2, x=15, y=0, z=0)
|
|
|
88
88
|
|
|
89
89
|
# Create elements
|
|
90
90
|
elem = engine.element.create_beam3d(
|
|
91
|
-
no=1, node1=n1.no, node2=n2.no,
|
|
91
|
+
no=1, node1=n1.no, node2=n2.no, mat=mat.no, sec1=sec.no, sec2=sec.no
|
|
92
92
|
)
|
|
93
93
|
|
|
94
94
|
# Create boundaries
|
|
@@ -136,7 +136,7 @@ from pyosis.material import material_manager
|
|
|
136
136
|
from pyosis.node import node_manager
|
|
137
137
|
|
|
138
138
|
mat = material_manager.create_conc(no=1, name="C30", code="JTG3362_2018", grade="C30")
|
|
139
|
-
node = node_manager.create(0, 0, 0)
|
|
139
|
+
node = node_manager.create(no=None, x=0, y=0, z=0)
|
|
140
140
|
```
|
|
141
141
|
|
|
142
142
|
### 4. Using OSISSolver — Start the Solver Directly (Solver-Only Mode)
|
|
@@ -208,8 +208,8 @@ engine.boundary.group.create("AbutmentBoundaries", "a", "1to2")
|
|
|
208
208
|
|
|
209
209
|
# Various boundary types
|
|
210
210
|
engine.boundary.create_general(no=1, x=1, y=1, z=1, rx=1, ry=1, rz=1, rw=1) # General support
|
|
211
|
-
engine.boundary.create_master_slave(no=1, node=1, dx=1, dy=1, dz=1, rx=0, ry=1, rz=1, coincident=
|
|
212
|
-
engine.boundary.create_rigid(no=1,
|
|
211
|
+
engine.boundary.create_master_slave(no=1, node=1, dx=1, dy=1, dz=1, rx=0, ry=1, rz=1, coincident=1) # Master-slave
|
|
212
|
+
engine.boundary.create_rigid(no=1, node_i=1) # Rigid link
|
|
213
213
|
engine.boundary.create_elstcspt(no=1, coor="", x=0, dx=1e9, y=0, dy=1e9, z=0, dz=1e9) # Elastic support
|
|
214
214
|
|
|
215
215
|
# Tendons
|
|
@@ -260,12 +260,12 @@ engine.prop.creep_shrink.create(no=1, name="Creep1", avg_humidity=70.0,
|
|
|
260
260
|
# Damping (Rayleigh 自定义系数)
|
|
261
261
|
engine.prop.damping.create_rayleigh_custom(name="Damping1", alpha=0.05, beta=0.005)
|
|
262
262
|
|
|
263
|
-
# P-U curve (no, name, curve_type, num, values)
|
|
264
|
-
# curve_type: 1
|
|
265
|
-
engine.prop.pu_curve.create(
|
|
263
|
+
# P-U curve (no, name, curve_type, num, *values)
|
|
264
|
+
# curve_type: 0 = force, 1 = moment
|
|
265
|
+
engine.prop.pu_curve.create(1, "PU1", 1, 3, 0, 0.01, 1000, 0.02, 1500)
|
|
266
266
|
|
|
267
267
|
# Element thickness assignment (thickness, op, *elems)
|
|
268
|
-
engine.prop.assign_component_thickness(
|
|
268
|
+
engine.prop.assign_component_thickness(0.3, "a", 1)
|
|
269
269
|
|
|
270
270
|
# Shell thickness (no, in_plane, out_plane)
|
|
271
271
|
engine.thickness.create(no=1, in_plane=0.3, out_plane=0.3)
|
|
@@ -277,13 +277,13 @@ The `GeometryManager` supports querying geometric entities:
|
|
|
277
277
|
|
|
278
278
|
```python
|
|
279
279
|
# Get all splines
|
|
280
|
-
splines = engine.geometry.all(
|
|
280
|
+
splines = engine.geometry.all()
|
|
281
281
|
|
|
282
282
|
# Get a specific spline
|
|
283
|
-
spline = engine.geometry.get("
|
|
283
|
+
spline = engine.geometry.get("curve1")
|
|
284
284
|
|
|
285
|
-
# Filter by type
|
|
286
|
-
arcs = engine.geometry.
|
|
285
|
+
# Filter by type (General / Natural / Arc3D / Arc2D)
|
|
286
|
+
arcs = [s for s in engine.geometry.all() if s.spline_type.name == "Arc3D"]
|
|
287
287
|
```
|
|
288
288
|
|
|
289
289
|
### Data Class Objects
|
|
@@ -299,7 +299,7 @@ print(elem.mat) # Material ID
|
|
|
299
299
|
# Objects support operations (operations下沉 to object)
|
|
300
300
|
lc = engine.load.get("Self-weight")
|
|
301
301
|
lc.create_gravity()
|
|
302
|
-
lc.create_nforce(1,
|
|
302
|
+
lc.create_nforce(1, fx=1000)
|
|
303
303
|
```
|
|
304
304
|
|
|
305
305
|
### Explicit Numbering
|
|
@@ -363,23 +363,23 @@ engine.control.set_inc_tendon(True)
|
|
|
363
363
|
engine.control.set_nonlinear(geom=False, link=False)
|
|
364
364
|
|
|
365
365
|
# Sections
|
|
366
|
-
engine.section.create_circle("CircleSection1", d=0.219, tw=0.012
|
|
367
|
-
engine.section.create_circle("CircleSection2", d=0.180, tw=0.008
|
|
366
|
+
engine.section.create_circle(no=1, name="CircleSection1", d=0.219, tw=0.012)
|
|
367
|
+
engine.section.create_circle(no=2, name="CircleSection2", d=0.180, tw=0.008)
|
|
368
368
|
|
|
369
369
|
# Materials
|
|
370
370
|
engine.material.create_steel(
|
|
371
|
-
"Steel1", code="JTGD64_2015", grade="Q345", dmp=0.05
|
|
371
|
+
no=1, name="Steel1", code="JTGD64_2015", grade="Q345", dmp=0.05
|
|
372
372
|
)
|
|
373
373
|
|
|
374
374
|
# Nodes
|
|
375
|
-
engine.node.create(0, 5, 0
|
|
376
|
-
engine.node.create(15, 5, 0
|
|
377
|
-
engine.node.create(7.5, 0, 0
|
|
378
|
-
engine.node.create(
|
|
375
|
+
engine.node.create(no=1, x=0, y=5, z=0)
|
|
376
|
+
engine.node.create(no=2, x=15, y=5, z=0)
|
|
377
|
+
engine.node.create(no=3, x=7.5, y=0, z=0)
|
|
378
|
+
engine.node.create(no=4, x=20, y=0, z=0)
|
|
379
379
|
|
|
380
380
|
# Elements
|
|
381
|
-
engine.element.create_beam3d(1,
|
|
382
|
-
engine.element.create_beam3d(2,
|
|
381
|
+
engine.element.create_beam3d(no=1, node1=1, node2=3, mat=1, sec1=1, sec2=1)
|
|
382
|
+
engine.element.create_beam3d(no=2, node1=2, node2=3, mat=1, sec1=2, sec2=2)
|
|
383
383
|
|
|
384
384
|
# Boundaries
|
|
385
385
|
engine.boundary.create_general(no=1)
|
|
@@ -391,8 +391,8 @@ lc = engine.load.create(
|
|
|
391
391
|
load_case_type="USER",
|
|
392
392
|
prompt="Two forces applied at nodes 3 and 4"
|
|
393
393
|
)
|
|
394
|
-
lc.create_nforce(3,
|
|
395
|
-
lc.create_nforce(4,
|
|
394
|
+
lc.create_nforce(3, fx=0, fy=-1000000, fz=0)
|
|
395
|
+
lc.create_nforce(4, fx=200000, fy=0, fz=0)
|
|
396
396
|
|
|
397
397
|
# Solve
|
|
398
398
|
engine.solve()
|
|
@@ -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.6.
|
|
10
|
+
__version__ = "0.6.3"
|
|
11
11
|
__author__ = "CCCC Highway Consultant Co. Ltd." # 中交公路规划设计院 - 工程技术研究中心 - lzh - wjh - myf
|
|
12
12
|
|
|
13
13
|
from .core.engine import OSISEngine
|