another geogebra script to check

updatedmezzanine column with 10 depths , and no interpolation 
# ------------------------------------------------------------------
# PART 1: SAFETY CHECK (Initialize Spreadsheet)
# ------------------------------------------------------------------

# Basic Dimensions
If(IsDefined(A1)==false, SetValue(A1, "Bw"))
If(IsDefined(B1)==false, SetValue(B1, 30))
If(IsDefined(A2)==false, SetValue(A2, "h1"))
If(IsDefined(B2)==false, SetValue(B2, 12))
If(IsDefined(A3)==false, SetValue(A3, "h2"))
If(IsDefined(B3)==false, SetValue(B3, 10))

# Column Dimensions
If(IsDefined(A4)==false, SetValue(A4, "d1"))
If(IsDefined(B4)==false, SetValue(B4, 4))
If(IsDefined(A5)==false, SetValue(A5, "d2"))
If(IsDefined(B5)==false, SetValue(B5, 3))
If(IsDefined(A6)==false, SetValue(A6, "d3"))
If(IsDefined(B6)==false, SetValue(B6, 4))
If(IsDefined(A7)==false, SetValue(A7, "d4"))
If(IsDefined(B7)==false, SetValue(B7, 3))

# Flange Thicknesses (For Column Drawing Only)
If(IsDefined(A8)==false, SetValue(A8, "tf1"))
If(IsDefined(B8)==false, SetValue(B8, 0.5))
If(IsDefined(A9)==false, SetValue(A9, "tf2"))
If(IsDefined(B9)==false, SetValue(B9, 0.5))

# System Settings
If(IsDefined(A10)==false, SetValue(A10, "h_req"))
If(IsDefined(B10)==false, SetValue(B10, 8))
If(IsDefined(A11)==false, SetValue(A11, "NumSeg"))
If(IsDefined(B11)==false, SetValue(B11, 3))

# Web Depths (wd1 - wd11)
Execute(Sequence("If(IsDefined(A" + (i+11) + ")==false, SetValue(A" + (i+11) + ", ""wd" + i + """))", i, 1, 11))
Execute(Sequence("If(IsDefined(B" + (i+11) + ")==false, SetValue(B" + (i+11) + ", 1.0))", i, 1, 11))

# Distances (dist1 - dist10)
Execute(Sequence("If(IsDefined(A" + (i+22) + ")==false, SetValue(A" + (i+22) + ", ""dist" + i + """))", i, 1, 10))
Execute(Sequence("If(IsDefined(B" + (i+22) + ")==false, SetValue(B" + (i+22) + ", 5.0))", i, 1, 10))

# Mezzanine Flange Specs
If(IsDefined(A33)==false, SetValue(A33, "tfw"))
If(IsDefined(B33)==false, SetValue(B33, 0.3))
If(IsDefined(A34)==false, SetValue(A34, "tfth"))
If(IsDefined(B34)==false, SetValue(B34, 0.02))
If(IsDefined(A35)==false, SetValue(A35, "bfw"))
If(IsDefined(B35)==false, SetValue(B35, 0.3))
If(IsDefined(A36)==false, SetValue(A36, "bfth"))
If(IsDefined(B36)==false, SetValue(B36, 0.02))

# ------------------------------------------------------------------
# PART 2: LINK VARIABLES
# ------------------------------------------------------------------

Bw = B1
h1 = B2
h2 = B3
d1 = B4
d2 = B5
d3 = B6
d4 = B7
tf1 = B8
tf2 = B9
h_req = B10
NumSeg = B11

wd1 = B12
wd2 = B13
wd3 = B14
wd4 = B15
wd5 = B16
wd6 = B17
wd7 = B18
wd8 = B19
wd9 = B20
wd10 = B21
wd11 = B22

dist1 = B23
dist2 = B24
dist3 = B25
dist4 = B26
dist5 = B27
dist6 = B28
dist7 = B29
dist8 = B30
dist9 = B31
dist10 = B32

tfw = B33
tfth = B34
bfw = B35
bfth = B36

# ------------------------------------------------------------------
# PART 3: DRAW COLUMNS (Visual Context Only)
# ------------------------------------------------------------------

hh = Min(h1, h2)
h = Min(h_req, hh)

P1_BotL = (0, 0)
P1_BotR = (d1, 0)
P1_TopL = (0, h1)
P1_TopR = (d2, h1)

P2_BotR = (Bw, 0)
P2_BotL = (Bw - d3, 0)
P2_TopR = (Bw, h2)
P2_TopL = (Bw - d4, h2)

# Draw Column Lines
Col1_LineLeft = Segment(P1_BotL, P1_TopL)
Col1_LineRight = Segment(P1_BotR, P1_TopR)
Col1_LineBot = Segment(P1_BotL, P1_BotR)
Col1_LineTop = Segment(P1_TopL, P1_TopR)

Col2_LineLeft = Segment(P2_BotL, P2_TopL)
Col2_LineRight = Segment(P2_BotR, P2_TopR)
Col2_LineBot = Segment(P2_BotL, P2_BotR)
Col2_LineTop = Segment(P2_TopL, P2_TopR)

# ------------------------------------------------------------------
# PART 4: REFERENCE LINE (FIXED VERTICAL LOGIC)
# ------------------------------------------------------------------
# The Reference Line is strictly based on the BOTTOM WEB DEPTH (d1 and d3).
# It does NOT move horizontally when height (h) changes.
# It does NOT calculate flange thickness.

# Stpt: Fixed at Left Column Bottom Depth
Stpt_x = d1
Stpt = (Stpt_x, h)

# Endpt: Fixed at Right Column Bottom Depth (measured from Bw)
Endpt_x = Bw - d3
Endpt = (Endpt_x, h)

