Loftsäng

Från Uppsala Makerspace
Version från den 13 december 2017 kl. 11.02 av Ramis (Diskussion | bidrag)
(skillnad) ← Äldre version | Nuvarande version (skillnad) | Nyare version → (skillnad)
Hoppa till: navigering, sök

Introduktion

Maker: Matthias Palmér med assistans av familjen
Kostnad: ca. 2000 kr.
Status: Klart, ca. en veckas jobb

Vi lovade dottern att hon skulle få en loftsäng precis som storebror för ett bra tag sedan, så det var hög tid att fixa saken. IKEAs Tromsö var ett klart alternativ, men efter lite funderande kom vi fram till att det finns en mängd fördelar med en platsbyggd loftsäng:

  • Bättre utnyttjande av rummet
  • Stabilare än en lös säng
  • Snyggare med en loftsäng som blir en del av rummet.

Efter lite sökande på nätet hittade vi en mängd erbjudande av snickare, i huvudsak i Stockholmsregionen, som platsbyggde loftsängar åt en. Majoriteten av dessa erbjudanden visade sig handla om en ganska standard loftsäng som exakt passade sängens storlek, vi var mer intresserade av att bygga in från vägg till vägg. Så, första steget blev helt enkelt att rita upp vad vi ville ha som kunde agera underlag i kommunikation med en snickare.

Men, när väl ritningen var klar kändes det helt realistiskt, roligare och billigare att bygga den själv. Sagt och gjort, efter nyår 2015 satte vi igång.

Genomförande

Jag valde att rita loftsängen med hjälp av OpenSCAD. Orsaken att jag valde OpenSCAD istället för någon annat ritprogram var att jag är mer bekväm med att scripta saker än att lära mig kontroller. Dessutom kunde jag med OpenSCAD parametrisera hela ritningen vilket gjorde det enkelt att experimentera med olika design. Framförallt experimerade jag en hel del med dimensionerna på virket.

Loftsaeng-skiss.png

Madrassen läggs på en ribbotten som i sin tur vilar på en trälist som är fastskruvad längst ner på ramen. I princip kan man lägga i en resårbotten istället för ribbotten, men de flesta resårbottnar är ganska höga, minst 23 cm. Det medför att sängen kommer rätt högt upp och i det fallet bör man låta fallskyddet vara högre för att det inte ska se konstigt ut. Jag valde att designa loftsängen utifrån att man har en vanlig madrass.

Hålet i ena änden är en konsekvens av att jag låter loftsängen spänna från vägg till vägg. Tanken är att det ska kunna användas antingen för lösa plastlådor, alternativt för att bygga till en hylla för att ha böcker och dylikt på. Det har jag dock inte skissat på. Jag började med plastlådor från IKEA (Trofast back) som visade sig passa perfekt.

För den som är intresserad finns ritningen i SCAD-format sist på denna sida.

Min största oro var att det skulle vara svårt att få tag på virke som var någorlunda rakt, framförallt brädan som skulle vara utåt. Efter viss konsultation med expertis visade det sig att det finns olika klassningar, C16 och C24. C24 är rakare och har mindre kvistar. När man köper tjockare dimensioner (över 45x95) så finns C24 att välja på, iallafall på det byggvaruhus jag handlade på.

Det som var svårast att få tag på var en tunn gummimatta att ha under ben och stege. Efter att ha letat i otaliga affärer var det tillslut en äldre man på Bauhaus som hade haft samma problem själv. Han plockade då fram några gummibitar som användes under pallar på lagret, dvs inte något som gick att köpa egentligen.

Resultat

Loftsaeng.jpg

Tidsåtgången såg ut så här:

  • Planering, rita och experimentera - 1 dag
  • Handla virke, skruvar, vinkeljärn, gipsskruv, ribbotten, etc. - 1 dag (fixa släp osv.)
  • Mäta till och såga alla delar - 1 1/2 dag
  • Måla alla delar 2 ggr.- 1 1/2 dag (all cred till min fru här)
  • Bygga ihop på plats - 2 dagar

Ritning

rum_bredd = 2407;
vagg_planka_hojd = 195;
vagg_planka_bredd = 45;
barande_list_bredd = 25;
barande_list_hojd = 34;
sang_inre_bredd = 910;
sang_inre_langd = 2000;
sang_hojd = 150;	
sang_yttre_bredd = sang_inre_bredd+2*vagg_planka_bredd;
echo("Sängens yttre bredd ",sang_yttre_bredd); 
ben_hojd=1400;
ben_bredd=45;
ben_djup=45;
stolpe_bredd=45;
stolpe_djup=95;
stege_bredd=300;
steg_hojd=280;
steg_brada_hojd=28;
staket_hojd=300;
brada_hojd=95;
brada_mellanrum = 45;
brada_djup=28;
staket_mellanrum = 690;
f1 = "white";
f2 = "white";
f3 = "lightblue";
bas_farg=f1;
lim_farg=f2;
spont_farg=f2;
madrass_farg=f3;
steg_farg= f2;


module vaggplanka(langd, inset) {
	color(lim_farg) {
		cube([langd, vagg_planka_bredd, vagg_planka_hojd]);
	}
	color(spont_farg) {
		translate([inset,vagg_planka_bredd,0]) {
			cube([langd-2*inset,barande_list_bredd,barande_list_hojd]);
		}
	}
}


$fn=10;

