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.
Files changed (117) hide show
  1. {osis_python-0.6.1/src/osis_python.egg-info → osis_python-0.6.3}/PKG-INFO +25 -25
  2. {osis_python-0.6.1 → osis_python-0.6.3}/README.md +24 -24
  3. {osis_python-0.6.1 → osis_python-0.6.3/src/osis_python.egg-info}/PKG-INFO +25 -25
  4. {osis_python-0.6.1 → osis_python-0.6.3}/src/pyosis/__init__.py +1 -1
  5. {osis_python-0.6.1 → osis_python-0.6.3}/src/pyosis/boundary/manager.py +199 -42
  6. {osis_python-0.6.1 → osis_python-0.6.3}/src/pyosis/control/manager.py +178 -24
  7. {osis_python-0.6.1 → osis_python-0.6.3}/src/pyosis/dynamic/manager.py +141 -24
  8. {osis_python-0.6.1 → osis_python-0.6.3}/src/pyosis/element/manager.py +246 -57
  9. {osis_python-0.6.1 → osis_python-0.6.3}/src/pyosis/geometry/manager.py +31 -6
  10. {osis_python-0.6.1 → osis_python-0.6.3}/src/pyosis/live/manager.py +43 -18
  11. {osis_python-0.6.1 → osis_python-0.6.3}/src/pyosis/load/manager.py +494 -351
  12. {osis_python-0.6.1 → osis_python-0.6.3}/src/pyosis/material/manager.py +26 -7
  13. {osis_python-0.6.1 → osis_python-0.6.3}/src/pyosis/project/manager.py +36 -20
  14. {osis_python-0.6.1 → osis_python-0.6.3}/src/pyosis/property/manager.py +263 -84
  15. {osis_python-0.6.1 → osis_python-0.6.3}/src/pyosis/section/manager.py +284 -41
  16. {osis_python-0.6.1 → osis_python-0.6.3}/src/pyosis/settlement/manager.py +84 -27
  17. {osis_python-0.6.1 → osis_python-0.6.3}/src/pyosis/stability/manager.py +42 -31
  18. {osis_python-0.6.1 → osis_python-0.6.3}/src/pyosis/thickness/manager.py +36 -14
  19. {osis_python-0.6.1 → osis_python-0.6.3}/LICENSE +0 -0
  20. {osis_python-0.6.1 → osis_python-0.6.3}/pyproject.toml +0 -0
  21. {osis_python-0.6.1 → osis_python-0.6.3}/setup.cfg +0 -0
  22. {osis_python-0.6.1 → osis_python-0.6.3}/src/osis_python.egg-info/SOURCES.txt +0 -0
  23. {osis_python-0.6.1 → osis_python-0.6.3}/src/osis_python.egg-info/dependency_links.txt +0 -0
  24. {osis_python-0.6.1 → osis_python-0.6.3}/src/osis_python.egg-info/requires.txt +0 -0
  25. {osis_python-0.6.1 → osis_python-0.6.3}/src/osis_python.egg-info/top_level.txt +0 -0
  26. {osis_python-0.6.1 → osis_python-0.6.3}/src/pyosis/boundary/__init__.py +0 -0
  27. {osis_python-0.6.1 → osis_python-0.6.3}/src/pyosis/boundary/interface.py +0 -0
  28. {osis_python-0.6.1 → osis_python-0.6.3}/src/pyosis/control/__init__.py +0 -0
  29. {osis_python-0.6.1 → osis_python-0.6.3}/src/pyosis/control/control.py +0 -0
  30. {osis_python-0.6.1 → osis_python-0.6.3}/src/pyosis/control/io.py +0 -0
  31. {osis_python-0.6.1 → osis_python-0.6.3}/src/pyosis/control/nonlinear.py +0 -0
  32. {osis_python-0.6.1 → osis_python-0.6.3}/src/pyosis/core/__init__.py +0 -0
  33. {osis_python-0.6.1 → osis_python-0.6.3}/src/pyosis/core/all_func.py +0 -0
  34. {osis_python-0.6.1 → osis_python-0.6.3}/src/pyosis/core/apdl_sync.py +0 -0
  35. {osis_python-0.6.1 → osis_python-0.6.3}/src/pyosis/core/basic_manager.py +0 -0
  36. {osis_python-0.6.1 → osis_python-0.6.3}/src/pyosis/core/build.py +0 -0
  37. {osis_python-0.6.1 → osis_python-0.6.3}/src/pyosis/core/client.py +0 -0
  38. {osis_python-0.6.1 → osis_python-0.6.3}/src/pyosis/core/command.py +0 -0
  39. {osis_python-0.6.1 → osis_python-0.6.3}/src/pyosis/core/engine.py +0 -0
  40. {osis_python-0.6.1 → osis_python-0.6.3}/src/pyosis/core/exceptions.py +0 -0
  41. {osis_python-0.6.1 → osis_python-0.6.3}/src/pyosis/core/references.py +0 -0
  42. {osis_python-0.6.1 → osis_python-0.6.3}/src/pyosis/core/solver.py +0 -0
  43. {osis_python-0.6.1 → osis_python-0.6.3}/src/pyosis/core/sync_apdl_cli.py +0 -0
  44. {osis_python-0.6.1 → osis_python-0.6.3}/src/pyosis/display/__init__.py +0 -0
  45. {osis_python-0.6.1 → osis_python-0.6.3}/src/pyosis/display/interface.py +0 -0
  46. {osis_python-0.6.1 → osis_python-0.6.3}/src/pyosis/display/manager.py +0 -0
  47. {osis_python-0.6.1 → osis_python-0.6.3}/src/pyosis/dynamic/__init__.py +0 -0
  48. {osis_python-0.6.1 → osis_python-0.6.3}/src/pyosis/dynamic/load_to_mass.py +0 -0
  49. {osis_python-0.6.1 → osis_python-0.6.3}/src/pyosis/dynamic/modal.py +0 -0
  50. {osis_python-0.6.1 → osis_python-0.6.3}/src/pyosis/dynamic/seismic.py +0 -0
  51. {osis_python-0.6.1 → osis_python-0.6.3}/src/pyosis/element/__init__.py +0 -0
  52. {osis_python-0.6.1 → osis_python-0.6.3}/src/pyosis/element/interface.py +0 -0
  53. {osis_python-0.6.1 → osis_python-0.6.3}/src/pyosis/general/__init__.py +0 -0
  54. {osis_python-0.6.1 → osis_python-0.6.3}/src/pyosis/general/interface.py +0 -0
  55. {osis_python-0.6.1 → osis_python-0.6.3}/src/pyosis/geometry/__init__.py +0 -0
  56. {osis_python-0.6.1 → osis_python-0.6.3}/src/pyosis/geometry/interface.py +0 -0
  57. {osis_python-0.6.1 → osis_python-0.6.3}/src/pyosis/live/__init__.py +0 -0
  58. {osis_python-0.6.1 → osis_python-0.6.3}/src/pyosis/live/analysis.py +0 -0
  59. {osis_python-0.6.1 → osis_python-0.6.3}/src/pyosis/live/grade.py +0 -0
  60. {osis_python-0.6.1 → osis_python-0.6.3}/src/pyosis/live/lane.py +0 -0
  61. {osis_python-0.6.1 → osis_python-0.6.3}/src/pyosis/load/__init__.py +0 -0
  62. {osis_python-0.6.1 → osis_python-0.6.3}/src/pyosis/load/loadcase.py +0 -0
  63. {osis_python-0.6.1 → osis_python-0.6.3}/src/pyosis/load/static.py +0 -0
  64. {osis_python-0.6.1 → osis_python-0.6.3}/src/pyosis/load/tendon.py +0 -0
  65. {osis_python-0.6.1 → osis_python-0.6.3}/src/pyosis/material/__init__.py +0 -0
  66. {osis_python-0.6.1 → osis_python-0.6.3}/src/pyosis/material/interface.py +0 -0
  67. {osis_python-0.6.1 → osis_python-0.6.3}/src/pyosis/node/__init__.py +0 -0
  68. {osis_python-0.6.1 → osis_python-0.6.3}/src/pyosis/node/interface.py +0 -0
  69. {osis_python-0.6.1 → osis_python-0.6.3}/src/pyosis/node/manager.py +0 -0
  70. {osis_python-0.6.1 → osis_python-0.6.3}/src/pyosis/post/__init__.py +0 -0
  71. {osis_python-0.6.1 → osis_python-0.6.3}/src/pyosis/post/combine.py +0 -0
  72. {osis_python-0.6.1 → osis_python-0.6.3}/src/pyosis/post/design_check.py +0 -0
  73. {osis_python-0.6.1 → osis_python-0.6.3}/src/pyosis/post/display.py +0 -0
  74. {osis_python-0.6.1 → osis_python-0.6.3}/src/pyosis/post/manager.py +0 -0
  75. {osis_python-0.6.1 → osis_python-0.6.3}/src/pyosis/project/__init__.py +0 -0
  76. {osis_python-0.6.1 → osis_python-0.6.3}/src/pyosis/project/interface.py +0 -0
  77. {osis_python-0.6.1 → osis_python-0.6.3}/src/pyosis/property/__init__.py +0 -0
  78. {osis_python-0.6.1 → osis_python-0.6.3}/src/pyosis/property/component_thickness.py +0 -0
  79. {osis_python-0.6.1 → osis_python-0.6.3}/src/pyosis/property/coordinate.py +0 -0
  80. {osis_python-0.6.1 → osis_python-0.6.3}/src/pyosis/property/creep_shrink.py +0 -0
  81. {osis_python-0.6.1 → osis_python-0.6.3}/src/pyosis/property/damping.py +0 -0
  82. {osis_python-0.6.1 → osis_python-0.6.3}/src/pyosis/property/pu_curve.py +0 -0
  83. {osis_python-0.6.1 → osis_python-0.6.3}/src/pyosis/quick_building/__init__.py +0 -0
  84. {osis_python-0.6.1 → osis_python-0.6.3}/src/pyosis/quick_building/interface.py +0 -0
  85. {osis_python-0.6.1 → osis_python-0.6.3}/src/pyosis/result/__init__.py +0 -0
  86. {osis_python-0.6.1 → osis_python-0.6.3}/src/pyosis/result/check.py +0 -0
  87. {osis_python-0.6.1 → osis_python-0.6.3}/src/pyosis/result/env.py +0 -0
  88. {osis_python-0.6.1 → osis_python-0.6.3}/src/pyosis/result/loadcase.py +0 -0
  89. {osis_python-0.6.1 → osis_python-0.6.3}/src/pyosis/result/manager.py +0 -0
  90. {osis_python-0.6.1 → osis_python-0.6.3}/src/pyosis/result/result.py +0 -0
  91. {osis_python-0.6.1 → osis_python-0.6.3}/src/pyosis/section/__init__.py +0 -0
  92. {osis_python-0.6.1 → osis_python-0.6.3}/src/pyosis/section/common.py +0 -0
  93. {osis_python-0.6.1 → osis_python-0.6.3}/src/pyosis/section/composite.py +0 -0
  94. {osis_python-0.6.1 → osis_python-0.6.3}/src/pyosis/section/numeric.py +0 -0
  95. {osis_python-0.6.1 → osis_python-0.6.3}/src/pyosis/section/param.py +0 -0
  96. {osis_python-0.6.1 → osis_python-0.6.3}/src/pyosis/section/rebar.py +0 -0
  97. {osis_python-0.6.1 → osis_python-0.6.3}/src/pyosis/section/rib.py +0 -0
  98. {osis_python-0.6.1 → osis_python-0.6.3}/src/pyosis/section/steel.py +0 -0
  99. {osis_python-0.6.1 → osis_python-0.6.3}/src/pyosis/settlement/__init__.py +0 -0
  100. {osis_python-0.6.1 → osis_python-0.6.3}/src/pyosis/settlement/interface.py +0 -0
  101. {osis_python-0.6.1 → osis_python-0.6.3}/src/pyosis/stability/__init__.py +0 -0
  102. {osis_python-0.6.1 → osis_python-0.6.3}/src/pyosis/stability/buckling.py +0 -0
  103. {osis_python-0.6.1 → osis_python-0.6.3}/src/pyosis/stage/__init__.py +0 -0
  104. {osis_python-0.6.1 → osis_python-0.6.3}/src/pyosis/stage/define.py +0 -0
  105. {osis_python-0.6.1 → osis_python-0.6.3}/src/pyosis/stage/manager.py +0 -0
  106. {osis_python-0.6.1 → osis_python-0.6.3}/src/pyosis/stage/overall.py +0 -0
  107. {osis_python-0.6.1 → osis_python-0.6.3}/src/pyosis/thickness/__init__.py +0 -0
  108. {osis_python-0.6.1 → osis_python-0.6.3}/src/pyosis/thickness/interface.py +0 -0
  109. {osis_python-0.6.1 → osis_python-0.6.3}/src/pyosis/transfer/__init__.py +0 -0
  110. {osis_python-0.6.1 → osis_python-0.6.3}/src/pyosis/transfer/generator.py +0 -0
  111. {osis_python-0.6.1 → osis_python-0.6.3}/src/pyosis/transfer/matrix.py +0 -0
  112. {osis_python-0.6.1 → osis_python-0.6.3}/src/pyosis/transfer/out_to_python.py +0 -0
  113. {osis_python-0.6.1 → osis_python-0.6.3}/src/pyosis/transfer/parser.py +0 -0
  114. {osis_python-0.6.1 → osis_python-0.6.3}/src/pyosis/transfer/routes.py +0 -0
  115. {osis_python-0.6.1 → osis_python-0.6.3}/src/pyosis/transfer/split.py +0 -0
  116. {osis_python-0.6.1 → osis_python-0.6.3}/tests/test_delete_occupied.py +0 -0
  117. {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.1
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, nMat=mat.no, nSec1=sec.no, nSec2=sec.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=2) # Master-slave
212
- engine.boundary.create_rigid(no=1, nNodeI=1) # Rigid link
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=水平位移推力 2=竖向位移推力 3=竖向力位移
265
- engine.prop.pu_curve.create(no=1, name="PU1", curve_type=1, num=3, values=[0, 0.01, 1000, 0.02, 1500])
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(thickness=0.3, op="a", elems=[1])
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("spline")
280
+ splines = engine.geometry.all()
281
281
 
