<TABLE> <S> <C>
<PAGE>
<ARTICLE> 5
<MULTIPLIER> 1,000
<S> <C>
<PERIOD-TYPE> 6-MOS
<FISCAL-YEAR-END> DEC-30-2000
<PERIOD-START> JAN-02-2000
<PERIOD-END> JUL-01-2000
<CASH> 0
<SECURITIES> 0
<RECEIVABLES> 20,603<F1>
<ALLOWANCES> 0
<INVENTORY> 17,620
<CURRENT-ASSETS> 40,724
<PP&E> 25,940<F2>
<DEPRECIATION> 0
<TOTAL-ASSETS> 68,321
<CURRENT-LIABILITIES> 19,789
<BONDS> 0
0
0
<COMMON> 643
<OTHER-SE> 37,454
<TOTAL-LIABILITY-AND-EQUITY> 68,321
<SALES> 53,135
<TOTAL-REVENUES> 53,135
<CGS> 40,011<F3>
<TOTAL-COSTS> 50,930
<OTHER-EXPENSES> (392)
<LOSS-PROVISION> 0
<INTEREST-EXPENSE> 338
<INCOME-PRETAX> 2,259
<INCOME-TAX> 836
<INCOME-CONTINUING> 1,423
<DISCONTINUED> 0
<EXTRAORDINARY> 0
<CHANGES> 0
<NET-INCOME> 1,423
<EPS-BASIC> 0.76
<EPS-DILUTED> 0.74
<FN>
<F1>Net of allowance for doubtful accounts.
<F2>Net of accumulated depreciation, depletion and amortization.
<F3>Exclusive of depreciation, depletion and amortization.
</FN>
</TABLE>