This paper addresses a two-dimensional cutting stock problem arising in furniture factories. The problem involves the simultaneous optimization of two, usually conflicting, objectives: minimizing the total number of objects and maximizing the cutting machine productivity in terms of the number of objects that are simultaneously cut. A heuristic algorithm to solve the problem is proposed based on variables and constraints generation. The main idea is to add, in a dynamic way, bounds to the frequency of some chosen cutting patterns. At each iteration a solution is generated and at the end we have a set of non-dominated solutions. A computational study was conducted using real data from a small-scale furniture factory. The results show that the proposed algorithm finds solutions that are as good as or better than the ones used in practice in the furniture factory.