<TABLE> <S> <C>

<PAGE>

<ARTICLE> 5
<LEGEND>
THIS SCHEDULE CONTAINS SUMMARY FINANCIAL INFORMATION EXTRACTED FROM FINANCIAL
STATEMENTS AND NOTES THERETO CONTAINED IN THE COMPANY'S ANNUAL REPORT ON FORM
10-K FILED ON MARCH 31, 1999 AND IS QUALIFIED IN ITS ENTIRETY BY REFERENCE TO
SUCH FINANCIAL STATEMENTS.
</LEGEND>
<MULTIPLIER> 1,000

<S>                             <C>                     <C>
<PERIOD-TYPE>                   9-MOS                   12-MOS
<FISCAL-YEAR-END>                          DEC-31-1999             DEC-31-1998
<PERIOD-START>                             JAN-01-1999             JAN-01-1998
<PERIOD-END>                               SEP-30-1999             DEC-31-1998
<CASH>                                           1,538                   5,828
<SECURITIES>                                         0                       0
<RECEIVABLES>                                   23,860                  17,890
<ALLOWANCES>                                         0                       0
<INVENTORY>                                     18,483                  14,992
<CURRENT-ASSETS>                                46,679                  40,505
<PP&E>                                          47,859                  42,081
<DEPRECIATION>                                       0                       0
<TOTAL-ASSETS>                                 110,760                  98,442
<CURRENT-LIABILITIES>                           21,170                  20,537
<BONDS>                                              0                       0
<PREFERRED-MANDATORY>                                0                       0
<PREFERRED>                                          0                       0
<COMMON>                                            92                      92
<OTHER-SE>                                      60,161                  52,488
<TOTAL-LIABILITY-AND-EQUITY>                   110,760                  98,442
<SALES>                                         88,951                  92,710
<TOTAL-REVENUES>                                     0                       0
<CGS>                                           54,641                  56,578
<TOTAL-COSTS>                                        0                       0
<OTHER-EXPENSES>                                20,097                  21,490
<LOSS-PROVISION>                                     0                       0
<INTEREST-EXPENSE>                               1,581                   1,342
<INCOME-PRETAX>                                 12,640                  13,858
<INCOME-TAX>                                     5,389                   5,749
<INCOME-CONTINUING>                              7,251                   8,109
<DISCONTINUED>                                       0                       0
<EXTRAORDINARY>                                      0                       0
<CHANGES>                                            0                       0
<NET-INCOME>                                     7,251                   8,109
<EPS-BASIC>                                        .80                     .88
<EPS-DILUTED>                                      .80                     .88


</TABLE>