WO2015129645A1 - Object selection method, program, and recording medium - Google Patents

Object selection method, program, and recording medium Download PDF

Info

Publication number
WO2015129645A1
WO2015129645A1 PCT/JP2015/055105 JP2015055105W WO2015129645A1 WO 2015129645 A1 WO2015129645 A1 WO 2015129645A1 JP 2015055105 W JP2015055105 W JP 2015055105W WO 2015129645 A1 WO2015129645 A1 WO 2015129645A1
Authority
WO
WIPO (PCT)
Prior art keywords
selection
cell
active cell
objects
arrangement
Prior art date
Application number
PCT/JP2015/055105
Other languages
French (fr)
Japanese (ja)
Inventor
石田 祐介
Original Assignee
石田 祐介
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 石田 祐介 filed Critical 石田 祐介
Publication of WO2015129645A1 publication Critical patent/WO2015129645A1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0481Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
    • G06F3/04812Interaction techniques based on cursor appearance or behaviour, e.g. being affected by the presence of displayed objects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/34Graphical or visual programming

Definitions

  • the present invention relates to a method for selecting an object in drawing creation by a computer.
  • Patent Document 1 discloses a system that arranges graphic elements in cell units and creates an entire drawing. In this system, it is possible to create a flowchart by arranging one processing block or connection line in one cell.
  • cell selection and graphic element selection are linked. That is, if a cell is selected, the graphic element arranged in the cell is automatically selected.
  • the conventional method does not consider selection of graphic elements arranged across cells.
  • the present invention enables cell selection and graphic element selection to be linked when there are a plurality of graphic elements in a cell.
  • the present invention enables selection of graphic elements arranged across cells to be linked with cell selection.
  • a computer-implemented method is as follows: A grid dividing step for dividing the drawing area of the drawing into line segments that divide into a grid pattern; When a section divided by the lattice is a cell, An active cell selection step of selecting an active cell that is the cell to be operated;
  • the drawing is composed of a set of objects (graphic elements) including drawing content information,
  • a selection candidate object determining step for determining a plurality of selection candidates from the plurality of objects existing within the range of the active cell, and an object selection step for bringing at least one of the plurality of selection candidates into a selected state
  • a second feature is that the method further comprises a toggle selection step of selecting at least one object different from the currently selected object.
  • the object includes an attribute indicating a type, A type filter setting step for setting a type filter that is the type to be selected;
  • the method further includes a type filtering step of determining a selection candidate according to the type filter from among the plurality of objects existing within the range of the active cell.
  • the method further comprises a type object selection state update step of updating the selection state of the object.
  • the object placement method is divided into a cell placement arranged in association with the cell, and a free placement placed independently of the cell, An arrangement mode setting step for setting the arrangement method to be selected;
  • a placement method-specific object determination step of determining a selection candidate according to the placement method set in the placement mode setting step from among the plurality of objects existing within the range of the active cell.
  • the method further comprises an object selection state update step for each arrangement method for updating the selection state of the object.
  • cell selection and graphic element selection can be linked even when there are a plurality of graphic elements in the active cell.
  • selection of graphic elements arranged across cells (free arrangement) can be linked with cell selection.
  • the graphic element to be selected can be switched from among a plurality of graphic elements existing in the active cell. Since extra graphic elements outside the active cell are not candidates for selection, operability is improved.
  • the types of graphic elements to be selected from a plurality of graphic elements existing in the active cell can be limited.
  • the object selection state can be automatically updated after the type filter setting step.
  • the arrangement method of graphic elements to be selected from a plurality of graphic elements existing in the active cell can be limited.
  • the object selection state can be automatically updated after the arrangement mode setting step.
  • FIG. 1 is a block diagram illustrating an example of a computer system.
  • the computer 101 includes a CPU 102, a system bus 103, a main storage device 104, an auxiliary storage device 105, an input I / F 107, a video I / F 110, and a network I / F 112.
  • CPU102 is a central processing unit.
  • the CPU 102 reads out and executes an instruction from the main storage device 104 via the system bus 103.
  • the execution result is stored in a register in the CPU 102.
  • other blocks are controlled via the system bus 103.
  • the system bus 103 is a bus for exchanging information with each block in the computer 101.
  • the system bus 103 is not limited to one type, and several types of buses may be combined into the system bus 103.
  • the memory bus, PCI bus, USB, and the like are collectively referred to as the system bus 103.
  • the main storage device 104 is a device capable of reading and writing data at a higher speed than the auxiliary storage device 105.
  • a volatile storage medium such as DDR memory is used.
  • An instruction list (program) to be executed by the CPU 102 is temporarily stored in the main storage device 104.
  • the auxiliary storage device 105 is a device that is slower than the main storage device 104 but can store a large amount of data.
  • a non-volatile storage medium such as a hard disk or a flash memory is used.
  • the auxiliary storage device 105 may be a plurality of different types of devices.
  • the storage medium of the auxiliary storage device 105 may be a removable storage medium 106.
  • the removable recording medium 106 is a medium that can be attached to and detached from the auxiliary storage device 105.
  • the auxiliary storage device 105 For example, there are a magnetic disk, an optical disk, a flash memory card, and the like.
  • the input I / F 107 receives user operations. For example, when the user operates the keyboard 108 or the mouse 109, the signal flows from the input I / F 107 to the system bus 103 and reaches the CPU 102.
  • Devices connected to the input I / F are not limited to the keyboard 108 and the mouse 109. For example, a pen tablet, a touch panel, a gesture input device, or the like may be used.
  • the keyboard 108 accepts key input from the user.
  • the received key input information is transmitted to the input I / F 107.
  • the transmission method may be wired or wireless.
  • the mouse 109 accepts position input and button input from the user.
  • the received position input information and button input information are transmitted to the input I / F 107.
  • the transmission method may be wired or wireless.
  • Video I / F 110 outputs a display signal to display 111.
  • the video I / F 110 stores display contents on the display 111 in a memory.
  • the display content is rewritten by an instruction from the CPU 102.
  • Display 111 displays information to the user. Examples of the display 111 include a CRT and a liquid crystal display.
  • the display content is transmitted from the video I / F 110.
  • the transmission means may be wired or wireless. Also, analog transmission or digital transmission may be used.
  • the network I / F 112 provides a means for communicating with another computer. For example, it provides a means of communication by connecting to a LAN or WAN.
  • the remote computer 113 is a computer that can be searched from the network I / F 112.
  • the computer 101 and the remote computer 113 may be directly connected, or may be indirectly connected via another computer or device.
  • the method and program in the present embodiment can be implemented by the CPU 102 of the computer 101 executing the instruction list (program) stored in the main storage device 104.
  • the instruction list can be stored in the main storage device 104 by transferring the instruction list stored in the auxiliary storage device 105 to the main storage device 104.
  • the command list can be downloaded from the remote computer 113 to the main storage device 104.
  • the main storage device 104, the auxiliary storage device 105, and the removable medium 106 are computer-readable recording media.
  • the computer-readable recording medium in the present invention is not limited to the medium exemplified in this embodiment, and all computer-readable recording media are targets.
  • FIG. 2 is a schematic diagram of a drawing area of the drawing.
  • the coordinate system of the drawing area 201 of the drawing is such that the upper left is the origin 202 and the lower right direction is plus. In the following description, this coordinate system is referred to as a drawing coordinate system.
  • Write x to mean the horizontal coordinate value in the drawing coordinate system
  • y to mean the vertical coordinate value.
  • the coordinate system of the drawing area is determined as described above, but the method of determining the coordinate system is not limited to this.
  • FIG. 3 is a schematic view of the drawing area of the drawing divided into grids.
  • the drawing area 201 is divided into a grid pattern and one section is called a cell.
  • the position of each cell is uniquely determined by the column number and the row number.
  • the upper left is the origin cell 301 and the lower right direction is plus.
  • this coordinate system is referred to as a grid coordinate system.
  • Write col to mean the column number in the grid coordinate system and row to mean the row number.
  • the grid coordinate system is determined as described above, but the method of determining the coordinate system is not limited to this.
  • FIG. An object is a graphic element for composing a drawing.
  • a drawing consists of a collection of objects.
  • An attribute is information indicating the characteristics of the object. For example, character string information to be drawn, numerical information indicating the position of the object, and the like are included.
  • the attributes included in the object are different for each object. However, it is preferable to include a type as an attribute common to all objects.
  • the type is a numerical value or a character string uniquely determined for each type of object. The same type is assigned to the same type of figure.
  • a figure 401 in FIG. 4 is an example of an object in this embodiment.
  • a graphic 401 represents a graphic element for expressing a class in UML. Attributes included in this object include a type, an arrangement coordinate 402, a width 403, a height 404, and internal text information.
  • the type is a numerical value or a character string, and records that the figure 401 is a class.
  • the arrangement coordinates 402, x and y indicating positions in the drawing coordinate system are recorded numerically.
  • the width 403 records the width of the figure 401 as a numerical value in units in the drawing coordinate system.
  • the height 404 records the height of the figure 401 as a numerical value in units in the drawing coordinate system.
  • information (class name, property name, method name, etc.) to be displayed in the graphic 401 is recorded as a character string.
  • FIG. A graphic 501 represents a graphic element for expressing an actor in UML.
  • the figure 501 is not a rectangle. Therefore, the boundary rectangle 505 of the figure 501 is set.
  • the attributes included in this object include the type, the arrangement coordinates 502, the width 503 of the boundary rectangle 505, and the height 504 of the boundary rectangle 505.
  • the type is a numerical value or a character string, and records that the figure 501 is an actor.
  • arrangement coordinates 502, x and y indicating positions in the drawing coordinate system are recorded numerically.
  • width 503 the width of the boundary rectangle 505 is recorded as a numerical value in units in the drawing coordinate system.
  • height 504 the height of the boundary rectangle 505 is recorded as a numerical value in units in the drawing coordinate system.
  • a graphic 601 indicates a graphic element of a connector having a role of connecting objects. Attributes included in this object include a type, a start point 602 (P1), a relay point 603 (P2), and an end point 604 (P3).
  • the start point 602, the relay point 603, and the end point 604 respectively record x and y indicating positions in the drawing coordinate system as numerical values.
  • only one relay point 603 is provided, but a plurality of relay points may be included.
  • the relay point 603 may not be included, and only the start point 602 and the end point 604 may be configured.
  • the kind and attribute of an object are not limited to this, All graphic elements can become an object.
  • packages, notes (comments), use cases, actions, states, messages, etc. in UML can be objects.
  • processes, branches, and connection lines in the flowchart can also be objects.
  • straight lines, curves, circles, polygons, bitmap images, etc. in general-purpose drawings can also be objects.
  • An array which is a necessary data structure is introduced.
  • An array is a data structure for storing a set of values (elements). Each element of the array can be accessed by index number. The size of the memory area allocated to the array is determined statically.
  • the following description is made when accessing an array.
  • the nth element of Array is Array [n] It can be accessed at.
  • the number of elements included in the Array is Array.count It can be obtained at.
  • Valid range for Array index number is 0 ⁇ n ⁇ Array.count
  • a dynamic array which is a necessary data structure is introduced. Similar to an array, a dynamic array is a data structure for storing a set of values (elements). Each element of the dynamic array can be accessed by an index number as in the array. The size of the memory area allocated to the dynamic array is dynamically determined. That is, elements can be added or deleted without being limited to the size of the memory area allocated first.
  • the following description is made when accessing a dynamic array.
  • the dynamic array is DynamicArray and the index number is n
  • the nth element of DynamicArray is DynamicArray [n] It can be accessed at.
  • the number of elements included in the Array is DynamicArray.count It can be obtained at.
  • Valid range for Array index number is 0 ⁇ n ⁇ DynamicArray.count And DynamicArray.count changes as elements are added or removed from the dynamic array.
  • Dynamic arrays can be implemented by known techniques. For example, in the STL (Standard Template Library) for C ++ language, vector containers can be used as dynamic arrays.
  • STL Standard Template Library
  • an associative array which is a necessary data structure is introduced.
  • An associative array is also a data structure for storing a set of values (elements). Each element of the associative array can be accessed by a key.
  • the key can be any integer, string or object. Unlike the index number, the key does not need to be consecutive and there is no upper or lower limit. Elements in an associative array can be referenced by specifying a key.
  • the associative array does not include multiple identical keys.
  • a dynamic associative array is used.
  • the size of the memory area is dynamically determined. That is, elements can be added or deleted without being limited to the size of the memory area allocated first.
  • Dynamic associative arrays can be implemented by known techniques. For example, in the STL for the C ++ language, the map container can be used as a dynamic associative array.
  • the grid division step is executed in S701. This is a process of determining the position of a line segment that divides the drawing area of the drawing into a grid pattern.
  • an array for storing coordinate values in the drawing coordinate system is secured and initialized separately in the horizontal and vertical directions.
  • This arrangement is called a grid coordinate arrangement.
  • a line segment in grid division is formed by the grid coordinate array.
  • the horizontal grid coordinate array is Gx
  • the vertical grid coordinate array is Gy. If the maximum number of divisions of the grid is GridMax, Gx and Gy are secured as an integer or real type array with the number of elements being GridMax.
  • the initial values of the elements Gx and Gy are all set to be equal intervals.
  • A is the spacing between grids
  • Initialize all n (0 ⁇ n ⁇ GridMax).
  • the value illustrated here does not limit the present invention.
  • Gx is used to generate vertical line segments (vertical grid).
  • the n-th vertical line segment is a line segment connecting (Gx [n], 0) and (Gx [n], H).
  • Gy is used to generate a horizontal line segment (horizontal grid).
  • the nth horizontal line segment is a line segment connecting (0, Gy [n]) and (W, Gy [n]).
  • the line segment used for the grid division is drawn so as to be displayed on the display 111.
  • the cell position is specified by col and row in the grid coordinate system.
  • the width 802 of column c is Gx [c + 1]-Gx [c] Is required.
  • the height 803 of row r is Gy [r + 1]-Gy [r] Is required.
  • an active cell selection step is executed in S702. This is a process of determining the position of the active cell that is the operation target cell.
  • the active cell selected here is an initial active cell that is a base point for future operations.
  • (col, row) (0, 0) is an active cell.
  • the value illustrated here does not limit the present invention.
  • the active cell is highlighted on the display 111 so that it can be distinguished from other cells.
  • the cell border is drawn thick so that the active cell can be distinguished from other cells.
  • a user input step is executed in S703. Here, it waits for the user's operation. User operations are performed using the keyboard 108, the mouse 109, and the like, and are transmitted to the CPU 102 via the input I / F 107 and the system bus 103.
  • an end operation it is determined whether or not the above-described user operation is an end operation.
  • An example of the ending operation is an operation of clicking the ending button displayed on the display 111 using the mouse 109.
  • a key assigned to the end operation may be input from the keyboard 108.
  • an operation of adding an object based on the active cell position there is an operation of adding an object based on the active cell position (hereinafter referred to as an active cell position adding operation). Specifically, an operation such as pressing a predetermined key on the keyboard 108 or clicking a predetermined button displayed on the display 111 with the mouse 109 is performed. In this operation, the position of the object to be added is determined based on the position of the active cell.
  • an operation of adding an object at an arbitrary position in the drawing (hereinafter referred to as an arbitrary position adding operation). Specifically, this is an operation of clicking in the drawing displayed on the display 111 with the mouse 109. In this operation, the position of the object to be added is determined based on the coordinates clicked in the drawing.
  • the object adding step is divided into a method of arranging an object in a cell and a method of freely arranging an object.
  • This method uses a dynamic associative array to record the correspondence between cell positions and objects.
  • This dynamic associative array is defined as CellMap.
  • the key of the dynamic associative array CellMap uses the cell position.
  • Cell positions include col and row. Therefore, as an actual key of CellMap, for example, (row ⁇ (GridMax-1)) + col Use the integer value calculated in.
  • the value (element) of the dynamic associative array CellMap is a dynamic array with an object as an element.
  • Such a dynamic array is hereinafter referred to as an object set.
  • step S901 the procedure of the object addition step by cell arrangement will be described with reference to FIG. First, in step S901, the column ac and row ar of the active cell are acquired.
  • step S902 an active cell object set Cells (ac, ar) is acquired.
  • a new object set (dynamic array) is set in Cells (ac, ar).
  • step S1002 the width of the grid ac column is calculated and set as GridWidth. Specifically, it is obtained from the grid coordinate array Gx by the following formula.
  • GridWidth Gx [ac + 1]-Gx [ac]
  • GridHeight Gy [ar + 1]-Gy [ar]
  • the position and size of the object to be added in the drawing are determined.
  • the position of the object is based on the position specified by the arbitrary position adding operation.
  • the position coordinates of the active cell in the drawing may be used as a reference.
  • attributes of the object For example, attributes such as an arrangement coordinate 402, a width 403, and a height 404 in FIG. 4 are preferable. In another example, attributes such as the arrangement coordinates 502, the width 503 of the boundary rectangle 505, and the height 504 of the boundary rectangle 505 are also preferable. In another example, attributes such as a start point 602, a relay point 603, and an end point 604 are also preferable.
  • the cell placement method and the free placement method are exemplified as the processing of the object addition step. These two procedures are preferably selectively executed by a user operation method. For example, in the case of the above-described operation for adding an active cell position, a cell arrangement procedure is executed. In the case of the above-described arbitrary position addition operation, the procedure of free placement is executed.
  • both procedures may always be executed regardless of user operation.
  • a cell placement procedure is executed.
  • the class exemplified by the graphic 401 and the actor exemplified by the graphic 501 are premised to be arranged in a cell, and an object is added by the cell arrangement procedure.
  • a free placement procedure is executed. For example, since the connector illustrated in the figure 601 is arranged across cells, an object is added by a free arrangement procedure.
  • the selection mode setting step includes an arrangement mode setting step and a type filter setting step.
  • the arrangement mode setting step will be described.
  • a selectable object is determined according to the set arrangement mode.
  • the arrangement mode is set by a user operation.
  • the following arrangement mode can be set. ⁇ Cell placement selection mode ⁇ Free placement selection mode ⁇ All selection mode
  • FIG. 12 shows an example of a state where objects are arranged in the drawing.
  • Class 1201, base class 1202, and comment 1205 are objects arranged in cells. Therefore, the object is stored in the dynamic associative array CellMap.
  • the generalized connector 1203 and the comment connector 1204 are arranged across cells (grids). These are freely arranged objects. Therefore, the objects are stored in the dynamic array ObjectArray.
  • the cell arrangement selection mode is a mode for selecting an object arranged in a cell.
  • a class 1201, a base class 1202, and a comment 1205 can be selected.
  • the free placement selection mode is a mode for selecting freely placed objects.
  • the generalized connector 1203 and the comment connector 1204 can be selected.
  • the all selection mode is a mode for selecting an object regardless of the arrangement method.
  • all objects class 1201, base class 1202, generalized connector 1203, comment connector 1204, comment 1205.
  • the type filter sets the type of object.
  • only objects of the type selected by the type filter are selectable objects.
  • the type filter it is possible to further narrow down selectable objects in each arrangement mode. Note that examples of selectable objects in each arrangement mode described above are states in which all types are selected as the type filters (or type filter invalid state).
  • the type filter is set by user operation. It is preferable that the type filter can be selectively set from the types of all objects. Moreover, the number of type filters that can be set is not limited to one, and it is preferable that a plurality of type filters can be set simultaneously.
  • the comment 1205 can be selected in the example of FIG.
  • the generalized connector is selected as the type filter in the free placement selection mode.
  • the generalized connector 1203 can be selected in the example of FIG.
  • the comment connector 1204 can be selected in the example of FIG.
  • the type of connector is a high-level concept including generalized connectors and comment connectors.
  • the generalized connector 1203 and the comment connector 1204 can be selected in the example of FIG.
  • the class is selected as the type filter in the all selection mode.
  • the class 1201 and the base class 1202 can be selected in the example of FIG.
  • the class and generalized connector are selected as the type filter in the all selection mode.
  • the class 1201, the base class 1202, and the generalized connector 1203 can be selected.
  • a comment and a comment connector are selected for the type filter in the all selection mode.
  • the comment 1205 and the comment connector 1204 can be selected in the example of FIG.
  • the selection mode setting step is executed and the arrangement mode or type filter is changed, selectable objects are changed. Therefore, after executing the selection mode setting step, it is preferable to execute an object selection state update step of updating the object selection state.
  • the object selection state update step includes the following two types of steps. One is a type object selection state update step for updating the object selection state according to the type filter. The other is an object selection state update step by arrangement method in which the object selection state is updated according to the arrangement mode.
  • the object selection state update step in the present embodiment is realized by executing the active cell selection step after executing the selection mode setting step. However, at this time, the same position as the current active cell is set as the selected cell.
  • an object to be selected is determined according to the arrangement mode and the type filter. That is, if the active cell selection step is executed without moving the active cell, it is equivalent to updating the selection state of the object. That is, the type object selection state update step and the placement method-specific object selection state update step are executed.
  • the active cell selection step a process of setting a cell selected by the user as an active cell is performed.
  • the user clicks a cell displayed on the display 111 using the mouse 109 the cell can be selected.
  • another cell can be selected using the keyboard 108 with the current active cell as a base point.
  • the keyboard 108 includes up / down / left / right direction keys.
  • the cell adjacent to the current active cell can be selected.
  • the cell next to the lower side can be selected by pressing the down key, the left side by pressing the left key, and the right cell by pressing the right key.
  • the present invention is not limited to the user operation method exemplified here, and various operations can be assigned as the active cell selection operation.
  • the active cell selection step may be executed as part of the object selection state update step. In this case, the same position as the current active cell becomes the selected cell.
  • FIG. 13 is a flowchart of the active cell selection step.
  • the position of the selected cell is stored in a variable.
  • the selected cell is a cell selected by the user. Let the column of the selected cell be sc and the row of the selected cell be sr.
  • the selected state of the object is released.
  • the highlighted display of the object is released at least on the display 111 and a normal display is obtained.
  • a selection candidate object determination step for determining an object set as a selection candidate is executed. Details of the selection candidate object determination step will be described later.
  • the object set as a selection candidate is a set including a plurality of objects arranged within the range of the active cell.
  • the selection candidate object set is stored in the dynamic array CanObjArray.
  • the dynamic array CanObjArray is a variable shared in other steps.
  • the dynamic array CanObjArray is constructed by the selection candidate object determination step.
  • S1305 it is determined whether or not an element exists in the object set CanObjArray. Specifically, if CanObjArray.count is greater than 0, it can be determined that an element exists in CanObjArray. That is, the selection candidate object exists within the range of the active cell. In this case, the process proceeds to S1306. If CanObjArray.count is 0 or less, there is no element in CanObjArray. That is, there is no selection candidate object within the range of the active cell. In this case, the active cell selection step ends.
  • an object selection step is performed in which one object is selected from the selection candidate object set.
  • the first element (object) of the object set CanObjArray is selected.
  • the display 111 highlights the object.
  • the number of objects to be selected is not limited to one.
  • the object selection step may select all the objects included in the CanObjArray.
  • NowObjID indicates the index number of the object currently selected in CanObjArray. NowObjID is used in the toggle selection step described later.
  • selection candidate object determination step Next, the processing flow of the selection candidate object determination step will be described with reference to FIG.
  • FIG. 14 is a flowchart of the selection candidate object determination step.
  • the object In the selection candidate object determination step, the object is to construct an object set CanObjArray of selection candidates.
  • the selection candidate object determination step in the present embodiment includes an arrangement method-specific object determination step and a type filtering step.
  • the object determining step by arrangement method selection candidates are determined according to the arrangement mode set in the arrangement mode setting step described above.
  • the type filtering step selection candidates are determined according to the type filter set in the type filter setting step.
  • a CanObjArray that is a selection candidate object set is initialized. If CanObjArray already exists, all of its contents are deleted.
  • conditional branching is performed based on the placement mode set in the placement mode setting step described above.
  • the arrangement mode is the cell arrangement selection mode or the all selection mode
  • the process proceeds to S1403. Otherwise, the process proceeds to S1404.
  • the cell arranged object is added to the object set CanObjArray. Details of this processing will be described in a cell arrangement object candidate addition step described later.
  • conditional branching is performed based on the placement mode set in the placement mode setting step described above.
  • the arrangement mode is the free arrangement selection mode or the all selection mode
  • the process proceeds to S1405. Otherwise, the process proceeds to S1406.
  • S1402, S1403, S1404, and S1405 are object determination steps by arrangement method in this embodiment.
  • Cell placement object candidate addition step From here, the cell arrangement object candidate addition step will be described with reference to FIG.
  • the cell placement object candidate addition step aims to add the cell-placed object to the object set CanObjArray.
  • S1505 it is determined whether i is less than the number of Objs elements (Objs.count). If i is less than the number of elements in Objs, it indicates that there are still elements to be scanned in Objs. In that case, the process proceeds to S1506. If i is greater than or equal to the number of elements in Objs, it indicates that all elements in Objs have been scanned. In that case, the cell placement object candidate addition step is terminated.
  • FIG. 16 is a flowchart of the step of adding a free placement object candidate.
  • the free placement object candidate addition step is intended to add freely placed objects to the object set CanObjArray.
  • the ObjectArray is sequentially scanned, and processing for adding an object that overlaps the rectangle of the active cell to the CanObjArray is executed.
  • the loop variable i is initialized to 0 in S1602.
  • i is less than the number of elements in ObjectArray (ObjectArray.count). If i is less than the number of elements in the ObjectArray, it indicates that there are still elements to be scanned in the ObjectArray. In that case, the process proceeds to S1604. If i is greater than or equal to the number of elements in ObjectArray, it indicates that all elements in ObjectArray have been scanned. In this case, the free placement object candidate addition step is terminated.
  • the area ObjRegion of the object ObjectArray [i] is acquired.
  • the area in this embodiment is expressed by a rectangle or a set of line segments.
  • the region ObjRegion can hold either rectangular information or set information of line segments.
  • ObjectArray [i] is an object that can represent a region as a rectangle, such as figure 401 in FIG. 4 or figure 501 in FIG.
  • the rectangle information of the object is recorded in the area ObjRegion. Specifically, information including upper left coordinates x, y, width width, and height height is recorded.
  • the region is expressed by a rectangle or a set of line segments, but this does not limit the present invention, and other expression methods are possible.
  • it can be expressed by a circular region.
  • the area holds either one of a rectangle or a set of line segments, but a plurality of types of areas may be combined to form one area.
  • next step S1605 it is determined whether the rectangle ActiveRect of the active cell overlaps the area ObjRegion of the ObjectArray [i]. This determination method will be described in the overlap determination step described later. If they overlap, ObjectArray [i] is a selection candidate. In that case, the process proceeds to S1606. If they do not overlap, ObjectArray [i] is not a selection candidate. In that case, the process proceeds to S1607.
  • FIG. 17 is a flowchart of the overlap determination step.
  • ⁇ ObjRegion> in this embodiment stores either a rectangle or a set of line segments as described above. Therefore, first, in S1701, a conditional branch is made depending on whether ObjRegion is a rectangle or a set of line segments. If ObjRegion is a set of line segments, the process proceeds to S1702. If ObjRegion is rectangular, the process advances to S1708.
  • the first point is extracted from the set of line segments stored in ObjRegion and set as point P.
  • S1703 it is determined whether there is a point that has not yet been extracted from the set of line segments stored in ObjRegion. If there is a point that has not yet been taken out, that is, if there is a next point, the process proceeds to S1704. When all the points have been extracted, that is, when there is no next point, the overlap determination step ends. In this case, it is determined that ActiveRect and ObjRegion do not overlap.
  • the intersection of line segments is determined by each side of ActiveRect and the line segment PQ. If any side of ActiveRect and the line segment PQ intersect, it is determined that ActiveRect and ObjRegion overlap (intersect).
  • conditional branching is performed according to the determination result in S1705. If it is determined in S1705 that they intersect, the overlap determination step ends. If it is determined in S1705 that the vehicle does not intersect, the process proceeds to S1707.
  • FIG. 18 is a flowchart of the type filtering step.
  • the type filtering step aims to remove objects from the object set CanObjArray according to the type filter.
  • loop variable i is initialized to 0 in S1801.
  • S1802 it is determined whether i is less than the number of CanObjArray elements (CanObjArray.count). If i is less than the number of elements in CanObjArray, it indicates that there are still elements to be scanned in CanObjArray. In that case, the process proceeds to S1803. If i is greater than or equal to the number of elements in CanObjArray, it indicates that all elements of CanObjArray have been scanned. In that case, the type filtering step ends.
  • the process proceeds to S1804. Conversely, if the type of CanObjArray [i] matches the type filter, CanObjArray [i] should not be removed from the object set CanObjArray. In this case, the process proceeds to S1805.
  • the toggle selection step is executed as a process for the above-described user operation.
  • the toggle selection step is intended to switch the selection state when a plurality of selection candidate objects exist in the active cell.
  • S1902 deselect the currently selected object.
  • the highlighted display of the object is released at least on the display 111 and a normal display is obtained.
  • the index number NowObjID of the object to be selected next is determined.
  • a remainder obtained by dividing (NowObjID + 1) by CanObjArray.count is set as a new NowObjID.
  • (a mod n) indicates a remainder obtained by dividing a by n.
  • the object to be selected next is not limited to this.
  • the types of objects included in the object set CanObjArray may be considered, or the arrangement mode may be considered.
  • FIG. 12 For the arrangement of the objects, the above-described FIG. 12 is used as an example.
  • the class 1201, the base class 1202, and the comment 1205 are objects arranged in cells.
  • the generalized connector 1203 and the comment connector 1204 are freely arranged objects.
  • FIG. 20 is a schematic diagram of the first operation example.
  • the active cell 2001 is highlighted. There is no object in the range of the active cell 2001. Therefore, in this case, the selected object does not exist.
  • FIG. 21 is a schematic diagram of the second operation example.
  • the active cell 2001 in FIG. 20 moves and the active cell 2101 is highlighted.
  • the arrangement mode is the cell arrangement selection mode.
  • the class 1201 is selected and becomes highlighted 1201a.
  • a generalized connector 1203 and a comment connector 1204 exist in the range of the active cell 2101. However, these are not selected. Since the placement mode is the cell placement selection mode, an object placed in a cell like the class 1201a is selected.
  • the current selection mode is a cell arrangement selection mode. There is no object other than the class 1201a in the range of the active cell 2101 in which cells that are selection candidates are arranged. Therefore, even if the toggle selection step is executed, the object selection state does not change.
  • FIG. 22 is a schematic diagram of the third operation example.
  • the position of the active cell 2101 has not moved from FIG. However, the selection state has been updated.
  • the class 1201a highlighted in the selected state is released from the selected state and changed to the normally displayed class 1201.
  • the generalized connector 1203 is selected and changed to the generalized connector 1203a highlighted.
  • the current selection mode is a free placement selection mode.
  • generalized connectors 1203 and comment connectors 1204 exist as freely arranged objects that are selection candidates.
  • the toggle selection step is executed, the comment connector 1204 is selected. This state is shown in FIG. FIG. 23 is a schematic diagram of the fourth operation example.
  • FIG. 23 the position of the active cell 2101 is not moved from FIGS. However, the selection state has been updated.
  • the generalized connector 1203a highlighted in the selected state is released from the selected state and changed to a generalized generalized connector 1203.
  • the comment connector 1204 is selected, and the comment connector 1204a is highlighted.
  • the object selection state update step is executed after the arrangement mode setting step.
  • the all selection mode since the class 1201 is also a selection candidate, the selection state has not changed. Therefore, the display does not change from the state of FIG.
  • the current selection mode is the all selection mode.
  • a class 1201 Within the range of the active cell 2101, there are a class 1201, a generalized connector 1203, and a comment connector 1204 as selection candidate objects.
  • class 1201 is class 1201a highlighted in the selected state. Therefore, when the toggle selection step is executed, objects other than the class 1201 are selected.
  • the state is as shown in FIG. 22, for example.
  • the class 1201a is released from the selected state, the generalized connector 1203 is in the selected state, and changes to the highlighted generalized connector 1203a. Note that the selection state is not switched when the placement mode is the cell placement selection mode, but the selection state is switched when the all selection mode.
  • the toggle selection step is executed by user operation. Then, the next object is selected from the objects as selection candidates.
  • the state is as shown in FIG. 23, for example.
  • the generalized connector 1203a is deselected, the comment connector 1204 is selected, and the comment connector 1204a is highlighted.
  • toggle selection step is executed by user operation. Then, the objects that are selection candidates go around and become as shown in FIG.
  • the comment connector 1204a is released from the selected state, the class 1201 is again selected, and has changed to the highlighted class 1201a.
  • the arrangement mode is a cell arrangement selection mode. Furthermore, it is assumed that the class is set as a type filter in the type filter setting step. At this time, the cell arrangement object is only the class 1201 within the range of the active cell 2101. Furthermore, the type of class 1201 is class. Therefore, in FIG. 21, the class 1201 is selected and becomes the highlighted class 1201a.
  • FIG. 24 is a schematic diagram of the fifth operation example.
  • a comment 1205 exists as an object of cell arrangement within the range of the active cell 2401.
  • the class is currently selected as the type filter.
  • the type of the comment 1205 is a comment. Therefore, the comment 1205 is not a selection candidate. That is, the comment 1205 existing within the range of the active cell 2401 is not selected.
  • FIG. 25 is a schematic diagram of the sixth operation example.
  • the arrangement mode is a free arrangement selection mode.
  • general-purpose connectors 1203 and comment connectors 1204 exist as freely arranged objects. Therefore, these two objects are selection candidates.
  • one of a plurality of selection candidate objects is selected.
  • the generalized connector 1203 is selected, and the generalized connector 1203a is highlighted.
  • FIG. 26 is a schematic diagram of the seventh operation example.
  • FIG. 26 the position of the active cell 2501 is not moved from FIG. In FIG. 25, the selected generalized connector 1203a, which has been highlighted, is released, and the generalized connector 1203 is displayed normally. On the other hand, the comment connector 1204 is selected and changed to the highlighted comment connector 1204a.
  • cell selection and graphic element selection can be linked.
  • selection of (freely arranged) graphic elements arranged across cells could be linked with cell selection.
  • the operability related to the graphic element selection is improved by interlocking the cell selection and the graphic element selection.

