Abstract:
A method and system are described that allow conversion of a three-dimensional representation of a wire harness to a two-dimensional representation. In one aspect, the three-dimensional representation of the wire harness is converted to a two-dimensional orthogonal representation with branches in the wire harness arranged perpendicularly. In another aspect, when more than four branches enter a single node in the wire harness, one or more of the branches are placed within a predetermined angle to the perpendicular lines. The orthogonal representation allows simplified detection of disconnects in the wire harness that are otherwise difficult to visualize in three dimensions.

Description:
CROSS REFERENCE TO RELATED APPLICATION DATA 
   This application is a continuation of co-pending International Patent Application No. PCT/EP2006/069552, filed Dec. 11, 2006, which claims the benefit of U.S. Provisional Patent Application No. 60/751,342, filed Dec. 16, 2005, both of which are hereby incorporated by reference. 

   FIELD OF THE INVENTION 
   The present invention generally relates to the design of wire harnesses, and, more particularly, to an orthogonal view of a wire harness in two dimensions. 
   BACKGROUND 
   Wire harnesses include a bundle of insulated conductors bound together, for example, by helically wound tape to produce an arrangement that is compact and easy to manage. Wire harnesses may be used in a variety of applications to electrically interconnect components of a product. For example in an automobile, a harness may allow connections to the dash board, head lights, battery, tail lights, etc. 
   Design of a wire harness takes place in both three-dimensions and two-dimensions. A three-dimensional (3D) mechanical computer aided design (MCAD) system is used to hold the geometry definition of the harness. However, much of the actual design, engineering, pre-production, preparation of costs, and bills of material are all completed in a separate two-dimensional (2D), electrical computer aided design (ECAD) system. Typically, the geometric harness data may be exported from the 3D system to the 2D system, which engineers use to finish the design. For example, the 2D system has a component library and tools needed to solve logical (rather than geometrical) problems. 
   It is desirable to obtain 2D drawings of the system, which are used for a variety of purposes including creating a layout of an assembly board used to manufacture the wire harness. For this reason, MCAD systems generally include a “mechanical flattening” program for converting the 3D geometric harness data to 2D. Such flattening programs take into account mechanical constraints, such as the flexibility of the wires and torsional constraints, in producing the 2D image. However, these mechanical flattening programs are very slow and error prone. 
   Another option to obtain a 2D drawing is to export the 3D data to a 2D system and perform the flattening in the 2D system. Indeed, such systems exist, but only remove the Z component of the 3D data. The result is that there are many overlapping nodes and branches that hamper the visualization of the harness in 2D. Such overlaps may be manually adjusted, but this also is a slow process and does not provide ideal results. 
   Thus, it is desirable to produce a flattening system that generates a clean and esthetically pleasing view of a harness in 2D. 
   SUMMARY 
   A method and system are described that allow conversion of a three-dimensional representation of a wire harness to a two-dimensional representation. 
   In one aspect, the three-dimensional representation of the wire harness is automatically converted to a two-dimensional orthogonal representation with branches in the wire harness arranged perpendicularly. 
   In another aspect, when more than four branches enter a single node in the wire harness, one or more of the branches are placed at a predetermined angle to the perpendicular lines. 
   In still other aspects, the perpendicular lines are arranged starting with a backbone of the wire harness, which may be determined using a variety of techniques. 
   The orthogonal representation allows simplified detection of disconnects in the wire harness that are otherwise difficult to visualize in three dimensions. 
   These features and others of the described embodiments will be more readily apparent from the following detailed description, which proceeds with reference to the accompanying drawings. 

   
     BRIEF DESCRIPTION OF THE DRAWINGS 
       FIG. 1  is a system view showing a three-dimensional MCAD system and a two-dimensional ECAD system used to create a wire harness. 
       FIG. 2  shows a flowchart of a method for creating an orthogonal two-dimensional view of the wire harness. 
       FIG. 3  is a flowchart of a method for finding a backbone of a wire harness. 
       FIG. 4  is a particular example showing how the backbone is determined using the method of  FIG. 3 . 
       FIG. 5  is another flowchart of a method for finding a backbone of a wire harness. 
       FIG. 6  is a particular example showing how the backbone is determined using the method of  FIG. 5 . 
       FIGS. 7A-7C  are flowcharts of a method for generating the orthogonal view. 
       FIG. 8  is an example orthogonal view of a wire harness. 
       FIG. 9  is an example conversion from a wire harness represented using three-dimensional data to an orthogonal view of the wire harness. 
       FIG. 10  shows an example of fan-out. 
       FIG. 11  is a system view of a network that may be used in conjunction with the system and method. 
       FIG. 12  shows the method being applied on the network of  FIG. 11 . 
   

   DETAILED DESCRIPTION 
     FIG. 1  shows a system  10  used to create a wire harness  12 . The wire harness  12  is shown positioned on a typical assembly board  14  and held in place by supporting jigs  16  in accordance with two-dimensional drawings. The wire harness is formed by multiple branches including a backbone branch  18  and various sub-branches  20 . The design of the wire harness occurs in both a three-dimensional MCAD system  22  and an ECAD system  24 . The master data for the geometry definition of the harness is in three-dimensions in the MCAD system  22 . However, to finish the detailing of the wire harness the 3D data is exported to the ECAD system  24  where further design, pre-production, preparing costs, a bill of materials, etc. are performed. It is within the ECAD system that a two-dimensional drawing is desirable in order to understand what the harness comprises and help build a design process around it. Additionally, the two-dimensional representation helps produce a full-scale representation of the layout of the board  14  on which the wire harness will be built. 
     FIG. 2  shows a flowchart of a method for generating the two-dimensional orthogonal representation of the wire harness. In process box  30 , the three-dimensional data is received, such as from MCAD system  22 . In process block  32 , the backbone of the system is determined. As further described below, the backbone is the starting point and is centrally located in the representation so that readability of the two-dimensional representation is maximized. A further description of the backbone determination is below in regards to  FIGS. 3-6 . In process block  34 , the two-dimensional representation of the wire harness is automatically generated with a majority of the branches arranged perpendicularly. Such an orthogonal view is shown in  FIG. 8  and is described in further detail below. 
     FIG. 3  shows a flowchart of a method for determining the backbone of the wire harness. In process block  60 , a degree (e.g., a number) is assigned to each node. The degree is representative of the number of branches connected to the node. In process block  62 , all degrees that have a value of “1” are decremented to “0” and removed (process block  64 ). In process block  66 , all degrees associated with the nodes are decremented an amount equal to the number of branches that were removed from that node. In process block  68 , a check is made to determine whether there are two nodes that have a degree equal to “1”. If so, the method ends at process block  70 . If not, the process continues and is repeated starting with process block  62 . 
     FIG. 4  is an example of backbone selection using the method of  FIG. 3 . The sequence of progression is illustrated by the letters “A”, “B” and “C”. The wire harness designated by the letter “A” is a pictorial view of 3D data supplied by the MCAD system and shows multiple branches, some of which are shown generically at  90 . The branches are separated by nodes, some of which are shown generally at  92 , and have a number associated therewith indicative of the number of branches entering the node. End nodes are designated with a “1”. Process block  62  of  FIG. 4  explains that all nodes with a degree “1” are reduced to degree “0”. Thus, as shown at “B” in  FIG. 4 , the end nodes are reduced to “0”. Corresponding to process block  64 , all branches with a “0” are removed resulting in the final stage “C” in the progression. Additionally, corresponding to process block  66 , the degree of each node is reduced according to the number of branches removed. Comparing B and C, node  94  had two branches removed. Thus, node  94  is reduced by 2; node  96  is reduced by 1; node  98  remains unchanged; node  100  is reduced by 1; and node  102  is reduced by 2. Once there are two nodes having a degree of “1”, the method is finished and the result is the determined backbone of the wire harness. 
     FIG. 5  shows another method for determining a backbone of a wire harness. In process block  120 , a branch is selected with the largest diameter in the wire harness. In process block  122 , opposing end nodes of the largest branch are separately analyzed to determine which are the largest branches coupled to each end node. All other branches are deleted (process block  124 ). In decision block  126 , an analysis is done to see if every node in the wire harness has been considered. If yes, then the method ends at  128 . If not, then each of the non-deleted branches is analyzed in the same way as the largest branch. 
     FIG. 6  shows a progression of selecting a backbone of a wire harness according to the method of  FIG. 5 . Corresponding to process block  120  in  FIG. 5 , the branch with the largest diameter is selected first as shown at  140 . Branch  140  has two opposing nodes  142  and  144 . Starting with node  142 , there are two branches  146  and  148  extending there from. Branch  148  is determined to be of a larger diameter so branch  146  and any branches connected thereto are deleted. As for node  144 , branch  150  is determined to have the largest diameter and branches  152  and  154  are deleted. The result is shown at “B” with branches  140 ,  148  and  150  selected. Branch  148  is an end branch, so no further analysis is needed on the right side of the wire harness. On the left side, there is only one branch  152 , so it is selected as having the largest diameter as shown at “C”. As shown at “D”, branch  154  is selected and  156  is deleted. Finally, at “E”, branch  160  is selected and branch  158  is deleted. The final backbone is shown at “F”. 
     FIGS. 7A-7C  shows a method for automatic generation the orthogonal view of the wire harness in two dimensions. Starting with  FIG. 7A , a determination is made if there is more than one harness in the three-dimensional representation (process block  180 ). Generally, the three-dimensional data includes just one wire harness, but if there are electrical disconnects in the harness, the system treats each electrically isolated part of the harness as a separate sub-harness. Thus, a first check is made by simply going through the nodes in the wire harness to see that they are all connected. If not, each sub-harness is taken in turn and converted to an orthogonal view separately (process block  182 ). If there is just one wire harness without disconnects, then the entire wire harness is converted to an orthogonal view. Process block  182  performs a call to an object or procedure shown in  FIG. 7B . 
     FIG. 7B  shows at process block  184 , parameters are received relating to angle and origin. It is helpful to look at an example in  FIG. 8  during the explanation of  FIG. 7 .  FIG. 8  shows a wire harness  198  after it is fully drawn. The first part drawn is the backbone, which is the horizontal line  200  starting at origin  202 , which includes multiple segments defined by nodes  204 ,  206 ,  208 ,  210 ,  212 , and  214 . In this particular example, the backbone is drawn at an angle of “0”. Thus, returning to process block  184  of  FIG. 7B , the angle is “0” and origin is the coordinates identified at  202 . In process block  186 , the backbone  200  is determined using the techniques described in  FIGS. 3-6 . Then the backbone is drawn as a straight line as shown in  FIG. 8 , with the nodes  204 ,  206 ,  208 ,  210 ,  212 , and  214  in their appropriate location. At process block  188 , each sub-branch (sub-branch) connected to the backbone is processed so that it can be represented in the two-dimensional orthogonal view. 
   For example, returning to  FIG. 8 , the first sub-branch is located at node  204 , which has two takeouts (herein after called sub-branches)  220 ,  222 . In process block  188  of  FIG. 7B , sub-branch  220  is processed first by calling the object or process of  FIG. 7C . In process block  190 , the sub-branch  220  is disconnected from the backbone  200 . In process block  192 , the sub-branch  220  is treated like a backbone and the object or process in  FIG. 7B  is called recursively. The angle used is “90” degrees and the origin is node  204 . The result is that the sub-branch  220  is drawn vertically upward. There are no sub-sub-branches connected to sub-branch  220 , but if there were, they would be handled the same way with an angle of 90 degrees added at each level of recursion. An example of such a sub-sub-branch is shown at  230 , which is at an angle of 180 degrees. In any event, the recursive routines of  FIG. 7  continue in the described way in order to draw the wire harness of  FIG. 8 . It should also be noted that when there are more than four sub-branches entering a node, one of the sub-branches is drawn at an angle less than 90 degrees, such as shown at  232 . The exact angle used is an input to the algorithm. 
     FIG. 9  shows an example of a wire harness as a three-dimensional representation (even though displayed on a 2D monitor) at  250 . An orthogonal, topology-based representation is shown at  252  and is a view generated by converting the 3D view  250 . In this example, there are multiple disconnects in the harness shown at  250 , although such disconnects are impossible to see due to node overlap and branch overlap. However, in the orthogonal view  252 , the disconnects are readily visible. The disconnects generate sub-harnesses  260 ,  262 ,  264 ,  266 ,  268 ,  270 , and  272 . Each sub-harness is separately processed in order to generate the orthogonal view shown at  252 . 
   The sub-harness at  260  is an example of fan-out and is shown in more detail in  FIG. 10 . Fan-out occurs when there are multiple branches (more than 4) entering a single node. Each branch after the fourth cannot be drawn perpendicularly because it will overlap with other branches and be non-visible. Thus, the branches are represented at various angles within a fan angle which is an angle of less than 90 degrees provided as an input. The number shown on the sub-branches corresponds to the order they are represented. Longer branches are generally placed on the perimeter of the fan-out and in the center to increase visibility. 
     FIG. 11  shows that portions of the system may be applied to a distributed network, such as the Internet. For example, a server computer  360  may have an associated database  362  (internal or external to the server computer). The server computer is coupled to a network shown generally at  364 . One or more client computers, such as those shown at  368  and  370 , are coupled to the network to interface with the server computer using a network protocol. 
     FIG. 12  shows a flow diagram using the method on the network of  FIG. 11 . In process block  400 , the 3D wire harness data is sent from a client computer, such as  368 , to the server computer  360 . In process block  402 , the backbone is determined using any desired method. In process block  404 , the 2D orthogonal view is generated on the server computer. In process block  406 , the results are used or displayed to the user on the client computer. 
   Having illustrated and described the principles of the illustrated embodiments, it will be apparent to those skilled in the art that the embodiments can be modified in arrangement and detail without departing from such principles. 
   For example, it is readily apparent that the orthogonal view does not require every branch and every sub-branch to be perpendicular. Indeed, a typical orthogonal view has more than 75% of the lines orthogonal, while others are at angles, such as when a fan-out is implemented. 
   Additionally, it should be recognized that the orthogonal view is a topology-based view and is not necessarily to scale. 
   Still further, the wire harness disconnects found in the orthogonal view may be highlighted and when switching back to the 3D view, the area of disconnection may remain highlighted and thus provide immediate visual feedback as to the 3D location of the missing connections. If the MCAD tool provides a network connected mode, the branches can be highlighted in the MCAD tool allowing the designer to quickly fix the master 3D data. 
   Further, although the backbone is found first before generating the orthogonal view, those skilled in the art recognize that other starting points are possible and thus the backbone need not be determined in certain applications. 
   In view of the many possible embodiments, it will be recognized that the illustrated embodiments include only examples of the invention and should not be taken as a limitation on the scope of the invention. Rather, the invention is defined by the following claims. We therefore claim as the invention all such embodiments that come within the scope of these claims.