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. 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); } }
OMG, neki sem merek fogni a 3D-hez… Marad a fa és a fűrész 🙂
TinkerCAD-del játszál, akkor majd elkap a gépszíj.