the numerous innovative teachings of the present application will be described with particular reference to the presently preferred embodiments . it should be understood , however , that this class of embodiments provides only a few examples of the many advantageous uses of the innovative teachings herein . the presently preferred embodiment provides , among other things , a system and method directly recognize and unfold linear bends in a sheet metal part . now therefore , in accordance with the presently preferred embodiment , an operating system executes on a computer , such as a general - purpose personal computer . fig9 and the following discussion are intended to provide a brief , general description of a suitable computing environment in which the presently preferred embodiment may be implemented . although not required , the presently preferred embodiment will be described in the general context of computer - executable instructions , such as program modules , being executed by a personal computer . generally program modules include routines , programs , objects , components , data structures , etc ., that perform particular tasks or implementation particular abstract data types . the presently preferred embodiment may be performed in any of a variety of known computing environments . referring to fig9 , an exemplary system for implementing the presently preferred embodiment includes a general - purpose computing device in the form of a computer 900 , such as a desktop or laptop computer , including a plurality of related peripheral devices ( not depicted ). the computer 900 includes a microprocessor 905 and a bus 910 employed to connect and enable communication between the microprocessor 905 and a plurality of components of the computer 900 in accordance with known techniques . the bus 910 may be any of several types of bus structures including a memory bus or memory controller , a peripheral bus , and a local bus using any of a variety of bus architectures . the computer 900 typically includes a user interface adapter 915 , which connects the microprocessor 905 via the bus 910 to one or more interface devices , such as a keyboard 920 , mouse 925 , and / or other interface devices 930 , which can be any user interface device , such as a touch sensitive screen , digitized pen entry pad , etc . the bus 910 also connects a display device 935 , such as an lcd screen or monitor , to the microprocessor 905 via a display adapter 940 . the bus 610 also connects the microprocessor 905 to a memory 945 , which can include rom , ram , etc . the computer 900 further includes a drive interface 950 that couples at least one storage device 955 and / or at least one optical drive 960 to the bus . the storage device 955 can include a hard disk drive , not shown , for reading and writing to a disk , a magnetic disk drive , not shown , for reading from or writing to a removable magnetic disk drive . likewise the optical drive 960 can include an optical disk drive , not shown , for reading from or writing to a removable optical disk such as a cd rom or other optical media . the aforementioned drives and associated computer - readable media provide non - volatile storage of computer readable instructions , data structures , program modules , and other data for the computer 900 . the computer 900 can communicate via a communications channel 965 with other computers or networks of computers . the computer 900 may be associated with such other computers in a local area network ( lan ) or a wide area network ( wan ), or it can be a client in a client / server arrangement with another computer , etc . furthermore , the presently preferred embodiment may also be practiced in distributed computing environments where tasks are performed by remote processing devices that are linked through a communications network . in a distributed computing environment , program modules may be located in both local and remote memory storage devices . all of these configurations , as well as the appropriate communications hardware and software , are known in the art . software programming code that embodies the presently preferred embodiment is typically stored in the memory 945 of the computer 900 . in the client / server arrangement , such software programming code may be stored with memory associated with a server . the software programming code may also be embodied on any of a variety of non - volatile data storage device , such as a hard - drive , a diskette or a cd - rom . the code may be distributed on such media , or may be distributed to users from the memory of one computer system over a network of some type to other computer systems for use by users of such other systems . the techniques and methods for embodying software program code on physical media and / or distributing software code via networks are well known and will not be further discussed herein . fig1 is a logic flow diagram of a method employed by the presently preferred embodiment . referring to fig1 , a computer implemented method 100 begins by selecting a planar face on a part design ( step 105 ). next , a computer user identifies a number of linear bends associated with the planar face ( step 110 ) and then calculates a number of bend parameters corresponding to each of the identified linear bends ( step 115 ). then the system converts the part design with the bend attributes to a sheet metal part ( step 120 ). the methods of automatically unfolding a sheet metal part without prior knowledge or data defining the parameters or sheet metal features to get a part blank and associated intermediate stages in accordance with the presently preferred embodiment are set forth in more detail below . the computer user typically starts with either a part file created by a third party computer aided design ( cad ) program or the user intends to use a native file created with the cad application in current use where the part file lacks sufficient details necessary to accomplish a sheet metal fold . utilizing techniques well understood in the art , the user imports the part file into the cad application that can define a solid body or other part - state , e . g ., a solid model , that lacks sufficient details to perform a sheet metal operation . fig2 is an orthographic view of a part design . referring further to fig2 , once the part file is imported into the cad application , a part design 200 is displayed to the user utilizing known software techniques . the computer user selects , for example , a planar face 205 on the part design 200 where at least a bend 210 is automatically recognized by the computer system programmed to execute the presently preferred embodiment ( step 110 ). once the bend 210 is recognized , the system retrieves the key bend parameters , e . g ., bend angle , inside bend radius , and part thickness , from the calculated values of the part itself using methods known in the art of cad applications and software design . fig3 illustrates a table view of displayed values of a part design . the recognized bends 210 are identified and assigned a corresponding bend name 300 . the corresponding bend names 300 are listed in a table format and have an associated inside bend radius value 305 , a bend angle value 310 , a k - factor value 315 , and a development length value 320 ( step 115 ). the k - factor is well understood in the art of sheet metal bending and depends upon the material , the type of bending operation , the ratio of the inner bend radius to metal thickness . the developed length is also well known and understood in the art of sheet metal bending , according to the following formula : l =( r + kt )× θ , where r = inside bend radius , k = k - factor , t = material thickness , and θ = bend angle in radians . now , the part design 200 is converted into a sheet metal part as understood and known by the native cad application ( step 120 ). the sheet metal part conversion is well understood in the cad industry and will not be discussed further with the understanding that the presently preferred embodiment assigns the necessary bend attributes to the associated bend faces so that the recognized bends are identified and properly utilized in a downstream unbend / rebend operation of the cad application . fig4 illustrates an orthographic view of a part design with merged coaxial bends . referring to fig4 , optionally at this stage the user can identify a plurality of coaxial bends 400 . the coaxial bends 400 that share the same inside bend radius and bend angle are merged into a single merged bend having a common point of control . the merged condition of the coaxial bends 400 is viewable as a plurality of merged coaxial bend values 500 in a table view of displayed values of a part design with merged coaxial bends , as illustrated in fig5 . fig6 illustrates an orthographic view of a part design with multi - step bends . referring to fig6 , the user also has the option to define a number of multi - step bends 600 from the recognized bends 210 , by selecting the number of pre - bends and corresponding angle for each pre - bend . pre - bends are included , for example , to resist spring - back that may occur based upon the chosen material of the part design 200 , such spring - back may occur , for example , when forming an 80 degree bend may cause the final shape to incorrectly result as 75 degrees . fig7 illustrates a table view of displayed values of a part design with multi - step bends . referring to fig7 , if multiple pre - bends are defined , for example , as two pre - bends of 30 degrees and one of 20 degrees , so that the material will form and harden gradually so that the final shape will be precisely 90 degrees , those multiple pre - bends will occur . the user also has the option to define an over bend for any of the recognized bends . the user may define the over bend by either angle or radius ( among others ), for example , defining a 90 degree bend that may have a final shape of 83 degrees because of 7 degrees of material spring back . example methods to accomplish the over - bend technique include keeping the bend radius constant with the change of the bend angle so that the bend region will change accordingly ; and maintaining a constant bend region , resulting in the bend radius changes when the bend angle is changed accordingly . fig8 illustrates a two - dimensional view of a part design . referring further to fig8 , the user creates a blank view 800 in a flattened status by executing an unfold command on the sheet metal part and making use of the unbending operation available to the cad program utilizing techniques commonly understood in the art . alternatively , rather than creating the blank that is flat , the user can unfold the sheet metal part into any intermediate status where only selected recognized bends are subjected to the unbend operation . from step 1 through step 5 , the presently preferred embodiment has disclosed a complete solution to directly and automatically unform an un - parameterized model to enable generation of an associative blank or intermediate shape for a sheet metal part . now that the user has created either the blank or the intermediate status , the sheet metal part is outputted as an individual blank part for use in a cad application or other known way to utilize sheet metal parts . alternatively , the solid body of any of the bends in the intermediate status may be extracted as an intermediate stage for use in a cad application or other known way to utilize sheet metal parts . the presently preferred embodiment may be implemented in digital electronic circuitry , or in computer hardware , firmware , software , or in combinations thereof . an apparatus of the presently preferred embodiment may be implemented in a computer program product tangibly embodied in a machine - readable storage device for execution by a programmable processor ; and method steps of the presently preferred embodiment may be performed by a programmable processor executing a program of instructions to perform functions of the presently preferred embodiment by operating on input data and generating output . the presently preferred embodiment may advantageously be implemented in one or more computer programs that are executable on a programmable system including at least one programmable processor coupled to receive data and instructions from , and to transmit data and instructions to , a data storage system , at least one input device , and at least one output device . the application program may be implemented in a high - level procedural or object - oriented programming language , or in assembly or machine language if desired ; and in any case , the language may be a compiled or interpreted language . generally , a processor will receive instructions and data from a read - only memory and / or a random access memory . storage devices suitable for tangibly embodying computer program instructions and data include all forms of nonvolatile memory , including by way of example semiconductor memory devices , such as eprom , eeprom , and flash memory devices ; magnetic disks such as internal hard disks and removable disks ; magneto - optical disks ; and cd - rom disks . any of the foregoing may be supplemented by , or incorporated in , specially - designed asics ( application2 - specific integrated circuits ). a number of embodiments have been described . it will be understood that various modifications may be made without departing from the spirit and scope of the presently preferred embodiment , such as the ability to apply the over - bend feature to multiple bends at one time . also it is contemplated that the recognition of bends occurs on not only an imported file from another cad system , but also on any solid model with or without feature / parameters . therefore , other implementations are within the scope of the following claims .