Skip to content

Commit 278d9b2

Browse files
committed
Progressive Weakening can now be activated individually for each element group
1 parent 1a5b058 commit 278d9b2

File tree

5 files changed

+53
-142
lines changed

5 files changed

+53
-142
lines changed

kk_bullet_constraints_builder.zip

-729 Bytes
Binary file not shown.

kk_bullet_constraints_builder/global_props.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -249,6 +249,7 @@ class bcb_props(bpy.types.PropertyGroup):
249249
exec("elemGrp_%d_EGSidxDCol" %i +" = bool_(name='Dis. Col. Connection', default=presets[j][EGSidxDCol], update=updGlob, description='Disables collisions between connected elements of this element group until breach (overrides global setting)')")
250250
exec("elemGrp_%d_EGSidxDClP" %i +" = bool_(name='Dis. Col. Permanently', default=presets[j][EGSidxDClP], update=updGlob, description='Disables collisions between initially connected elements of this element group permanently (overrides global setting)')")
251251
exec("elemGrp_%d_EGSidxDmpR" %i +" = bool_(name='Damp. Region', default=presets[j][EGSidxDmpR], update=updGlob, description='Enables the Damping Region feature for this element group. Refer to Advanced Global Settings to define boundary objects and damping parameters')")
252+
exec("elemGrp_%d_EGSidxPrWk" %i +" = bool_(name='Progr. Weakening', default=presets[j][EGSidxPrWk], update=updGlob, description='Enables the Progressive Weakening feature for this element group. Refer to Triggers to define Progessive Weakening parameters')")
252253

253254
# Update fromula assistant submenu according to the chosen element group
254255
exec("assistant_menu = enum_(name='Type of Building Material', items=assistant_menu_data, default=presets[j][EGSidxAsst]['ID'], update=updGlob)")
@@ -306,6 +307,7 @@ def props_update_menu(self):
306307
exec("self.elemGrp_%d_EGSidxDCol" %i +" = elemGrps[i][EGSidxDCol]")
307308
exec("self.elemGrp_%d_EGSidxDClP" %i +" = elemGrps[i][EGSidxDClP]")
308309
exec("self.elemGrp_%d_EGSidxDmpR" %i +" = elemGrps[i][EGSidxDmpR]")
310+
exec("self.elemGrp_%d_EGSidxPrWk" %i +" = elemGrps[i][EGSidxPrWk]")
309311

310312
# Update fromula assistant submenu according to the chosen element group
311313
i = self.menu_selectedElemGrp
@@ -381,6 +383,7 @@ def props_update_globals(self):
381383
elemGrps[i][EGSidxDCol] = eval("self.elemGrp_%d_EGSidxDCol" %i)
382384
elemGrps[i][EGSidxDClP] = eval("self.elemGrp_%d_EGSidxDClP" %i)
383385
elemGrps[i][EGSidxDmpR] = eval("self.elemGrp_%d_EGSidxDmpR" %i)
386+
elemGrps[i][EGSidxPrWk] = eval("self.elemGrp_%d_EGSidxPrWk" %i)
384387
# Remove surface variable if existing (will be added in setConstraintSettings()
385388
elemGrps[i][EGSidxBTC] = elemGrps[i][EGSidxBTC].replace('*a','')
386389
elemGrps[i][EGSidxBTT] = elemGrps[i][EGSidxBTT].replace('*a','')

kk_bullet_constraints_builder/global_vars.py

Lines changed: 21 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -35,28 +35,28 @@
3535
################################################################################
3636

3737
### Vars:
38-
bcb_version = (3, 6, 2)
38+
bcb_version = (3, 6, 3)
3939

