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.