Abstract:
A system, method, and computer program for direct sheet metal unforming comprising selecting a planar face on a part design; identifying a plurality of linear bends associated with said planar face; calculating a plurality of bend parameters corresponding to each of said linear bends; and converting said part design having said linear bends to a sheet metal partand appropriate means and computer-readable instructions.

Description:
CROSS-REFERENCE TO RELATED APPLICATIONS 
       [0001]    This Application claims priority to pending Provisional U.S. Application Ser. No. 60/896,702, filed on Mar. 23, 2007, which application is incorporated herein by reference in its entirety. 
     
    
     TECHNICAL FIELD 
       [0002]    The presently preferred embodiment of the innovations described herein relate generally to software applications. More specifically, the presently preferred embodiment relates to directly recognize and unfold linear bends in a sheet metal part. 
       BACKGROUND 
       [0003]    The progressive die industry is a pillar industry for automotive, consumer electronics, computer manufacture, etc. With the rapid changes of products in those industries, product companies need die and tooling capabilities with significantly shortened die tool lead time. Critical to the progressive die design is the ability to import a non-sheet metal filed into a CAD application, and then to be able to quickly convert it into a sheet-metal part for folding operations without any parameters from the original imported file. Once converted to a sheet-metal part, the user can then generate a flattened shape of a sheet metal part (or blank) and its intermediate states. Concomitantly, the product company will apply its own standards and design requirements into the process. 
         [0004]    Unfolding of a sheet metal part is the first and most important step to design a progressive die. Unfolding methods vary based in part on different shapes of the sheet metal part. For example, for free-form sheet metal, one can make use of known CAE-FEM methods to perform unfolding. For a straight-break part, if it is an imported model or designed using generic features, one could convert it into sheet metal self-formable feature-based model. Known art includes the ability to re-build the part by using sheet metal features, another one is to re-build it automatically, the first method is very time-consuming and requires that a die designer have high sheet metal skill, other limitations exist where there are no “mapped” features. 
         [0005]    What is needed is a system and method not currently supported in the known prior art for direct sheet metal unfolding of an imported non-sheet-metal part into various bending forms. 
       SUMMARY 
       [0006]    To achieve the foregoing, and in accordance with the purpose of the presently preferred embodiment as described herein, the present application provides a computer implemented method, comprising selecting a planar face on a part design; identifying a plurality of linear bends associated with said planar face; calculating a plurality of bend parameters corresponding to each of said linear bends; and converting said part design having said linear bends to a sheet metal part. The method, wherein said plurality of bend parameters includes one of a bend angle, an inside bend radius, and a part thickness. The method, further comprising calculating a developed length from said bend angle, said inside bend radius, said part thickness, and a calculated K factor. The method, further comprising assigning a plurality of blend attributes to said planar face. The method, further comprising merging a plurality of coaxial blends with a first radius and angle into a merged bend. The method, further comprising decomposing a merged bend into a plurality of step blends. The method, further comprising defining an over-bend as necessary. The method, further comprising unfolding said sheet metal part into a form. The method, further comprising outputting a blank part from said form, wherein said form status is a flatten status. The Method, further comprising extracting a solid body part from said form, wherein said form status is an intermediate status. 
         [0007]    An advantage of the presently preferred embodiment is to provide a computer-program product tangibly embodied in a machine readable medium to perform a computer implemented method, comprising instructions operable to cause a computer to select a planar face on a part design; identify a plurality of linear bends associated with said planar face; calculate a plurality of bend parameters corresponding to each of said linear bends; and convert said part design having said linear bends to a sheet metal part. The computer-program product, wherein said plurality of bend parameters includes one of a bend angle, an inside bend radius, and a part thickness. The computer-program product, further comprising instructions to calculate a developed length from said bend angle, said inside bend radius, said part thickness, and a calculated K factor. The computer-program product, further comprising instructions to assign a plurality of blend attributes to said planar face. The computer-program product, further comprising instructions to merge a plurality of coaxial blends with a first radius and angle into a merged bend. The computer-program product, further comprising instructions to decompose a merged bend into a plurality of step blends. The computer-program product, further comprising instructions to define an over-bend as necessary. The computer-program product, further comprising instructions to unfold said sheet metal part into a form. The computer-program product, further comprising instructions to output a blank part from said form, wherein said form status is a flatten status. The computer-program product, further comprising instructions to extract a solid body part from said form, wherein said form status is an intermediate status. 
         [0008]    And another advantage of the presently preferred embodiment is to provide a data processing system having at least a processor and accessible memory to implement a method, comprising means for selecting a planar face on a part design; means for identifying a plurality of linear bends associated with said planar face; means for calculating a plurality of bend parameters corresponding to each of said linear bends; and means for converting said part design having said linear bends to a sheet metal part. 
         [0009]    Other advantages of the presently preferred embodiment will be set forth in part in the description and in the drawings that follow, and, in part will be learned by practice of the presently preferred embodiment. The presently preferred embodiment will now be described with reference made to the following Figures that form a part hereof. It is understood that other embodiments may be utilized and changes may be made without departing from the scope of the presently preferred embodiment. 
     
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         [0010]    A presently preferred embodiment will hereinafter be described in conjunction with the appended drawings, wherein like designations denote like elements, and: 
           [0011]      FIG. 1  is a logic flow diagram of the method employed by the presently preferred embodiment; 
           [0012]      FIG. 2  is an orthographic view of a part design; 
           [0013]      FIG. 3  illustrates a table view of displayed values of a part design; 
           [0014]      FIG. 4  illustrates an orthographic view of a part design with merged coaxial bends; 
           [0015]      FIGS. 5  illustrates a table view of displayed values of a part design with merged coaxial bends; 
           [0016]      FIG. 6  illustrates an orthographic view of a part design with multi-step bends; 
           [0017]      FIG. 7  that is a table view of displayed values of a part design with multi-step bends; and 
           [0018]      FIG. 9  is a block diagram of a computer environment in which the presently preferred embodiment may be practiced. 
       
    
    
     DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS  
       [0019]    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.  FIG. 9  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. 
         [0020]    Referring to  FIG. 9 , 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. 
         [0021]    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 . 
         [0022]    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. 
         [0023]    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. 
         [0024]      FIG. 1  is a logic flow diagram of a method employed by the presently preferred embodiment. Referring to  FIG. 1 , 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 ). 
         [0025]    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. 
       Sheet Metal Unfolding 
       [0026]    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. 
       Step 1 
       [0027]      FIG. 2  is an orthographic view of a part design. Referring further to  FIG. 2 , 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. 
       Step 3 
       [0028]      FIG. 3  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. 
       Step 4 
       [0029]    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. 
       Optional Steps 
       [0030]      FIG. 4  illustrates an orthographic view of a part design with merged coaxial bends. Referring to  FIG. 4 , 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  FIG. 5 . 
         [0031]      FIG. 6  illustrates an orthographic view of a part design with multi-step bends. Referring to  FIG. 6 , 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.  FIG. 7  illustrates a table view of displayed values of a part design with multi-step bends. Referring to  FIG. 7 , 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. 
         [0032]    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. 
       Step 5 
       [0033]      FIG. 8  illustrates a two-dimensional view of a part design. Referring further to  FIG. 8 , 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. 
       Conclusion 
       [0034]    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. 
         [0035]    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. 
         [0036]    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. 
         [0037]    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). 
         [0038]    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.