Softver za CNC obradu je programsko sučelje operatera za upravljanje industrijskim proizvodnim strojevima. CNC je skraćenica za “računalno numeričko upravljanje”. Stroj se učitava s uputama o tome kako izraditi proizvod na temelju njegovog preciznog, ali čisto numeričkog opisa.
Izumom elektronike u čvrstom stanju i erom eksponencijalne minijaturizacije, započevši oko 1950. godine, sastavni dijelovi komercijalnih proizvoda zahtijevali su odgovarajuće male tolerancije u preciznosti. Bilo je previše glomazno kontrolirati strojeve kako bi se ručno izradile takve detaljne komponente s polugama i ekscentrima. Prvi numerički upravljani strojevi čitali su papirnatu traku probušenu s rupama kodiranim da predstavljaju njihov prostorni položaj i kontroliraju pomoću servo motora njihovo precizno kretanje.
Moderna CNC obrada, koja je revolucionirala proizvodnju velikih razmjera, u principu ostaje ista. Upute koje upravljaju strojem pohranjene su na rotirajućem magnetskom tvrdom disku računala ili statičkim digitalnim flash diskovima. Temeljni rad većine strojeva nije se promijenio, pa se stoga nije promijenio ni skup uputa. Najznačajnije promjene dogodile su se u softveru za CNC obradu.
Postoji mnogo vrsta CNC strojeva. Jedni od najčešćih su tokarski strojevi. Blok materijala kao što je drvo ili metal se ili drži nepomično ili precizno pomiče, kao u slučaju aksijalnog okretanja tokarilice. Formira se oduzimanjem materijala specifičnim zadatkom, oštrim svrdlom pri velikom broju okretaja koji se kreće duž konture željenog oblika. Kritična funkcija softvera za CNC obradu je mapiranje ili modeliranje ovog trodimenzionalnog oblika u njegove koordinate kartezijanske osi xyz.
Izraz računalna numerička kontrola strojne obrade je točan. Tokarilica se prvo kalibrira prema koordinatama 0-0-0 cilja, a njegovo bušenje napreduje do sljedećeg dodijeljenog skupa numeriranih koordinata, a zatim sljedećeg, prema svojim mapiranim uputama. U ranim vremenima ovo je bila doslovna metoda. Strojevi su bili uneseni linearnim nizom skupa od tri broja, koji su svi upisani numeričkom tipkovnicom prema izračunima i mjerenjima inženjera projektanta.
Gotovo sav moderni softver za CNC obradu prilagođen je integriranom u određeni stroj; svaki ima svoje mehaničke specifikacije i stoga se ne može dobro kontrolirati bilo kojim generičkim, maloprodajnim ili otvorenim kodom. S povećanjem procesorske snage elektroničkog hardvera, računalni programi za CNC obradu postali su moćniji i jednostavniji za korištenje. Računala su sada sposobna prevesti analogne vektore i krivulje koje definiraju većinu oblika u digitalne brojeve, a grafička korisnička sučelja poput CAD-a – računalno potpomognutog dizajna – ugrađena su u softver za CNC obradu.
CNC strojevi stvoreni su tako da operater može jednostavno pritisnuti gumbe za početak, završetak i resetiranje. Sofisticiranost softvera osim toga oslobađa obrtnika da postane kreativni dizajner, jednostavno crtanje i automatiziranje numeričkog računanja crteža i stvaranje stvarnim strojem. Napredak u digitalnoj telekomunikaciji dodatno je revolucionirao industrijsku proizvodnju s sposobnošću učitavanja koda na stroj tisućama milja udaljen za jednokratnu izradu prototipa. Novi CNC kućni/garažni strojevi dostupni su s stolnim otiscima, uključujući 3D pisače koji mijenjaju svrhu tokarilice, odlažući rezervoar materijala poput plastike u oblik definiran softverom, naizgled stvarajući nešto iz ničega.