4040
### Customizable element group presets
4141
presets = [
42-
# 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42
43-
# Name RVP Mat.preset Density CT BTC BTT BTS BTS90 BTB BTB90 BTP T1D T1R T2D T2R Bev. Scale Facing F.Assist.+Data Cyl PLen BTX Prio Load NoHo Fric NoCo Iter DClP BLC BLT BLS BLS9 BLB BLB9 BTI DCor MCTh SDFl Blnc DmpR DCol
44-
[ "", 1, "Uncategorized", 2400, 15, "35", "5.2", "155", "", "1.0", "", "1.3", .1, .2, .2, .8, 0, 1.0, 0, "None", 0, 0, 1, 5, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 ],
45-
[ "Base", 1, "Uncategorized", 2000, 0, "0", "0", "0", "", "0", "", "0", 0, 0, 0, 0, 0, .95, 0, "None", 0, 0, 1, 5, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 ],
46-
[ "Victims", 1, "Uncategorized", 1060, 20, "13", "15", "7", "", "0.2", "", "15", .1, .2, .6, 3.14, 0, 1.0, 0, "None", 0, .001, 1, 5, 0, 0, .5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 ],
47-
[ "Concrete", 1, "Concrete", 2400, 15, "35", "3.5", "0.9", "", "1.0", "", "0", .1, .2, .2, .8, 0, 1.0, 0, "None", 0, 0, 1, 5, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 ],
48-
[ "RC Columns", 1, "Concrete", 2400, 15, "35", "5.2", "155", "", "1.0", "", "1.3", .1, .2, .2, .8, 0, 1.0, 0, "None", 0, 0, 1, 5, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 ],
49-
[ "RC Walls", 1, "Concrete", 2400, 15, "35", "5.2", "0.9", "", "1.0", "", "1.3", .1, .2, .2, .8, 0, 1.0, 0, "None", 0, 0, 1, 5, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 ],
50-
[ "RC Slabs", 1, "Concrete", 2400, 15, "35", "5.2", "0.9", "", "1.0", "", "1.3", .1, .2, .2, .8, 0, 1.0, 0, "None", 0, 0, 1, 5, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 ],
51-
[ "Masonry Walls", 1, "Masonry", 1800, 15, "10", "0.2", "0.5", "", "0.1", "", "0.1", .1, .2, .2, .8, 0, 1.0, 0, "None", 0, 0, 1, 5, 0, 1, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0 ],
52-
[ "Timber Spruce", 1, "Timber", 470, 15, "40", "80", "7.5", "", "68", "", "80", .1, .2, .2, .8, 0, 1.0, 0, "None", 0, 0, 1, 5, 0, 0, .4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 ],
53-
[ "Timber Larch", 1, "Timber", 590, 15, "48", "105", "9", "", "93", "", "105", .1, .2, .2, .8, 0, 1.0, 0, "None", 0, 0, 1, 5, 0, 0, .4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 ],
54-
[ "Timber Ash", 1, "Timber", 690, 15, "50", "130", "13", "", "105", "", "130", .1, .2, .2, .8, 0, 1.0, 0, "None", 0, 0, 1, 5, 0, 0, .4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 ],
55-
[ "I-Beams #1 Screwed", 1, "Steel", 7800, 22, "250", "61.84","37.1", "", "6.18", "", "123.7",.1, .2, .2, .8, 0, 1.0, 0, "None", 0, 0, 1, 5, 0, 0, .8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 ],
56-
[ "I-Beams #1 Welded", 1, "Steel", 7800, 22, "250", "250", "150", "", "16.67","", "500", .1, .2, .2, .8, 0, 1.0, 0, "None", 0, 0, 1, 5, 0, 0, .8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 ],
57-
[ "I-Beams #2 Screwed", 1, "Steel", 7800, 22, "350", "94.5", "56.7", "", "45.15","", "135", .1, .2, .2, .8, 0, 1.0, 0, "None", 0, 0, 1, 5, 0, 0, .8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 ],
58-
[ "I-Beams #2 Welded", 1, "Steel", 7800, 22, "350", "350", "210", "", "71.11","", "500", .1, .2, .2, .8, 0, 1.0, 0, "None", 0, 0, 1, 5, 0, 0, .8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 ],
59-
[ "HSS-Beams Welded", 1, "Steel", 7800, 22, "250", "250", "150", "", "29.17","", "500", .1, .2, .2, .8, 0, 1.0, 0, "None", 0, 0, 1, 5, 0, 0, .8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 ]
42+
# 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43
43+
# Name RVP Mat.preset Density CT BTC BTT BTS BTS90 BTB BTB90 BTP T1D T1R T2D T2R Bev. Scale Facing F.Assist.+Data Cyl PLen BTX Prio Load NoHo Fric NoCo Iter DClP BLC BLT BLS BLS9 BLB BLB9 BTI DCor MCTh SDFl Blnc DmpR DCol PrWk
44+
[ "", 1, "Uncategorized", 2400, 15, "35", "5.2", "155", "", "1.0", "", "1.3", .1, .2, .2, .8, 0, 1.0, 0, "None", 0, 0, 1, 5, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0 ],
45+
[ "Base", 1, "Uncategorized", 2000, 0, "0", "0", "0", "", "0", "", "0", 0, 0, 0, 0, 0, .95, 0, "None", 0, 0, 1, 5, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0 ],
46+
[ "Victims", 1, "Uncategorized", 1060, 20, "13", "15", "7", "", "0.2", "", "15", .1, .2, .6, 3.14, 0, 1.0, 0, "None", 0, .001, 1, 5, 0, 0, .5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0 ],
47+
[ "Concrete", 1, "Concrete", 2400, 15, "35", "3.5", "0.9", "", "1.0", "", "0", .1, .2, .2, .8, 0, 1.0, 0, "None", 0, 0, 1, 5, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0 ],
48+
[ "RC Columns", 1, "Concrete", 2400, 15, "35", "5.2", "155", "", "1.0", "", "1.3", .1, .2, .2, .8, 0, 1.0, 0, "None", 0, 0, 1, 5, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0 ],
49+
[ "RC Walls", 1, "Concrete", 2400, 15, "35", "5.2", "0.9", "", "1.0", "", "1.3", .1, .2, .2, .8, 0, 1.0, 0, "None", 0, 0, 1, 5, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0 ],
50+
[ "RC Slabs", 1, "Concrete", 2400, 15, "35", "5.2", "0.9", "", "1.0", "", "1.3", .1, .2, .2, .8, 0, 1.0, 0, "None", 0, 0, 1, 5, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0 ],
51+
[ "Masonry Walls", 1, "Masonry", 1800, 15, "10", "0.2", "0.5", "", "0.1", "", "0.1", .1, .2, .2, .8, 0, 1.0, 0, "None", 0, 0, 1, 5, 0, 1, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0 ],
52+
[ "Timber Spruce", 1, "Timber", 470, 15, "40", "80", "7.5", "", "68", "", "80", .1, .2, .2, .8, 0, 1.0, 0, "None", 0, 0, 1, 5, 0, 0, .4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0 ],
53+
[ "Timber Larch", 1, "Timber", 590, 15, "48", "105", "9", "", "93", "", "105", .1, .2, .2, .8, 0, 1.0, 0, "None", 0, 0, 1, 5, 0, 0, .4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0 ],
54+
[ "Timber Ash", 1, "Timber", 690, 15, "50", "130", "13", "", "105", "", "130", .1, .2, .2, .8, 0, 1.0, 0, "None", 0, 0, 1, 5, 0, 0, .4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0 ],
55+
[ "I-Beams #1 Screwed", 1, "Steel", 7800, 22, "250", "61.84","37.1", "", "6.18", "", "123.7",.1, .2, .2, .8, 0, 1.0, 0, "None", 0, 0, 1, 5, 0, 0, .8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0 ],
56+
[ "I-Beams #1 Welded", 1, "Steel", 7800, 22, "250", "250", "150", "", "16.67","", "500", .1, .2, .2, .8, 0, 1.0, 0, "None", 0, 0, 1, 5, 0, 0, .8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0 ],
57+
[ "I-Beams #2 Screwed", 1, "Steel", 7800, 22, "350", "94.5", "56.7", "", "45.15","", "135", .1, .2, .2, .8, 0, 1.0, 0, "None", 0, 0, 1, 5, 0, 0, .8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0 ],
58+
[ "I-Beams #2 Welded", 1, "Steel", 7800, 22, "350", "350", "210", "", "71.11","", "500", .1, .2, .2, .8, 0, 1.0, 0, "None", 0, 0, 1, 5, 0, 0, .8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0 ],
59+
[ "HSS-Beams Welded", 1, "Steel", 7800, 22, "250", "250", "150", "", "29.17","", "500", .1, .2, .2, .8, 0, 1.0, 0, "None", 0, 0, 1, 5, 0, 0, .8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0 ]
6060
] # Empty name means this group is to be used when element is not part of any element group
6161