Abstract

[Problem] To enable cell selection and diagram element selection to work together when a plurality of diagram elements exist in a cell. Furthermore, to enable the selection of a diagram element placed over a cell to work together with cell selection. [Solution] The present invention is characterized in being provided with: a grid division step for dividing the drawing area of a diagram by a line segment that marks off in the shape of a grid; an active cell selection step for selecting an active cell which is a cell to be operated on, one section marked off by the grid being assumed to be the cell; a selection candidate object determination step for determining a plurality of selection candidates from a plurality of objects present within a range of the active cell, the diagram being composed of a set of objects that include information about the content of drawing; and an object selection step for putting at least one of the objects from among the plurality of selection candidates into a selected state.

Description

オブジェクト選択方法、プログラム及び記録媒体Object selection method, program, and recording medium
 本発明は、コンピュータによる図面作成における、オブジェクトの選択方法に関するものである。 The present invention relates to a method for selecting an object in drawing creation by a computer.
 図面の描画領域を格子状に区切る線分で分割する手法がある。この区切りはグリッドとして知られている。グリッドの1区画はセルと呼ばれている。
 このグリッドとセルを利用した、コンピュータ図面作成システムが公開されている。
 例えば特許文献1には、セル単位で図形要素を配置し全体の図面を作成するシステムが公開されている。このシステムでは、1セルに1つの処理ブロックまたは接続線を配置することで、フローチャートを作成することが可能となっている。
There is a method of dividing a drawing area of a drawing by line segments that divide into a lattice shape. This break is known as a grid. One section of the grid is called a cell.
A computer drawing creation system using these grids and cells has been released.
For example, Patent Document 1 discloses a system that arranges graphic elements in cell units and creates an entire drawing. In this system, it is possible to create a flowchart by arranging one processing block or connection line in one cell.
 このようなシステムでは、セル選択と図形要素の選択が連動されている。つまり、セルを選択すれば、そのセルに配置されている図形要素が自動的に選択される。 In such a system, cell selection and graphic element selection are linked. That is, if a cell is selected, the graphic element arranged in the cell is automatically selected.
特開昭60-160440JP 60-160440
 しかし、従来の方法では1セルに複数の図形要素を配置することが考えられていない。1セルに1つ図形要素のみが存在していることが前提となっている。その為、あるセルを選択すれば、そのセルに含まれる図形要素は一意に決定する。よって、セル選択と図形要素選択を連動させることは容易である。しかし、1セルに複数の図形要素が存在していると、選択すべき図形要素が一意に決まらない。 However, in the conventional method, it is not considered to arrange a plurality of graphic elements in one cell. It is assumed that there is only one graphic element per cell. Therefore, if a certain cell is selected, the graphic element included in the cell is uniquely determined. Therefore, it is easy to link cell selection and graphic element selection. However, if multiple graphic elements exist in one cell, the graphic element to be selected cannot be uniquely determined.
 さらに、従来の方法では、セルをまたいで配置された図形要素の選択は考慮されていない。 Furthermore, the conventional method does not consider selection of graphic elements arranged across cells.
 以上の問題に鑑みて本発明は、セル内に複数の図形要素が存在する場合に、セル選択と図形要素選択とを連動できるようにする。
 加えて本発明は、セルをまたいで配置された図形要素の選択も、セル選択と連動できるようにする。
