Nick писал(а):Смотрю на фотки и ничего не понимаю, как это собирается, как работает 
на нижней фотке тоже самое, что на верхней по центру?
 
Да, только вид с другой стороны. Это верхняя часть датчика. В нее вставляется плунжер, в боковое отверстие (видно под термоусадкой) вставляется поперек штифт. Он проходит через продолговатое отверстие плунжера, и не дает ему выпадать и поворачиваться. Плунжер может только перемещаться на 4-5 мм. Колечко из термоусадки опускается и закрывает боковое отверстие. 
Затем с другой стороны вставляется сам оптодатчик с проводами - там под все это выфрезеровано углубление. Поскольку ширина паза у оптодатчика 6 мм, а диаметр плунжера - 8, на плунжере с двух сторон сделаны лыски. 
Надевается вторая часть  корпуса (на верхней фотке справа). 
В плунжере на торце сделано углубление, туда вкладывается пружина. Затем все это хозяйство закрывается снизу магнитом, в котором тоже есть углубление под пружину, после чего всё стягивается тремя винтами М3.
Работает тоже очень просто. Луч от светодиода оптодатчика Omron (china 

 ) SX-672A в исходном состоянии перекрыт плунжером. При нажатии на головку плунжера, он опускается и луч проходит сквозь квадратное отверстие плунжера (на фотке плоховато видно, там всё замазано черным для уменьшения бликов). Сигнал от оптодатчика поступает через контроллер на вход LPT. Ну, а дальше -  LinuxCNC.