module sang() {
	color(madrass_farg) {
	  minkowski() {
           	    cube([sang_inre_langd, sang_inre_bredd, sang_hojd]);
	   	    sphere(10);
	  }
	}
}


translate([-rum_bredd/2,-sang_yttre_bredd/2, ben_hojd/2-vagg_planka_hojd]) {
     // Bärande plankor kring sängen
     	vaggplanka(rum_bredd, vagg_planka_bredd);
	translate([0,2*vagg_planka_bredd+sang_inre_bredd,0]) {
		mirror([0,1,0]) {
			vaggplanka(rum_bredd, vagg_planka_bredd);
		}
	}
	rotate(a=-90, v=[0,0,1]) {
		translate([-vagg_planka_bredd-sang_inre_bredd, 0, 0]) {
			vaggplanka(sang_inre_bredd, barande_list_bredd);
		}
	}
	rotate(a=90, v=[0,0,1]) {
		translate([vagg_planka_bredd,-rum_bredd, 0]) {
			vaggplanka(sang_inre_bredd, barande_list_bredd);
		}
	}
	echo("Inre måttet på utrymmet som blir över", rum_bredd-sang_inre_langd-3*vagg_planka_bredd);
	rotate(a=-90, v=[0,0,1]) {
		translate([-vagg_planka_bredd-sang_inre_bredd, rum_bredd-sang_inre_langd-(2*vagg_planka_bredd), 0]) {
			vaggplanka(sang_inre_bredd, barande_list_bredd);
		}
	}

	// Sista sponten på andra sidan om avdelaren.
	translate([rum_bredd-sang_inre_langd-2*vagg_planka_bredd-barande_list_bredd, vagg_planka_bredd+barande_list_bredd, 0]) {
		color(spont_farg) {
			cube([barande_list_bredd, sang_inre_bredd-2*barande_list_bredd, barande_list_hojd]);
		}
	}

	color(bas_farg) {
	        // Benen
		translate([0,0,-ben_hojd]) {
			translate([0, -stolpe_djup/2,0]) {
				cube([stolpe_bredd, stolpe_djup, ben_hojd]);
			}
			translate([0, sang_yttre_bredd-ben_bredd,0]) {
				cube([ben_djup, ben_bredd, ben_hojd]);
			}			
			translate([rum_bredd-ben_djup, sang_yttre_bredd-ben_bredd,0]) {
				cube([ben_djup, ben_bredd, ben_hojd]);
			}
			translate([rum_bredd-stolpe_bredd, -stolpe_djup/2,0]) {
				cube([stolpe_bredd, stolpe_djup, ben_hojd]);
			}
			//Stegstolpen (ej hörn)
			translate([rum_bredd-2*stolpe_bredd-stege_bredd, -stolpe_djup/2,0]) {
				cube([stolpe_bredd, stolpe_djup, ben_hojd]);
			}
		}
//		echo ("Total höjd på benen: ", ben_hojd+vagg_planka_hojd+staket_hojd);		

		//Staketstolparna från fotänden
		for (i=[0:2]) {
		    translate([staket_mellanrum*i, -stolpe_djup/2,0]) {
			cube([stolpe_bredd, stolpe_djup/2, vagg_planka_hojd+staket_hojd]);
		    }
		}

		//Fortsättningen på stegen, huvudänden
		translate([rum_bredd-stolpe_bredd, -stolpe_djup/2,0]) {
			cube([stolpe_bredd, stolpe_djup/2, vagg_planka_hojd]);
		}
		
		//Fortsättningen på stegen + staket
		translate([rum_bredd-2*stolpe_bredd-stege_bredd, -stolpe_djup/2,0]) {
			cube([stolpe_bredd, stolpe_djup/2, vagg_planka_hojd+staket_hojd]);
		}
		
		echo("Staket längd: ", rum_bredd-stege_bredd-stolpe_bredd);
		//Övre plankan i staketet
		translate([0, 0, staket_hojd+vagg_planka_hojd-brada_hojd]) {
			cube([rum_bredd-stege_bredd-stolpe_bredd, brada_djup, brada_hojd]);
		}
		//Undre plankan i staketet
		translate([0, 0, staket_hojd+vagg_planka_hojd-2*brada_hojd - brada_mellanrum]) {
			cube([rum_bredd-stege_bredd-stolpe_bredd, brada_djup, brada_hojd]);
		}
	}
	color(steg_farg) {
		translate([rum_bredd-stolpe_bredd-stege_bredd, -stolpe_djup/2, steg_hojd-ben_hojd]) {
			cube([stege_bredd, stolpe_djup, steg_brada_hojd]);
		}
		translate([rum_bredd-stolpe_bredd-stege_bredd, -stolpe_djup/2, 2*steg_hojd+steg_brada_hojd-ben_hojd]) {
		        cube([stege_bredd, stolpe_djup, steg_brada_hojd]);
		}
		translate([rum_bredd-stolpe_bredd-stege_bredd, -stolpe_djup/2, 3*steg_hojd+2*steg_brada_hojd-ben_hojd]) {
			cube([stege_bredd, stolpe_djup, steg_brada_hojd]);
		}
		translate([rum_bredd-stolpe_bredd-stege_bredd, -stolpe_djup/2, 4*steg_hojd+3*steg_brada_hojd-ben_hojd]) {
			cube([stege_bredd, stolpe_djup, steg_brada_hojd]);
		}
	}
	translate([rum_bredd-sang_inre_langd-vagg_planka_bredd, vagg_planka_bredd, barande_list_hojd]) {
		sang();
	}
}