In view of the above problems, the present invention enables cell selection and graphic element selection to be linked when there are a plurality of graphic elements in a cell.
In addition, the present invention enables selection of graphic elements arranged across cells to be linked with cell selection.
 上記課題を解決するために、コンピュータにより実施される方法として、
図面の描画領域を格子状に区切る線分で分割するグリッド分割ステップと、
前記格子で区切られた一区画をセルとしたとき、
操作対象の前記セルであるアクティブセルを選択するアクティブセル選択ステップと、
前記図面は描画内容の情報を含むオブジェクト(図形要素)の集合で構成され、
前記アクティブセルの範囲内に存在する複数の前記オブジェクトから、複数の選択候補を決定する選択候補オブジェクト決定ステップと
前記複数の選択候補の中から、少なくとも1つの前記オブジェクトを選択状態にするオブジェクト選択ステップとを備えることを第1の特徴とする。
In order to solve the above problems, a computer-implemented method is as follows:
A grid dividing step for dividing the drawing area of the drawing into line segments that divide into a grid pattern;
When a section divided by the lattice is a cell,
An active cell selection step of selecting an active cell that is the cell to be operated;
The drawing is composed of a set of objects (graphic elements) including drawing content information,
A selection candidate object determining step for determining a plurality of selection candidates from the plurality of objects existing within the range of the active cell, and an object selection step for bringing at least one of the plurality of selection candidates into a selected state The first feature is that
 また、第1の特徴に加えて、
前記選択候補の前記オブジェクトの中から、
現在選択されている前記オブジェクトとは異なる前記オブジェクトを、少なくとも1つ選択状態にするトグル選択ステップとをさらに備えることを第2の特徴とする。
In addition to the first feature,
Among the objects of the selection candidates,
A second feature is that the method further comprises a toggle selection step of selecting at least one object different from the currently selected object.
 また、第1の特徴に加えて、
前記オブジェクトは種別を示す属性を含み、
選択対象の前記種別である種別フィルターを設定する種別フィルター設定ステップと、
前記選択候補オブジェクト決定ステップにおいて、
前記アクティブセルの範囲内に存在する複数の前記オブジェクトの中から、前記種別フィルターに応じて選択候補を決定する種別フィルタリングステップとをさらに備えることを第3の特徴とする。
In addition to the first feature,
The object includes an attribute indicating a type,
A type filter setting step for setting a type filter that is the type to be selected;
In the selection candidate object determining step,
According to a third feature of the present invention, the method further includes a type filtering step of determining a selection candidate according to the type filter from among the plurality of objects existing within the range of the active cell.
 また、第3の特徴に加えて、
前記種別フィルター設定ステップ後に、
前記オブジェクトの選択状態を更新する、種別オブジェクト選択状態更新ステップとをさらに備えることを第4の特徴とする。
In addition to the third feature,
After the type filter setting step,
According to a fourth aspect of the present invention, the method further comprises a type object selection state update step of updating the selection state of the object.
 また、第1の特徴に加えて、
前記オブジェクトの配置方法は、前記セルと対応づけて配置されるセル配置と、前記セルとは無関係に配置される自由配置とに分けられ、
選択対象の前記配置方法を設定する配置モード設定ステップと、
前記選択候補オブジェクト決定ステップにおいて、
前記アクティブセルの範囲内に存在する複数の前記オブジェクトの中から、前記配置モード設定ステップで設定された前記配置方法に応じて選択候補を決定する配置方法別オブジェクト決定ステップとをさらに備えることを第5の特徴とする。
In addition to the first feature,
The object placement method is divided into a cell placement arranged in association with the cell, and a free placement placed independently of the cell,
An arrangement mode setting step for setting the arrangement method to be selected;
In the selection candidate object determining step,
A placement method-specific object determination step of determining a selection candidate according to the placement method set in the placement mode setting step from among the plurality of objects existing within the range of the active cell. With 5 features.
 また、第5の特徴に加えて、
前記配置モード設定ステップ後に、
前記オブジェクトの選択状態を更新する、配置方法別オブジェクト選択状態更新ステップとをさらに備えることを第6の特徴とする。
In addition to the fifth feature,
After the arrangement mode setting step,
According to a sixth aspect of the present invention, the method further comprises an object selection state update step for each arrangement method for updating the selection state of the object.
 前記第1の特徴の方法においては、アクティブセル内に複数の図形要素が存在する場合でも、セル選択と図形要素選択とを連動できる。加えて、セルをまたいで配置(自由配置)された図形要素の選択も、セル選択と連動できる。 In the method of the first feature, cell selection and graphic element selection can be linked even when there are a plurality of graphic elements in the active cell. In addition, selection of graphic elements arranged across cells (free arrangement) can be linked with cell selection.
 前記第2の特徴の方法においては、アクティブセル内に存在する複数の図形要素の中から、選択する図形要素を切り替えられるようになる。アクティブセル外の余計な図形要素は選択候補とならないので、操作性が向上する。 In the method of the second feature, the graphic element to be selected can be switched from among a plurality of graphic elements existing in the active cell. Since extra graphic elements outside the active cell are not candidates for selection, operability is improved.
 前記第3の特徴の方法においては、アクティブセル内に存在する複数の図形要素の中から、選択する図形要素の種別を限定できる。 In the method of the third feature, the types of graphic elements to be selected from a plurality of graphic elements existing in the active cell can be limited.
 前記第 4の特徴の方法においては、種別フィルター設定ステップ後に、オブジェクトの選択状態を自動的に更新できる。 In the method of the above feature IV, the object selection state can be automatically updated after the type filter setting step.
 前記第5の特徴の方法においては、アクティブセル内に存在する複数の図形要素の中から、選択する図形要素の配置方法を限定できる。 In the method of the fifth feature, the arrangement method of graphic elements to be selected from a plurality of graphic elements existing in the active cell can be limited.
 前記第 6の特徴の方法においては、配置モード設定ステップ後に、オブジェクトの選択状態を自動的に更新できる。 In the method of the sixth feature, the object selection state can be automatically updated after the arrangement mode setting step.
コンピュータシステムComputer system 図面座標系Drawing coordinate system グリッド分割の模式図Schematic diagram of grid division クラスを表すオブジェクトAn object representing the class アクターを表すオブジェクトAn object representing the actor コネクターを表すオブジェクトAn object representing the connector 全体の処理のフローチャートOverall processing flowchart グリッド座標系とグリッド座標配列の関係Relationship between grid coordinate system and grid coordinate array セル配置オブジェクト追加のフローチャートFlow chart for adding cell placement objects グリッド幅拡張のフローチャートGrid width expansion flowchart グリッド高さ拡張のフローチャートFlow chart for grid height extension オブジェクトの配置例Example of object placement アクティブセル選択ステップのフローチャートFlow chart of active cell selection step 選択候補オブジェクト決定ステップのフローチャートFlowchart of selection candidate object determination step セル配置オブジェクト候補追加ステップのフローチャートFlow chart of cell placement object candidate addition step 自由配置オブジェクト候補追加ステップのフローチャートFlow chart of free placement object candidate addition step 重なり判定ステップのフローチャートFlow chart of overlap determination step 種別フィルタリングステップのフローチャートFlow chart of type filtering step トグル選択ステップのフローチャートToggle selection step flowchart 動作例1の模式図Schematic diagram of operation example 1 動作例2の模式図Schematic diagram of operation example 2 動作例3の模式図Schematic diagram of operation example 3 動作例4の模式図Schematic diagram of operation example 4 動作例5の模式図Schematic diagram of operation example 5 動作例6の模式図Schematic diagram of operation example 6 動作例7の模式図Schematic diagram of operation example 7
 以下、本発明の好ましい実施例について、図面を参照しながら説明する。 Hereinafter, preferred embodiments of the present invention will be described with reference to the drawings.
(コンピュータシステム)
 本実施例におけるコンピュータシステムの一例を、図1を参照しながら説明する。図1はコンピュータシステムの一例を示すブロック図である。
(Computer system)
An example of the computer system in the present embodiment will be described with reference to FIG. FIG. 1 is a block diagram illustrating an example of a computer system.
 コンピュータ101はCPU102、システムバス103、主記憶装置104、補助記憶装置105、入力I/F107、ビデオI/F110、ネットワークI/F112を含む。 The computer 101 includes a CPU 102, a system bus 103, a main storage device 104, an auxiliary storage device 105, an input I / F 107, a video I / F 110, and a network I / F 112.
 CPU102は中央演算装置である。CPU102は、システムバス103を介して主記憶装置104から命令を読み出して実行する。実行結果はCPU102内のレジスタに格納される。または、システムバス103を介して他のブロックを制御する。 CPU102 is a central processing unit. The CPU 102 reads out and executes an instruction from the main storage device 104 via the system bus 103. The execution result is stored in a register in the CPU 102. Alternatively, other blocks are controlled via the system bus 103.
 システムバス103はコンピュータ101内の各ブロックと情報をやり取りするためのバスである。システムバス103は1種類ではなく、数種類のバスをまとめてシステムバス103としても良い。例えば、メモリバス、PCIバス、USB等をまとめてシステムバス103とする。 The system bus 103 is a bus for exchanging information with each block in the computer 101. The system bus 103 is not limited to one type, and several types of buses may be combined into the system bus 103. For example, the memory bus, PCI bus, USB, and the like are collectively referred to as the system bus 103.
 主記憶装置104は、補助記憶装置105に比べて高速なデータ読み書きが可能な装置である。例えば、DDRメモリ等の揮発性の記憶媒体が使用される。CPU102に実行させる命令リスト(プログラム)は主記憶装置104へ一旦格納される。 The main storage device 104 is a device capable of reading and writing data at a higher speed than the auxiliary storage device 105. For example, a volatile storage medium such as DDR memory is used. An instruction list (program) to be executed by the CPU 102 is temporarily stored in the main storage device 104.
 補助記憶装置105は、主記憶装置104に比べて低速だが、大容量のデータ保存が可能な装置である。例えば、ハードディスクやフラッシュメモリー等の不揮発性の記憶媒体が使用される。補助記憶装置105は、複数の異なる種類のデバイスであっても良い。また、補助記憶装置105の記憶媒体は着脱可能記憶メディア106でも良い。 The auxiliary storage device 105 is a device that is slower than the main storage device 104 but can store a large amount of data. For example, a non-volatile storage medium such as a hard disk or a flash memory is used. The auxiliary storage device 105 may be a plurality of different types of devices. The storage medium of the auxiliary storage device 105 may be a removable storage medium 106.
 着脱可能記録メディア106は、補助記憶装置105への着脱が可能なメディアである。例えば、磁気ディスク、光ディスク、フラッシュメモリカード等がある。 The removable recording medium 106 is a medium that can be attached to and detached from the auxiliary storage device 105. For example, there are a magnetic disk, an optical disk, a flash memory card, and the like.
 入力I/F107は、ユーザー操作を受け取る。例えば、ユーザーが、キーボード108やマウス109を操作すると、その信号は入力I/F107からシステムバス103へ流れ、CPU102まで届く。入力I/Fに接続されるデバイスは、キーボード108やマウス109に限定されるものではない。例えば、ペンタブレット、タッチパネル、ジェスチャー入力装置等でも良い。 The input I / F 107 receives user operations. For example, when the user operates the keyboard 108 or the mouse 109, the signal flows from the input I / F 107 to the system bus 103 and reaches the CPU 102. Devices connected to the input I / F are not limited to the keyboard 108 and the mouse 109. For example, a pen tablet, a touch panel, a gesture input device, or the like may be used.
 キーボード108は、ユーザーからのキー入力を受け付ける。受け付けたキー入力情報は、入力I/F107へ伝達される。伝達の方法は有線でも無線でも良い。  The keyboard 108 accepts key input from the user. The received key input information is transmitted to the input I / F 107. The transmission method may be wired or wireless. *
 マウス109は、ユーザーからの位置入力及びボタン入力を受け付ける。受け付けた位置入力情報及びボタン入力情報は、入力I/F107へ伝達される。伝達の方法は有線でも無線でも良い。  The mouse 109 accepts position input and button input from the user. The received position input information and button input information are transmitted to the input I / F 107. The transmission method may be wired or wireless. *
 ビデオI/F110は、ディスプレイ111へ表示信号を出力する。ビデオI/F110は、ディスプレイ111への表示内容をメモリに格納している。表示内容はCPU102からの指示で書き換えられる。 Video I / F 110 outputs a display signal to display 111. The video I / F 110 stores display contents on the display 111 in a memory. The display content is rewritten by an instruction from the CPU 102.
 ディスプレイ111はユーザーへ情報表示を行う。ディスプレイ111の例としてはCRTや液晶ディスプレイがある。表示内容はビデオI/F110から伝送される。伝送手段は有線でも無線でも良い。また、アナログ伝送でもデジタル伝送でも良い。 Display 111 displays information to the user. Examples of the display 111 include a CRT and a liquid crystal display. The display content is transmitted from the video I / F 110. The transmission means may be wired or wireless. Also, analog transmission or digital transmission may be used.
 ネットワークI/F112は別のコンピュータと通信するための手段を提供する。例えばLANやWANへの接続による通信手段を提供する。 The network I / F 112 provides a means for communicating with another computer. For example, it provides a means of communication by connecting to a LAN or WAN.
 リモートコンピュータ113はネットワークI/F112から検索可能なコンピュータである。コンピュータ101とリモートコンピュータ113は直接接続してあっても良いし、他のコンピュータやデバイスを介して、間接的に接続してあっても良い。
 
The remote computer 113 is a computer that can be searched from the network I / F 112. The computer 101 and the remote computer 113 may be directly connected, or may be indirectly connected via another computer or device.
 本実施例における方法及びプログラムは、主記憶装置104に格納された命令リスト(プログラム)をコンピュータ101のCPU102が実行することで実施することが可能である。
 主記憶装置104へ命令リストを格納するには、補助記憶装置105に保存されている命令リストを、主記憶装置104へ転送することで実施できる。また他にも、リモートコンピュータ113から命令リストを、主記憶装置104へダウンロードすることでも実施できる。
The method and program in the present embodiment can be implemented by the CPU 102 of the computer 101 executing the instruction list (program) stored in the main storage device 104.
The instruction list can be stored in the main storage device 104 by transferring the instruction list stored in the auxiliary storage device 105 to the main storage device 104. Alternatively, the command list can be downloaded from the remote computer 113 to the main storage device 104.
 本実施例では、主記憶装置104、補助記憶装置105、着脱可能メディア106がコンピュータで読み取り可能な記録媒体となる。
 なお、本発明におけるコンピュータで読み取り可能な記録媒体は、本実施例で例示した媒体に限定されず、コンピュータで読み取り可能な全ての記録媒体が対象である。
 
In this embodiment, the main storage device 104, the auxiliary storage device 105, and the removable medium 106 are computer-readable recording media.
Note that the computer-readable recording medium in the present invention is not limited to the medium exemplified in this embodiment, and all computer-readable recording media are targets.
(図面の描画領域の座標系)
 本実施例で使用する図面の描画領域の座標系について、図2を参照しながら説明する。 図2は図面の描画領域の模式図である。
 図面の描画領域201の座標系は、左上が原点202で右下方向がプラスとする。
以下の説明では、この座標系を図面座標系と呼ぶ。図面座標系における水平方向の座標値を意味するときにx、垂直方向の座標値を意味するときにyと記述する。
 図面座標系での原点202は(x, y) = (0, 0)である。
(Coordinate system of drawing drawing area)
The coordinate system of the drawing area of the drawing used in this embodiment will be described with reference to FIG. FIG. 2 is a schematic diagram of a drawing area of the drawing.
The coordinate system of the drawing area 201 of the drawing is such that the upper left is the origin 202 and the lower right direction is plus.
In the following description, this coordinate system is referred to as a drawing coordinate system. Write x to mean the horizontal coordinate value in the drawing coordinate system, and y to mean the vertical coordinate value.
The origin 202 in the drawing coordinate system is (x, y) = (0, 0).
 本実施例では描画領域の座標系を前述のように定めたが、座標系の決め方はこれに限定するものではない。
 
In this embodiment, the coordinate system of the drawing area is determined as described above, but the method of determining the coordinate system is not limited to this.
(グリッド座標系)
 本実施例で使用するグリッド座標系について、図3を参照しながら説明する。
 図3は図面の描画領域をグリッド分割した様子の模式図である。
 描画領域201を格子状に区切って分割し、その1区画はセルと呼ぶ。各セルの位置は列番号と行番号によって一意に決まる。
 グリッド分割時の座標系は、左上が原点セル301で右下方向がプラスとする。
 以下の説明では、この座標系をグリッド座標系と呼ぶ。グリッド座標系における列番号を意味するときにcol、行番号を意味する時にrowと記述する。
 グリッド座標系での原点セル301は(col, row) = (0, 0)である。
(Grid coordinate system)
The grid coordinate system used in the present embodiment will be described with reference to FIG.
FIG. 3 is a schematic view of the drawing area of the drawing divided into grids.
The drawing area 201 is divided into a grid pattern and one section is called a cell. The position of each cell is uniquely determined by the column number and the row number.
In the coordinate system at the time of grid division, the upper left is the origin cell 301 and the lower right direction is plus.
In the following description, this coordinate system is referred to as a grid coordinate system. Write col to mean the column number in the grid coordinate system and row to mean the row number.
The origin cell 301 in the grid coordinate system is (col, row) = (0, 0).
 本実施例ではグリッド座標系を前述のように定めたが、座標系の決め方はこれに限定するものではない。
 
In this embodiment, the grid coordinate system is determined as described above, but the method of determining the coordinate system is not limited to this.
(オブジェクト)
 本実施例におけるオブジェクトについて、図4、図5、図6を参照しながら説明する。
 オブジェクトとは図面を構成する為の図形要素である。図面はオブジェクトの集合で構成される。
(object)
The object in this embodiment will be described with reference to FIGS. 4, 5, and 6. FIG.
An object is a graphic element for composing a drawing. A drawing consists of a collection of objects.
 全てのオブジェクトは属性を持っている。
 属性とは、そのオブジェクトの特徴を示す情報である。例えば、描画する文字列情報、オブジェクトの位置を表す数値情報などが含まれる。
 オブジェクトに含まれる属性は、オブジェクトごとに異なる。
 ただし、全てのオブジェクトに共通する属性として、種別を含むことが好ましい。種別は、オブジェクトの種類ごとに一意に決まる数値または文字列である。同一種の図形には同じ種別を付するようにする。
