3D nyomtatás – tervezzünk, de mivel?

AutoDesk Inventor / SolidWorks méretű vadállatok funkcióit ismertető demo videókba, akkor egy ideig még sajnálva néztem a szépen összegyűjtött sok-sok infot a posztban, aztán nyomtam egy ⌘A-t, majd az egészet kidobtam a kukába. Hogy miért? Mert egy fogkefetartó legyártásához nem fogunk 5000 EUR-t elkölteni. Ahelyett tehát, hogy egy átfogó CAD/CAM szoftver képet festenénk, nézzünk meg inkább négyféle alkalmazást, amivel kacérkodom.

Google Sketchup

A SketchUp ingyenes mezei és 495 USD-ért mért Pro változatban létezik, Windows/Mac OS X alatt. Elsősorban arra fejlesztették, hogy a népek a Google Maps-hez legyártsák az IRL épületeket, szép vektoros formában, de azért *.3d objketumot is építhetsz vele. Az ingyenes verzió ugyan nem képes .STL formátumba exportálni, de a Cura tud a SketchUp által produkált .DAE formátumból olvasni, úgyhogy ez a probléma nem probléma. A Google SketchUp volt az első, ahol a push/pull elvű modellezést láttam, nagy vehemenciával neki is indultam anno, hogy majd legyártom a saját házunkat benne, így tanulva meg az eszköz használatát. Elég sokat kínlódtam vele és úgy tűnt, hogy a push/pull modellezés során előállt felületek nem mindig illeszkedtek precízen egymáshoz. Én anno a 7-es verzióval kísérleteztem, azonban azóta van 8.0. A nyolcasban megjelentek a 7-ben még nem létező solid boolean toolok, ami objektum tervezésnél nem jön kifejezetten rosszul. Íme a what’s new video kedvcsinálónak:

PunchCAD ViaCAD 2D3D

A PunchCAD nevű gyártó háromféle consumer kategóriás CAD alkalmazást kínál a kétféle, professzionális felhasználásra szánt szoftvere mellett Windowsra és Mac OS X-re. Ebből a Mac App Store-ba is listázott ViaCAD 2D3D a maga 100 USD-s árával még a megfizethető CAD kategória. Én ebben gyártom a sok reciklálandó plasztikot egy ideje. Két dolog nem tetszik benne: az egyik, hogy a push/pull tool nem mindig talál rá az extrudálható face-ekre (ugyanakkor egy másik extruder tool ugyanazt a területet simán kinyomja), a másik pedig a gyenge help. Ettől függetlenül 100 USD-t megér. Nézzünk meg az előző, 7-es verzióból egy rövid demot:

ThinkerCAD

