1.2 HARD PROBLEMS
While backwards planning suits some designs, it is not suited to others. This was demonstrated by the process plan created for the digital circuit. Another problem that is caused by backward planning is recovery from a plan error. An instance of this would be when a plan is being executed, and one step fails. A plan that has come from a backwards planner is executed from the last step to the first. This means that in the worst case the planner would have to start planning from the first step, and try to find an intermediate plan state. This problem can become very difficult at this stage. It might be possible to incorporate forward planning strategies as well.
Most solid modelling systems have difficulty defining relationships between primitives. Tolerancing is an excellent example of this. Tolerances can exist between parts of a single primitive, but because of the nature of tolerances they are often stacked up over one or more primitives. There are methods for defining form and dimensional tolerances for a single primitive, but there is an outstanding question of the definition of datums and tolerances through a CSG type representation. Some work has been done by Roy and Liu  when they incorporated tolerances into a hybrid CSG and B-Rep modeler. Shah and Miller  also incorporate tolerancing into a solid modeling scheme. Gupta and Turner  describe an approach to tolerancing using a B-Rep modeler that subdivides a surface. They can vary the surface to simulate tolerance effects.
Sequencing is somewhat inherent to the nested form of the design model, so it was not considered paramount to proving the thesis. But, eventually the system should be set up so that it may produce non-linear process plans, with sequencing constraints added. Flexplan [Tonshoff, 1989] has proposed a novel approach to modelling non-linear process plans using Petri nets. In addition to these methods, research has also been done by Rho et. al. , Sluga et. al. , ElMaraghy and ElMaraghy .
There are some general problems not approached in this thesis that should be considered in future planning work. One of these is the joining of different jobs for economic reasons. An example of this is the nesting of many sheet metal parts, for different jobs, in one sheet of metal to reduce scrap for a job.
When a solid modeler is incorporated, it is also possible to try a number of other verification procedures. For example Delbressine and Hijink  verify the validity of tool paths by doing a sweep of a tool profile, then doing a simple CSG check for overlap that is in excess of the desired machinable volume.
The reader will recall that the initial design representation uses the r-set Assembly operator. This is done for want of a better operator(s). As research progresses it will become useful to evaluate new representations that emerge. For example, press fits can be modeled by my method, but it does not have a true sense for the implications of material overlap, as would be obtained with a CNRG operator.
At present the only optimization criteria considered for operation selection is cost. This could easily be expanded to consider other objectives separately, or combinations of objectives. This would require the addition of other declared values such as setup time, run time, environmental impact, etc.