All objects have attributes.
An attribute is information indicating the characteristics of the object. For example, character string information to be drawn, numerical information indicating the position of the object, and the like are included.
The attributes included in the object are different for each object.
However, it is preferable to include a type as an attribute common to all objects. The type is a numerical value or a character string uniquely determined for each type of object. The same type is assigned to the same type of figure.
 本実施例におけるオブジェクトの例を次に示す。 The following are examples of objects in this example.
 図4の図形401は本実施例におけるオブジェクトの例である。図形401はUMLにおけるクラスを表現するための図形要素を示している。
 このオブジェクトが含む属性としては、種別、配置座標402、幅403、高さ404、内部テキスト情報がある。
A figure 401 in FIG. 4 is an example of an object in this embodiment. A graphic 401 represents a graphic element for expressing a class in UML.
Attributes included in this object include a type, an arrangement coordinate 402, a width 403, a height 404, and internal text information.
 種別は数値または文字列で、図形401がクラスであることを記録する。
 配置座標402は図面座標系における位置を示すxとyを数値で記録する。
 幅403は図形401の幅を図面座標系における単位の数値で記録する。
 高さ404は図形401の高さを図面座標系における単位の数値で記録する。
 内部テキスト情報は図形401内に表示すべき情報(クラス名、プロパティ名、メソッド名等)を文字列として記録する。
The type is a numerical value or a character string, and records that the figure 401 is a class.
As the arrangement coordinates 402, x and y indicating positions in the drawing coordinate system are recorded numerically.
The width 403 records the width of the figure 401 as a numerical value in units in the drawing coordinate system.
The height 404 records the height of the figure 401 as a numerical value in units in the drawing coordinate system.
As internal text information, information (class name, property name, method name, etc.) to be displayed in the graphic 401 is recorded as a character string.
 さらに別種別のオブジェクトの例を図5に示す。図形501はUMLにおけるアクターを表現するための図形要素を示している。
 図形501は矩形ではない。そこで図形501の境界矩形505を設定する。
 このオブジェクトが含む属性としては、種別、配置座標502、境界矩形505の幅503、境界矩形505の高さ504がある。
An example of another type of object is shown in FIG. A graphic 501 represents a graphic element for expressing an actor in UML.
The figure 501 is not a rectangle. Therefore, the boundary rectangle 505 of the figure 501 is set.
The attributes included in this object include the type, the arrangement coordinates 502, the width 503 of the boundary rectangle 505, and the height 504 of the boundary rectangle 505.
 種別は数値または文字列で、図形501がアクターであることを記録する。
 配置座標502は図面座標系における位置を示すxとyを数値で記録する。
 幅503は境界矩形505の幅を図面座標系における単位の数値で記録する。
 高さ504は境界矩形505の高さを図面座標系における単位の数値で記録する。
The type is a numerical value or a character string, and records that the figure 501 is an actor.
As the arrangement coordinates 502, x and y indicating positions in the drawing coordinate system are recorded numerically.
As the width 503, the width of the boundary rectangle 505 is recorded as a numerical value in units in the drawing coordinate system.
As the height 504, the height of the boundary rectangle 505 is recorded as a numerical value in units in the drawing coordinate system.
 さらに別種別のオブジェクトの例を図6に示す。図形601はオブジェクト間を接続する役割を持つコネクターの図形要素を示している。
 このオブジェクトが含む属性としては、種別、始点602(P1)、中継点603(P2)、終点604(P3)がある。
An example of another type of object is shown in FIG. A graphic 601 indicates a graphic element of a connector having a role of connecting objects.
Attributes included in this object include a type, a start point 602 (P1), a relay point 603 (P2), and an end point 604 (P3).
 始点602、中継点603、終点604はそれぞれ、図面座標系における位置を示すxとyを数値で記録する。
 また、図6では中継点603は1点のみだが、複数の中継点を含んでも良い。
 逆に中継点603を含まずに、始点602と終点604のみで構成しても良い。
The start point 602, the relay point 603, and the end point 604 respectively record x and y indicating positions in the drawing coordinate system as numerical values.
In FIG. 6, only one relay point 603 is provided, but a plurality of relay points may be included.
Conversely, the relay point 603 may not be included, and only the start point 602 and the end point 604 may be configured.
 このように、本実施例におけるオブジェクトを例示したが、オブジェクトの種類や属性はこれに限定されるものではなく、図形要素は全てオブジェクトになりえる。
 例えば、UMLにおけるパッケージ、ノート(コメント)、ユースケース、アクション、ステート、メッセージ等もオブジェクトになりえる。また別の例では、フローチャートにおける処理、分岐、接続線もオブジェクトになりえる。また別の例では、汎用的な図面における直線、曲線、円、多角形、ビットマップ画像等もオブジェクトになりえる。
 
Thus, although the object in a present Example was illustrated, the kind and attribute of an object are not limited to this, All graphic elements can become an object.
For example, packages, notes (comments), use cases, actions, states, messages, etc. in UML can be objects. In another example, processes, branches, and connection lines in the flowchart can also be objects. In another example, straight lines, curves, circles, polygons, bitmap images, etc. in general-purpose drawings can also be objects.
(配列)
 以下の説明で必要なデータ構造である配列を導入する。
 配列は値(要素)の集合を格納する為のデータ構造である。配列の各要素へは、インデックス番号でアクセスできる。配列に割り当てられるメモリ領域のサイズは静的に決定される。
(Array)
In the following explanation, an array which is a necessary data structure is introduced.
An array is a data structure for storing a set of values (elements). Each element of the array can be accessed by index number. The size of the memory area allocated to the array is determined statically.
 以下の説明では、配列へアクセスする時に次のような記述をするものとする。
 配列をArray、インデックス番号をnとしたとき、Arrayのn番目の要素は、
  Array[n]
でアクセスできるものとする。さらに、Arrayに含まれている要素数は、
  Array.count
で取得できるものとする。Arrayのインデックス番号として有効な範囲は
  0≦n<Array.count
とする。
 
In the following description, the following description is made when accessing an array.
When the array is Array and the index number is n, the nth element of Array is
Array [n]
It can be accessed at. Furthermore, the number of elements included in the Array is
Array.count
It can be obtained at. Valid range for Array index number is 0 ≦ n <Array.count
And
(動的配列)
 以下の説明で必要なデータ構造である動的配列を導入する。
 動的配列は配列と同様に、値(要素)の集合を格納する為のデータ構造である。動的配列の各要素へは、配列と同様にインデックス番号でアクセスできる。通動的配列に割り当てられるメモリ領域のサイズは動的に決定される。つまり、最初に割り当てたメモリ領域のサイズに制限されることなく、要素の追加や削除が可能である。
(Dynamic array)
In the following description, a dynamic array which is a necessary data structure is introduced.
Similar to an array, a dynamic array is a data structure for storing a set of values (elements). Each element of the dynamic array can be accessed by an index number as in the array. The size of the memory area allocated to the dynamic array is dynamically determined. That is, elements can be added or deleted without being limited to the size of the memory area allocated first.
 以下の説明では、動的配列へアクセスする時に次のような記述をするものとする。
 動的配列をDynamicArray、インデックス番号をnとしたとき、DynamicArrayのn番目の要素は、
  DynamicArray[n]
でアクセスできるものとする。さらに、Arrayに含まれている要素数は、
  DynamicArray.count
で取得できるものとする。Arrayのインデックス番号として有効な範囲は
  0≦n<DynamicArray.count
とする。DynamicArray.countは動的配列へ要素が追加されたり削除されることで変化する。
In the following description, the following description is made when accessing a dynamic array.
When the dynamic array is DynamicArray and the index number is n, the nth element of DynamicArray is
DynamicArray [n]
It can be accessed at. Furthermore, the number of elements included in the Array is
DynamicArray.count
It can be obtained at. Valid range for Array index number is 0 ≦ n <DynamicArray.count
And DynamicArray.count changes as elements are added or removed from the dynamic array.
 動的配列は既知の技術によって実装可能である。
 例えばC++言語向けのSTL(Standard Template Library)では、vectorコンテナを動的配列として使用可能である。
 
Dynamic arrays can be implemented by known techniques.
For example, in the STL (Standard Template Library) for C ++ language, vector containers can be used as dynamic arrays.
(動的連想配列)
 以下の説明で必要なデータ構造である連想配列を導入する。
 連想配列も値(要素)の集合を格納する為のデータ構造である。
 連想配列の各要素へはキーによってアクセスできる。キーは任意の整数値、文字列やオブジェクトが使用できる。キーはインデックス番号と違い、数値が連続している必要はないし上下限もない。
 連想配列内の要素はキーを指定することによって参照できる。連想配列内に同一のキーが複数含まれることはない。
(Dynamic associative array)
In the following description, an associative array which is a necessary data structure is introduced.
An associative array is also a data structure for storing a set of values (elements).
Each element of the associative array can be accessed by a key. The key can be any integer, string or object. Unlike the index number, the key does not need to be consecutive and there is no upper or lower limit.
Elements in an associative array can be referenced by specifying a key. The associative array does not include multiple identical keys.
 本実施例では動的連想配列を使用する。
 動的連想配列ではメモリ領域のサイズが動的に決定される。つまり、最初に割り当てたメモリ領域のサイズに制限されることなく、要素の追加や削除が可能である。
In this embodiment, a dynamic associative array is used.
In the dynamic associative array, the size of the memory area is dynamically determined. That is, elements can be added or deleted without being limited to the size of the memory area allocated first.
 以下の説明では、動的連想配列へアクセスする時に次のような記述をするものとする。
 動的連想配列をMap、キーをKeyとしたとき、Map内のKeyに対応する要素は、
  Map[Key]
でアクセスできるものとする。Mapに存在しないKeyを参照した場合は、
  Map[Key] = null
となる。nullは要素が存在していないことを示す。
In the following description, the following description is made when accessing a dynamic associative array.
When the dynamic associative array is Map and the key is Key, the element corresponding to Key in Map is
Map [Key]
It can be accessed at. If you refer to a Key that does not exist in the Map,
Map [Key] = null
It becomes. null indicates that the element does not exist.
 動的連想配列は既知の技術によって実装可能である。
 例えばC++言語向けのSTLでは、mapコンテナを動的連想配列として使用可能である。
 
Dynamic associative arrays can be implemented by known techniques.
For example, in the STL for the C ++ language, the map container can be used as a dynamic associative array.
(全体の処理の流れ)
 本実施例における全体の処理の流れを図7を参照しながら説明する。
(Overall process flow)
The overall processing flow in this embodiment will be described with reference to FIG.
 まず、S701でグリッド分割ステップを実行する。これは、図面の描画領域を格子状に区切る線分の位置を決定する処理である。 First, the grid division step is executed in S701. This is a process of determining the position of a line segment that divides the drawing area of the drawing into a grid pattern.
 具体的には、水平、垂直方向に分けて、図面座標系における座標値を格納する配列(または動的配列)を確保、初期化する。この配列をグリッド座標配列と呼ぶ。グリッド座標配列によってグリッド分割における線分を構成する。
 水平方向のグリッド座標配列をGx、垂直方向のグリッド座標配列をGyとする。グリッドの最大分割数をGridMaxとすると、GxとGyは要素数がGridMax個の整数または実数型の配列として確保される。
Specifically, an array (or dynamic array) for storing coordinate values in the drawing coordinate system is secured and initialized separately in the horizontal and vertical directions. This arrangement is called a grid coordinate arrangement. A line segment in grid division is formed by the grid coordinate array.
The horizontal grid coordinate array is Gx, and the vertical grid coordinate array is Gy. If the maximum number of divisions of the grid is GridMax, Gx and Gy are secured as an integer or real type array with the number of elements being GridMax.
 本実施例ではGx、Gyの要素の初期値として、全て等間隔になるように設定する。Aをグリッド間の間隔としたとき、
 Gx[n] = Gy[n] = A×n
となるよう、全てのn(0≦n<GridMax)について初期化する。本実施例では例えば、GridMax = 1024、A = 32とする。
 なお、ここで例示した値は本発明を限定するものではない。
In this embodiment, the initial values of the elements Gx and Gy are all set to be equal intervals. When A is the spacing between grids,
Gx [n] = Gy [n] = A × n
Initialize all n (0 ≦ n <GridMax). In this embodiment, for example, GridMax = 1024 and A = 32.
In addition, the value illustrated here does not limit the present invention.
 GxとGyからグリッド分割における線分を生成する方法を説明する。
 Gxは垂直線分(垂直グリッド)の生成に使用される。描画領域201の高さをHとしたとき、n番目の垂直線分は、(Gx[n], 0)と(Gx[n], H)を結んだ線分となる。
 一方、Gyは水平線分(水平グリッド)の生成に使用される。描画領域201の幅をWとしたとき、n番目の水平線分は、(0, Gy[n])と(W, Gy[n])を結んだ線分となる。
A method for generating a line segment in grid division from Gx and Gy will be described.
Gx is used to generate vertical line segments (vertical grid). When the height of the drawing area 201 is H, the n-th vertical line segment is a line segment connecting (Gx [n], 0) and (Gx [n], H).
On the other hand, Gy is used to generate a horizontal line segment (horizontal grid). When the width of the drawing area 201 is W, the nth horizontal line segment is a line segment connecting (0, Gy [n]) and (W, Gy [n]).
 ここでグリッド分割に使用した線分は、ディスプレイ111に表示されるように描画される。 Here, the line segment used for the grid division is drawn so as to be displayed on the display 111.
 グリッド座標系とグリッド座標配列の対応関係について図8を参照しながら説明する。
前述のように、グリッド座標系ではcolとrowによってセル位置を指定する。ここであるセル801の位置を(col, row) = (c, r)とする。このときc列の幅802は、
  Gx[c + 1] - Gx[c]
で求められる。同様にr行の高さ803は、
  Gy[r + 1] - Gy[r]
で求められる。
 また、セル位置801の左上座標804は、
  (x, y) = (Gx[c], Gy[r])
となる。セル位置801の右下座標805は、
  (x, y) = (Gx[c + 1], Gy[r + 1])
となる。
The correspondence between the grid coordinate system and the grid coordinate array will be described with reference to FIG.
As described above, the cell position is specified by col and row in the grid coordinate system. The position of the cell 801 here is (col, row) = (c, r). At this time, the width 802 of column c is
Gx [c + 1]-Gx [c]
Is required. Similarly, the height 803 of row r is
Gy [r + 1]-Gy [r]
Is required.
The upper left coordinate 804 of the cell position 801 is
(x, y) = (Gx [c], Gy [r])
It becomes. The lower right coordinate 805 of the cell position 801 is
(x, y) = (Gx [c + 1], Gy [r + 1])
It becomes.
 次にS702でアクティブセル選択ステップを実行する。これは、操作対象のセルであるアクティブセルの位置を決定する処理である。 Next, an active cell selection step is executed in S702. This is a process of determining the position of the active cell that is the operation target cell.
 ここで選択するアクティブセルは、今後の操作の基点となる初期のアクティブセルである。本実施例では、(col, row) = (0, 0)をアクティブセルとする。
 なお、ここで例示した値は本発明を限定するものではない。
The active cell selected here is an initial active cell that is a base point for future operations. In this embodiment, (col, row) = (0, 0) is an active cell.
In addition, the value illustrated here does not limit the present invention.
 アクティブセル選択ステップの詳細については後述する。 Details of the active cell selection step will be described later.
 アクティブセルはディスプレイ111上で他のセルと区別できるよう強調表示される。
例えば、図3の原点セル301のように、セルの枠線を太く描画し、他のセルとアクティブセルが区別できるようにする。
The active cell is highlighted on the display 111 so that it can be distinguished from other cells.
For example, like the origin cell 301 in FIG. 3, the cell border is drawn thick so that the active cell can be distinguished from other cells.
 次にS703でユーザー入力ステップを実行する。ここで、ユーザーの操作待ちをする。
 ユーザー操作は、キーボード108やマウス109等で実施され、入力I/F107、システムバス103を介してCPU102に伝達される。
Next, a user input step is executed in S703. Here, it waits for the user's operation.
User operations are performed using the keyboard 108, the mouse 109, and the like, and are transmitted to the CPU 102 via the input I / F 107 and the system bus 103.
 次にS704で前述のユーザー操作が終了操作であったか否かを判定する。
 終了操作の例としては、ディスプレイ111に表示されている終了ボタンをマウス109を使用してクリックする操作が挙げられる。または、終了動作に割り当てられているキーをキーボード108から入力しても良い。
Next, in S704, it is determined whether or not the above-described user operation is an end operation.
An example of the ending operation is an operation of clicking the ending button displayed on the display 111 using the mouse 109. Alternatively, a key assigned to the end operation may be input from the keyboard 108.
 ユーザー操作が終了操作であった場合は本実施例の処理は終了する。ユーザー操作が終了操作でない場合は、S705に進む。 If the user operation is an end operation, the processing of this embodiment ends. If the user operation is not an end operation, the process proceeds to S705.
 S705では、終了操作以外のユーザー操作に対する処理を実行する。
 ここでのユーザー操作に対応する処理とは、
  ・オブジェクト追加ステップ
  ・選択モード設定ステップ
  ・アクティブセル選択ステップ
  ・トグル選択ステップ
を含む。それぞれの対応する処理については後述する。
 
In S705, processing for user operations other than the end operation is executed.
The process corresponding to the user operation here is
-Object addition step-Selection mode setting step-Active cell selection step-Includes toggle selection step Each corresponding process will be described later.
(オブジェクト追加ステップ)
 オブジェクト追加ステップでは図形要素であるオブジェクトを図面へ追加する。 
(Object addition step)
In the object addition step, an object which is a graphic element is added to the drawing.
 まず、オブジェクト追加ステップに対応するユーザー操作について説明する。
 ユーザー操作例として、アクティブセル位置を基準としてオブジェクトを追加する操作(以下、アクティブセル位置追加操作)がある。具体的には、キーボード108の所定のキーを押下したり、マウス109でディスプレイ111に表示された所定のボタンをクリックする等の操作である。
 この操作では、アクティブセルの位置を基準として、追加するオブジェクトの位置を決定する。
