2D path-based fabrication techniques create parts by cutting a path through a flat piece of material. For example, a child might use a pair of scissors to cut a shape from a piece of paper. In industrial applications, cutting is usually accomplished with a saw, laser, or a high-pressure water jet. Modern manufacturing operations rely on computer-controlled devices which can be programmed to cut the desired shape.

In order to program the desired cutting path, a suitable model of the part must be created. Computer-aided design (CAD) software can represent the lines and curves which define the boundary of the part. However, most modern CAD software does not adequately capture the additional information needed to create a suitable cutting path. CAD also does not usually check for part geometry which may be infeasible or impractical for a particular manufacturing process.

To address this issue, we created an intermediate model which captures both the basic part geometry and the additional manufacturing parameters. We then wrote a suite of algorithms in C++ to analyze the design, automatically identifying impractical or infeasible designs. Finally, we created an algorithm which utilizes the intermediate model to generate an appropriate cutting path specific to the manufacturing process.

My primary role in the project was to design and implement this intermediate model, and the C++ code needed to convert CAD designs to an XML representation of this model. I also contributed a major portion of the code for the manufacturability analysis algorithms. Finally, I contributed extensively to a web-based application built on a WAMP (Windows, Apache, MySQL, PHP) solution stack. This application interfaces with the backend application, allowing customers, manufacturers, and machine operators to utilize the intermediate part model and analysis algorithms, specify additional parameters, and communicate seamlessly.

Information Modeling for Product Design Specifications

One of the first steps in designing a new product is to specify high-level requirements based on customer needs, costs, production models, and the practical limitations of material properties and manufacturing processes. Traditionally, this has been accomplished through an informal document known as a product design specification (PDS). In large-scale hierarchically designed systems such as aircraft and industrial equipment, in addition to a PDS for the overall system, each module has its own PDS. These modules in turn have sub-modules, and so on, down to (perhaps thousands of) individual components.

There are usually dependencies between the requirements of different modules and across different levels of the design hierarchy. To complicate the problem, components may be designed and manufactured by different teams and different companies, often separated by physical distance and communication barriers. Combined with the lack of a widely accepted standard for these documents, this has led to problems such as ambiguity, inconsistency, and redundancy in product requirements. This in turn can lead to a product that is under-designed, over-designed, or outright defective, decreasing efficiency and driving up costs.

Our goal in this project was to create a formal representation for PDS documents, which on the one hand could be easily used by design engineers and other stakeholders, but on the other hand could be automatically validated and checked for the problems mentioned above. To accomplish this, our framework allows requirement authors to tag words and phrases in the PDS document with formally modeled content such as precisely defined words, semantic relationships, requirement categories, and mathematical expressions. This content can then be automatically processed and matched against content in other PDS documents. Our representation also has the added benefit of allowing requirements to be reused: a database of PDS documents can be queried based on this formally modeled content, allowing engineers to more easily identify relevant requirements for new designs.

My work on this project was to create the framework and its content, represented in XML. I also supervised a student in implementing a software tool in Java to assist product designers in attaching appropriate content to a PDS. Finally, I tested our framework and engaged undergraduate students in an engineering design class to confirm its usability.

Modeling and Prediction of Manufacturing Energy Requirements from Part Design

Manufacturing is an energy-intensive process. From both environmental and cost standpoints, it is desirable to produce products that can be manufactured with minimal energy requirements.

For many manufacturing technologies energy requirements are directly related to the physical properties of the product, as well as the nuances of the manufacturing process itself. Therefore, it is possible to produce reasonable estimates for a product's energy requirements before it actually goes to manufacturing. Product designers can use then these estimates to refine their designs so as to decrease energy requirements.

As it turns out, these estimates depend on parameters at a number of different levels, from the geometric and material properties of the individual parts, to the properties of the machine with which they are manufactured, to the overall production plan of an entire factory. Furthermore, parameters at one level affect those at other levels: part geometry and material selection determine the type of machine that can be used to manufacture it, and these parameters together in turn affect the production policy of the factory.

To develop this model, we integrated analytical formulas from fluid dynamics with computer simulations of material flow during the molding process. We used quantitative optimization techniques to predict the production policy, which also affects energy requirements. By considering the designer as well, we can close the loop. The designer’s expectations of energy consumption can help them make decisions regarding these parameters. If these expectations are accurate, the designer can adjust the design and update the energy consumption estimates. This iterative process can thus be harnessed to decrease the overall per-part energy consumption.