Programiranje stružnice z računalniško numerično krmiljenjem (CNC) je proces, s katerim se računalniško vodena stružnica programira tako, da avtomatizira njeno delovanje. Programer vnese navodila v skladu s projektnimi parametri in stroj sledi tem navodilom ter hitro in učinkovito izdela objekt. Programiranje CNC stružnic je revolucionarno spremenilo številne industrije in proizvodne operacije ter na splošno zagotavlja zmanjšanje stroškov, hkrati pa povečuje produktivnost v primerjavi s stružnicami, ki jih neposredno upravljajo ljudje.
Stružnica je stroj, ki obrača kos materiala, imenovanega zaloga, pri visokih hitrostih, medtem ko uporablja katero koli od najrazličnejših rezalnih orodij za izdelavo želene oblike. Stružnice se že stoletja uporabljajo za proizvodnjo vseh vrst stvari, od bejzbolskih palic do odmičnih gredi za motorje. Včasih so bile stružnice ročno upravljane, v začetku 20. stoletja pa so se prvi koraki v smeri avtomatizacije njihovega delovanja začeli z mehanskimi sistemi odmikačev in vzorcev, ki so lahko podvojili del ali izdelek iz predloge ali prototipa.
Izum računalnika in nato mikroprocesorjev je pripeljal do izuma CNC stružnice. Ker so mikroprocesorji postali cenejši in zmogljivejši, so omogočili, da so stružnice in drugi stroji poceni in učinkovito avtomatizirani ter programirani. Velik del tega je narejen s tehnologijo računalniško podprtega oblikovanja (CAD) in ima za posledico visoko stopnjo ponovljive natančnosti pri obdelanih delih in izdelkih. S programiranjem CNC stružnice je možno veliko zapletenih in natančnih operacij, ki jih je bilo prej nemogoče doseči z neposrednim človeškim delovanjem.
Danes številne tehnične šole in univerze ponujajo tečaje ali diplome na področju programiranja CNC stružnic. Delo programerja CNC stružnice pogosto gre z roko v roki z načrtovanjem CAD, vendar ta dela lahko opravljajo različni ljudje. Deli in izdelki so zasnovani z uporabo različnih izpopolnjenih programov za načrtovanje, specifikacije pa nato programer vnese v CNC stružnico. Stroj nato izvaja stružnice v skladu s temi navodili, s čimer hitro in učinkovito razreže material po specifikaciji.
Programiranje CNC stružnice omogoča tudi, da se en stroj hitro spremeni iz proizvodnje enega dela ali izdelka v drugega. Programer lahko napravi napravi veliko različnih sklopov specifikacij in preklaplja med njimi s preprostim pritiskom na nekaj gumbov. Številni od teh strojev so tako napredne zasnove, da rezalnih orodij ni treba menjati ročno, ampak jih menja stroj sam, v skladu s svojimi programiranimi navodili za izdelavo želenega izdelka.