First, a user operation corresponding to the object addition step will be described.
As an example of the user operation, there is an operation of adding an object based on the active cell position (hereinafter referred to as an active cell position adding operation). Specifically, an operation such as pressing a predetermined key on the keyboard 108 or clicking a predetermined button displayed on the display 111 with the mouse 109 is performed.
In this operation, the position of the object to be added is determined based on the position of the active cell.
 また別のユーザー操作例として、図面内の任意の位置にオブジェクトを追加する操作(以下、任意位置追加操作)がある。具体的には、マウス109でディスプレイ111に表示されている図面内をクリックする操作である。
 この操作では、図面内でクリックされた座標を基準として、追加するオブジェクトの位置を決定する。
As another user operation example, there is an operation of adding an object at an arbitrary position in the drawing (hereinafter referred to as an arbitrary position adding operation). Specifically, this is an operation of clicking in the drawing displayed on the display 111 with the mouse 109.
In this operation, the position of the object to be added is determined based on the coordinates clicked in the drawing.
 次に、オブジェクト追加ステップの処理手順について、図面を参照しながら説明する。オブジェクト追加ステップはオブジェクトをセル配置する方法と自由配置する方法に分けられる。 Next, the processing procedure of the object addition step will be described with reference to the drawings. The object adding step is divided into a method of arranging an object in a cell and a method of freely arranging an object.
 まず、オブジェクト追加ステップの一形態であるセル配置の方法についてを説明する。
 この方法では動的連想配列を使用して、セル位置とオブジェクトの対応を記録することとする。この動的連想配列をCellMapとして定義する。
First, a cell arrangement method which is one form of the object addition step will be described.
This method uses a dynamic associative array to record the correspondence between cell positions and objects. This dynamic associative array is defined as CellMap.
 動的連想配列CellMapのキーは、セル位置を使用する。セル位置にはcolとrowがある。そこで、CellMapの実際のキーとしては、例えば、
  (row × (GridMax - 1)) + col
で算出される整数値を使用する。
The key of the dynamic associative array CellMap uses the cell position. Cell positions include col and row. Therefore, as an actual key of CellMap, for example,
(row × (GridMax-1)) + col
Use the integer value calculated in.
 動的連想配列CellMapの値(要素)は、オブジェクトを要素とする動的配列とする。このような動的配列を以下ではオブジェクト集合と呼ぶ。 値 The value (element) of the dynamic associative array CellMap is a dynamic array with an object as an element. Such a dynamic array is hereinafter referred to as an object set.
 記述を簡便にするため、セル位置(col, row) = (c, r)に格納されているオブジェクト集合(動的配列)にアクセスする、関数Cells(c, r)を導入する。Cells(c, r)を、
  Cells(c, r) = CellMap[r × (GridMax - 1) + c]
と定義することとする。すなわち、Cells(c, r)は、動的連想配列CellMapのキー(r × (GridMax - 1) + c)に対応するオブジェクト集合(動的配列)にアクセスすることと同等である。
In order to simplify the description, a function Cells (c, r) for accessing an object set (dynamic array) stored at a cell position (col, row) = (c, r) is introduced. Cells (c, r)
Cells (c, r) = CellMap [r x (GridMax-1) + c]
It is defined as That is, Cells (c, r) is equivalent to accessing an object set (dynamic array) corresponding to the key (r × (GridMax−1) + c) of the dynamic associative array CellMap.
 セル配置によるオブジェクト追加ステップの手順を、図9を参照しながら説明する。
 まず、S901でアクティブセルの列acと行arを取得する。
The procedure of the object addition step by cell arrangement will be described with reference to FIG.
First, in step S901, the column ac and row ar of the active cell are acquired.
 次に、S902でアクティブセルのオブジェクト集合Cells(ac, ar)を取得する。
 Cells(ac, ar)がnullの場合、セル位置(col, row) = (ac, ar)にはオブジェクト集合(動的配列)が存在していないことを示している。この場合はS903へ進む。
 Cells(ac, ar)がnullでない場合、 セル位置(col, row) = (ac, ar)にはオブジェクト集合が既に存在している。その場合はS904へ進む。
In step S902, an active cell object set Cells (ac, ar) is acquired.
When Cells (ac, ar) is null, it indicates that no object set (dynamic array) exists at the cell position (col, row) = (ac, ar). In this case, the process proceeds to S903.
If Cells (ac, ar) is not null, an object set already exists at cell location (col, row) = (ac, ar). In that case, the process proceeds to S904.
 S903では、Cells(ac, ar)に新しいオブジェクト集合(動的配列)を設定する。 In S903, a new object set (dynamic array) is set in Cells (ac, ar).
 最後に、S904でCells(ac, ar)が示すのオブジェクト集合(動的配列)に新しいオブジェクトを追加する。 Finally, in S904, a new object is added to the object set (dynamic array) indicated by Cells (ac, ar).
 加えて、セル位置(col, row) = (ac, ar)に該当するグリッド間隔を、必要に応じて拡張することが好ましい。 In addition, it is preferable to expand the grid interval corresponding to the cell position (col, row) = (ac, ar) as necessary.
 グリッド幅拡張の方法を図10を参照しながら説明する。
 S1001で追加するオブジェクトの幅を取得しObjWidthとする。
A method for expanding the grid width will be described with reference to FIG.
In S1001, the width of the object to be added is acquired and set as ObjWidth.
 次にS1002で、グリッドac列の幅を算出しGridWidthとする。具体的には、グリッド座標配列Gxから次の式で求める。
  GridWidth = Gx[ac + 1] - Gx[ac]
In step S1002, the width of the grid ac column is calculated and set as GridWidth. Specifically, it is obtained from the grid coordinate array Gx by the following formula.
GridWidth = Gx [ac + 1]-Gx [ac]
 次にS1003で条件分岐する。ObjWidth > GridWidthの場合S1004へ進む。そうでない場合はグリッド幅の拡張は実施しない。 Next, branch at S1003. If ObjWidth> GridWidth, go to S1004. Otherwise, the grid width is not expanded.
 S1004ではグリッド幅の拡張処理を行う。具体的には、(ac < n < GridMax)の範囲のnについて、
  Gx[n] = Gx[n] + (ObjWidth - GridWidth)
となるようGxを変更する。
In S1004, the grid width is expanded. Specifically, for n in the range of (ac <n <GridMax)
Gx [n] = Gx [n] + (ObjWidth-GridWidth)
Change Gx to be
 同様に、グリッド高さ拡張の方法を図11を参照しながら説明する。
 S1101で追加するオブジェクトの高さを取得しObjHeightとする。
Similarly, a method for extending the grid height will be described with reference to FIG.
In S1101, the height of the object to be added is acquired and set as ObjHeight.
 次にS1102で、グリッドar行の高さを算出しGridHeightとする。具体的には、グリッド座標配列Gyから次の式で求める。
  GridHeight = Gy[ar + 1] - Gy[ar]
Next, in S1102, the height of the grid ar row is calculated and set as GridHeight. Specifically, it is obtained from the grid coordinate array Gy by the following formula.
GridHeight = Gy [ar + 1]-Gy [ar]
 次にS1103で条件分岐する。ObjHeight > GridHeightの場合S1104へ進む。そうでない場合はグリッド高さの拡張は実施しない。 Next, conditional branching is performed at S1103. If ObjHeight> GridHeight, proceed to S1104. Otherwise, the grid height is not expanded.
 S1104ではグリッド高さの拡張処理を行う。具体的には、(ar < n < GridMax)の範囲のnについて、
  Gy[n] = Gy[n] + (ObjHeight - GridHeight)
となるようGyを変更する。
 
In S1104, the grid height is expanded. Specifically, for n in the range (ar <n <GridMax),
Gy [n] = Gy [n] + (ObjHeight-GridHeight)
Change Gy to be
 次に、オブジェクト追加ステップの別の一形態である自由配置の手順を説明する。
 この手順では動的配列を使用して、オブジェクトを記録することとする。この動的配列をObjectArrayとして定義する。
Next, a procedure for free placement, which is another form of the object addition step, will be described.
In this procedure, an object is recorded using a dynamic array. This dynamic array is defined as ObjectArray.
 まず、追加するオブジェクトの図面内での位置とサイズを決定する。
 オブジェクトの位置としては、任意位置追加操作で指定された位置を基準とする。または、図面内のアクティブセルの位置座標を基準としても良い。
First, the position and size of the object to be added in the drawing are determined.
The position of the object is based on the position specified by the arbitrary position adding operation. Alternatively, the position coordinates of the active cell in the drawing may be used as a reference.
 オブジェクトの位置とサイズは、オブジェクトの属性として持つことが好ましい。
 例えば、図4の配置座標402、幅403、高さ404のような属性が好ましい。また別の例では、図5の配置座標502、境界矩形505の幅503、境界矩形505の高さ504のような属性も好ましい。また別の例では、始点602、中継点603、終点604のような属性も好ましい。
It is preferable to have the position and size of the object as attributes of the object.
For example, attributes such as an arrangement coordinate 402, a width 403, and a height 404 in FIG. 4 are preferable. In another example, attributes such as the arrangement coordinates 502, the width 503 of the boundary rectangle 505, and the height 504 of the boundary rectangle 505 are also preferable. In another example, attributes such as a start point 602, a relay point 603, and an end point 604 are also preferable.
 そして、動的配列ObjectArrayに、位置とサイズが決定されたオブジェクトを追加する。
 
Then, an object whose position and size are determined is added to the dynamic array ObjectArray.
 このように、オブジェクト追加ステップの処理として、セル配置の方法と自由配置の方法を例示した。
 これら2つの手順は、ユーザー操作の方法によって選択的に実行することが好ましい。例えば、前述のアクティブセル位置追加操作の場合は、セル配置の手順を実行する。前述の任意位置追加操作の場合は、自由配置の手順を実行する。
As described above, the cell placement method and the free placement method are exemplified as the processing of the object addition step.
These two procedures are preferably selectively executed by a user operation method. For example, in the case of the above-described operation for adding an active cell position, a cell arrangement procedure is executed. In the case of the above-described arbitrary position addition operation, the procedure of free placement is executed.
 または、ユーザー操作によらず、常に両方の手順を実行しても良い。 Or, both procedures may always be executed regardless of user operation.
 または、追加するオブジェクトの種別によって選択的に実行しても良い。
 具体的には、セル内に配置することが前提のオブジェクト種別を追加する場合は、セル配置の手順を実行する。例えば、図形401で例示したクラスや、図形501で例示したアクターは、セル内に配置することを前提とし、セル配置の手順でオブジェクトを追加する。
Alternatively, it may be selectively executed according to the type of object to be added.
Specifically, when adding an object type that is assumed to be placed in a cell, a cell placement procedure is executed. For example, the class exemplified by the graphic 401 and the actor exemplified by the graphic 501 are premised to be arranged in a cell, and an object is added by the cell arrangement procedure.
 一方、セルやグリッドに影響されないオブジェクト種別を追加する場合は、自由配置の手順を実行する。例えば、図形601で例示したコネクターは、セルをまたいで配置されるので、自由配置の手順でオブジェクトを追加する。
 
On the other hand, when adding an object type that is not affected by cells or grids, a free placement procedure is executed. For example, since the connector illustrated in the figure 601 is arranged across cells, an object is added by a free arrangement procedure.
(選択モード設定ステップ)
 ここから、選択モード設定ステップについて、図面を参照しながら説明する。選択モード設定ステップには、配置モード設定ステップと、種別フィルター設定ステップとが含まれる。
(Selection mode setting step)
From here, the selection mode setting step will be described with reference to the drawings. The selection mode setting step includes an arrangement mode setting step and a type filter setting step.
 まずは、配置モード設定ステップについて説明する。
 設定された配置モードに応じて、選択可能なオブジェクトが決定される。配置モードはユーザー操作によって設定される。本実施例では次のような配置モードを設定可能である。
  ・セル配置選択モード
  ・自由配置選択モード
  ・オール選択モード
First, the arrangement mode setting step will be described.
A selectable object is determined according to the set arrangement mode. The arrangement mode is set by a user operation. In the present embodiment, the following arrangement mode can be set.
・ Cell placement selection mode ・ Free placement selection mode ・ All selection mode
 各配置モードについて図12を参照しながら説明する。
 図12は図面にオブジェクトが配置されている状態の例を示している。
 クラス1201と基底クラス1202とコメント1205はセル配置されたオブジェクトである。よって、オブジェクトは動的連想配列CellMapに格納されている。
Each arrangement mode will be described with reference to FIG.
FIG. 12 shows an example of a state where objects are arranged in the drawing.
Class 1201, base class 1202, and comment 1205 are objects arranged in cells. Therefore, the object is stored in the dynamic associative array CellMap.
 一方、汎化コネクタ1203とコメントコネクタ1204はセル(グリッド)をまたいで配置されている。これらは自由配置されたオブジェクトである。よって、オブジェクトは動的配列ObjectArrayに格納されている。 On the other hand, the generalized connector 1203 and the comment connector 1204 are arranged across cells (grids). These are freely arranged objects. Therefore, the objects are stored in the dynamic array ObjectArray.
 セル配置選択モードは、セル配置されたオブジェクトを選択するモードである。図12の例では、クラス1201と基底クラス1202とコメント1205が選択可能となる。 The cell arrangement selection mode is a mode for selecting an object arranged in a cell. In the example of FIG. 12, a class 1201, a base class 1202, and a comment 1205 can be selected.
 自由配置選択モードは、自由配置されたオブジェクトを選択するモードである。図12の例では、汎化コネクタ1203とコメントコネクタ1204が選択可能となる。 The free placement selection mode is a mode for selecting freely placed objects. In the example of FIG. 12, the generalized connector 1203 and the comment connector 1204 can be selected.
 オール選択モードは、配置方法に関わらずオブジェクトを選択するモードである。図12の例では、すべてのオブジェクト(クラス1201、基底クラス1202、汎化コネクタ1203、コメントコネクタ1204、コメント1205)が選択可能となる。 The all selection mode is a mode for selecting an object regardless of the arrangement method. In the example of FIG. 12, all objects (class 1201, base class 1202, generalized connector 1203, comment connector 1204, comment 1205) can be selected.
 次に種別フィルター設定ステップについて説明する。
 種別フィルターではオブジェクトの種別を設定する。本実施例では、種別フィルターで選択された種別のオブジェクトのみが、選択可能なオブジェクトとなる。種別フィルターによって、各配置モードの選択可能なオブジェクトをさらに絞り込むことが可能となる。
 なお、前述した各配置モードにおける選択可能なオブジェクトの例は、種別フィルターとして全種別が選択されている状態(または種別フィルター無効状態)である。
Next, the type filter setting step will be described.
The type filter sets the type of object. In this embodiment, only objects of the type selected by the type filter are selectable objects. By the type filter, it is possible to further narrow down selectable objects in each arrangement mode.
Note that examples of selectable objects in each arrangement mode described above are states in which all types are selected as the type filters (or type filter invalid state).
 種別フィルターはユーザー操作によって設定される。種別フィルターは、全てのオブジェクトの種別から選択的に設定できることが好ましい。また、設定可能な種別フィルターは1つとは限らず、複数の種別フィルターを同時に設定できることが好ましい。 The type filter is set by user operation. It is preferable that the type filter can be selectively set from the types of all objects. Moreover, the number of type filters that can be set is not limited to one, and it is preferable that a plurality of type filters can be set simultaneously.
 種別フィルターと配置モードの例を図12を参照しながら説明する。
 セル配置選択モードで、種別フィルターにクラスを選択した場合を考える。この時、図12の例ではクラス1201と基底クラス1202が選択可能となる。
An example of the type filter and the arrangement mode will be described with reference to FIG.
Consider a case where a class is selected as a type filter in the cell arrangement selection mode. At this time, the class 1201 and the base class 1202 can be selected in the example of FIG.
 セル配置選択モードで、種別フィルターにコメントを選択した場合を考える。この時、図12の例でコメント1205が選択可能となる。 Suppose a comment is selected for the type filter in the cell placement selection mode. At this time, the comment 1205 can be selected in the example of FIG.
 自由配置選択モードで、種別フィルターに汎化コネクタを選択した場合を考える。この時、図12の例で汎化コネクタ1203が選択可能となる。 Suppose the generalized connector is selected as the type filter in the free placement selection mode. At this time, the generalized connector 1203 can be selected in the example of FIG.
 自由配置選択モードで、種別フィルターにコメントコネクタを選択した場合を考える。この時、図12の例でコメントコネクタ1204が選択可能となる。 Suppose the comment connector is selected as the type filter in the free placement selection mode. At this time, the comment connector 1204 can be selected in the example of FIG.
 自由配置選択モードで、種別フィルターにコネクタを選択した場合を考える。コネクタという種別は汎化コネクタやコメントコネクタを含めた上位の種別概念とする。この時、図12の例で汎化コネクタ1203とコメントコネクタ1204が選択可能となる。 Suppose the connector is selected as the type filter in the free placement selection mode. The type of connector is a high-level concept including generalized connectors and comment connectors. At this time, the generalized connector 1203 and the comment connector 1204 can be selected in the example of FIG.
 オール選択モードで、種別フィルターにクラスを選択した場合を考える。この時、図12の例ではクラス1201と基底クラス1202が選択可能となる。 Suppose the class is selected as the type filter in the all selection mode. At this time, the class 1201 and the base class 1202 can be selected in the example of FIG.
 オール選択モードで、種別フィルターにクラスと汎化コネクタを選択した場合を考える。この時、図12の例でクラス1201と基底クラス1202と汎化コネクタ1203が選択可能となる。 Suppose the class and generalized connector are selected as the type filter in the all selection mode. At this time, in the example of FIG. 12, the class 1201, the base class 1202, and the generalized connector 1203 can be selected.
 オール選択モードで、種別フィルターにコメントとコメントコネクタを選択した場合を考える。この時、図12の例でコメント1205とコメントコネクタ1204が選択可能となる。 Suppose a comment and a comment connector are selected for the type filter in the all selection mode. At this time, the comment 1205 and the comment connector 1204 can be selected in the example of FIG.
 このように、配置モードと種別フィルターによる選択可能なオブジェクトの例を列挙した。具体的なオブジェクト選択方法については、後述のアクティブセル選択ステップ及びトグル選択ステップで詳しく述べる。 In this way, examples of objects that can be selected by arrangement mode and type filter are listed. A specific object selection method will be described in detail in an active cell selection step and a toggle selection step described later.
 また、選択モード設定ステップを実行して、配置モードまたは種別フィルターが変更されると、選択可能なオブジェクトが変更される。よって、選択モード設定ステップを実行後は、オブジェクトの選択状態を更新する、オブジェクト選択状態更新ステップを実行することが好ましい。 Also, when the selection mode setting step is executed and the arrangement mode or type filter is changed, selectable objects are changed. Therefore, after executing the selection mode setting step, it is preferable to execute an object selection state update step of updating the object selection state.
 オブジェクト選択状態更新ステップには次の2種類のステップが含まれる。
 1つは、種別フィルターに応じて、オブジェクト選択状態の更新を実施する種別オブジェクト選択状態更新ステップである。
 もう1つは、配置モードに応じて、オブジェクト選択状態の更新を実施する、配置方法別オブジェクト選択状態更新ステップである。