# Draw Reference Line
RefLine = Segment(Stpt, Endpt)
SetColor(RefLine, "Red")
SetLineThickness(RefLine, 3)

# System Midpoints (Start and End of Mezzanine System)
# Lstpt is left outer face (0), Rendpt is right outer face (Bw)
Lstpt = (0, h)
Rendpt = (Bw, h)

MidStpt = ((x(Lstpt) + x(Stpt)) / 2, h)
MidEndpt = ((x(Endpt) + x(Rendpt)) / 2, h)

# ------------------------------------------------------------------
# PART 5: MEZZANINE BEAM GEOMETRY (WEB DEPTHS & DISTANCES)
# ------------------------------------------------------------------
# The coordinates depend ONLY on the Start Point (MidStpt), Distances (dist), and Web Depths (wd).

# Top Line
MezzTopLine = Segment(MidStpt, MidEndpt)
SetColor(MezzTopLine, "Blue")
SetLineThickness(MezzTopLine, 4)

# Node 0 (Start)
# X = Start, Y = Height - wd1
Mz_Bot0 = (x(MidStpt), h - wd1)

# Node 1
# X = Start + dist1, Y = Height - wd2
X1 = Min(x(MidStpt) + dist1, x(MidEndpt))
Mz_Bot1 = (X1, h - wd2)

# Node 2
X2 = Min(X1 + dist2, x(MidEndpt))
Mz_Bot2 = (X2, h - wd3)

# Node 3
X3 = Min(X2 + dist3, x(MidEndpt))
Mz_Bot3 = (X3, h - wd4)

# Node 4
X4 = Min(X3 + dist4, x(MidEndpt))
Mz_Bot4 = (X4, h - wd5)

# Node 5
X5 = Min(X4 + dist5, x(MidEndpt))
Mz_Bot5 = (X5, h - wd6)

# Node 6
X6 = Min(X5 + dist6, x(MidEndpt))
Mz_Bot6 = (X6, h - wd7)

# Node 7
X7 = Min(X6 + dist7, x(MidEndpt))
Mz_Bot7 = (X7, h - wd8)

# Node 8
X8 = Min(X7 + dist8, x(MidEndpt))
Mz_Bot8 = (X8, h - wd9)

# Node 9
X9 = Min(X8 + dist9, x(MidEndpt))
Mz_Bot9 = (X9, h - wd10)

# Node 10
X10 = Min(X9 + dist10, x(MidEndpt))
Mz_Bot10 = (X10, h - wd11)

# Draw Segments
WebBot1 = Segment(Mz_Bot0, If(NumSeg == 1, (x(MidEndpt), h - wd2), Mz_Bot1))
SetColor(WebBot1, "Green")

WebBot2 = If(NumSeg >= 2, Segment(Mz_Bot1, If(NumSeg == 2, (x(MidEndpt), h - wd3), Mz_Bot2)))
SetColor(WebBot2, "Green")

WebBot3 = If(NumSeg >= 3, Segment(Mz_Bot2, If(NumSeg == 3, (x(MidEndpt), h - wd4), Mz_Bot3)))
SetColor(WebBot3, "Green")

WebBot4 = If(NumSeg >= 4, Segment(Mz_Bot3, If(NumSeg == 4, (x(MidEndpt), h - wd5), Mz_Bot4)))
SetColor(WebBot4, "Green")

WebBot5 = If(NumSeg >= 5, Segment(Mz_Bot4, If(NumSeg == 5, (x(MidEndpt), h - wd6), Mz_Bot5)))
SetColor(WebBot5, "Green")

WebBot6 = If(NumSeg >= 6, Segment(Mz_Bot5, If(NumSeg == 6, (x(MidEndpt), h - wd7), Mz_Bot6)))
SetColor(WebBot6, "Green")

WebBot7 = If(NumSeg >= 7, Segment(Mz_Bot6, If(NumSeg == 7, (x(MidEndpt), h - wd8), Mz_Bot7)))
SetColor(WebBot7, "Green")

WebBot8 = If(NumSeg >= 8, Segment(Mz_Bot7, If(NumSeg == 8, (x(MidEndpt), h - wd9), Mz_Bot8)))
SetColor(WebBot8, "Green")

WebBot9 = If(NumSeg >= 9, Segment(Mz_Bot8, If(NumSeg == 9, (x(MidEndpt), h - wd10), Mz_Bot9)))
SetColor(WebBot9, "Green")

WebBot10 = If(NumSeg >= 10, Segment(Mz_Bot9, If(NumSeg == 10, (x(MidEndpt), h - wd11), Mz_Bot10)))
SetColor(WebBot10, "Green")

# Vertical Webs (Start/End Closure)
WebStart = Segment(MidStpt, Mz_Bot0)
WebEndNode = If(NumSeg==1, (x(MidEndpt), h - wd2), If(NumSeg==2, (x(MidEndpt), h - wd3), If(NumSeg==3, (x(MidEndpt), h - wd4), If(NumSeg==4, (x(MidEndpt), h - wd5), If(NumSeg==5, (x(MidEndpt), h - wd6), If(NumSeg==6, (x(MidEndpt), h - wd7), If(NumSeg==7, (x(MidEndpt), h - wd8), If(NumSeg==8, (x(MidEndpt), h - wd9), If(NumSeg==9, (x(MidEndpt), h - wd10), (x(MidEndpt), h - wd11))))))))))
WebEnd = Segment(MidEndpt, WebEndNode)

Comments

Popular posts from this blog

actions events in itext 7

midi_sequence_playing_real_time

RELATING_SANJOY_NATH'S_QHENOMENOLOGY_WITH_SANJOY_NATH'S_GEOMETRIFYING_TRIGONOMETRY