Abstract:
In a computer aided design system, an intelligent symbol is made up of graphical entities. Connectors join the entities to other entities at connection points. When the symbol is moved, the connectivity between entities must be maintained. A connection point positioning symbol is generated, forming part of a definition of the intelligent symbol. The connection point positioning symbol has a position and an angle which describe the connection point. The connection point positioning symbol can be displayed and then hidden from view. The connection point positioning symbol allows the user to edit a connection to the intelligent symbol.

Description:
BACKGROUND 
     This invention relates generally to the field of software for Computer Aided Design, or “CAD.” More specifically, it relates to software for use in a CAD system for creating two-dimensional diagrams, including but not limited to flow charts, electrical schematics, plant processes and the like. 
     In CAD systems, diagrams most often consist of representational graphical objects or symbols interconnected by straight, curved or serpentine lines, chains of lines, or other shapes such as arrows which illustrate the connectivity between symbols. Examples of such diagrams are electronic circuit diagrams or computer flow charts. Some kinds of diagrams, such as architectural space plans, do not require connecting lines and symbols may be connected directly to each other. The symbols are made up of individual graphical entities, such as lines, circles, arcs, text and images. Different software companies may refer to symbols using terminology such as “blocks” or “shapes.” 
     Software is widely available which automates the manipulation and interconnection of symbols, so that when an operator changes the position or other parameter of a symbol, all connections and/or symbols associated with that symbol reconfigure themselves to maintain that association. Such software is available from Visio Corp. under the name “Visio Technical”. Complex connections can be created between symbols by simply picking start and end points. Symbols and connections which provide this automatic behavior are referred to as “intelligent,” or “smart” symbols and connections. 
     Part of the definition of an intelligent symbol is made up of the locations of the connection points to which intelligent connections are to be attached. Existing graphical methods of displaying connection point locations for symbols on intelligent diagrams consist of a small symbol, such as an “X” which appears at each connection point location. These connection point symbols must be kept relatively small in order to prevent screen clutter, and are difficult to select and manipulate. Existing methods are therefore very cumbersome and do not permit easy editing of symbols, especially in cases where connectivity is relatively complex. 
     The present invention provides an efficient and easy-to-use method of defining and manipulating an intelligent symbol which facilitates the editing of symbols so that connections between symbols can be readily added and edited. 
     SUMMARY OF THE INVENTION 
     The present invention, to be used in a computer aided design system, is a method of defining an intelligent symbol. The method comprises the steps of defining a computer-generated symbol which is made up of a graphical entity and a connection point having a position in relation to a reference point. A connection point positioning symbol associated with the computer-generated symbol is defined. The connection point positioning symbol has a location and an angle. The coordinates of the location of the connection point positioning symbol are generated. These coordinates describe the position of the connection point in relation to a reference point. The angle of the connection point positioning symbol is generated. This angle describes a direction of the connection point positioning symbol in relation to a reference angle. A symbol definition for the computer-generated symbol is thus built. The definition comprises the coordinates of the location of the connection point positioning symbol and the angle of the connection point positioning symbol. 
     The present invention also comprises a method of editing an intelligent symbol by defining a connection point positioning symbol which indicates the angle and location of a connection to the intelligent symbol. 
    
    
     BRIEF DESCRIPTION OF THE DRAWINGS 
     FIG. 1 is a flow chart showing the preferred method for using connection point positioning symbols to define connection points for intelligent symbols; 
     FIG. 2A shows the basic structure of an intelligent symbol of the prior art; 
     FIG. 2B shows an intelligent symbol with connectors which allow it to be connected to other symbols; 
     FIG. 2C shows an intelligent symbol with added connection point positioning symbols of the present invention; 
     FIG. 2D shows a connection point positioning symbol of the present invention; 
     FIG. 2E shows the editing of a connection point positioning symbol and the addition of a new connection point positioning symbol; 
     FIG. 2F shows an intelligent symbol with connectors changed using the present invention and with the connection point positioning symbols hidden; 
     FIG. 3 is a flow chart which shows the preferred method for generating connection point positioning symbols for the connection point(s) of an intelligent symbol; 
     FIG. 4 is a flow chart which shows the preferred method for placing a connection point positioning symbol to define a new connection point for an intelligent symbol. 
     FIG. 5A shows an alternative embodiment in which the connection point location is displaced from the symbol. 
     FIG. 5B shows a graphical window for displaying and editing a connection point angle. 
    
    
     DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENT 
     The following is a description of the preferred embodiment of the invention. It is intended to be illustrative and not limiting. The full scope of the invention is to be determined by reference to the claims and their equivalents. 
      The following is a list of terms used throughout this description: Entity: data defining a graphical object, such as a line, circle, text, etc. which forms part of a symbol. Elements  13  and  14  are examples of entities in FIG.  2 A. 
      Symbol: a collection of entities which can be manipulated as a single object. Symbol  2  in FIG. 2A is an example of a symbol which contains entities  13  and  14 . 
      Symbol origin: the reference point from which the symbol entities are measured, typically at 0,0 on an X, Y coordinate system. In FIG. 2A,  3  indicates the origin of symbol  2 . 
      Connector: An object which shows a graphical association between symbols. In FIG. 2B,  18   a  and  22  are connectors. 
      Connection point: A point on a symbol at which a connector joins to the symbol so that the symbol can be connected to one or more other symbols. In FIG. 2B, points  9  and  5  are connection points. Symbols can also be connected directly to other symbols at connection points. 
     The preferred embodiment of the invention will now be described with reference to the flow chart of FIG.  1  and FIGS. 2A-F. The method is practiced using a suitably programmed digital computer, it being recognized that this description will enable a person of ordinary skill in the art to implement the invention in suitable computer code. 
     An intelligent symbol is shown in FIG.  2 A. This symbol is defined to include graphical entities  13  and  14  and origin  3 . The symbol definition also includes connection points  5  and  9 . FIG. 2B shows connector  18   a  connected to entity  14  and connector  22  connected to entity  13 . As shown in FIG. 2B, connector  18   a  is connected to entity  14  at connection point  9  which has a position defined relative to the origin  3 . Connector  22  is connected to entity  13  at connection point  5  which also has a position defined relative to origin  3 . Connector  18   a  forms an angle  4   a  at connection point  9  relative to reference angle  16 . Similarly connector  22  forms an angle  6  at connection point  5 . Symbol  2  is defined in terms of data representing the items just described, preferably but not necessarily including angle data. The connection points can of course be defined relative to any convenient reference point, can be at any location, and may or may not be related to a graphical entity of the intelligent symbol. 
     Now, referring to FIG. 1, it is assumed that symbol  2  has been defined in the manner described above. The operator opens symbol  2  for editing at S 1 . Different software programs provide editing for symbols in different ways. In general, editing comprises the ability by the operator to add, remove or modify symbol connection points. 
     The program now branches to step S 18  shown in FIG.  3 . At step S 18  each connection point in the definition of intelligent symbol  2  is processed in accordance with steps S 20  through S 26  and a connection point positioning symbol (referred to as a “positioner” in the figures) is generated. Consider for purposes of illustration, connection point  9  (see FIG.  2 B). At step S 20 , the location of connection point  9  (see FIG. 2C) is determined with respect to symbol origin  3 . The location of connection point  9  is previously stored as part of the definition of symbol  2 . At step S 22 , the angle of the connection point—angle  4   a —(see FIG. 2B) is determined with respect to reference angle  16 . Preferably, angle  4   a  is also previously stored as part of the definition of symbol  2 . Alternatively, angle  4   a  can be determined from another geometric relationship, for example, from the angle of connector  18   a  attached to connection point  9 , or from the position of connection point  9  with respect to symbol origin  3 , or from the size boundaries of symbol  2 . 
     At step S 24 , the program looks up the definition of the appearance of the connection point positioning symbol. The general appearance of a connection point positioning symbol is pre-stored and determined by the application software. In the preferred embodiment, the connection point positioning symbol is made up of a first end  19  to be located at a connection point and a second end having a dot or handle  17 . The line between first end  19  and handle  17  forms angle  21  relative to a reference angle. This is shown in FIG.  2 D. 
     Referring now to step S 26  in FIG.  3  and to FIG. 2C, connection point positioning symbol  10   a  is displayed at connection point  9 , making angle  4   a  which describes the direction of the connection point positioning symbol relative to reference angle  16  (but any convenient reference angle can be used). The coordinates of the location of the connection point positioning symbol are taken to be the coordinates of the location of first end  19  relative to origin  3  (but any convenient origin can be used). Thus a connection point positioning symbol having an angle and a location is defined for a particular connection point  9  and displayed. Steps S 20  through S 26  are then repeated for each remaining connection point defined for the symbol. The flow chart now returns to step S 3  in FIG.  1 . 
     In the preferred embodiment of the invention, the connection point positioning symbols for every connection point are displayed simultaneously during editing. However, in an alternative embodiment, connection point positioning symbols are displayed only while they are being modified or created. In that case, when the operator selects a connection point to modify, the connection point positioning symbol for that connection point is displayed. The other connection point positioning symbols remain hidden. 
     Once symbol  2  is opened for editing and the connection point positioning symbol(s) are generated, the user chooses whether to create a new connection point or modify an existing connection point. See S 3 . If the user chooses to modify an existing connection point, the program branches to step S 6  where the operator enters data identifying the connection point positioning symbol to modify, for example connection point positioning symbol  10   a  in FIG.  2 C. The user can now choose to edit or delete the connection point positioning symbol. See step S 8 . 
     The location and angle of the connection point positioning symbol may be specified by the operator by graphically moving or rotating the connection point positioning symbol via a pointing device or numerically via keyboard entry. See step S 10 . To modify the connection point positioning symbol, for example to accommodate a desired horizontal orientation of the symbol to which symbol  2  is connected via connector  18   a , the operator selects connection point positioning symbol  10   a  and rotates it to a new angle  4   b , as shown in FIG.  2 E. The modified connection point positioning symbol is shown as  10   b  in FIG.  2 E. 
     In the preferred embodiment just described, the connection point positioning symbol is displayed at the connection point. However, the point at which the connection point positioning symbol is displayed and hence the point about which the connection point positioning symbol rotates need not coincide exactly with the point which defines the connection point location. The connection point positioning symbol may be displaced from the connection point. In this alternative embodiment of the invention, two related symbols are used which together define the connection point location and angle. As shown in FIG. 5A, the connection point positioning symbol is split into location symbol  20  which defines the connection point location and angle symbol  30  which rotates about point  28  to define angle  29 . The angle connection point positioning symbol can be displayed to the operator anywhere, including in a separate window or control panel such as shown in FIG.  5 B. The angle of the connection point can be displayed and adjusted using a dial  32 , slider  36 , or other methods. Radio button  34 , numerical  38  or other entry methods may also be used. 
     If, at step S 3  of FIG. 1, the operator chose to create a new connection point rather than modify an existing one, the program branches to step S 28  in FIG.  4 —a flow chart of a method to create a new connection point positioning symbol at an operator specified location and angle. At step S 28  in FIG. 4, the operator is prompted for a location for the new connection point. The operator inputs the connection point location  7  (see FIG. 2E) at step S 30 . At step S 32 , the appearance of the connection point positioning symbol is retrieved from the software application data. A new connection point positioning symbol  11  is displayed at point  7  at a default angle (not shown). The operator is prompted at step S 36  for an angle and orients connection point positioning symbol  11  to angle  25  at step S 38  by selecting the connection point positioning symbol and rotating it about point  7  until it is in the desired, preferably orthogonal, orientation. 
     The program allows the operator to continue to add or modify connection points until all connection points on the symbol have been satisfactorily processed. See step S 12  of FIG.  1 . 
     If the alternative method of displaying a single connection point positioning symbol only during the editing of a particular connection point is employed, the location and angle of the displayed connection point positioning symbol associated with a connection point are stored as computer data and the connection point positioning symbol is hidden prior to the next editing operation. 
     When the operator is satisfied, the symbol is closed for editing at step S 14 . 
     At step S 11  the newly created connection point location  7  and angle  25  are determined from connection point positioning symbol  11  and added to the computer definition of symbol  2 . At step S 13  the angle  4   b  of connection point positioning symbol  10   b  for modified connection point  9  is determined and added to the computer definition of symbol  2 . At step S 16 , any connection point which had its connection point positioning symbol deleted by the operator at step S 8  is removed from the computer definition of its respective symbol. At step S 17  the connection point positioning symbols are hidden and the operator can continue to edit the intelligent diagram. 
     In FIG. 2F, connector  18   b  will now be joined to symbol  2 . Connector  18   b  connects at the new angle  4   b  and a location determined by connection point positioning symbol  10   b  in FIG.  2 E. 
     New connector  26  (see FIG. 2F) will connect to symbol  2  at connection point  7  at angle  25  of new connection point positioning symbol  11  as shown in FIG.  2 E.