The object selection state update step includes the following two types of steps.
One is a type object selection state update step for updating the object selection state according to the type filter.
The other is an object selection state update step by arrangement method in which the object selection state is updated according to the arrangement mode.
 本実施例におけるオブジェクト選択状態更新ステップは、選択モード設定ステップを実行した後に、アクティブセル選択ステップを実行することで実現している。ただし、このとき、現在のアクティブセルと同じ位置を選択セルとする。 The object selection state update step in the present embodiment is realized by executing the active cell selection step after executing the selection mode setting step. However, at this time, the same position as the current active cell is set as the selected cell.
 詳細は後述するが、アクティブセル選択ステップでは、配置モードと種別フィルターに応じて、選択状態にするオブジェクトを決定している。つまり、アクティブセルを移動させずにアクティブセル選択ステップを実行すれば、オブジェクトの選択状態を更新することと等しい。すなわち、種別オブジェクト選択状態更新ステップと、配置方法別オブジェクト選択状態更新ステップが実行される。
 
Although details will be described later, in the active cell selection step, an object to be selected is determined according to the arrangement mode and the type filter. That is, if the active cell selection step is executed without moving the active cell, it is equivalent to updating the selection state of the object. That is, the type object selection state update step and the placement method-specific object selection state update step are executed.
(アクティブセル選択ステップ)
 ここから、アクティブセル選択ステップについて、図面を参照しながら説明する。
 アクティブセル選択ステップでは、ユーザーが選択したセルをアクティブセルとして設定する処理を行う。ユーザーは、マウス109を使用して、ディスプレイ111に表示されているセルをクリックすると、当該セルを選択することができる。
(Active cell selection step)
From here, the active cell selection step will be described with reference to the drawings.
In the active cell selection step, a process of setting a cell selected by the user as an active cell is performed. When the user clicks a cell displayed on the display 111 using the mouse 109, the cell can be selected.
 また、キーボード108によって、現在のアクティブセルを基点として別のセルを選択することができる。
 例えば、キーボード108に上下左右の方向キーが含まれているとする。ここで、キーボード108の上方向キーを押下すれば、現在のアクティブセルの上隣のセルを選択できる。同様に下方向キーを押下すれば下隣、左方向キーを押下すれば左隣、右方向キーを押下すれば右隣のセルを選択できる。
 なお、本発明が、ここで例示したユーザー操作方法に限定されることはなく、種々の操作をアクティブセル選択操作として割り当てることが可能である。
Further, another cell can be selected using the keyboard 108 with the current active cell as a base point.
For example, it is assumed that the keyboard 108 includes up / down / left / right direction keys. Here, if the upward key of the keyboard 108 is pressed, the cell adjacent to the current active cell can be selected. Similarly, the cell next to the lower side can be selected by pressing the down key, the left side by pressing the left key, and the right cell by pressing the right key.
Note that the present invention is not limited to the user operation method exemplified here, and various operations can be assigned as the active cell selection operation.
 また、本実施例では、前述のようにオブジェクト選択状態更新ステップの一部として、アクティブセル選択ステップが実行されることがある。この場合、現在のアクティブセルと同じ位置が選択セルとなる。 In this embodiment, as described above, the active cell selection step may be executed as part of the object selection state update step. In this case, the same position as the current active cell becomes the selected cell.
 アクティブセル選択ステップの処理の流れを図13を参照しながら説明する。図13はアクティブセル選択ステップのフローチャートである。
 まず、S1301で選択セルの位置を変数に保存する。選択セルとは前述のユーザーが選択したセルのことである。選択セルの列をsc、選択セルの行をsrとする。
The process flow of the active cell selection step will be described with reference to FIG. FIG. 13 is a flowchart of the active cell selection step.
First, in S1301, the position of the selected cell is stored in a variable. The selected cell is a cell selected by the user. Let the column of the selected cell be sc and the row of the selected cell be sr.
 次にS1302でアクティブセルの位置を(col, row) = (sc, sr)に設定する。この段階でアクティブセルの位置情報が書き換わる。つまり、以降の処理でアクティブセルの位置を取得すると、(col, row) = (sc, sr)という値が取得される。
 そして、ディスプレイ111上で新しいアクティブセルの位置(col, row) = (sc, sr)が強調表示される。
 ただし、選択されているオブジェクトはまだ更新されていない。以降の処理でオブジェクトの選択状態を更新する。
In step S1302, the active cell position is set to (col, row) = (sc, sr). At this stage, the position information of the active cell is rewritten. That is, when the position of the active cell is acquired in the subsequent processing, a value of (col, row) = (sc, sr) is acquired.
Then, the position (col, row) = (sc, sr) of the new active cell is highlighted on the display 111.
However, the selected object has not yet been updated. The object selection state is updated in the subsequent processing.
 S1303では、現在選択されているオブジェクトがあれば、そのオブジェクトの選択状態を解除する。本実施例では、選択状態が解除されると、少なくともディスプレイ111上で該オブジェクトの強調表示が解除されて通常表示となる。 In S1303, if there is an object currently selected, the selected state of the object is released. In the present embodiment, when the selected state is released, the highlighted display of the object is released at least on the display 111 and a normal display is obtained.
 S1304では、選択候補となるオブジェクト集合を決定する選択候補オブジェクト決定ステップを実行する。選択候補オブジェクト決定ステップの詳細については後述する。
 選択候補となるオブジェクト集合とは、アクティブセルの範囲内に配置されている複数のオブジェクトを含む集合である。本実施例では、選択候補のオブジェクト集合は動的配列CanObjArrayに格納される。動的配列CanObjArrayは他のステップでも共有される変数である。選択候補オブジェクト決定ステップによって動的配列CanObjArrayが構築される。
In S1304, a selection candidate object determination step for determining an object set as a selection candidate is executed. Details of the selection candidate object determination step will be described later.
The object set as a selection candidate is a set including a plurality of objects arranged within the range of the active cell. In the present embodiment, the selection candidate object set is stored in the dynamic array CanObjArray. The dynamic array CanObjArray is a variable shared in other steps. The dynamic array CanObjArray is constructed by the selection candidate object determination step.
 S1305では、オブジェクト集合CanObjArrayに要素が存在するか否かを判定する。具体的にはCanObjArray.countが0より大きければ、CanObjArrayに要素が存在していると判定できる。つまり、アクティブセルの範囲内に選択候補のオブジェクトが存在している。この場合S1306へ進む。
 CanObjArray.countが0以下であれば、CanObjArrayに要素が存在しない。つまり、アクティブセルの範囲内に選択候補のオブジェクトは存在していない。この場合、アクティブセル選択ステップを終了する。
In S1305, it is determined whether or not an element exists in the object set CanObjArray. Specifically, if CanObjArray.count is greater than 0, it can be determined that an element exists in CanObjArray. That is, the selection candidate object exists within the range of the active cell. In this case, the process proceeds to S1306.
If CanObjArray.count is 0 or less, there is no element in CanObjArray. That is, there is no selection candidate object within the range of the active cell. In this case, the active cell selection step ends.
 S1306では、選択候補のオブジェクト集合の中から1つのオブジェクトを選択状態にする、オブジェクト選択ステップを実行する。
 本実施例では、オブジェクト集合CanObjArrayの最初の要素(オブジェクト)を選択状態にする。本実施例では、オブジェクトが選択状態になると、少なくともディスプレイ111で強調表示される。
 なお、本発明のオブジェクト選択ステップは、選択するオブジェクトが1つに限定されることはない。例えば、オブジェクト選択ステップがCanObjArrayに含まれる全てのオブジェクトを選択状態にしても良い。
In step S1306, an object selection step is performed in which one object is selected from the selection candidate object set.
In this embodiment, the first element (object) of the object set CanObjArray is selected. In this embodiment, when an object is selected, at least the display 111 highlights the object.
In the object selection step of the present invention, the number of objects to be selected is not limited to one. For example, the object selection step may select all the objects included in the CanObjArray.
 最後にS1307では、整数型変数NowObjIDに0を設定する。NowObjIDはCanObjArray中で現在選択されているオブジェクトのインデックス番号を示す。NowObjIDは後述するトグル選択ステップにおいて使用される。
 
Finally, in S1307, 0 is set to the integer type variable NowObjID. NowObjID indicates the index number of the object currently selected in CanObjArray. NowObjID is used in the toggle selection step described later.
(選択候補オブジェクト決定ステップ)
 次に、選択候補オブジェクト決定ステップの処理の流れについて、図14を参照しながら説明する。図14は選択候補オブジェクト決定ステップのフローチャートである。選択候補オブジェクト決定ステップでは、選択候補のオブジェクト集合CanObjArrayを構築することが目的である。
(Selection candidate object determination step)
Next, the processing flow of the selection candidate object determination step will be described with reference to FIG. FIG. 14 is a flowchart of the selection candidate object determination step. In the selection candidate object determination step, the object is to construct an object set CanObjArray of selection candidates.
 本実施例における選択候補オブジェクト決定ステップには、配置方法別オブジェクト決定ステップと種別フィルタリングステップが含まれる。
 配置方法別オブジェクト決定ステップは、前述の配置モード設定ステップで設定された配置モードに応じて選択候補を決定する。
 種別フィルタリングステップは、種別フィルター設定ステップで設定された種別フィルターに応じて選択候補を決定する。
The selection candidate object determination step in the present embodiment includes an arrangement method-specific object determination step and a type filtering step.
In the object determining step by arrangement method, selection candidates are determined according to the arrangement mode set in the arrangement mode setting step described above.
In the type filtering step, selection candidates are determined according to the type filter set in the type filter setting step.
 まず、S1401で選択候補のオブジェクト集合であるCanObjArrayを初期化する。もし、既にCanObjArrayが存在している場合、その内容は全て消去される。 First, in S1401, a CanObjArray that is a selection candidate object set is initialized. If CanObjArray already exists, all of its contents are deleted.
 S1402では、前述の配置モード設定ステップで設定された配置モードに基づいて条件分岐する。配置モードがセル配置選択モード、またはオール選択モードの場合はS1403へ進む。それ以外の場合はS1404へ進む。 In S1402, conditional branching is performed based on the placement mode set in the placement mode setting step described above. When the arrangement mode is the cell arrangement selection mode or the all selection mode, the process proceeds to S1403. Otherwise, the process proceeds to S1404.
 S1403では、セル配置されているオブジェクトを、オブジェクト集合CanObjArrayへ追加する。この処理の詳細は、後述するセル配置オブジェクト候補追加ステップにて説明する。 In S1403, the cell arranged object is added to the object set CanObjArray. Details of this processing will be described in a cell arrangement object candidate addition step described later.
 S1404では、前述の配置モード設定ステップで設定された配置モードに基づいて条件分岐する。配置モードが自由配置選択モード、またはオール選択モードの場合はS1405へ進む。それ以外の場合はS1406へ進む。 In S1404, conditional branching is performed based on the placement mode set in the placement mode setting step described above. When the arrangement mode is the free arrangement selection mode or the all selection mode, the process proceeds to S1405. Otherwise, the process proceeds to S1406.
 S1405では、自由配置されているオブジェクトを、オブジェクト集合CanObjArrayへ追加する。この処理の詳細は、後述する自由配置オブジェクト候補追加ステップにて説明する。 In S1405, freely arranged objects are added to the object set CanObjArray. Details of this processing will be described in the step of adding a free-placement object candidate described later.
 なお、S1402、S1403、S1404、S1405が、本実施例における配置方法別オブジェクト決定ステップである。 Note that S1402, S1403, S1404, and S1405 are object determination steps by arrangement method in this embodiment.
 最後にS1406では、前述の種別フィルター設定ステップで設定された種別フィルターに基づいて、オブジェクト集合CanObjArrayの要素をフィルタリングする。この処理の詳細は、後述する種別フィルタリングステップにて説明する。
 
Finally, in S1406, the elements of the object set CanObjArray are filtered based on the type filter set in the type filter setting step described above. Details of this processing will be described in a type filtering step described later.
(セル配置オブジェクト候補追加ステップ)
 ここから、セル配置オブジェクト候補追加ステップについて、図15を参照しながら説明する。セル配置オブジェクト候補追加ステップは、セル配置されているオブジェクトを、オブジェクト集合CanObjArrayへ追加することを目的とする。
(Cell placement object candidate addition step)
From here, the cell arrangement object candidate addition step will be described with reference to FIG. The cell placement object candidate addition step aims to add the cell-placed object to the object set CanObjArray.
 まず、S1501でアクティブセルの列acと行arを取得する。 First, the column ac and row ar of the active cell are acquired in S1501.
 次にS1502で、セル位置(col, row) = (ac, ar)にセル配置されているオブジェクト集合(動的配列)を取得しObjsとする。具体的には、Cells(ac, ar)への参照をObjsに設定する。 Next, in S1502, an object set (dynamic array) arranged in a cell at the cell position (col, row) = (ac, ar) is acquired and set as Objs. Specifically, the reference to Cells (ac, ar) is set in Objs.
 ただし、アクティブセルにセル配置されているオブジェクト集合が無ければ、Cells(ac, ar)はnullとなる。その場合、セル配置オブジェクト候補追加ステップでCanObjArrayへ追加すべきオブジェクトは存在しない。
 S1503ではObjsがnullか否かによって条件分岐する。すなわち、Cells(ac, ar)がnullか否かを確認している。Objsがnullでない場合、オブジェクト集合が存在している。その場合S1504へ進み、処理を継続する。Objsがnullの場合、オブジェクト集合が存在していないので、セル配置オブジェクト候補追加ステップを終了する。
However, if there is no object set arranged in the active cell, Cells (ac, ar) is null. In that case, there is no object to be added to CanObjArray in the cell arrangement object candidate addition step.
In S1503, conditional branching is performed depending on whether Objs is null or not. That is, it is confirmed whether Cells (ac, ar) is null. If Objs is not null, an object set exists. In that case, the process proceeds to S1504 and the process is continued. If Objs is null, the object set does not exist, so the cell placement object candidate addition step is terminated.
 次にS1504、S1505、S1506、S1507では、Objsを順次走査し、Objsに含まれる全ての要素をCanObjArrayに追加する処理を実行する。
 そのために、S1504でループ変数iを0に初期化する。
Next, in S1504, S1505, S1506, and S1507, Objs is sequentially scanned, and processing for adding all elements included in Objs to CanObjArray is executed.
For this purpose, the loop variable i is initialized to 0 in S1504.
 S1505ではiがObjsの要素数(Objs.count)未満か否かを判定する。iがObjsの要素数未満の場合は、Objsに走査すべき要素が残っていることを示している。その場合、S1506へ進む。iがObjsの要素数以上の場合、Objsの全要素を走査したことを示している。その場合、セル配置オブジェクト候補追加ステップを終了する。 In S1505, it is determined whether i is less than the number of Objs elements (Objs.count). If i is less than the number of elements in Objs, it indicates that there are still elements to be scanned in Objs. In that case, the process proceeds to S1506. If i is greater than or equal to the number of elements in Objs, it indicates that all elements in Objs have been scanned. In that case, the cell placement object candidate addition step is terminated.
 S1506ではObjs[i]をCanObjArrayへ追加する。 In S1506, Objs [i] is added to CanObjArray.
 S1507でループ変数iを1加算してS1505へ戻る。
 
In S1507, the loop variable i is incremented by 1, and the process returns to S1505.
(自由配置オブジェクト候補追加ステップ)
 ここから、自由配置オブジェクト候補追加ステップについて、図16を参照しながら説明する。図16は自由配置オブジェクト候補追加ステップのフローチャートである。自由配置オブジェクト候補追加ステップは、自由配置されているオブジェクトを、オブジェクト集合CanObjArrayへ追加することを目的とする。
(Free placement object candidate addition step)
From here, the step of adding a free-placement object candidate will be described with reference to FIG. FIG. 16 is a flowchart of the step of adding a free placement object candidate. The free placement object candidate addition step is intended to add freely placed objects to the object set CanObjArray.
 まず、S1601でアクティブセルの矩形ActiveRectを取得する。ActiveRectはパラメータとして左上座標x、yと幅widthと高さheightを含む。これらのパラメータは前述したようにグリッド座標配列Gx、Gyから算出可能である。具体的には、アクティブセルの列をac、行をarとしたとき、
  x = Gx[ac]
  y = Gy[ar]
  width = Gx[ac + 1] - Gx[ac]
  height = Gy[ar + 1] - Gy[ar]
となる。
First, in S1601, the active cell rectangle ActiveRect is acquired. ActiveRect includes upper left coordinates x, y, width width and height height as parameters. These parameters can be calculated from the grid coordinate arrays Gx and Gy as described above. Specifically, when the active cell column is ac and the row is ar,
x = Gx [ac]
y = Gy [ar]
width = Gx [ac + 1]-Gx [ac]
height = Gy [ar + 1]-Gy [ar]
It becomes.
 次にS1602、S1603、S1604、S1605、S1606、S1607で、ObjectArrayを順次走査し、アクティブセルの矩形と重なるオブジェクトをCanObjArrayに追加する処理を実行する。
 そのために、S1602でループ変数iを0に初期化する。