282
282
  # Get a specific spline
283
- spline = engine.geometry.get("spline", name="curve1")
283
+ spline = engine.geometry.get("curve1")
284
284
 
285
- # Filter by type
286
- arcs = engine.geometry.filter("spline", spline_type="ARC3D")
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, dFx=1000)
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, no=1)
367
- engine.section.create_circle("CircleSection2", d=0.180, tw=0.008, no=2)
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, no=1
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, no=1)
376
- engine.node.create(15, 5, 0, no=2)
377
- engine.node.create(7.5, 0, 0, no=3)
378
- engine.node.create(20, 0, 0, no=4)
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, 3, nMat=1, nSec1=1, nSec2=1, no=1)
382
- engine.element.create_beam3d(2, 3, nMat=1, nSec1=2, nSec2=2, no=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, dFx=0, dFy=-1000000, dFz=0)
395
- lc.create_nforce(4, dFx=200000, dFy=0, dFz=0)
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, nMat=mat.no, nSec1=sec.no, nSec2=sec.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=2) # Master-slave
181
- engine.boundary.create_rigid(no=1, nNodeI=1) # Rigid link
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=水平位移推力 2=竖向位移推力 3=竖向力位移
234
- engine.prop.pu_curve.create(no=1, name="PU1", curve_type=1, num=3, values=[0, 0.01, 1000, 0.02, 1500])
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(thickness=0.3, op="a", elems=[1])
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("spline")
249
+ splines = engine.geometry.all()
250
250
 