6262
# Actual element group list (for elements of different conflicting groups the weaker thresholds is used, also the type is changed accordingly)
@@ -109,7 +109,8 @@
109109
EGSidxDCol = 42 # Dis. Col. Connection | Disables collisions between connected elements of this element group until breach (overrides global setting).
110110
EGSidxDClP = 29 # Dis. Col. Permanently | Disables collisions between initially connected elements of this element group permanently (overrides global setting).
111111
EGSidxDmpR = 41 # Damping Region | Enables the Damping Region feature for this element group. Refer to Advanced Global Settings to define boundary objects and damping parameters.
112-
# !!! Last ID: 42 !!! (Can be different from above line because list is not in order!)
112+
EGSidxPrWk = 43 # Progressive Weakening | Enables the Progressive Weakening feature for this element group. Refer to Triggers to define Progessive Weakening parameters.
113+
# !!! Last ID: 43 !!! (Can be different from above line because list is not in order!)
113114
# To add further element group variables add them here but also above in the presets at the correct index.
114115
# Aside from creating a corresponding UI property in global_props.py and gui.py no extra storage handling is needed like for global settings.
115116

kk_bullet_constraints_builder/gui.py

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -937,11 +937,15 @@ def draw(self, context):
937937
row = col.row(align=1)
938938
if props.menu_gotData: row.enabled = 0
939939
row.prop(props, "elemGrp_%d_EGSidxIter" %i)
940+
941+
row = col.row(align=1)
942+
if props.menu_gotData: row.enabled = 0
940943
row.prop(props, "elemGrp_%d_EGSidxSDFl" %i)
944+
row.prop(props, "elemGrp_%d_EGSidxDmpR" %i)
941945

942946
row = col.row(align=1)
943947
if props.menu_gotData: row.enabled = 0
944-
row.prop(props, "elemGrp_%d_EGSidxDmpR" %i)
948+
row.prop(props, "elemGrp_%d_EGSidxPrWk" %i)
945949
row.prop(props, "elemGrp_%d_EGSidxMCTh" %i)
946950

947951
row = col.row(align=1)

0 commit comments

Comments
 (0)