WebGL bázison, böngészőben futó CAD, tegnap találtam a nagy kutatásban. Nagyon guszta, elég intuitív, kicsit kevés funkcionalitással. Ebben pl. nem tudunk 2D keresztmetszetet rajzolni és azt 3D-be extrudálni és a custom alakú testek egymással booleankodását sem találtam elsőre sehol, mindössze téglatest, henger és tojás (#WTF?) alakú lyukfúrók vannak benne. Gyári nyúlfület bezzeg azonnal tud. thinkercad Képes .SVG és .STL file-ok importálására akár lokális file-ból, akár egy URL-ről (=Thingiverse). Azért nem szabad legyinteni rá: ha standard primitívekből összerakható objektumot kell gyártani és épp nincs nálunk a desktop megoldásunk, szuper kis eszköz, arról nem beszélve hogy milyen csini! Ha kételyeid lennének, érdemes benézni a featured galériájukba. Itt egy rövid tutorial a TinkerCAD játszótérről:

OpenSCAD

A végére hagytam az új felfedezettet, amitől minden coder arcnak azonnal beindul a nyálelválasztása. Az OpenSCAD ingyen van, cross-platform, és ami a legszebb: ez lényegében egy CAD scriptet olvasó compiler és mint ilyen, nyilván paraméterezhető is! Summa summarum, alkotni ebben is kell, sőt, ezt meg kell tanulni, hogy megint előjöjjön az emberben a matek. Ha valami hiányzott eddig az összes próbált alkalmazásban, akkor az a paraméterezhetőség. A lehető legegyszerűbben meg akarom egy darab szám megváltoztatásával mondani, hogy a furatok ne 3, hanem 4 mm-esek legyenek – és erre az OpenSCAD perfekt. Nézzük is meg befejezésnek danielkschneider paraméteres duplo scriptjét, miközben agyalunk a lehetőségeken:
//the duplo itself
// parameters are:
// width: 1 =standard 4x4 duplo with.
// length: 1= standard 4x4 duplo length
// height: 1= minimal duplo height
// nibbles: true or false
duplo(1,2,1.5,false);
module duplo(width,length,height,nibbles)
{
	//size definitions
	ns = 8.4;  //nibble start offset
	no = 6.53; //nibbleoffset
	nbo = 16; // nibble bottom offset
	duplowidth = 31.66;
	duplolength=31.66;
	duploheight=9.6;
	duplowall = 1.55;
	//the cube
	difference() {
		cube([width*duplowidth,length*duplolength,height*duploheight],true);
		translate([0,0,-duplowall])
			cube([width*duplowidth - 2*duplowall,length*duplolength-2*duplowall,height*duploheight],true);
	}
	//nibbles on top
         if  (nibbles)
     	   {
	    	for(j=[1:length])
		{
			for (i = [1:width])
			{
				translate([i*ns+(i-1)*no,j*ns+(j-1)*no,6.9+(height-1)*duploheight/2]) duplonibble();
				translate([i*-ns+(i-1)*-no,j*ns+(j-1)*no,6.9+(height-1)*duploheight/2]) duplonibble();
				translate([i*ns+(i-1)*no,j*-ns+(j-1)*-no,6.9+(height-1)*duploheight/2]) duplonibble();
				translate([i*-ns+(i-1)*-no,j*-ns+(j-1)*-no,6.9+(height-1)*duploheight/2]) duplonibble();
			}
		}
	        }
	//nibble bottom
	for(j=[1:length])
	{
		for (i = [1:width])
		{
			translate([(i-1)*nbo,(j-1)*nbo,0]) duplobottomnibble(height*duploheight);
			translate([(i-1)*-nbo,(j-1)*-nbo,0]) duplobottomnibble(height*duploheight);
			translate([(i-1)*-nbo,(j-1)*nbo,0]) duplobottomnibble(height*duploheight);
			translate([(i-1)*nbo,(j-1)*-nbo,0]) duplobottomnibble(height*duploheight);
		}
	}
	//little walls inside
	difference()
	{
		union()
	 	{
			for(j=[1:length])
			{
				for (i = [1:width])
				{
					translate([0,j*ns+(j-1)*no,0 ]) cube([width*duplowidth,1.35,height*duploheight],true);
					translate([0,j*-ns+(j-1)*-no,0 ]) cube([width*duplowidth,1.35,height*duploheight],true);
					translate([i*ns+(i-1)*no,0,0 ]) cube([1.35,length*duplolength,,height*duploheight],true);
					translate([i*-ns+(i-1)*-no,0,0 ]) cube([1.35,length*duplolength,height*duploheight],true);
				}
			}
		}
		cube([width*duplowidth - 4*duplowall,length*duplolength-4*duplowall,height*duploheight+2],true);
	}
}
module duplonibble()
{
	difference() {
		cylinder(r=4.7,h=4.5,center=true,$fs = 0.01);
		cylinder(r=3.4,h=5.5,center=true,$fs = 0.01);
	}
}
module duplobottomnibble(height)
{
	difference() {
		cylinder(r=6.6,h=height,center=true,$fs = 0.01);
		cylinder(r=5.3,h=height+1,center=true,$fs = 0.01);
	}
}
Ennyi matek után holnap a szinte lehetetlen megoldására vállalkozunk, úgyhogy továbbra is stay tuned!]]>

2 thoughts on “3D nyomtatás – tervezzünk, de mivel?

Leave a Reply

Your email address will not be published. Required fields are marked *