Next, in S1602, S1603, S1604, S1605, S1606, and S1607, the ObjectArray is sequentially scanned, and processing for adding an object that overlaps the rectangle of the active cell to the CanObjArray is executed.
For this purpose, the loop variable i is initialized to 0 in S1602.
 S1603ではiがObjectArrayの要素数(ObjectArray.count)未満か否かを判定する。iがObjectArrayの要素数未満の場合は、ObjectArrayに走査すべき要素が残っていることを示している。その場合、S1604へ進む。iがObjectArrayの要素数以上の場合、ObjectArrayの全要素を走査したことを示している。その場合、自由配置オブジェクト候補追加ステップを終了する。 In S1603, it is determined whether i is less than the number of elements in ObjectArray (ObjectArray.count). If i is less than the number of elements in the ObjectArray, it indicates that there are still elements to be scanned in the ObjectArray. In that case, the process proceeds to S1604. If i is greater than or equal to the number of elements in ObjectArray, it indicates that all elements in ObjectArray have been scanned. In this case, the free placement object candidate addition step is terminated.
 S1604ではオブジェクトObjectArray[i]の領域ObjRegionを取得する。本実施例における領域とは、矩形または線分の集合で表現する。領域ObjRegionは、矩形情報か線分の集合情報のどちらか一方を保持できることとする。 In S1604, the area ObjRegion of the object ObjectArray [i] is acquired. The area in this embodiment is expressed by a rectangle or a set of line segments. The region ObjRegion can hold either rectangular information or set information of line segments.
 例えば、ObjectArray[i]が図4の図形401や図5の図形501のように、領域を矩形で表現できるオブジェクトの場合を考える。この場合、領域ObjRegionにはオブジェクトの矩形情報が記録される。具体的には左上座標x、yと幅widthと高さheightを含む情報が記録される。 For example, let us consider a case where ObjectArray [i] is an object that can represent a region as a rectangle, such as figure 401 in FIG. 4 or figure 501 in FIG. In this case, the rectangle information of the object is recorded in the area ObjRegion. Specifically, information including upper left coordinates x, y, width width, and height height is recorded.
 一方、別の例では、ObjectArray[i]が、図6の図形601のように線分で構成される場合を考える。この場合、領域ObjRegionには線分の集合情報が記録される。具体的には点(x, y)の集合が動的配列として記録される。 On the other hand, in another example, consider a case where ObjectArray [i] is composed of line segments as in the figure 601 in FIG. In this case, line segment set information is recorded in the region ObjRegion. Specifically, a set of points (x, y) is recorded as a dynamic array.
 なお、本実施例では、領域を矩形または線分の集合で表現することとしたがが、これは本発明を限定するものではなく、これ以外の表現方法も可能である。例えば、円状の領域で表現することも可能である。
 さらに、本実施例では、領域が矩形か線分の集合のどちらか一方を保持しているが、複数種類の領域を組み合わせて、1つの領域としてもよい。
In the present embodiment, the region is expressed by a rectangle or a set of line segments, but this does not limit the present invention, and other expression methods are possible. For example, it can be expressed by a circular region.
Furthermore, in this embodiment, the area holds either one of a rectangle or a set of line segments, but a plurality of types of areas may be combined to form one area.
 次のS1605では、アクティブセルの矩形ActiveRectとObjectArray[i]の領域ObjRegionとが重なっているかを判定する。この判定方法については、後述の重なり判定ステップで説明する。
 重なっている場合、ObjectArray[i]は選択候補となる。その場合S1606へ進む。
 重なっていない場合、ObjectArray[i]は選択候補ではない。その場合S1607へ進む。
In next step S1605, it is determined whether the rectangle ActiveRect of the active cell overlaps the area ObjRegion of the ObjectArray [i]. This determination method will be described in the overlap determination step described later.
If they overlap, ObjectArray [i] is a selection candidate. In that case, the process proceeds to S1606.
If they do not overlap, ObjectArray [i] is not a selection candidate. In that case, the process proceeds to S1607.
 S1606ではObjectArray[i]をCanObjArrayへ追加する。 In S1606, ObjectArray [i] is added to CanObjArray.
 S1607でループ変数iを1加算してS1603へ戻る。
 
In S1607, the loop variable i is incremented by 1, and the process returns to S1603.
(重なり判定ステップ)
 ここから、アクティブセルの矩形ActiveRectとObjectArray[i]の領域ObjRegionとの重なり判定ステップについて、図17を参照しながら説明する。図17は重なり判定ステップのフローチャートである。
(Overlapping judgment step)
From here, the overlapping determination step of the rectangle ActiveRect of the active cell and the area ObjRegion of ObjectArray [i] will be described with reference to FIG. FIG. 17 is a flowchart of the overlap determination step.
 本実施例におけるObjRegionは、前述のように矩形か線分の集合のどちらか一方が格納されている。そこでまずはS1701で、ObjRegionが矩形か、線分の集合かで条件分岐する。ObjRegionが線分の集合である場合はS1702へ進む。ObjRegionが矩形である場合はS1708へ進む。 <ObjRegion> in this embodiment stores either a rectangle or a set of line segments as described above. Therefore, first, in S1701, a conditional branch is made depending on whether ObjRegion is a rectangle or a set of line segments. If ObjRegion is a set of line segments, the process proceeds to S1702. If ObjRegion is rectangular, the process advances to S1708.
 S1702では、ObjRegionに格納されている線分の集合から、最初の点を取り出し、点Pとする。 In S1702, the first point is extracted from the set of line segments stored in ObjRegion and set as point P.
 S1703では、ObjRegionに格納されている線分の集合の内、まだ取り出していない点があるかを判定する。まだ取り出していない点がある、すなわち次の点が存在する場合はS1704へ進む。
 全ての点を取り出した場合、すなわち次の点が存在しない場合は重なり判定ステップを終了する。この場合、ActiveRectとObjRegionは重なっていないと判定する。
In S1703, it is determined whether there is a point that has not yet been extracted from the set of line segments stored in ObjRegion. If there is a point that has not yet been taken out, that is, if there is a next point, the process proceeds to S1704.
When all the points have been extracted, that is, when there is no next point, the overlap determination step ends. In this case, it is determined that ActiveRect and ObjRegion do not overlap.
 S1704では、ObjRegionから次の点を取り出し、点Qとする。 In S1704, the next point is extracted from ObjRegion and set as point Q.
 S1705ではActiveRectの各辺と線分PQとで線分同士の交差判定を実施する。ActiveRectのいずれか一辺と線分PQが交差していれば、ActiveRectとObjRegionは重なっている(交差している)と判定する。 In S1705, the intersection of line segments is determined by each side of ActiveRect and the line segment PQ. If any side of ActiveRect and the line segment PQ intersect, it is determined that ActiveRect and ObjRegion overlap (intersect).
 S1706ではS1705の判定結果に応じて条件分岐する。S1705で交差していると判定された場合は、重なり判定ステップを終了する。S1705で交差していないと判定された場合はS1707へ進む。 In S1706, conditional branching is performed according to the determination result in S1705. If it is determined in S1705 that they intersect, the overlap determination step ends. If it is determined in S1705 that the vehicle does not intersect, the process proceeds to S1707.
 S1707では点Qを点Pへコピーして、S1703へ戻る。 In S1707, copy point Q to point P and return to S1703.
 一方、ObjRegionが矩形と判定された後の処理S1708では、ActiveRectとObjRegionとで矩形同士の交差判定が実施される。その結果が、重なり判定ステップの結果となり終了する。
 
On the other hand, in processing S1708 after ObjRegion is determined to be a rectangle, an intersection determination between rectangles is performed using ActiveRect and ObjRegion. The result is the result of the overlap determination step and ends.
(種別フィルタリングステップ)
 ここから、種別フィルタリングステップについて、図18を参照しながら説明する。図18は種別フィルタリングステップのフローチャートである。種別フィルタリングステップは、種別フィルターに応じて、オブジェクト集合CanObjArrayからオブジェクトを除去することを目的とする。
(Type filtering step)
From here, the type filtering step will be described with reference to FIG. FIG. 18 is a flowchart of the type filtering step. The type filtering step aims to remove objects from the object set CanObjArray according to the type filter.
  まず、S1801でループ変数iを0に初期化する。 First, loop variable i is initialized to 0 in S1801.
 S1802ではiがCanObjArrayの要素数(CanObjArray.count)未満か否かを判定する。iがCanObjArrayの要素数未満の場合は、CanObjArrayに走査すべき要素が残っていることを示している。その場合S1803へ進む。iがCanObjArrayの要素数以上の場合、CanObjArrayの全要素を走査したことを示している。その場合、種別フィルタリングステップを終了する。 In S1802, it is determined whether i is less than the number of CanObjArray elements (CanObjArray.count). If i is less than the number of elements in CanObjArray, it indicates that there are still elements to be scanned in CanObjArray. In that case, the process proceeds to S1803. If i is greater than or equal to the number of elements in CanObjArray, it indicates that all elements of CanObjArray have been scanned. In that case, the type filtering step ends.
 S1803ではオブジェクトCanObjArray[i]の種別が種別フィルターと一致するか否かを判定する。種別フィルターは前述の種別フィルター設定ステップによって設定される。
 種別フィルターは、選択対象のオブジェクト種別を表している。
 よって、CanObjArray[i]の種別と種別フィルターが一致しない場合、CanObjArray[i]はオブジェクト集合CanObjArrayから除去されるべきオブジェクトである。この場合S1804へ進む。
 逆に、CanObjArray[i]の種別と種別フィルターが一致する場合、CanObjArray[i]はオブジェクト集合CanObjArrayから除去されるべきでない。この場合S1805へ進む。
In S1803, it is determined whether or not the type of the object CanObjArray [i] matches the type filter. The type filter is set by the above-described type filter setting step.
The type filter represents the object type to be selected.
Therefore, when the type of CanObjArray [i] does not match the type filter, CanObjArray [i] is an object to be removed from the object set CanObjArray. In this case, the process proceeds to S1804.
Conversely, if the type of CanObjArray [i] matches the type filter, CanObjArray [i] should not be removed from the object set CanObjArray. In this case, the process proceeds to S1805.
 S1804ではCanObjArray[i]をオブジェクト集合CanObjArrayから除去する。
 その後、S1802へ戻る。
 ここで、ループ変数iを加算せずにS1802へ戻ることに注意する。これは、S1804でオブジェクト集合CanObjArrayから要素を除去したことに起因する。インデックス番号iの要素を除去するということは、除去前のインデックス番号(i + 1)の要素が、除去後はインデックス番号iになる(シフトする)ことを意味している。さらに、S1804でオブジェクト集合CanObjArrayの要素数は1つ減っている。
 以上より、iを加算してS1802へ戻ると、走査できないオブジェクトがオブジェクト集合CanObjArray内に残ってしまうことになる。よって、S1804ではループ変数iを加算(変更)せずにS1802へ戻ることとする。
In S1804, CanObjArray [i] is removed from the object set CanObjArray.
Thereafter, the process returns to S1802.
Note that the process returns to S1802 without adding the loop variable i. This is because the element is removed from the object set CanObjArray in S1804. Removing the element of index number i means that the element of index number (i + 1) before removal becomes index number i (shifts) after removal. Furthermore, in S1804, the number of elements in the object set CanObjArray is reduced by one.
As described above, when i is added and the process returns to S1802, an object that cannot be scanned remains in the object set CanObjArray. Therefore, in S1804, the process returns to S1802 without adding (changing) the loop variable i.
 S1805では、ループ変数iを1加算してS1802へ戻る。S1805は、S1804とは違いオブジェクト集合CanObjArrayを操作していないので、ループ変数iを加算する必要がある。
 
In S1805, the loop variable i is incremented by 1, and the process returns to S1802. Unlike S1804, S1805 does not operate the object set CanObjArray, so it is necessary to add the loop variable i.
(トグル選択ステップ)
 ここから、トグル選択ステップについて説明する。トグル選択ステップは、前述のユーザー操作に対する処理として実行される。
 トグル選択ステップは、アクティブセル内に複数の選択候補オブジェクトが存在する場合に、それらの選択状態を切り替えることを目的とする。
(Toggle selection step)
From here, the toggle selection step will be described. The toggle selection step is executed as a process for the above-described user operation.
The toggle selection step is intended to switch the selection state when a plurality of selection candidate objects exist in the active cell.
 トグル選択ステップの処理手順について、図19を参照しながら説明する。なお、トグル選択ステップにおいては、前述のアクティブセル選択ステップにおいて設定された、選択候補のオブジェクト集合CanObjArrayと、整数型変数NowObjIDを利用する。 The processing procedure of the toggle selection step will be described with reference to FIG. In the toggle selection step, the selection candidate object set CanObjArray and the integer variable NowObjID set in the above-described active cell selection step are used.
 まず、S1901でオブジェクト集合CanObjArrayの要素数が1より大きいか否かを判定する。
 1より大きい場合は、トグル選択すべきオブジェクトが存在している。その場合S1902へ進む。
 1以下の場合はトグル選択すべきオブジェクトが存在しない。その場合、トグル選択ステップを終了する。
First, in S1901, it is determined whether or not the number of elements of the object set CanObjArray is greater than one.
If it is greater than 1, there is an object to toggle. In that case, the process proceeds to S1902.
If it is less than 1, there is no object to toggle. In that case, the toggle selection step ends.
 S1902では現在選択されているオブジェクトを選択解除する。本実施例では、選択状態が解除されると、少なくともディスプレイ111上で該オブジェクトの強調表示が解除されて通常表示となる。 In S1902, deselect the currently selected object. In the present embodiment, when the selected state is released, the highlighted display of the object is released at least on the display 111 and a normal display is obtained.
 S1903では、次に選択状態にするオブジェクトのインデックス番号NowObjIDを決める。本実施例では(NowObjID + 1)をCanObjArray.countで割った剰余を、新しいNowObjIDとする。(a mod n)は、aをnで割った剰余を示している。
 なお本発明において、次に選択状態にするオブジェクトがこれに限定されることはない。例えば、オブジェクト集合CanObjArrayに含まれるオブジェクトの種別を考慮しても良いし、配置モードを考慮しても良い。
In S1903, the index number NowObjID of the object to be selected next is determined. In this embodiment, a remainder obtained by dividing (NowObjID + 1) by CanObjArray.count is set as a new NowObjID. (a mod n) indicates a remainder obtained by dividing a by n.
In the present invention, the object to be selected next is not limited to this. For example, the types of objects included in the object set CanObjArray may be considered, or the arrangement mode may be considered.
 最後にS1904で、CanObjArrayのインデックス番号NowObjIDの要素(オブジェクト)を選択状態にする。本実施例では、オブジェクトが選択状態になると、少なくともディスプレイ111で強調表示される。
 
Finally, in S1904, the element (object) with the index number NowObjID of CanObjArray is selected. In this embodiment, when an object is selected, at least the display 111 highlights the object.
(動作例)
 ここから、本実施例の動作例について図面を参照しながら説明する。
 オブジェクトの配置は、前述の図12を例に使用する。前述のように、クラス1201と基底クラス1202とコメント1205はセル配置されたオブジェクトである。汎化コネクタ1203とコメントコネクタ1204は自由配置されたオブジェクトである。
(Operation example)
From here, the operation example of a present Example is demonstrated, referring drawings.
For the arrangement of the objects, the above-described FIG. 12 is used as an example. As described above, the class 1201, the base class 1202, and the comment 1205 are objects arranged in cells. The generalized connector 1203 and the comment connector 1204 are freely arranged objects.
 図20は動作例1の模式図である。アクティブセル2001が強調表示されている様子を示している。アクティブセル2001の範囲内にはオブジェクトが存在していない。よってこの場合は、選択されているオブジェクトが存在しない状態である。
 
FIG. 20 is a schematic diagram of the first operation example. The active cell 2001 is highlighted. There is no object in the range of the active cell 2001. Therefore, in this case, the selected object does not exist.
 次に、アクティブセル選択ステップによって、アクティブセルが移動した時のことを考える。図21は動作例2の模式図である。図20のアクティブセル2001が移動して、アクティブセル2101が強調表示されている様子を示している。 Next, consider the case where the active cell is moved by the active cell selection step. FIG. 21 is a schematic diagram of the second operation example. The active cell 2001 in FIG. 20 moves and the active cell 2101 is highlighted.
 ここで配置モードがセル配置選択モードであるとする。
 このとき、アクティブセル2101の範囲内に存在するオブジェクトの内、クラス1201が選択状態となり、強調表示された1201aとなっている。アクティブセル2101の範囲内には他にも、汎化コネクタ1203とコメントコネクタ1204が存在している。しかし、これらは選択状態でない。
 配置モードがセル配置選択モードなので、クラス1201aのようにセル配置されたオブジェクトが選択状態になる。
Here, it is assumed that the arrangement mode is the cell arrangement selection mode.
At this time, among the objects existing within the range of the active cell 2101, the class 1201 is selected and becomes highlighted 1201a. In addition, a generalized connector 1203 and a comment connector 1204 exist in the range of the active cell 2101. However, these are not selected.
Since the placement mode is the cell placement selection mode, an object placed in a cell like the class 1201a is selected.
 ここで、ユーザー操作によってトグル選択ステップが実行された場合を考える。
 現在の選択モードはセル配置選択モードである。アクティブセル2101の範囲内に、選択候補となるセル配置されたオブジェクトは、クラス1201a以外に存在しない。よって、トグル選択ステップが実行されても、オブジェクトの選択状態が変化することはない。
 
Here, consider a case where the toggle selection step is executed by a user operation.
The current selection mode is a cell arrangement selection mode. There is no object other than the class 1201a in the range of the active cell 2101 in which cells that are selection candidates are arranged. Therefore, even if the toggle selection step is executed, the object selection state does not change.
 では、次に図21の状態から、配置モード設定ステップによって自由配置選択モードへ切り替えられた場合を考える。
 本実施例では、配置モード設定ステップ後にオブジェクト選択状態更新ステップが実行される。すると、オブジェクトの選択状態が更新されて、図22に示すような状態となる。図22は動作例3の模式図である。
Next, consider the case where the state of FIG. 21 is switched to the free placement selection mode by the placement mode setting step.
In this embodiment, the object selection state update step is executed after the arrangement mode setting step. Then, the selection state of the object is updated to a state as shown in FIG. FIG. 22 is a schematic diagram of the third operation example.
 図22において、アクティブセル2101の位置は図21から移動していない。しかし、選択状態が更新されている。図21では選択状態で強調表示されていたクラス1201aは、選択状態が解除されて、通常表示のクラス1201へ変化している。さらに、汎化コネクタ1203が選択状態となり、強調表示された汎化コネクタ1203aへ変化した。 In FIG. 22, the position of the active cell 2101 has not moved from FIG. However, the selection state has been updated. In FIG. 21, the class 1201a highlighted in the selected state is released from the selected state and changed to the normally displayed class 1201. Furthermore, the generalized connector 1203 is selected and changed to the generalized connector 1203a highlighted.
 ここで、ユーザー操作によってトグル選択ステップが実行された場合を考える。
 現在の選択モードは自由配置選択モードである。アクティブセル2101の範囲内に、選択候補となる自由配置されたオブジェクトは、汎化コネクタ1203とコメントコネクタ1204が存在している。トグル選択ステップが実行されるとコメントコネクタ1204が選択状態となる。その状態を図23に示す。図23は動作例4の模式図である。
Here, consider a case where the toggle selection step is executed by a user operation.
The current selection mode is a free placement selection mode. Within the range of the active cell 2101, generalized connectors 1203 and comment connectors 1204 exist as freely arranged objects that are selection candidates. When the toggle selection step is executed, the comment connector 1204 is selected. This state is shown in FIG. FIG. 23 is a schematic diagram of the fourth operation example.
 図23において、アクティブセル2101の位置は図21及び図22から移動していない。しかし、選択状態が更新されている。図22では選択状態で強調表示されていた汎化コネクタ1203aは、選択状態が解除されて、通常表示の汎化コネクタ1203へ変化している。さらに、コメントコネクタ1204が選択状態となり、強調表示されたコメントコネクタ1204aへ変化した。
 
