View Single Post
Staro Jučer, 17:02   #2999
Hamm
Pod naletima kopita zla
Moj komp
 
Hamm's Avatar
 
Datum registracije: Dec 2005
Lokacija: SMB / ZGB
Postovi: 7,736
Ideja je sloziti na takav stalak vani.

Drva ne idu u kucu.





Citiraj:
python model


import FreeCAD as App
import Part
import os
import math

# --- KONFIGURACIJA ---
visina = 2000
sirina = 1200
dubina = 850
profil = 40

doc = App.newDocument("Stalak_2m3_Ojacani")

def dodaj_cijev(w, d, h, x, y, z, rot=0):
b = doc.addObject("Part::Box", "Cijev")
b.Width, b.Depth, b.Height = w, d, h
b.Placement = App.Placement(App.Vector(x, y, z), App.Rotation(App.Vector(0,1,0), rot))
return b

dijelovi = []

# 1. VERTIKALE (4 kom)
dijelovi.append(dodaj_cijev(profil, profil, visina, 0, 0, 0))
dijelovi.append(dodaj_cijev(profil, profil, visina, sirina-profil, 0, 0))
dijelovi.append(dodaj_cijev(profil, profil, visina, 0, dubina-profil, 0))
dijelovi.append(dodaj_cijev(profil, profil, visina, sirina-profil, dubina-profil, 0))

# 2. HORIZONTALNI OKVIRI (Baza, Sredina, Vrh)
for z in [100, visina/2, visina-profil]:
# Širina (naprijed i nazad)
dijelovi.append(dodaj_cijev(sirina - 2*profil, profil, profil, profil, 0, z))
dijelovi.append(dodaj_cijev(sirina - 2*profil, profil, profil, profil, dubina-profil, z))
# Dubina (bočno)
dijelovi.append(dodaj_cijev(profil, dubina - 2*profil, profil, 0, profil, z))
dijelovi.append(dodaj_cijev(profil, dubina - 2*profil, profil, sirina-profil, profil, z))

# 3. PODNICA (3 poprečne šipke na dnu)
for x in [300, 600, 900]:
dijelovi.append(dodaj_cijev(profil, dubina - 2*profil, profil, x, profil, 100))

# 4. "X" OJAČANJE NA STRAŽNJOJ STRANI (Između baze i vrha)
# Izračun kuta i dužine dijagonale (Pitagora)
L_diag = math.sqrt((sirina-profil)**2 + (visina-profil-100)**2)
kut = math.degrees(math.atan2(visina-profil-100, sirina-profil))

# Dijagonala 1 (od donjeg lijevog do gornjeg desnog kuta)
diag1 = dodaj_cijev(L_diag, profil, 10, profil, dubina-profil, 100, -kut)
dijelovi.append(diag1)

# --- EXPORT ---
putanja = os.path.expanduser("~/stalak_za_drva_2m3.step")
Part.export(dijelovi, putanja)

doc.recompute()
print(f"ZAVRŠENO! Datoteka je u: {putanja}")
Hamm je offline   Reply With Quote