Galen? Jag? Om jag funderade på att bygga motorer som drivs av en skillnad i temperatur, DÅ kanske....
Jag började av ett par anledningar.
Jag testade CamBam. Det funkar fint, och är överlag ett bra program, men jag irriterade mig på de dåliga möjligheterna för 3D-fräsning. Ställde lite frågor om det på deras forum, men fick inte direkt några svar. Så, en första tanke var att skriva något som genererar G-kod som man kan importera i CamBam.
Sedan kollade jag upp STL-filformatet. Det var ganska enkelt att förstå, jag var tvungen att testa om jag kunde parsa en sådan fil, bara för sakens skull. Provade i C++, Qt på en Linuxmaskin. Det funkade bra, och jag kunde rita upp alla fina trianglar i ett fönster. Coolt! Nästa problem, kan jag beräkna var (z) en viss punkt (x,y) befinner sig på en yta? Japp, det gick. Och en fräs, med en viss diameter och platt yta undertill, kan man beräkna minsta z innan den tar i ytan? Efter mycket funderande (min mattebegåvning är...sådär) så löste det sig med. Ingen vill se koden för det där, jag lovar. Problemet löst!
Sen beslutade jag mig för att byta jobb. Nya jobbet innebar en massa programmering i C#, vilket jag inte kunde. För att lära mig var jag tvungen att skaffa mig ett kul hemmaprojekt. Jag kom på att jag kanske kunde porta C++-koden till C#... Det gick förvånansvärt lätt (C# är ett UNDERBART språk) och för att lära mig mer C# fortsatte jag. När problemet ovan var löst gick det ganska lätt att börja göra verktygsbanor och sådant. Mycket pill, men kul.
Jag har alltid varit intresserad av att styra mekaniska saker, så det ligger även ett genuint intresse bakom. Min fräs ska väl bli klar snart (så fort det blir lite varmare ute) och då kommer jag att använda programmet själv. Detta är också en anledning till att göra det själv, behöver jag någon specialfunktion så kan jag bara lägga till den.

Och om någon mer än jag har nytta av mitt arbete så är det jättekul.
Funderar på hur jag ska fortsätta... Vill gärna få till 2D-fräsning också. Att importera DXF kan vara en väg. Har inte hunnit undersöka om det finns något annat, mer öppet format som de flesta program stöder. Ett alternativ (som jag kanske gör i vilket fall) är att implementera en slags konturföljare för STL så man enkelt kan fräsa ur hål, fickor eller fräsa runt sin detalj när den är klar utan att använda 3D-fräsning. Men STL har sina begränsningar, runda hål är ju tex inte runda, allt är uppbyggt av trianglar. Jag hade velat kunna generera "finare" G-kod som utnyttjar cirkelkommandona...
...
Walles fil är lite elak, den är en binärfil men har en header med ett namn ("solid test") som gör att parsern tror att den är en ASCII-fil. Alla ASCII-filer börjar nämligen med just strängen "solid".

Det är åtgärdat nu, fixade till en lite mer intelligent detektering som jag hoppas inte ska ställa till med problem. Ny version finns via länken ovan!
Läste lite på Wikipedia om STL-filer (det är där jag läst 'specen') och blir lite orolig när jag läser att solidworks använder normalen på alla trianglar för skuggeffekt. Jag hoppas inte det innebär att normalen i filen inte är normal, det är lite tvetydigt... Då funkar inte kollisionsdetekteringen för fräsen som det ska... Filen Walle skickade beskriver en sfär, men det verkar vara en plan yta på höjden 80mm 'i vägen', så jag kan inte testa problem med normalen med den filen. Du kanske har en annan fil från SolidWorks att skicka, Walle? Det skulle uppskattas!
Tackar Walle för screenshoten.... Jag kan fixa en till som visar lite hur det ser ut när man har skapat en yta och genererat lite verktygsbanor.
Mvh Jonas