251
251
  # Get a specific spline
252
- spline = engine.geometry.get("spline", name="curve1")
252
+ spline = engine.geometry.get("curve1")
253
253
 
254
- # Filter by type
255
- arcs = engine.geometry.filter("spline", spline_type="ARC3D")
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, dFx=1000)
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, no=1)
336
- engine.section.create_circle("CircleSection2", d=0.180, tw=0.008, no=2)
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, no=1
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, no=1)
345
- engine.node.create(15, 5, 0, no=2)
346
- engine.node.create(7.5, 0, 0, no=3)
347
- engine.node.create(20, 0, 0, no=4)
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, 3, nMat=1, nSec1=1, nSec2=1, no=1)
351
- engine.element.create_beam3d(2, 3, nMat=1, nSec1=2, nSec2=2, no=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, dFx=0, dFy=-1000000, dFz=0)
364
- lc.create_nforce(4, dFx=200000, dFy=0, dFz=0)
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.1
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, nMat=mat.no, nSec1=sec.no, nSec2=sec.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=2) # Master-slave
212
- engine.boundary.create_rigid(no=1, nNodeI=1) # Rigid link
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=水平位移推力 2=竖向位移推力 3=竖向力位移
265
- engine.prop.pu_curve.create(no=1, name="PU1", curve_type=1, num=3, values=[0, 0.01, 1000, 0.02, 1500])
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(thickness=0.3, op="a", elems=[1])
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("spline")
280
+ splines = engine.geometry.all()
281
281
 
282
282
  # Get a specific spline
283
- spline = engine.geometry.get("spline", name="curve1")
283
+ spline = engine.geometry.get("curve1")
284
284
 
285
- # Filter by type
286
- arcs = engine.geometry.filter("spline", spline_type="ARC3D")
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, dFx=1000)
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, no=1)
367
- engine.section.create_circle("CircleSection2", d=0.180, tw=0.008, no=2)
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, no=1
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, no=1)
376
- engine.node.create(15, 5, 0, no=2)
377
- engine.node.create(7.5, 0, 0, no=3)
378
- engine.node.create(20, 0, 0, no=4)
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, 3, nMat=1, nSec1=1, nSec2=1, no=1)
382
- engine.element.create_beam3d(2, 3, nMat=1, nSec1=2, nSec2=2, no=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, dFx=0, dFy=-1000000, dFz=0)
395
- lc.create_nforce(4, dFx=200000, dFy=0, dFz=0)
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.1"
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