BlocksCAD looks like a cross between the Scratch programming language and SCAD.
You can use it “stand alone” to teach programming and math skills. Or combine it with a 3D printer to create complex items using simple programming commands.
BlocksCAD is free to use. It has an Education section detailing standards aligned lesson plans and additional utilities for classroom use.