midas-civil 0.2.1__py3-none-any.whl → 0.2.3__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.
Potentially problematic release.
This version of midas-civil might be problematic. Click here for more details.
- midas_civil/_group.py +2 -1
- midas_civil/_load.py +32 -27
- {midas_civil-0.2.1.dist-info → midas_civil-0.2.3.dist-info}/METADATA +1 -1
- {midas_civil-0.2.1.dist-info → midas_civil-0.2.3.dist-info}/RECORD +7 -7
- {midas_civil-0.2.1.dist-info → midas_civil-0.2.3.dist-info}/WHEEL +0 -0
- {midas_civil-0.2.1.dist-info → midas_civil-0.2.3.dist-info}/licenses/LICENSE +0 -0
- {midas_civil-0.2.1.dist-info → midas_civil-0.2.3.dist-info}/top_level.txt +0 -0
midas_civil/_group.py
CHANGED
|
@@ -44,7 +44,8 @@ def _add_node_2_stGroup(nodeID,groupName):
|
|
|
44
44
|
if groupName in Group.Structure._names:
|
|
45
45
|
for i in Group.Structure.Groups:
|
|
46
46
|
if i.NAME == groupName:
|
|
47
|
-
|
|
47
|
+
if nodeID not in i.NLIST:
|
|
48
|
+
i.NLIST = list(i.NLIST + [nodeID])
|
|
48
49
|
else:
|
|
49
50
|
Group.Structure(groupName)
|
|
50
51
|
_add_node_2_stGroup(nodeID,groupName)
|
midas_civil/_load.py
CHANGED
|
@@ -420,45 +420,52 @@ class Load:
|
|
|
420
420
|
|
|
421
421
|
#20 Class to add Load to Mass:
|
|
422
422
|
class LoadToMass:
|
|
423
|
-
"""
|
|
424
|
-
|
|
423
|
+
"""
|
|
424
|
+
Creates load-to-mass conversion entries and converts them to JSON format.
|
|
425
|
+
|
|
426
|
+
Example:
|
|
427
|
+
Load.LoadToMass("Z", ["DL", "LL"], [1.0, 0.5])
|
|
428
|
+
|
|
429
|
+
Args:
|
|
430
|
+
dir (str):
|
|
431
|
+
Mass Direction - "X", "Y", "Z", "XY", "YZ", "XZ", "XYZ".
|
|
432
|
+
If invalid, defaults to "XYZ".
|
|
433
|
+
load_case (list | str):
|
|
434
|
+
List of load case names or a single case name as string.
|
|
435
|
+
load_factor (list | float, optional):
|
|
436
|
+
List of scale factors corresponding to `load_case`.
|
|
437
|
+
If None or shorter than `load_case`, remaining factors default to 1.0.
|
|
438
|
+
nodal_load (bool, optional):
|
|
439
|
+
Include nodal loads. Defaults to True.
|
|
440
|
+
beam_load (bool, optional):
|
|
441
|
+
Include beam loads. Defaults to True.
|
|
442
|
+
floor_load (bool, optional):
|
|
443
|
+
Include floor loads. Defaults to True.
|
|
444
|
+
pressure (bool, optional):
|
|
445
|
+
Include pressure loads. Defaults to True.
|
|
446
|
+
gravity (float, optional):
|
|
447
|
+
Gravity acceleration. Defaults to 9.806.
|
|
425
448
|
"""
|
|
426
449
|
data = []
|
|
427
450
|
|
|
428
451
|
def __init__(self, dir, load_case, load_factor=None, nodal_load=True, beam_load=True,
|
|
429
452
|
floor_load=True, pressure=True, gravity=9.806):
|
|
430
|
-
|
|
431
|
-
dir (str): Mass Direction - "X", "Y", "Z", "XY", "YZ", "XZ", "XYZ"
|
|
432
|
-
load_case (list): List of load case names
|
|
433
|
-
load_factor (list, optional): List of scale factors corresponding to load cases.
|
|
434
|
-
If None or shorter than load_case, remaining factors default to 1.0
|
|
435
|
-
nodal_load (bool): Include nodal loads. Defaults to True
|
|
436
|
-
beam_load (bool): Include beam loads. Defaults to True
|
|
437
|
-
floor_load (bool): Include floor loads. Defaults to True
|
|
438
|
-
pressure (bool): Include pressure loads. Defaults to True
|
|
439
|
-
gravity (float): Gravity acceleration. Defaults to 9.806
|
|
440
|
-
"""
|
|
441
|
-
|
|
442
|
-
# Validate direction
|
|
453
|
+
|
|
443
454
|
valid_directions = ["X", "Y", "Z", "XY", "YZ", "XZ", "XYZ"]
|
|
444
455
|
if dir not in valid_directions:
|
|
445
|
-
dir = "XYZ"
|
|
456
|
+
dir = "XYZ"
|
|
446
457
|
|
|
447
|
-
# Ensure load_case is a list
|
|
448
458
|
if not isinstance(load_case, list):
|
|
449
459
|
load_case = [load_case]
|
|
450
460
|
|
|
451
|
-
# Handle load_factor - ensure it matches load_case length
|
|
452
461
|
if load_factor is None:
|
|
453
462
|
load_factor = [1.0] * len(load_case)
|
|
454
463
|
elif not isinstance(load_factor, list):
|
|
455
464
|
load_factor = [load_factor]
|
|
456
465
|
|
|
457
|
-
# Pad load_factor with 1.0 if shorter than load_case
|
|
458
466
|
while len(load_factor) < len(load_case):
|
|
459
467
|
load_factor.append(1.0)
|
|
460
468
|
|
|
461
|
-
# Check if load cases exist - give warning if not
|
|
462
469
|
for case in load_case:
|
|
463
470
|
chk = 0
|
|
464
471
|
for i in Load_Case.cases:
|
|
@@ -482,8 +489,7 @@ class Load:
|
|
|
482
489
|
def json(cls):
|
|
483
490
|
json_data = {"Assign": {}}
|
|
484
491
|
|
|
485
|
-
for load_obj in enumerate(cls.data):
|
|
486
|
-
# Create vLC array with load case names and factors
|
|
492
|
+
for idx, load_obj in enumerate(cls.data, start=1):
|
|
487
493
|
vlc_array = []
|
|
488
494
|
for i, case_name in enumerate(load_obj.LOAD_CASE):
|
|
489
495
|
vlc_array.append({
|
|
@@ -491,7 +497,7 @@ class Load:
|
|
|
491
497
|
"FACTOR": load_obj.LOAD_FACTOR[i]
|
|
492
498
|
})
|
|
493
499
|
|
|
494
|
-
json_data["Assign"][
|
|
500
|
+
json_data["Assign"][str(idx)] = {
|
|
495
501
|
"DIR": load_obj.DIR,
|
|
496
502
|
"bNODAL": load_obj.NODAL,
|
|
497
503
|
"bBEAM": load_obj.BEAM,
|
|
@@ -500,7 +506,7 @@ class Load:
|
|
|
500
506
|
"GRAV": load_obj.GRAVITY,
|
|
501
507
|
"vLC": vlc_array
|
|
502
508
|
}
|
|
503
|
-
|
|
509
|
+
|
|
504
510
|
return json_data
|
|
505
511
|
|
|
506
512
|
@classmethod
|
|
@@ -523,15 +529,13 @@ class Load:
|
|
|
523
529
|
|
|
524
530
|
if response != {'message': ''}:
|
|
525
531
|
for key, item_data in response.get('LTOM', {}).items():
|
|
526
|
-
# Extract load cases and factors from vLC array
|
|
527
532
|
load_cases = []
|
|
528
533
|
load_factors = []
|
|
529
534
|
|
|
530
|
-
for lc_item in item_data.get('vLC'):
|
|
535
|
+
for lc_item in item_data.get('vLC', []):
|
|
531
536
|
load_cases.append(lc_item.get('LCNAME'))
|
|
532
537
|
load_factors.append(lc_item.get('FACTOR'))
|
|
533
538
|
|
|
534
|
-
# Create LoadToMass object
|
|
535
539
|
Load.LoadToMass(
|
|
536
540
|
dir=item_data.get('DIR'),
|
|
537
541
|
load_case=load_cases,
|
|
@@ -543,6 +547,7 @@ class Load:
|
|
|
543
547
|
gravity=item_data.get('GRAV')
|
|
544
548
|
)
|
|
545
549
|
|
|
550
|
+
|
|
546
551
|
#-----------------------------------------------------------NodalMass-----------------
|
|
547
552
|
#21NodalMass
|
|
548
553
|
|
|
@@ -3,8 +3,8 @@ midas_civil/_boundary.py,sha256=s5mgZIc1b0-P7AdWuaPAQ5cIbHL5CR1YRKJA7KE4W_U,3295
|
|
|
3
3
|
midas_civil/_construction.py,sha256=q9C3gGdvky5t7jCDzd6lBRv6pm8cMycI91xfkgDV37Y,40673
|
|
4
4
|
midas_civil/_construction_backup.py,sha256=Pj7V-NYCkkT-aMjKXfs1jKa9klsGh48UXDLwn3BLYTY,18225
|
|
5
5
|
midas_civil/_element.py,sha256=hlH6NZfSBOrKQO7R22wZYbmLA20MB8rX7g_Td6G4mgo,27544
|
|
6
|
-
midas_civil/_group.py,sha256=
|
|
7
|
-
midas_civil/_load.py,sha256=
|
|
6
|
+
midas_civil/_group.py,sha256=BPZcsuIVKr2vR1SezfCXS0sUn1W7aJfOJGc8ZvTAXvo,11526
|
|
7
|
+
midas_civil/_load.py,sha256=TltWAjDaeC5MNW8IIPKgpLahDQgJR3J6SzinkCrJS7A,30171
|
|
8
8
|
midas_civil/_mapi.py,sha256=Fabn3QX6OHJeV_s_01KMvOwkSye0kfgpiUUgPplAzxA,4597
|
|
9
9
|
midas_civil/_material.py,sha256=uJEIHJM9OhwTRWUI2mtd_0BQSxdlYhATYJu9P7tNNBA,69511
|
|
10
10
|
midas_civil/_model.py,sha256=G5Kh7u2DSodvKGQ0fOzAUx4Ilj8-rn-nGDTFeI6AkUU,16442
|
|
@@ -20,8 +20,8 @@ midas_civil/_tendon.py,sha256=mXNJeLikFsBpgn8u9fED2qx9oqnKh3XtIpYwp3moEfk,33395
|
|
|
20
20
|
midas_civil/_thickness.py,sha256=4xQsLA3Q_gIGCwLc_glFmiErdWdQUSwhlEhJ_IPJseA,3248
|
|
21
21
|
midas_civil/_utils.py,sha256=eymiqO8KaTKdhVY3saebqNS0BbUUmGmgw3-ELKqew0A,2611
|
|
22
22
|
midas_civil/_view.py,sha256=o7rkfoQzmgAb3dT0ujPIQLVwVlveo3rMRIbZU1UosZo,849
|
|
23
|
-
midas_civil-0.2.
|
|
24
|
-
midas_civil-0.2.
|
|
25
|
-
midas_civil-0.2.
|
|
26
|
-
midas_civil-0.2.
|
|
27
|
-
midas_civil-0.2.
|
|
23
|
+
midas_civil-0.2.3.dist-info/licenses/LICENSE,sha256=zrL4RwZC4rb-by_ZHKXwKdIwcs6ATy59TPZ9HxPHCrs,1071
|
|
24
|
+
midas_civil-0.2.3.dist-info/METADATA,sha256=Sukg6zP_15NzSNprGc-KwNNkal-8NBL3n3MqLcGbzRA,1709
|
|
25
|
+
midas_civil-0.2.3.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
26
|
+
midas_civil-0.2.3.dist-info/top_level.txt,sha256=_NFmrlN5V9OxJ-PAO4s_om8OA8uupXho3QqZcSsnbuI,12
|
|
27
|
+
midas_civil-0.2.3.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|