In FIG. 23, the position of the active cell 2101 is not moved from FIGS. However, the selection state has been updated. In FIG. 22, the generalized connector 1203a highlighted in the selected state is released from the selected state and changed to a generalized generalized connector 1203. Furthermore, the comment connector 1204 is selected, and the comment connector 1204a is highlighted.
 次に図21の状態から、配置モード設定ステップによってオール選択モードへ切り替えられた場合を考える。
 本実施例では、配置モード設定ステップ後にオブジェクト選択状態更新ステップが実行される。しかし、オール選択モードでは、クラス1201も選択候補なので、選択状態は変化していない。よって表示上も図21の状態から変化することはない。
Next, consider a case where the state is changed to the all selection mode by the arrangement mode setting step from the state of FIG.
In this embodiment, the object selection state update step is executed after the arrangement mode setting step. However, in the all selection mode, since the class 1201 is also a selection candidate, the selection state has not changed. Therefore, the display does not change from the state of FIG.
 ここで、ユーザー操作によってトグル選択ステップが実行された場合を考える。
 現在の選択モードはオール選択モードである。アクティブセル2101の範囲内に、選択候補となるオブジェクトは、クラス1201と汎化コネクタ1203とコメントコネクタ1204が存在している。現在、クラス1201が選択状態で強調表示されたクラス1201aとなっている。よってトグル選択ステップが実行されると、クラス1201以外のオブジェクトが選択状態となる。その状態は例えば、図22のようになる。
Here, consider a case where the toggle selection step is executed by a user operation.
The current selection mode is the all selection mode. Within the range of the active cell 2101, there are a class 1201, a generalized connector 1203, and a comment connector 1204 as selection candidate objects. Currently, class 1201 is class 1201a highlighted in the selected state. Therefore, when the toggle selection step is executed, objects other than the class 1201 are selected. The state is as shown in FIG. 22, for example.
 図22では、前述したように、クラス1201aは選択状態が解除され、汎化コネクタ1203が選択状態となり、強調表示された汎化コネクタ1203aへ変化している。
 配置モードがセル配置選択モード時は選択状態が切り替わらなかったが、オール選択モード時には選択状態が切り替わることに注意されたい。
In FIG. 22, as described above, the class 1201a is released from the selected state, the generalized connector 1203 is in the selected state, and changes to the highlighted generalized connector 1203a.
Note that the selection state is not switched when the placement mode is the cell placement selection mode, but the selection state is switched when the all selection mode.
 さらにここで、ユーザー操作によってトグル選択ステップが実行された場合を考える。すると、選択候補となるオブジェクトから、次のオブジェクトが選択状態となる。その状態は例えば、図23のようになる。 Suppose further that the toggle selection step is executed by user operation. Then, the next object is selected from the objects as selection candidates. The state is as shown in FIG. 23, for example.
 図23では、前述したように、汎化コネクタ1203aは選択状態が解除され、コメントコネクタ1204が選択状態となり、強調表示されたコメントコネクタ1204aへ変化している。 In FIG. 23, as described above, the generalized connector 1203a is deselected, the comment connector 1204 is selected, and the comment connector 1204a is highlighted.
 さらにここで、ユーザー操作によってトグル選択ステップが実行された場合を考える。すると、選択候補となるオブジェクトは一周して、図21のようになる。 Suppose further that the toggle selection step is executed by user operation. Then, the objects that are selection candidates go around and become as shown in FIG.
 図21では、コメントコネクタ1204aは選択状態が解除され、再びクラス1201が選択状態となり、強調表示されたクラス1201aへ変化している。
 
In FIG. 21, the comment connector 1204a is released from the selected state, the class 1201 is again selected, and has changed to the highlighted class 1201a.
 次に再び、図21の状態を考える。
 このとき、配置モードはセル配置選択モードとする。さらに、種別フィルター設定ステップで、クラスが種別フィルターとして設定されているとする。
 このとき、アクティブセル2101の範囲内に、セル配置のオブジェクトはクラス1201のみである。さらにクラス1201の種別はクラスである。よって、図21では、クラス1201が選択状態となり、強調表示されたクラス1201aとなる。
Next, consider again the state of FIG.
At this time, the arrangement mode is a cell arrangement selection mode. Furthermore, it is assumed that the class is set as a type filter in the type filter setting step.
At this time, the cell arrangement object is only the class 1201 within the range of the active cell 2101. Furthermore, the type of class 1201 is class. Therefore, in FIG. 21, the class 1201 is selected and becomes the highlighted class 1201a.
 ここで、アクティブセルの位置を移動することを考える。例えば図24のように、アクティブセル2401が移動したとする。図24は動作例5の模式図である。
 アクティブセル2401の範囲内にはコメント1205がセル配置のオブジェクトとして存在している。しかし、現在は種別フィルターとしてクラスが選択されている。コメント1205の種別はコメントである。よって、コメント1205は選択候補にはならない。すなわち、アクティブセル2401の範囲内に存在するコメント1205は選択状態にならない。
 
Here, consider moving the position of the active cell. For example, assume that the active cell 2401 has moved as shown in FIG. FIG. 24 is a schematic diagram of the fifth operation example.
A comment 1205 exists as an object of cell arrangement within the range of the active cell 2401. However, the class is currently selected as the type filter. The type of the comment 1205 is a comment. Therefore, the comment 1205 is not a selection candidate. That is, the comment 1205 existing within the range of the active cell 2401 is not selected.
 次に、図25の状態を考える。図25は動作例6の模式図である。
 このとき、配置モードは自由配置選択モードとする。
 アクティブセル2501の範囲内に、自由配置のオブジェクトは汎化コネクタ1203とコメントコネクタ1204が存在している。よって、これら2つのオブジェクトが選択候補となる。本実施例のオブジェクト選択ステップでは、複数の選択候補のオブジェクトの内、1つが選択状態となる。図25の例では、汎化コネクタ1203が選択状態となり、強調表示された汎化コネクタ1203aとなっている。
Next, consider the state of FIG. FIG. 25 is a schematic diagram of the sixth operation example.
At this time, the arrangement mode is a free arrangement selection mode.
Within the range of the active cell 2501, general-purpose connectors 1203 and comment connectors 1204 exist as freely arranged objects. Therefore, these two objects are selection candidates. In the object selection step of this embodiment, one of a plurality of selection candidate objects is selected. In the example of FIG. 25, the generalized connector 1203 is selected, and the generalized connector 1203a is highlighted.
 ここで、ユーザー操作によってトグル選択ステップが実行された場合を考える。
 アクティブセル2501の範囲内の選択候補は、前述のように汎化コネクタ1203とコメントコネクタ1204である。汎化コネクタ1203は既に選択状態であるので、トグル選択ステップが実行されると、コメントコネクタ1204が選択状態となる。その様子を図26に示す。図26は動作例7の模式図である。
Here, consider a case where the toggle selection step is executed by a user operation.
Selection candidates within the range of the active cell 2501 are the generalized connector 1203 and the comment connector 1204 as described above. Since the generalized connector 1203 is already selected, the comment connector 1204 is selected when the toggle selection step is executed. This is shown in FIG. FIG. 26 is a schematic diagram of the seventh operation example.
 図26では、図25からアクティブセル2501の位置は移動していない。図25では強調表示されていた汎化コネクタ1203aの選択状態が解除され、通常表示の汎化コネクタ1203になっている。一方、コメントコネクタ1204は選択状態になり、強調表示されたコメントコネクタ1204aに変化した。
 
In FIG. 26, the position of the active cell 2501 is not moved from FIG. In FIG. 25, the selected generalized connector 1203a, which has been highlighted, is released, and the generalized connector 1203 is displayed normally. On the other hand, the comment connector 1204 is selected and changed to the highlighted comment connector 1204a.
 以上のように、セル内に複数の図形要素(オブジェクト)が存在する場合に、セル選択と図形要素選択とを連動することができた。加えて、セルをまたいで配置された(自由配置の)図形要素の選択も、セル選択と連動することができた。このように、セル選択と図形要素選択が連動することで、図形要素選択に関わる操作性も向上している。
 
As described above, when a plurality of graphic elements (objects) exist in a cell, cell selection and graphic element selection can be linked. In addition, selection of (freely arranged) graphic elements arranged across cells could be linked with cell selection. As described above, the operability related to the graphic element selection is improved by interlocking the cell selection and the graphic element selection.
 以上、本発明の好ましい実施例について説明したが、本発明はこの実施例に限定されない。本発明の趣旨の範囲内で種々の変形及び変更が可能である。
As mentioned above, although the preferable Example of this invention was described, this invention is not limited to this Example. Various modifications and changes can be made within the scope of the present invention.
101 コンピュータ
102 CPU
103 システムバス
104 主記憶装置
105 補助記憶装置
106 着脱可能記録メディア
107 入力I/F
108 キーボード
109 マウス
110 ビデオI/F
111 ディスプレイ
112 ネットワークI/F
113 リモートコンピュータ
S701 描画領域のグリッド分割
S702 初期のアクティブセル選択
S703 ユーザー操作待ち
S704 終了操作判定
S705 ユーザー操作に対する処理の実行
S1301 選択セルの列と行を取得
S1302 アクティブセルの位置を設定
S1303 オブジェクト選択解除
S1304 選択候補オブジェクト決定ステップ
S1305 候補オブジェクトが存在するか判定
S1306 最初の候補オブジェクトを選択状態にする
S1307 NowObjIDに0を設定

 
 
101 computer
102 CPU
103 System bus
104 Main storage
105 Auxiliary storage
106 Removable recording media
107 Input I / F
108 keyboard
109 mouse
110 Video I / F
111 display
112 Network I / F
113 remote computer
S701 Grid division of drawing area
S702 Initial active cell selection
S703 Waiting for user operation
S704 End operation judgment
S705 Perform processing for user operations
S1301 Get column and row of selected cell
S1302 Set active cell position
S1303 Deselect object
S1304 Selection candidate object decision step
S1305 Determine whether a candidate object exists
S1306 Select first candidate object
S1307 Set NowObjID to 0


Claims (8)

  1. 図面の描画領域を格子状に区切る線分で分割するグリッド分割ステップと、
    前記格子で区切られた一区画をセルとしたとき、
    操作対象の前記セルであるアクティブセルを選択するアクティブセル選択ステップと、
    前記図面は描画内容の情報を含むオブジェクトの集合で構成され、
    前記アクティブセルの範囲内に存在する複数の前記オブジェクトから、複数の選択候補を決定する選択候補オブジェクト決定ステップと
    前記複数の選択候補の中から、少なくとも1つの前記オブジェクトを選択状態にするオブジェクト選択ステップと
    を備える、コンピュータにより実施される方法。
     
    A grid dividing step for dividing the drawing area of the drawing into line segments that divide into a grid pattern;
    When a section divided by the lattice is a cell,
    An active cell selection step of selecting an active cell that is the cell to be operated;
    The drawing is composed of a set of objects including information on drawing contents,
    A selection candidate object determining step for determining a plurality of selection candidates from the plurality of objects existing within the range of the active cell, and an object selection step for bringing at least one of the plurality of selection candidates into a selected state A computer-implemented method comprising:
  2. 前記選択候補の前記オブジェクトの中から、
    現在選択されている前記オブジェクトとは異なる前記オブジェクトを、少なくとも1つ選択状態にするトグル選択ステップと
    をさらに備える、請求項1に記載の方法。
     
    Among the objects of the selection candidates,
    The method according to claim 1, further comprising a toggle selection step of selecting at least one object different from the currently selected object.
  3. 前記オブジェクトは種別を示す属性を含み、
    選択対象の前記種別である種別フィルターを設定する種別フィルター設定ステップと、
    前記選択候補オブジェクト決定ステップにおいて、
    前記アクティブセルの範囲内に存在する複数の前記オブジェクトの中から、前記種別フィルターに応じて選択候補を決定する種別フィルタリングステップと
    をさらに備える、請求項1に記載の方法。
     
    The object includes an attribute indicating a type,
    A type filter setting step for setting a type filter that is the type to be selected;
    In the selection candidate object determining step,
    The method according to claim 1, further comprising: a type filtering step of determining a selection candidate according to the type filter from among the plurality of objects existing within the range of the active cell.
  4. 前記種別フィルター設定ステップ後に、
    前記オブジェクトの選択状態を更新する、種別オブジェクト選択状態更新ステップと
    をさらに備える、請求項3に記載の方法。
     
    After the type filter setting step,
    The method according to claim 3, further comprising a type object selection state update step of updating the selection state of the object.
  5. 前記オブジェクトの配置方法は、前記セルと対応づけて配置されるセル配置と、前記セルとは無関係に配置される自由配置とに分けられ、
    選択対象の前記配置方法を設定する配置モード設定ステップと、
    前記選択候補オブジェクト決定ステップにおいて、
    前記アクティブセルの範囲内に存在する複数の前記オブジェクトの中から、前記配置モード設定ステップで設定された前記配置方法に応じて選択候補を決定する配置方法別オブジェクト決定ステップと
    をさらに備える、請求項1に記載の方法。
     
    The object placement method is divided into a cell placement arranged in association with the cell, and a free placement placed independently of the cell,
    An arrangement mode setting step for setting the arrangement method to be selected;
    In the selection candidate object determining step,
    The method further comprises: an object determination step according to an arrangement method that determines a selection candidate according to the arrangement method set in the arrangement mode setting step from among the plurality of objects existing within the range of the active cell. The method according to 1.
  6. 前記配置モード設定ステップ後に、
    前記オブジェクトの選択状態を更新する、配置方法別オブジェクト選択状態更新ステップと
    をさらに備える、請求項5に記載の方法。
    After the arrangement mode setting step,
    The method according to claim 5, further comprising an object selection state update step by arrangement method for updating the selection state of the object.
  7. コンピュータに、請求項1から6のいずれか1項に記載の全ステップを実行させる命令を記録したコンピュータで読み取り可能な記録媒体。
     
    A computer-readable recording medium having recorded thereon instructions for causing a computer to execute all the steps according to any one of claims 1 to 6.
  8. コンピュータに、請求項1から6のいずれか1項に記載の全ステップを実行させるプログラム。
     

     
    The program which makes a computer perform all the steps of any one of Claim 1 to 6.


PCT/JP2015/055105 2014-02-27 2015-02-24 Object selection method, program, and recording medium WO2015129645A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2014-036117 2014-02-27
JP2014036117 2014-02-27

Publications (1)

Publication Number Publication Date
WO2015129645A1 true WO2015129645A1 (en) 2015-09-03

Family

ID=54008963

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2015/055105 WO2015129645A1 (en) 2014-02-27 2015-02-24 Object selection method, program, and recording medium

Country Status (1)

Country Link
WO (1) WO2015129645A1 (en)

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07146642A (en) * 1993-11-24 1995-06-06 Fanuc Ltd Input system for ladder program
JPH1139145A (en) * 1997-07-24 1999-02-12 Casio Comput Co Ltd Device to support programming and storage medium
JP2000259400A (en) * 1999-03-09 2000-09-22 Nippon Steel Corp Device and method for automatic generation of software and recording medium
JP2001101328A (en) * 1999-09-30 2001-04-13 Casio Comput Co Ltd List processor and storage medium
JP2002258914A (en) * 2001-02-28 2002-09-13 Fuji Electric Co Ltd Plotting system, program development system, controller, and program execution system
JP2003527658A (en) * 1999-08-09 2003-09-16 コグネクス コーポレイション Machine vision spreadsheet
JP2004158004A (en) * 2002-11-01 2004-06-03 Hewlett-Packard Development Co Lp Relationship of two or more objects in table cell to visual component
US6883161B1 (en) * 1999-05-21 2005-04-19 Crouzet Automatismes Universal graph compilation tool

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07146642A (en) * 1993-11-24 1995-06-06 Fanuc Ltd Input system for ladder program
JPH1139145A (en) * 1997-07-24 1999-02-12 Casio Comput Co Ltd Device to support programming and storage medium
JP2000259400A (en) * 1999-03-09 2000-09-22 Nippon Steel Corp Device and method for automatic generation of software and recording medium
US6883161B1 (en) * 1999-05-21 2005-04-19 Crouzet Automatismes Universal graph compilation tool
JP2003527658A (en) * 1999-08-09 2003-09-16 コグネクス コーポレイション Machine vision spreadsheet
JP2001101328A (en) * 1999-09-30 2001-04-13 Casio Comput Co Ltd List processor and storage medium
JP2002258914A (en) * 2001-02-28 2002-09-13 Fuji Electric Co Ltd Plotting system, program development system, controller, and program execution system
JP2004158004A (en) * 2002-11-01 2004-06-03 Hewlett-Packard Development Co Lp Relationship of two or more objects in table cell to visual component

Similar Documents

Publication Publication Date Title
KR101794373B1 (en) Temporary formatting and charting of selected data
JP3974196B2 (en) Object-oriented graphic input and display system
US9880986B2 (en) Information display apparatus, non-transitory computer-readable storage medium and display control method
CN103995861A (en) Distributed data device, method and system based on spatial correlation
CN102759353A (en) Navigation device, method for determining a height coordinate, and method for generating database
AU2015315608B2 (en) Layout engine
CN102385067A (en) Drawing method for isoline containing reverse fault
CN108932097B (en) Take down notes generation method, electronic equipment and computer storage medium
CN102779148A (en) Method of generating a database, navigation device and method of determining height information
KR101417842B1 (en) Real-time interlock method, apparutus and computer readable recording medium for creating mind-map with creating document
US10467782B2 (en) Interactive hierarchical bar chart
CN108346174B (en) Three-dimensional model merging method supporting single model interaction
US20150160838A1 (en) Method and apparatus for automatic graphic editing with map-dependent constraints
US5345544A (en) Data base system
US10809904B2 (en) Interactive time range selector
CN106777220B (en) processing method for continuous abnormal change of power distribution network graph model
WO2015129645A1 (en) Object selection method, program, and recording medium
US20140026103A1 (en) Multi-dimensional file system
CN113704380B (en) Distributed superposition analysis method and device based on spatial grid and storage medium
CN104903852B (en) Project data creating device
CN103823922A (en) Designing a circular staggered pattern of objects
US9465510B2 (en) Data visualisation system
KR101139238B1 (en) A method and system for supporting the creation of idea
WO2011018960A1 (en) Sheet-metal-processing model generating device and sheet-metal-processing model generating method
JP4974380B2 (en) GUI device and GUI control method

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 15755338

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 15755338

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: JP