bu soruları resimli bir şekilde ,serbest cisim diy...
Создано: 17 июня 2025 г.
Создано: 17 июня 2025 г.
pythondoc = fitz.open('/mnt/data/STATİK bütünleme.pdf') page = doc.load_page(0) pix = page.get_pixmap(dpi=150) img_path = '/mnt/data/page1.png' pix.save(img_path) img_path '/mnt/data/page1.png'
pythonfrom IPython.display import display display(Image.open(img_path))
python# crop approximate truss region import numpy as np img = Image.open(img_path) w,h = img.size # For center region maybe half width crop = img.crop((w*0.4, h*0.2, w*0.9, h*0.7)) display(crop)
pythoncrop2 = img.crop((w*0.5, h*0.2, w*0.9, h*0.55)) display(crop2)
python# zoom right support area crop3 = img.crop((w*0.6, h*0.35, w*0.9, h*0.7)) display(crop3)
python# zoom top left area crop4 = img.crop((w*0.45, h*0.15, w*0.85, h*0.3)) display(crop4)
pythoncrop5 = img.crop((w*0.35, h*0.25, w*0.6, h*0.55)) display(crop5)
python# bigger crop for full truss cropbig = img.crop((w*0.2, h*0.1, w*1.0, h*0.7)) display(cropbig)
python# zoom mid interior crop6 = img.crop((w*0.55, h*0.23, w*0.7, h*0.5)) display(crop6)
pythoncrop7 = img.crop((w*0.55, h*0.25, w*0.8, h*0.55)) display(crop7)
pythoncrop8 = img.crop((w*0.45, h*0.3, w*0.6, h*0.6)) display(crop8)
pythoncrop9 = img.crop((w*0.55, h*0.35, w*0.7, h*0.55)) display(crop9)
python# Let's display with different scale import matplotlib.pyplot as plt plt.figure(figsize=(5,3)) plt.imshow(cropbig) plt.axis('off') (-0.5, 992.5, 1052.5, -0.5)
pythontruss = cropbig.crop((0,0,475,475)) plt.imshow(truss) plt.axis('off') (-0.5, 474.5, 474.5, -0.5)
python# load second page image page2 = doc.load_page(1) pix2 = page2.get_pixmap(dpi=150) img2_path = '/mnt/data/page2.png' pix2.save(img2_path) display(Image.open(img2_path).crop((0,0,768,768)))
pythondisplay(Image.open(img2_path).crop((600,0,1100,1100)))
python# zoom top part section dimension sec = Image.open(img2_path).crop((600,100,1100,600)) plt.figure(figsize=(3,6)) plt.imshow(sec) plt.axis('off') (-0.5, 499.5, 499.5, -0.5)
python# define coordinates coords = {'A': sp.Point(0,0), 'B': sp.Point(3,3), 'C': sp.Point(6,3), 'D': sp.Point(9,3), 'E': sp.Point(6,0), 'F': sp.Point(3,1.5)} # define edges list edges = [('A','B'), ('B','F'), ('A','F'), ('F','C'), ('C','E'), ('D','E'), ('A','E'), ('B','C'), ('C','D')] # unknown forces along each: tension positive from first to second node F_vars = sp.symbols('F1:'+str(len(edges)+1)) # unknown reactions Ax, Ay at A; Ey at E (roller vertical), Ex maybe horizontal 0 (if roller) Ax, Ay, Ex, Ey = sp.symbols('Ax Ay Ex Ey') # external loads: 5 kN down at A; 4 kN down at B. # Build equilibrium eqns for each node. eqs = [] for node in coords: # sum of forces x and y sumx = 0 sumy = 0 # external if node == 'A': sumx += Ax sumy += Ay - 5 # 5 kN downward negative y elif node == 'B': sumy -= 4 elif node == 'E': sumx += Ex sumy += Ey # contributions from members for idx,(n1,n2) in enumerate(edges): if node == n1 or node == n2: # direction vector from n1 to n2 p1 = coords[n1] p2 = coords[n2] dx = p2.x - p1.x dy = p2.y - p1.y L = sp.sqrt(dx**2 + dy**2) ux = dx/L uy = dy/L if node == n1: # force acts on node along member toward n1->n2 (tension pulls away from node) sumx += -F_vars[idx]*ux sumy += -F_vars[idx]*uy else: # node == n2 sumx += F_vars[idx]*ux sumy += F_vars[idx]*uy eqs.extend([sumx, sumy]) eqs_solved = sp.solve(eqs, list(F_vars) + [Ax, Ay, Ex, Ey]) eqs_solved {F1: 4*sqrt(2), F2: 0, F3: -2*sqrt(5), F4: -2*sqrt(5), F5: 2, F6: 0, F7: -Ex, F8: 4, F9: 0, Ax: -Ex, Ay: 7, Ey: 2}
pythonpage3 = doc.load_page(2) pix3 = page3.get_pixmap(dpi=150) img3_path = '/mnt/data/page3.png' pix3.save(img3_path) display(Image.open(img3_path).crop((500,0,1100,800)))
pythondisplay(Image.open(img3_path).crop((0,0,600,400)))
pythonimport matplotlib.pyplot as plt # Coordinates for approximate truss (m) coords = {'A': (0, 0), 'B': (3, 3), 'C': (6, 3), 'D': (9, 3), 'E': (6, 0), 'F': (3, 1.5)} members = [('A','B'), ('B','F'), ('F','A'), ('F','C'), ('C','E'), ('E','D'), ('A','E'), ('B','C'), ('C','D')] # Member force results from quick joint‑equilibrium (kN) forces = {('A','B'): 5.66, # tension + (blue) ('B','F'): 0.0, ('F','A'): -4.47, # compression (red) ('F','C'): -4.47, # compression ('C','E'): 2.0, ('E','D'): 0.0, ('A','E'): 0.0, ('B','C'): 4.0, ('C','D'): 0.0} fig, ax = plt.subplots(figsize=(6,4)) # draw members for (n1,n2) in members: x1,y1 = coords[n1] x2,y2 = coords[n2] f_val = forces[(n1,n2)] color = 'blue' if f_val>0 else ('red' if f_val<0 else 'black') ax.plot([x1,x2],[y1,y2],lw=3,color=color,alpha=0.7) # plot joints for n,(x,y) in coords.items(): ax.plot(x,y,'ko') ax.text(x,y+0.2,n,ha='center') # external loads ax.arrow(coords['A'][0],coords['A'][1]+0.3,0,-1,head_width=0.2,head_length=0.3,color='green') ax.text(coords['A'][0]-0.3,coords['A'][1]-1.2,'5 kN ↓',color='green') ax.arrow(coords['B'][0],coords['B'][1]+0.3,0,-1,head_width=0.2,head_length=0.3,color='green') ax.text(coords['B'][0]-0.3,coords['B'][1]-1.2,'4 kN ↓',color='green') # supports (simple symbols) # pin at A ax.plot(coords['A'][0]-0.4,coords['A'][1]-0.2,'k^') # roller at E ax.plot(coords['E'][0],coords['E'][1]-0.2,'ks') ax.set_aspect('equal') ax.axis('off') ax.set_title('Q1 – Truss Free‑Body Diagram\nBlue: Tension, Red: Compression') plt.show()
Aşağıda dört soruyu da serbest-cisim diyagramları (SCD) ile birlikte adım adım çözdüm.
(Truss diyagramı üstte otomatik çizdirildi; diğer şekilleri elde çizimle veya basit krokiyle
aynı mantıkta hazırlayabilirsiniz.)
(FBD diyagramı: üstteki renkli şekil)
Üye | Kuvvet (kN) | Türü | Açıklama |
---|---|---|---|
AB | +5.66 | Çekme | Eğik üye A→B yönünde gergin |
BF | 0 | — | Düşey iç dikme |
AF | −4.47 | Basma | Negatif çıktı ⇒ basınç |
FC | −4.47 | Basma | |
CE | +2.00 | Çekme | Düşey |
ED | 0 | — | Eğik sağ dış üye (denge için sıfır) |
AE | 0 | — | Alt uzun üye |
BC | +4.00 | Çekme | Üst kiriş sol kısmı |
CD | 0 | — | Üst kiriş sağ kısmı |
Çözüm yöntemi
- Dış denge: A pimi (Ax, Ay) ve E makara (Ey) tepkileri →
ΣFy = 0 ⇒ Ay + Ey = 9 kN; ΣMx(A) = 0 ⇒ Ey·6 m − 4 kN·3 m = 0 → Ey = 2 kN yukarı, Ay = 7 kN yukarı.- Eklemler: B, A, C… sırasıyla “method-of-joints” ile çözülüp tabloya aktarıldı.
Şekli üç dikdörtgene ayırıyoruz (üst başlık, gövde, alt taban)
Parça | Boyutlar (mm) | Alan (mm²) | Ağırlık merkezi (mm) |
---|---|---|---|
1 – Üst flanş | 450 × 50 | 22 500 | 50/2 = 25 |
2 – Gövde | 75 × 400 | 30 000 | 50 + 400/2 = 250 |
3 – Alt flanş | 300 × 100 | 30 000 | 50 + 400 + 100/2 = 500 |
(Başlangıç noktası: üst yüzey.)
Serbest cisim diyagramları
Pim | (kN) | (kN) | Sonuç |
---|---|---|---|
E | 12.0 (basınç) | 8.4 (çekme) | Bileşke ≈ 14.5 kN |
A | 7.3 (basınç) | 18.2 (çekme) | Bileşke ≈ 19.6 kN |
(Not: bileşke . Bütün eleman ağırlıkları ihmal edilmiştir.)
Koordinatlar (m):
, , . Kablolar AB, AC; çubuk BC.
Birim vektörler
,
,
.
Ekleme A’daki SCD:
.
B noktasındaki SCD:
(C<0 basınç).
Denklem çözümü ve sınır değerler
Ayrıca (< 300 N basma sınırı) → şart sağlanır.
Herhangi bir adımda takıldığınızda ek çizim / detay isteyebilirsiniz!