WO2022185712A1 - プログラム編集装置およびプログラム - Google Patents

プログラム編集装置およびプログラム Download PDF

Info

Publication number
WO2022185712A1
WO2022185712A1 PCT/JP2022/000497 JP2022000497W WO2022185712A1 WO 2022185712 A1 WO2022185712 A1 WO 2022185712A1 JP 2022000497 W JP2022000497 W JP 2022000497W WO 2022185712 A1 WO2022185712 A1 WO 2022185712A1
Authority
WO
WIPO (PCT)
Prior art keywords
line
program
screen
code string
simulation
Prior art date
Application number
PCT/JP2022/000497
Other languages
English (en)
French (fr)
Inventor
俊徳 大内
興治 松岡
巧 吉田
Original Assignee
Dmg森精機株式会社
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 Dmg森精機株式会社 filed Critical Dmg森精機株式会社
Publication of WO2022185712A1 publication Critical patent/WO2022185712A1/ja

Links

Images

Classifications

    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/18Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form
    • G05B19/406Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form characterised by monitoring or safety
    • G05B19/4068Verifying part programme on screen, by drawing or other means
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/18Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form
    • G05B19/406Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form characterised by monitoring or safety
    • G05B19/4069Simulating machining process on screen
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/18Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form
    • G05B19/409Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form characterised by using manual data input [MDI] or by using control panel, e.g. controlling functions with the panel; characterised by control panel details or by setting parameters

Definitions

  • the present invention relates to technology for editing numerical control programs for machine tools.
  • NC Numerical Control
  • NC programs In addition to the method of generating NC programs using CAD (Computer-Aided Design) and CAM (Computer Aided Manufacturing), users may code as usual. However, if there is a human error in coding, it will not be processed correctly by the NC program. Therefore, it is desirable to reduce human error when creating an NC program.
  • CAD Computer-Aided Design
  • CAM Computer Aided Manufacturing
  • the present invention provides a program editing device and the like described in the claims.
  • FIG. 1 is a perspective view of a work; FIG. It is a screen diagram of an edit screen and a simulation screen described up to the 26th line.
  • FIG. 11 is a screen diagram of an edit screen and a simulation screen described up to the 27th line; It is a screen view of an edit screen and a simulation screen described up to the 28th line.
  • FIG. 11 is a screen diagram of an edit screen and a simulation screen described up to the 29th line;
  • FIG. 11 is a screen diagram of an edit screen and a simulation screen described up to the 30th line;
  • FIG. 11 is a screen diagram of an edit screen and a simulation screen in which an incorrect description is made on the 30th line;
  • FIG. 11 is a screen diagram of an editing screen and a simulation screen when the cursor is returned to the 29th line; It is a screen view of the edit screen and the simulation screen in which the cursor is returned to the 28th line.
  • 1 is a functional block diagram of a program editing device;
  • FIG. 3 is a data structure diagram of a cursor position and an NC program code table corresponding to FIG. 2;
  • FIG. 7 is a data structure diagram of a cursor position and an NC program code table corresponding to FIG. 6;
  • FIG. 9 is a data structure diagram of a cursor position and an NC program code table corresponding to FIG. 8;
  • FIG. 14 is a data structure diagram of an NC program file corresponding to FIGS. 12 and 13;
  • FIG. 4 is a flow chart showing a main processing process in the program editing device; 4 is a flow chart showing a main processing process in the program editing device; It is a flow chart which shows a simulation processing process.
  • FIG. 11 is a screen diagram of a G-code input guidance screen;
  • FIG. 10 is a diagram showing an example of a guidance message on an edit-simulation screen;
  • FIG. 10 is a screen diagram of background editing;
  • FIG. 10 is a diagram showing an example of a guidance message on a screen for background editing; It is a figure which shows the state by which the process was selected on the background edit screen.
  • FIG. 10 is a diagram showing an example of a guidance message on a screen for background editing; It is an external view of a machine tool and an operation panel. It is a data structure diagram of an NC program code table.
  • the program editing device in this embodiment displays a simulation screen together with an editing screen.
  • the edit screen displays an NC program according to an edit operation
  • the simulation screen displays a simulation result of the NC program displayed on the edit screen.
  • FIG. 24 is an external view of machine tool 700 and operation panel 702 .
  • This program editing device may be incorporated in the machine tool 700 and display an editing screen or a simulation screen on the screen of the operation panel 702, or may be a computer separate from the machine tool 700 (for example, a personal A form in which an editing screen or a simulation screen is displayed on the screen of a computer) may also be used.
  • a preferred form is a form in which the machine tool 700 has a program editing device, and an editing screen or a simulation screen of the program editing device is displayed on the operation screen 704 of the operation panel 702 .
  • the user writes commands in the order of processing, for example, in the input work of the NC program.
  • commands in the order of processing, for example, in the input work of the NC program.
  • the machining up to that stage is simulated, and the simulation result based on the new command is highlighted.
  • FIG. 1 is a perspective view of a workpiece 100.
  • FIG. A workpiece 100 assumed in this example is a plate member, and has six holes 102, 104, 106, 108, 110, and 112 formed in the thickness direction.
  • a hole 102 is formed in the center of the plate member.
  • a hole 104 is formed in the lower left of the plate member, a hole 106 is also formed in the lower right, a hole 108 is also formed in the center of the right, a hole 110 is also formed in the upper right, and a hole 112 is also formed in the upper left.
  • the inner diameters of holes 104 , 106 , 108 , 110 , and 112 are smaller than the inner diameter of holes 102 .
  • a machining center which is an example of a machine tool 700, drills holes in the workpiece 100.
  • a large diameter drill is used to cut the hole 102, and a smaller diameter drill is used to cut the holes 104, 106, 108, 110, and 112. is used.
  • the center of the surface of the workpiece 100 is taken as the processing origin. Also, when viewed from the front, the right side is the positive direction of the X axis, the upper side is the positive direction of the Y axis, and the front side is the positive direction of the Z axis.
  • FIG. 2 is a screen diagram of the editing screen 202 and the simulation screen 204 described up to the 26th line.
  • the edit screen 202 and the simulation screen 204 are displayed on the operation screen 704 of the operation panel 702 .
  • Edit screen 202 and simulation screen 204 are included in the edit-simulation screen.
  • the edit-simulation screen includes icon buttons 600a-j and a guidance button 602. FIG. The icon buttons 600a-j will be described later in connection with the second modification. Guidance button 602 will be described later in relation to modified example 1.
  • the simulation screen 204 displays the cutting edge path (hereinafter sometimes simply referred to as "path") when the control operation is executed up to the 26th line.
  • G90 is an absolute value command.
  • the absolute value command is a declaration to command by the distance and direction from the machining origin.
  • G54 is a work coordinate system command.
  • a work coordinate system command is a specification of a machining origin position (work offset).
  • G17 is an XY plane command.
  • the XY plane command is a declaration to process on the XY plane.
  • G0X-100.Y-50.” is positioning. With this positioning, the cutting edge of the tool (a drill in this example) is moved by rapid feed to the position of X coordinate: -100 mm, Y coordinate: -50 mm.
  • Position 305 has an X coordinate of -100 mm, a Y coordinate of -50 mm, and a Z coordinate of 50 mm.
  • the 26th line "G98G83Z-33.554R3.Q7.F240.” will be explained.
  • "G98” is a command to return to the initial point level. This command is a declaration to move to the next drilling position after returning to the initial point.
  • "G83” is a deep hole drilling canned cycle command. According to this command, cutting is performed with the position 305 corresponding to the hole 104 as the initial point, and then cutting with another position as the initial point is repeated.
  • "Z-33.554” commands the position of the bottom of the hole. According to this command, cutting is performed to a depth of Z coordinate: -33.554 mm.
  • "R3.” commands the start position of cutting feed. The start position of cutting feed by this command is Z coordinate: +3 mm.
  • Cutting feed starts 3 mm before the front.
  • Q7 is the cutting amount per time. Specifically, it means repeating a 7 mm drilling operation and a 1 mm relief operation.
  • F240 is a feed speed command. Specifically, the cutting edge of the tool is moved at 240 mm/min.
  • a path related to cutting of the hole 104 (central axis X coordinate: -100 mm, central axis Y coordinate: -50 mm) is specified by the command on the 26th line.
  • the approach of the initial point from the position 305 , the cutting of the hole 104 and the return from the workpiece 100 to the position 305 are identified and newly displayed as a path 306 .
  • Path 306 added by the command on line 26 is highlighted by a bold line.
  • the thick line indicates the part that shows the behavior of the manipulation by the code string of the new line.
  • the thick line is an example of the first distinguishing mode that displays the part showing the behavior of the work by the code string of the new row.
  • the first distinction mode may be a display other than a thick line.
  • FIG. 3 is a screen diagram of the editing screen 202 and the simulation screen 204 described up to the 27th line. This example shows the state after the ";" key is pressed following the input of "X100.” on the 27th line.
  • the simulation screen 204 displays the route when the control operation is executed up to the 27th line.
  • X100 is a hole descending position command.
  • the command on line 27 adds a path associated with cutting a hole 106 (center axis X coordinate: 100 mm, center axis Y coordinate: -50 mm). Specifically, first, a path 308 that slides from position 305 to position 309 of the next initial point is specified. Additionally, a path 310 corresponding to approaching from position 309, cutting hole 106 and returning to position 309 is identified. Paths 308 and 310 added by the command on line 27 are highlighted by bold lines.
  • FIG. 4 is a screen diagram of the editing screen 202 and the simulation screen 204 described up to the 28th line. This example shows the state after the ";" key is pressed following the input of "Y0" on the 28th line.
  • the simulation screen 204 displays the route when the control operation is executed up to the 28th line.
  • Y0 is a hole descending position command.
  • the command on line 28 adds a path related to cutting a hole 108 (center axis X coordinate: 100 mm, center axis Y coordinate: 0 mm). Specifically, first, a path 312 that slides from position 309 to position 313 of the next initial point is identified. Additionally, a path 314 corresponding to approaching from position 313, cutting hole 108 and returning to position 313 is identified. Paths 312 and 314 added by the command on line 28 are highlighted by bold lines.
  • FIG. 5 is a screen diagram of the editing screen 202 and the simulation screen 204 described up to the 29th line. This example shows the state after the ";" key is pressed following the input of "Y50.” on the 29th line.
  • the simulation screen 204 displays the route when the control operation is executed up to the 29th line.
  • Y50 is a hole descending position command.
  • the command on line 29 adds a path related to cutting the hole 110 (center axis X coordinate: 100 mm, center axis Y coordinate: 50 mm). Specifically, first, a path 316 that slides from position 313 to position 317 of the next initial point is specified. Additionally, a path 318 corresponding to approaching from position 317, cutting hole 110 and returning to position 317 is identified. Paths 316 and 318 added by the command on line 29 are highlighted by bold lines.
  • FIG. 6 is a screen diagram of the editing screen 202 and the simulation screen 204 described up to the 30th line. This example shows the state after the ";" key is pressed following the input of "X-100.” on the 30th line.
  • the simulation screen 204 displays the route when the control operation is executed up to the 30th line.
  • X-100.; is a hole descending position command.
  • the command on line 30 adds a path associated with cutting a hole 112 (center axis X coordinate: -100 mm, center axis Y coordinate: 50 mm). Specifically, first, a path 320 that slides from position 317 to position 321 of the next initial point is specified. Further, a path 322 corresponding to approaching from position 321, cutting hole 112 and returning to position 321 is identified. Paths 320 and 322 added by the commands on line 30 are highlighted by bold lines.
  • FIG. 7 is a screen diagram of the editing screen 202 and the simulation screen 204 in which the erroneous description is made on the 30th line. This example shows the state after the ";" key is pressed following the input of "X-100" on the 30th line.
  • the simulation screen 204 displays the route when the control operation is executed up to the 30th line.
  • the command for the hole lowering position should be written as "X-100.;”
  • the controller of machine tool 700 interprets "X-100;” as -0.1 mm. Therefore, also in the program editor, a path related to cutting of the hole 114 (central axis X coordinate: -0.1 mm, central axis Y coordinate: 50 mm) is added by the command on the 30th line. Specifically, first, a path 324 that slides from position 317 to position 325, which is the next initial point, is specified. Additionally, a path 326 corresponding to approaching from position 325, cutting hole 114 and returning to position 325 is identified. Paths 324 and 326 added by the commands on line 30 are highlighted by bold lines.
  • the lack of a decimal point on the editing screen 202 is not very conspicuous, but the difference in the paths on the simulation screen 204 is clear. Thus, the appearance of the route can help the user to recognize coding mistakes.
  • a positive/negative error for example, "X100.;” on the 30th line
  • a parameter error for example, "Y-100.;” on the 30th line
  • a G-code error for example, , misinterpretation of commands with different rotation directions, etc.
  • the simulation results may be highlighted in the NC program review work. Specifically, when the user moves the cursor 206 to review the NC program, the path corresponding to the line on which the cursor 206 is located is highlighted.
  • FIG. 8 is a screen diagram of the editing screen 202 and the simulation screen 204 with the cursor 206 returned to the 29th line.
  • This example shows a state in which the up arrow key is pressed twice in FIG. 6 to move the cursor 206 to the 29th line.
  • the route when the control operation is executed up to the 30th line is displayed in the same manner as in FIG.
  • path 320 and path 322 added by the command on line 30 are not highlighted.
  • path 316 and path 318 added by the command on line 29 where cursor 206 is located are highlighted by white lines.
  • a white line indicates a part that shows the behavior of the manipulation by the code string of the line pointed by the moved cursor.
  • the outline line is an example of the second distinguishing mode that displays the part showing the behavior of the work by the code string of the row pointed by the moved cursor.
  • the second distinguishing feature may be a display other than the outline line.
  • the second distinction mode may be displayed in the same manner as the first distinction mode.
  • FIG. 9 is a screen diagram of the editing screen 202 and the simulation screen 204 with the cursor 206 returned to the 28th line.
  • This example shows a state in which the up arrow key is pressed once in FIG. 8 to move the cursor 206 to the 28th line.
  • the route when the control operation is executed up to the 30th line is displayed in the same manner as in FIG. However, path 312 and path 314 added by the command on line 28 where cursor 206 is located are highlighted by white lines.
  • the cursor 206 when the cursor 206 is moved to the input line, the path corresponding to the line where the cursor 206 is located is highlighted with a white line. Therefore, it is possible to understand which line corresponds to which route at a glance. For example, when the user wants to correct a certain route, it is troublesome and easy for the user to misunderstand in which line the instruction corresponding to the route is written on the editing screen 202 . In the case of this embodiment, by moving the cursor 206 up and down until the route of interest to the user is highlighted on the simulation screen 204, the corresponding line can be specified. can be prevented.
  • FIG. 10 is a functional block diagram of the program editing device 400.
  • Each component of the program editing device 400 includes hardware including computing units such as a CPU (Central Processing Unit) and various coprocessors, storage devices such as memory and storage, communication lines connecting them, and storage devices. It is implemented by software that is stored and provides processing instructions to the calculator.
  • a computer program may consist of a device driver, an operating system, various application programs located in their higher layers, and a library that provides common functions to these programs.
  • Each block described below represents a functional block rather than a hardware configuration.
  • Program editing device 400 includes interface processing unit 410 , data processing unit 440 and data storage unit 450 .
  • the interface processing unit 410 accepts user operations via a keyboard, mouse, touch panel, and the like, and is in charge of user interface processing such as image display and audio output.
  • the interface processing unit 410 may take charge of interface processing related to communication via a network.
  • the data processing unit 440 executes various processes based on data acquired by the interface processing unit 410 and data stored in the data storage unit 450 .
  • Data processing unit 440 also functions as an interface for interface processing unit 410 and data storage unit 450 .
  • the data storage unit 450 stores various data.
  • the interface processing unit 410 includes an input unit 420 that receives data input, and an output unit 430 that outputs various information such as images and sounds.
  • Input unit 420 includes a reception unit 422 that receives character codes, numeric codes, symbol codes, various control codes, and the like by pressing keys.
  • Output unit 430 includes program display unit 432 , image display unit 434 and screen display unit 436 .
  • the program display unit 432 generates and displays the edit screen 202.
  • the image display unit 434 generates and displays the simulation screen 204 .
  • the screen display unit 436 generates and displays a G-code input guidance screen. The G-code input guidance screen will be described later with reference to FIG.
  • the program display section 432 and the image display section 434 display the edit screen 202 and the simulation screen 204 at the same time.
  • Data processing unit 440 includes an editing unit 442 and a simulation unit 444 .
  • the editing unit 442 executes editing processing of the NC program.
  • the simulation unit 444 simulates the behavior of machining by the NC program.
  • the data storage unit 450 includes a save storage area 460 and a temporary storage area 470.
  • a non-volatile memory such as a hard disk drive or flash memory is used for the storage area 460 .
  • a volatile memory such as a random access memory (RAM) is used for the temporary storage area 470 .
  • the save storage area 460 stores an NC program file 462, a workpiece definition file 464, and the like.
  • NC program file 462 is described below in connection with FIG.
  • the work definition file 464 includes data on the shape of the work before machining and data on the shape of the work after machining.
  • the temporary storage area 470 stores an NC program code table 472, a cursor position 474, a workpiece 3D model 476, a path table 478, and the like. NC program code table 472 and cursor position 474 are described below in connection with FIGS. 11-13.
  • Work 3D model 476 is a three-dimensional model of the work to be machined within machine tool 700 .
  • the workpiece 3D model 476 at each machining stage is associated with the line number of the NC program in which the instructions for machining are described.
  • the path table 478 stores each path along which the cutting edge of the tool moves in the three-dimensional space. Each path is associated with the line number of the NC program in which the command for its movement is described.
  • FIG. 11 is a data structure diagram of the cursor position 474 and the NC program code table 472 corresponding to FIG.
  • the NC program code table 472 has a line record for each line, and each line record is set with a line number and a code string of that line.
  • the NC program is edited based on the NC program code table 472, and the editing screen 202 is displayed.
  • a cursor position 474 indicates the line number of the cursor 206 displayed on the editing screen 202 and the code string index of that line.
  • the index is a variable that identifies an element in the array, and indicates the order of the element in the array, starting with 0.
  • each code is identified by an index 0, 1, . . . N ⁇ 1. Since the cursor 206 points to the first character on the 27th line in FIG. 2, the cursor position 474 is "27:0". Note that the code string on the 27th line is empty.
  • FIG. 12 is a data structure diagram of the cursor position 474 and the NC program code table 472 corresponding to FIG. Compared to FIG. 11, the NC program code table 472 has "X100.;” set in the code string of the 27th line, and line records from the 28th line to the 31st line are added. Since the cursor 206 points to the first character on the 31st line in FIG. 6, the cursor position 474 is "31:0". Also, the code string on the 31st line is empty.
  • FIG. 13 is a data structure diagram of the cursor position 474 and the NC program code table 472 corresponding to FIG.
  • the NC program code table 472 is the same as in FIG. Since the cursor 206 points to the 6th character on the 29th line in FIG. 8, the cursor position 474 is "29:5".
  • FIG. 14 is a data structure diagram of the NC program file 462 corresponding to FIGS. 12 and 13. As shown in FIG. This NC program file 462 is converted from the NC program code table 472 shown in FIGS. 12 and 13, and the content of the NC program itself is the same.
  • the NC program file 462 is in text format, not in table format. In the text format, a line feed code indicated by " ⁇ " in the figure is inserted between the code strings of each row in the table format. Also, by providing a line record for each code string delimited by a linefeed code in the NC program file 462, conversion to the NC program code table 472 is possible.
  • FIG. 15 and 16 are flow charts showing the main processing steps in the program editing device 400.
  • FIG. When the user instructs to read the NC program file 462, a read process is executed (S12).
  • the editing unit 442 converts the NC program file 462 into the NC program code table 472. Specifically, the editing unit 442 sequentially stores code strings delimited by line feed codes in row records. That is, when the NC program file 462 contains N line feed codes, the NC program code table 472 is provided with N+1 line records.
  • the line number at cursor position 474 is the last line number.
  • the index of the cursor position 474 should be the same as the number of codes contained in the code string of the last line. As a result, the cursor 206 is set at the end.
  • the reception unit 422 receives the character code, and the editing unit 442 executes character insertion processing (S16).
  • the editing unit 442 inserts the character corresponding to the character key into the location identified by the index at the cursor position 474 in the code string identified by the line number at the cursor position 474, and inserts the character corresponding to the index value. is incremented by 1.
  • the program display portion 432 redisplays the line in which the character was inserted, and displays the cursor 206 moved to the right. Then, the process returns to S14.
  • the accepting unit 422 accepts the numeric code
  • the editing unit 442 executes numeric insertion processing (S20).
  • the editing unit 442 inserts the number corresponding to the number key into the location specified by the index at the cursor position 474 in the code string specified by the line number at the cursor position 474, and inserts the value of the index. is incremented by 1.
  • the program display portion 432 redisplays the line in which the number is inserted, and displays the cursor 206 moved to the right. Then, the process returns to S14.
  • the reception unit 422 receives the symbol code, and the editing unit 442 executes symbol insertion processing (S24).
  • the symbol insertion process the editing unit 442 inserts the symbol corresponding to the symbol key into the location specified by the index at the cursor position 474 in the code string specified by the line number at the cursor position 474, and inserts the index value. is incremented by 1.
  • the program display portion 432 redisplays the line in which the symbol is inserted, and displays the cursor 206 moved to the right. Then, the process returns to S14.
  • the reception unit 422 receives the right arrow code, and the editing unit 442 executes right arrow movement processing (S28).
  • the editing unit 442 determines whether the cursor 206 is at the end of the line. Specifically, the editing unit 442 determines whether or not the value of the index at the cursor position 474 matches the number of codes in the code string of that line. If the cursor 206 is before the end of the line, the editing unit 442 increases the value of the index by 1, and the program display unit 432 displays the cursor 206 moved to the right.
  • the editing unit 442 further determines whether the cursor 206 is at the last line. Specifically, the editing unit 442 determines whether the line number at the cursor position 474 is the last line number. When the cursor 206 is on the last line, the program display section 432 displays as it is.
  • the editing unit 442 increments the line number value of the cursor position 474 by 1 and also sets the index value to 0. Then, the program display unit 432 displays the cursor 206 at the beginning of the line one line below. If the right arrow key is operated to move the cursor 206 to the lower line, simulation processing is executed (S29). By the simulation processing, the highlighted display of the white line is switched to the part of the behavior by the new cursor line. Also, if the code string in the original cursor line has been changed, a simulation image showing the behavior of the changed code string in the original cursor line is displayed. Then, the process returns to S14. The simulation process will be described in detail with reference to FIG.
  • the reception unit 422 receives the left arrow code, and the editing unit 442 executes left arrow movement processing (S32).
  • the editing unit 442 determines whether the cursor 206 is at the beginning of the line. Specifically, the editing unit 442 determines whether or not the index of the cursor position 474 is 0. If the cursor 206 is after the beginning of the line, the editing unit 442 decrements the value of the index at the cursor position 474 by 1, and the program display unit 432 displays the cursor 206 moved to the left.
  • the editing unit 442 further determines whether the cursor 206 is at the first line. Specifically, the editing unit 442 determines whether the line number at the cursor position 474 is 1 or not. When the cursor 206 is at the beginning of the first line, the program display section 432 displays as it is.
  • the editing unit 442 decrements the line number value of the cursor position 474 by 1, and also makes the index value the same as the code number of the line above. Then, the program display unit 432 displays the cursor 206 at the end of the upper line. If the left arrow key is operated to move the cursor 206 to the upper line, simulation processing is executed (S33). By the simulation processing, the highlighted display of the white line is switched to the part of the behavior by the new cursor line. Also, if the code string in the original cursor line has been changed, a simulation image showing the behavior of the changed code string in the original cursor line is displayed. Then, the process returns to S14.
  • the reception unit 422 receives the up arrow code, and the editing unit 442 executes up arrow movement processing (S36).
  • the editing unit 442 determines whether the cursor 206 is on the first line. Specifically, the editing unit 442 determines whether the line number at the cursor position 474 is 1 or not.
  • the program display section 432 displays as it is.
  • the editing unit 442 decrements the value of the line number at the cursor position 474 by one. Also, when the index value at the cursor position 474 exceeds the number of codes in the line above, the editing unit 442 makes the index value equal to the number of codes. Then, the program display unit 432 displays the cursor 206 on the upper line.
  • simulation processing is executed (S37). By the simulation processing, the highlighted display of the white line is switched to the part of the behavior by the new cursor line. Also, if the code string in the original cursor line has been changed, a simulation image showing the behavior of the changed code string in the original cursor line is displayed. Then, the process returns to S14.
  • the reception unit 422 receives the down arrow code, and the editing unit 442 executes down arrow movement processing (S40).
  • the editing unit 442 determines whether the cursor 206 is on the last line. Specifically, the editing unit 442 determines whether the line number at the cursor position 474 is the last line number. If the cursor 206 is on the last line, it is displayed as it is.
  • the editing unit 442 When the cursor 206 is on a line other than the last line, the editing unit 442 increases the value of the line number at the cursor position 474 by one. Also, if the index value at the cursor position 474 exceeds the number of chords in the line below, the editing unit 442 makes the index value equal to the number of chords. Then, the program display unit 432 displays the cursor 206 on the line below. If the down arrow key is operated to move the cursor 206 to the lower line, simulation processing is executed (S41). By the simulation processing, the highlighted display of the white line is switched to the part of the behavior by the new cursor line. Also, if the code string in the original cursor line has been changed, a simulation image showing the behavior of the changed code string in the original cursor line is displayed. Then, the process returns to S14.
  • the reception unit 422 inputs the ";" code, and the editing unit 442 executes line feed processing (S44).
  • line feed processing the editing unit 442 inserts a new line after the line where the cursor 206 is located. The line number of each line after the insertion point is decremented by one. Also, the editing unit 442 moves the portion after the cursor 206 in the code string of the line where the cursor 206 is located to the code string of the new line. That is, the code string is cut at the position of the cursor 206 .
  • the editing unit 442 increments the value of the line number at the cursor position 474 by 1 and also sets the value of the index to 0.
  • the program display portion 432 displays the cursor 206 moved to the beginning of the line below. Then, the simulation unit 444 executes simulation processing (S45).
  • the reception unit 422 receives the deletion code, and the editing unit 442 executes deletion processing (S48).
  • the editing unit 442 determines whether the cursor 206 is at the end of the line. Specifically, the editing unit 442 determines whether or not the index value matches the number of codes in that line. If the cursor 206 is not positioned at the end of the line, the editing unit 442 deletes the code indicated by the index in the code string of that line, and the program display unit 432 redisplays that line. If the cursor 206 is at the end of the line, the editor 442 adds the code string of the next line to the code string of the line above. The next line disappears, and the lines below it are moved up. The program display unit 432 redisplays the line after the line where the cursor 206 is located. Then, the simulation unit 444 executes simulation processing (S49).
  • the writing process is executed (S52).
  • the editing unit 442 converts the NC program code table 472 into the NC program file 462 and saves it. Then, the main processing ends.
  • FIG. 17 is a flow chart showing the simulation process.
  • the simulation unit 444 sequentially identifies row records in the NC program code table 472 (S60).
  • the simulation unit 444 calculates a route according to the command of the code string of that row record (S62).
  • a route calculation method based on a command such as a G code may be the same as in the prior art.
  • the calculated route is stored in the route table 478 in association with the line number of that line record.
  • the simulation unit 444 transforms the workpiece 3D model 476 in accordance with the machining details specified by the code string of the row record (S64).
  • a method of transforming the workpiece 3D model 476 according to commands such as G-code may be the same as in the prior art.
  • the deformed work 3D model 476 is stored in the temporary storage area 470 in association with the line number of its line record.
  • the simulation unit 444 returns to S60 and repeats the processing of S62 and S64 until it reaches the last line (N of S
  • the image display unit 434 draws the latest work 3D model 476 on the simulation screen 204 (S68).
  • the image display unit 434 sets the thick line attribute to the line indicating the route obtained by the command on the line immediately before the last line (S72). That is, when the line number of the cursor position 474 matches the line number of the last line, the path corresponding to the line number of the last line -1 is highlighted in bold.
  • the image display unit 434 sets the outline attribute to the line indicating the route obtained by the command of the cursor line (S74). That is, when the line number at cursor position 474 does not match the line number of the last line, the path corresponding to the line number at cursor position 474 is highlighted with a white line.
  • the image display unit 434 draws the line of each route described above on the simulation screen 204 (S76). Then, the process returns to S14.
  • the commanded path of the line where the cursor 206 is located changes to a white line. Therefore, the user can easily grasp the relationship between the description of the program and the behavior of the craft.
  • a guidance screen for command input may be displayed.
  • an example of a guidance screen for G-code input is shown.
  • FIG. 18 is a screen diagram of a G-code input guidance screen.
  • the G-code input guidance screen 500 guides the description of the G-code on the edit screen 202 .
  • the screen display unit 436 displays the guidance screen 500 (FIG. 18).
  • the type of G-code eg, "helical drilling cycle”
  • the configuration of arguments eg, "G439 (X_Y_Z_R_H_I_J_K_U_V_W)"
  • Corresponding input areas 504a-h are displayed.
  • the value of that argument can be entered in the input area 504 .
  • the cursor 206 is displayed in the input area 504a of the argument X selected by the user, indicating that the value of the argument X is accepted.
  • a conceptual diagram 506 and an explanation 508 regarding the selected argument X are displayed. The user can understand the meaning of the argument X as a variable by referring to the conceptual diagram 506 and the explanation 508 regarding the argument X.
  • the entered argument values are displayed in the argument area 514 . The same is true for other arguments. "*" in the figure indicates that value input is essential.
  • the insert button 510 When the user touches the insert button 510, the G-code and the value of each argument are inserted at the cursor position 474 on the editing screen 202 according to a predetermined format. If the user touches back button 512, nothing is inserted. In this way, the user does not have to check the format for each G-code, and the input of the description regarding the G-code becomes easy. Instead of directly inputting the G-code number into the input area 502, the user may select the G-code from a list displayed in front of the G-code input guidance screen.
  • Modification 2 relates to guidance message display by touching an icon button.
  • the program editing device shall use a touch panel.
  • a personal computer can display a guidance message by mouse-over, but a touch panel cannot perform an operation such as mouse-over.
  • FIG. 19 is a diagram showing an example of the guidance message 604b on the edit-simulation screen.
  • the screen display section 436 has a button display section for displaying buttons 600 such as a button 600a for executing displaying a simulation image.
  • the input unit 420 of the interface processing unit 410 has a touch detection unit that detects touch operations on the touch panel. When the touch detection unit detects a long touch on icon button 600a, the button display unit displays a guidance message 604b indicating the function "simulation start" corresponding to icon button 600a at a position close to icon button 600a.
  • the button display unit when the event detection unit detects a long touch on the icon button 600, the button display unit outputs a guidance message 604b indicating the content of the function corresponding to the icon button 600. display at a position close to In addition, the message display section displays a function message 606 that reads "The NC program is highlighted in the execution order." Even if you release your finger while the guidance message is being displayed, the "simulation start" function will not be executed. However, when touched briefly, the simulation start function is executed. Note that the event detection unit determines that the icon button 600 has been touched for a long time when the duration of the touch on the icon button 600 exceeds the reference value.
  • data storage unit 450 has a guidance message storage unit in storage storage area 460 for storing guidance message 604 indicating the content of function corresponding to icon button 600 for each icon button 600 .
  • the icon button 600 shown in FIG. 19 will be described.
  • the touch detection unit detects a long touch (long press) of the file list button 600g
  • the screen display unit 436 transitions to the file list screen.
  • the touch detection unit detects a long touch (long press) of the edit button 600h
  • the screen display unit 436 transitions to the edit screen of the file selected by the user on the file list screen.
  • the touch detection unit detects a long touch (long press) of the simulation button 600i
  • the screen display unit 436 transitions to a screen for simulating the NC program set in the file being edited.
  • the touch detection unit detects a long touch (long press) of the foreground/background switching button 600j
  • the screen display unit 436 switches between the foreground screen and the background screen. For example, when running an NC program edited on the background screen, it is necessary to execute the program on the foreground screen, so the button switches to the foreground screen.
  • FIG. 20 is a screen diagram of background editing.
  • the background edit screen has icon buttons 600g-j, 600r, and 600s.
  • the screens for background editing shown in FIGS. 20 to 23 are displayed on the operation screen 704 of the operation panel 702 in the same way as the "edit screen 204 and simulation screen 204" shown in FIGS. Also, the screen for background editing can be switched between "editing screen 204 and simulation screen 204".
  • the icon button 600 shown in FIG. 20 will be described.
  • the touch detection unit detects a long touch (long press) of the add button 600r
  • the data creation unit creates new data.
  • the button display unit displays the toolbar on the second layer. By changing the check state of the display item, the display item to be displayed on the screen can be changed.
  • FIG. 21 is a diagram showing an example of the guidance message 604c on the background editing screen.
  • the button display unit displays a guidance message 604c indicating the function "change display information" corresponding to the icon button 600s at a position close to the icon button 600s.
  • FIG. 22 is a diagram showing a state in which a process is selected on the background editing screen. With one of the processes selected, the button display section further displays icon buttons 600t to 600w.
  • the icon button 600 shown in FIG. 22 will be described.
  • the editing unit 442 switches the editing mode of the processing process. By switching the edit mode, it is possible to manually edit the NC program of the machining process set in an interactive manner.
  • the touch detection unit detects a long touch (long press) of the machining ON/OFF button 600u
  • the switching unit switches execution/non-execution of the machining process.
  • the machining process is not output to the NC program.
  • the touch detection section detects a long touch (long press) of the delete button 600v
  • the data deletion section deletes the data selected by the user.
  • the touch detection section detects a long touch (long press) of the copy button 600w the data duplication section duplicates the data selected by the user.
  • FIG. 23 is a diagram showing an example of the guidance message 604d on the background editing screen.
  • the button display unit displays a guidance message 604d indicating the function "processing OFF" corresponding to the icon button 600u at a position close to the icon button 600u.
  • "machining OFF" is a function that invalidates the machining process. Processes set to machining OFF are not executed.
  • the mode of highlighting on the simulation screen 204 may be other than thick lines and outline lines.
  • a specific color or brightness may be given to the route to be emphasized.
  • the route to be emphasized may be displayed by animation.
  • the highlighting described above is an example of display according to a particular aspect.
  • a route corresponding to the example of highlighted display may be displayed in such a manner that it can be distinguished from other routes displayed normally.
  • the display mode may be common for the route illustrated by the thick line and the route illustrated by the white line. Both may be displayed with lines of the same thickness, or both may be displayed with lines of the same line type. Both may be displayed with lines of the same color, or both may be displayed with lines of the same brightness. Also, both may be displayed with the same animation.
  • the simulation unit 444 determines whether or not the process up to the cursor line has been completed. If the cursor line has not been processed (N of S66), the process returns to S60 and repeats the processes of S62 and S64. If the cursor line has been processed (Y of S66), the image display unit 434 draws the workpiece 3D model 476 on the simulation screen 204 (S68).
  • the route may be displayed and the work 100 may not be displayed.
  • the process of S64 and the process of S68 may be omitted.
  • the process of S72, the process of S74, and the process of S76 may be omitted.
  • the simulation process may be executed after the character insertion process, number insertion process, and symbol insertion process. In this way, when the instruction is modified by inserting the code, a simulation based on the modified contents is displayed.
  • the simulation process described with reference to FIG. 17 is normally executed from the beginning of the NC program, but it does not have to be executed from the beginning of the NC program.
  • simulation processing may be executed from the middle of the NC program.
  • the simulation unit 444 starts identifying row records in the NC program code table 472 from the code string during the simulation.
  • the accepting unit 422 may accept designation of a code string for starting a simulation, and the simulation unit 444 may start the processing from S60 onwards from the line record of the designated code string.
  • the receiving unit 422 may receive the line number of the designated code string, or may receive a touch operation or a click operation on the designated code string.
  • a simulation image showing the behavior of machining is displayed from the middle of the NC program.
  • the simulation may be executed from several lines before the code string added by the user.
  • the number of lines going back from the added code string is, for example, within the range of 100 to 200 lines.
  • the number of lines to go back may be determined in advance or may be specified by the user.
  • a predetermined number of backward lines is stored in the save storage area 460 .
  • the reception unit 422 receives the number of retroactive rows.
  • the simulation unit 444 subtracts the number of retroactive lines from the line number of the code string added to the NC program, and identifies the line record for starting the simulation in S60. As a result, the operator can easily confirm the part of the NC program that has been changed.
  • the user can perform the user operation so as to trace back from the point where the code was newly added or the point where the code was edited within the range of 5 seconds to 15 seconds in the simulation video.
  • it may be automatically set in the simulation unit 444 .
  • a unit operation time (movie playback time per row) assigned to one row in the operation of the simulation may be determined.
  • the operation time (video playback time for each command) of the simulation image showing the behavior of the machine work assigned to each line according to the command for each line of the NC program may be calculated.
  • the simulation unit 444 may determine the video playback time corresponding to the type of command.
  • the simulation unit 444 calculates the playback time of the moving image to be played retroactively by totaling the operation time (moving image playback time) of each row in ascending order from the new row or the edited row. Then, the simulation unit 444 identifies a moving image reproduction start line whose moving image reproduction time falls within the range of 5 seconds to 15 seconds. In this way, when a new line of code string is received, or a change of one line of code string is attached, the simulation image reproduces a moving image ranging from 5 seconds to 15 seconds from that code string. It is possible to go back to the previous time and reproduce the moving image of the simulation image.
  • the program check is in the range of 5 to 15 seconds, the actual machining may take longer (eg, 1 hour), and the actual machining time and the simulation operating time are different. If you go back and check within 5 to 15 seconds in the program check, you can efficiently check the machining process that takes a long time in a short time.
  • the target machine tool 700 may be other than a machining center.
  • a machining center For example, the above-described embodiments and modifications may be applied to a turning center, a multitasking machine, and the like.
  • Each of these machine tools 700 includes a working section for working, an operation panel 702 having a screen for operating the machine tool, and a functional section for controlling the position of the functional section in the working section. and a numerical controller (NC unit).
  • the working part includes a cutting tool, a spindle, a servo motor that rotates the spindle, a pallet, an ATC (Automatic Tool Changer), a tool magazine, etc. , drilling and tapping.
  • the machine tool 700 is a turning center
  • the working section includes a cutting tool, a rotating shaft, a servo motor for rotating the rotating shaft, a turret, an ATC, a tool magazine, etc., and mainly performs turning.
  • the main shaft of the machining center and the turret of the turning center correspond to functional parts within the working part.
  • the numerical control unit performs numerical control directly or via a PLC (Programmable Logic Controller) on the servo motors and ATC of the work unit to control the position of the functional units in the work unit and the selection of tools.
  • a numerical control unit of a machining center moves a main axis, which is a functional unit.
  • the numerical control unit of the turning center moves the turret, which is a functional unit. As a result, the edge of the cutting edge, which is the working site for machining, moves.
  • the functional part of the working part may be another laser irradiation part, a powder discharge part, or the like.
  • the numerical control unit may move the laser irradiation unit, the powder discharge unit, and the like.
  • the laser irradiation section the laser beam corresponds to the action site of processing
  • the powder discharge section the distribution area of the scattered powder corresponds to the action site of processing.
  • the functional part of the working part is the part that controls the action point of the machining.
  • the simulation unit 444, the image display unit 434, and the screen display unit 434 described above simulate the behavior of machining based on the program for the machine tool 700 and the information on the functional units stored in the machine tool 700. It is an example of a display control unit that controls display of an image on a screen.
  • the simulation unit 444 transforms the workpiece 3D model 476 in a virtual three-dimensional space according to the machining content.
  • a simulation image showing the behavior of the machine work is a two-dimensional image generated by the image display unit 434 as an observation of the work 3D model 476 from a predetermined viewpoint.
  • the shape of the workpiece that changes each time is drawn by step-by-step processing. In the above example, the shape of the hole formed in the work by cutting is drawn.
  • the simulation unit 444 further calculates the working action points (path of the cutting edge, laser light, powder distribution area, etc.) in the virtual three-dimensional space.
  • a drawing showing the action point of machining generated by the image display unit 434 as an observation of the action point from a predetermined viewpoint line of the path of the cutting edge, line of laser light, distribution of powder, etc.) area display, etc.
  • the program for the machine tool 700 refers to, for example, an NC program, and the simulation unit 444 transforms the workpiece 3D model 476 based on this program to specify the machining action points.
  • the simulation unit 444 also uses information on functional units stored in the functional unit information storage unit within the machine tool 700 .
  • the information of the functional part includes information such as the shape of the functional part, the function of the functional part, the position of the functional part in the machine tool 700, and the reference point of the functional part and its position.
  • a simulation image is thus an image depicting the shape of the workpiece that changes due to machining by the machine tool 700 .
  • the simulated image may also depict the action location of the processing as described above.
  • the simulation images showing the behavior of these works are a plurality of simulation still images or simulation moving images that sequentially change in time series.
  • FIG. 25 is a data structure diagram of the NC program code table 472. As shown in FIG. The data structure of the NC program will be explained. When machining a workpiece with one NC program, several processes may be included. For example, processes such as curved surface machining, flat surface machining, or hole machining are performed in sequence. For this reason, the NC program includes groups (routines) of code strings for each process. A set of code strings corresponding to each process is delimited by N codes with sequence numbers. In other words, the part sandwiched by the N codes indicating the delimiter corresponds to a set of code strings executed during each process. In this example, "N035;" described in line number: 22 indicates a process delimiter.
  • the simulation unit 444 searches upward from the added or modified location for the N code indicating the delimiter, and finds the N code that appears first.
  • the code string next to the N code (for example, line number: 23) is set as the simulation start position in the simulation unit 444 .
  • the simulation unit 444 executes simulation processing from the code string at the simulation start position. In this way, it is possible to confirm whether or not the NC program that has been changed by addition or correction is correct by the simulation animation that is displayed from the beginning of the process including the changed portion.

Landscapes

  • Engineering & Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Manufacturing & Machinery (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Automation & Control Theory (AREA)
  • Numerical Control (AREA)

Abstract

本発明のある態様におけるプログラム編集装置は、工作機械用の数値制御プログラムを受け付ける受付部と、数値制御プログラムの各行におけるコード列を表示するプログラム表示部と、(i)数値制御プログラムの中に新たな行のコード列を受け付けたときに、新たな行のコード列による工作の挙動を示すシミュレーション画像、または、(ii)数値制御プログラムの中に1つの行のコード列の変更を受け付けたときに、変更された行のコード列による工作の挙動を示すシミュレーション画像、を表示する画像表示部とを有する。

Description

プログラム編集装置およびプログラム
 本発明は、工作機械用の数値制御プログラムを編集する技術に関する。
 ターニングセンタやマシニングセンタのように数値制御(NC:Numerical Control)によって、自動的に加工を行う工作機械が広く利用されている。このような工作機械を使用するためには、数値制御による加工を指示するための数値制御プログラム(以下、NCプログラムという)を準備する。
 CAD(Computer-Aided Design)やCAM(Computer Aided Manufacturing)を利用してNCプログラムを生成する方法の他、従来通りユーザがコーディングすることもある。ただし、コーディングにおいて人的なミスがあると、NCプログラムによって正しく加工されないことになる。したがって、NCプログラムを作成する際には人的ミスを少なくすることが望まれる。
特開2013-200766号公報 特開平2-151908号公報 特開2016-018539号公報
 NCプログラムを検証する方法として、ワークを設置しない工作機械を空運転させることがある。ただし、空運転における工作の挙動を観察する労力は大きく、NCプログラムの不備を見逃すこともある。また、大がかりな作業であり、工作機械を占有することになるため、頻繁に検証することはできない。
 本発明は、特許請求の範囲に記載のプログラム編集装置等を提供するものである。
 本発明によれば、NCプログラムの編集において人的なミスを低減できる。
ワークの斜視図である。 26行目まで記述された編集画面とシミュレーション画面の画面図である。 27行目まで記述された編集画面とシミュレーション画面の画面図である。 28行目まで記述された編集画面とシミュレーション画面の画面図である。 29行目まで記述された編集画面とシミュレーション画面の画面図である。 30行目まで記述された編集画面とシミュレーション画面の画面図である。 30行目で誤った記述がされた編集画面とシミュレーション画面の画面図である。 29行目までカーソルを戻した編集画面とシミュレーション画面の画面図である。 28行目までカーソルを戻した編集画面とシミュレーション画面の画面図である。 プログラム編集装置の機能ブロック図である。 図2に対応するカーソル位置とNCプログラムコード表のデータ構造図である。 図6に対応するカーソル位置とNCプログラムコード表のデータ構造図である。 図8に対応するカーソル位置とNCプログラムコード表のデータ構造図である。 図12と図13に対応するNCプログラムファイルのデータ構造図である。 プログラム編集装置におけるメイン処理過程を示すフローチャートである。 プログラム編集装置におけるメイン処理過程を示すフローチャートである。 シミュレーション処理過程を示すフローチャートである。 Gコード入力ガイダンス画面の画面図である。 編集-シミュレーションの画面におけるガイダンスメッセージの例を示す図である。 バックグラウンド編集の画面図である。 バックグラウンド編集の画面におけるガイダンスメッセージの例を示す図である。 バックグラウンド編集画面で工程が選択された状態を示す図である。 バックグラウンド編集の画面におけるガイダンスメッセージの例を示す図である。 工作機械と操作盤の外観図である。 NCプログラムコード表のデータ構造図である。
 本実施形態におけるプログラム編集装置は、編集画面とともにシミュレーション画面を表示する。編集画面では、編集操作に応じてNCプログラムを表示し、シミュレーション画面では、編集画面に表示されたNCプログラムによるシミュレーション結果を表示する。
 図24は、工作機械700と操作盤702の外観図である。
 このプログラム編集装置は、工作機械700の中に組み込まれていて、編集画面やシミュレーション画面を操作盤702の画面上に表示する形態でもよいし、工作機械700とは別体のコンピュータ(例えば、パーソナルコンピュータ)の画面上に編集画面やシミュレーション画面を表示する形態でもよい。好ましい形態は、工作機械700がプログラム編集装置を備え、操作盤702の操作画面704にプログラム編集装置の編集画面やシミュレーション画面を表示する形態である。
 ユーザは、たとえばNCプログラムの入力作業において、加工順に指令を書き込む。本実施形態では、新たな指令が書き込まれる都度、その段階までの加工がシミュレートされ、新たな指令によるシミュレーション結果が強調表示される。
 また、ユーザは、NCプログラムの見直し作業において、指令の内容を確認したい箇所にカーソルを移動させると、カーソル行に対応するシミュレーション結果が強調表示される。
 図1は、ワーク100の斜視図である。
 この例で想定するワーク100は板部材であって、厚み方向に6つの穴102、穴104、穴106、穴108、穴110、穴112が空けられる。穴102は、板部材の中央に形成される。穴104は板部材の左下に形成され、穴106は同じく右下に形成され、穴108は同じく右側中央に形成され、穴110は同じく右上に形成され、さらに穴112は同じく左上に形成される。穴104、穴106、穴108、穴110、穴112の内径は、穴102の内径よりも小さい。
 ワーク100に対する穴あけを、工作機械700の一例であるマシニングセンタで行う。穴102の切削には、大きな径のドリルが使用され、穴104、穴106、穴108、穴110、穴112の切削には、穴102の切削に用いたドリルの径よりも小さな径のドリルが使用される。
 以下では、ワーク100の表面における中心を加工原点とする。また、正面方向から見た場合の右側がX軸の正方向であり、同じく上側がY軸の正方向であり、さらに手前がZ軸の正方向であるものとする。
 ユーザが、穴102、穴104、穴106、穴108、穴110および穴112の順に穴あけ加工を行うNCプログラムのコーディングをするものとする。
 図2は、26行目まで記述された編集画面202とシミュレーション画面204の画面図である。編集画面202とシミュレーション画面204は、操作盤702の操作画面704に表示される。
 編集画面202とシミュレーション画面204は、編集-シミュレーション画面に含まれる。編集-シミュレーション画面には、アイコンボタン600a~jとガイダンスボタン602が含まれる。アイコンボタン600a~jについては、変形例2に関連して後述する。ガイダンスボタン602については、変形例1に関連して後述する。
 26行目における「G98G83Z-33.554R3.Q7.F240.」の入力に続いて、「;」キーが押下された後の状態を示している。「;」キーが押下されると、「;」が入力され、自動的に改行する。以下、同様である。シミュレーション画面204には、26行目まで制御動作を実行した場合の刃先経路(以下、単に「経路」ということがある)が表示される。
 なお、23行目より上で、穴102の切削に関するプログラムが記述されているものとする。したがって、シミュレーション画面204で穴102の切削動作に関する経路302が表示される。23行目以下では、穴102、穴104、穴106、穴108、穴110、穴112の切削に関するプログラムをコーディングするものとする。
 23行目「G90G54G17G0X-100.Y-50.;」について説明する。「G90」は、絶対値指令である。絶対値指令は、加工原点からの距離と向きで指令するという宣言である。「G54」は、ワーク座標系指令である。ワーク座標系指令は、加工原点位置の指定(ワークオフセット)である。「G17」は、XY平面指令である。XY平面指令は、XY平面に対して加工を行うという宣言である。「G0X-100.Y-50.」は、位置決めである。この位置決めで、X座標:-100mm、Y座標:-50mmの位置へ早送りで工具(この例では、ドリル)の刃先を移動させる。
 24行目「G43Z50.H45S1010M3;」について説明する。「G43」は、工具長補正指令である。「H45」は、45番の工具長補正値を適用することを意味する。「Z50.」は、「G0 Z50.」と同義である。この位置決めで、Z座標50mmまで早送りで工具の刃先を移動させる。「S1010」は、主軸回転数指令である。具体的には、工具の回転数を1010回/分に指定する。「M3」は、工具を回転させる主軸正転を指令する。
 25行目「Z50.M8;」について説明する。「Z50.」は、「G0 Z50.」と同義である。この位置決めで、Z座標:50mmまで早送りで工具の刃先を移動させる。「M8」は、クーラント吐出の指令である。ここまでの指令によって、工具の刃先は、経路304を経て、穴104に対する位置305に達している。位置305は、X座標:-100mm、Y座標:-50mm、Z座標:50mmである。
 26行目「G98G83Z-33.554R3.Q7.F240.」について説明する。「G98」は、イニシャル点レベル復帰の指令である。この指令は、イニシャル点まで戻ってから次の穴あけ位置に移動する宣言である。「G83」は、深穴ドリリング固定サイクルの指令である。この指令によって、穴104に対応する位置305をイニシャル点とする切削加工を行い、その後も別の位置をイニシャル点とする切削加工が繰り返される。「Z-33.554」は、穴底の位置を指令する。この指令によって、Z座標:-33.554mmの深さまで切削が行われる。「R3.」は、切削送りの開始位置を指令する。この指令による切削送りの開始位置は、Z座標:+3mmである。つまり、正面の3mm手前から、切削送りが始まる。「Q7.」は、1回あたりの切り込み量である。具体的には、7ミリの穴あけ動作と1ミリの逃げ動作とを繰り返すことを意味する。「F240.」は、送り速度指令である。具体的には、240mm/minで工具の刃先を移動させる。
 ユーザが26行目における指令の入力を終えると、「;」キーを押下する。この段階で、26行目の指令による穴104(中心軸X座標:-100mm、中心軸Y座標:-50mm)の切削に関連する経路が特定される。具体的には、イニシャル点の位置305からの接近、穴104の切削およびワーク100から位置305までの復帰が特定され、経路306として新たに表示される。26行目の指令によって追加された経路306は、太線によって強調表示される。この例では、新たな行のコード列による工作の挙動を示す部位を太線で示す。太線は、新たな行のコード列による工作の挙動を示す部位を表示する第1区別態様の例である。第1区別態様は、太線以外の表示であってもよい。
 図3は、27行目まで記述された編集画面202とシミュレーション画面204の画面図である。
 この例は、27行目における「X100.」の入力に続いて、「;」キーが押下された後の状態を示している。シミュレーション画面204には、27行目まで制御動作を実行した場合の経路が表示される。
 「X100.」は、穴下降位置の指令である。27行目の指令によって、穴106(中心軸X座標:100mm、中心軸Y座標:-50mm)の切削に関連する経路が追加される。具体的には、まず位置305から次のイニシャル点の位置309までスライドする経路308が特定される。さらに、位置309からの接近、穴106の切削および位置309までの復帰に相当する経路310が特定される。27行目の指令によって追加された経路308および経路310は、太線によって強調表示される。
 図4は、28行目まで記述された編集画面202とシミュレーション画面204の画面図である。
 この例は、28行目における「Y0」の入力に続いて、「;」キーが押下された後の状態を示している。シミュレーション画面204には、28行目まで制御動作を実行した場合の経路が表示される。
 「Y0」は、穴下降位置の指令である。28行目の指令によって、穴108(中心軸X座標:100mm、中心軸Y座標:0mm)の切削に関連する経路が追加される。具体的には、まず位置309から次のイニシャル点の位置313までスライドする経路312が特定される。さらに、位置313からの接近、穴108の切削および位置313までの復帰に相当する経路314が特定される。28行目の指令によって追加された経路312および経路314は、太線によって強調表示される。
 図5は、29行目まで記述された編集画面202とシミュレーション画面204の画面図である。
 この例は、29行目における「Y50.」の入力に続いて、「;」キーが押下された後の状態を示している。シミュレーション画面204には、29行目まで制御動作を実行した場合の経路が表示される。
 「Y50.」は、穴下降位置の指令である。29行目の指令によって、穴110(中心軸X座標:100mm、中心軸Y座標:50mm)の切削に関連する経路が追加される。具体的には、まず位置313から次のイニシャル点の位置317までスライドする経路316が特定される。さらに、位置317からの接近、穴110の切削および位置317までの復帰に相当する経路318が特定される。29行目の指令によって追加された経路316および経路318は、太線によって強調表示される。
 図6は、30行目まで記述された編集画面202とシミュレーション画面204の画面図である。
 この例は、30行目における「X-100.」の入力に続いて、「;」キーが押下された後の状態を示している。シミュレーション画面204には、30行目まで制御動作を実行した場合の経路が表示される。
 「X-100.;」は、穴下降位置の指令である。30行目の指令によって、穴112(中心軸X座標:-100mm、中心軸Y座標:50mm)の切削に関連する経路が追加される。具体的には、まず位置317から次のイニシャル点の位置321までスライドする経路320が特定される。さらに、位置321からの接近、穴112の切削および位置321までの復帰に相当する経路322が特定される。30行目の指令によって追加された経路320および経路322は、太線によって強調表示される。
 図2~図6に示したように、各行の入力の都度正しく指令を記述したかを確かめることができる。次に、誤った指令を記述した場合の例を示す。
 図7は、30行目で誤った記述がされた編集画面202とシミュレーション画面204の画面図である。
 この例は、30行目における「X-100」の入力に続いて、「;」キーが押下された後の状態を示している。シミュレーション画面204には、30行目まで制御動作を実行した場合の経路が表示される。
 穴下降位置の指令として本来「X-100.;」(-100mm)と記述すべきところ、小数点の入力を忘れて「X-100;」となっている。この場合、工作機械700の制御装置は、「X-100;」を-0.1mmと解釈してしまう。したがって、プログラム編集装置においても、30行目の指令によって、穴114(中心軸X座標:-0.1mm、中心軸Y座標:50mm)の切削に関連する経路が追加される。具体的には、まず位置317から次のイニシャル点である位置325までスライドする経路324が特定される。さらに、位置325からの接近、穴114の切削および位置325までの復帰に相当する経路326が特定される。30行目の指令によって追加された経路324および経路326は、太線によって強調表示される。
 編集画面202において小数点の欠落は、あまり目立たないが、シミュレーション画面204における経路の相違は明白である。このように、経路の外観によって、ユーザがコーディングミスを認識しやすくできる。小数点の欠落の他にも、正負の間違い(たとえば、30行目の「X100.;」)、パラメータの間違い(たとえば、30行目の「Y-100.;」)あるいはGコードの間違い(たとえば、回転方向が違う指令の取り違い)などについても気づきやすくなる。
 また、以上のようにNCプログラムの入力作業におけるシミュレーション結果を強調表示するだけでなく、NCプログラムの見直し作業においてシミュレーション結果を強調表示してもよい。具体的には、NCプログラムを見直すために、ユーザがカーソル206を移動させると、カーソル206がある行に対応する経路が強調表示される。
 図8は、29行目までカーソル206を戻した編集画面202とシミュレーション画面204の画面図である。
 この例は、図6で上矢印キーを2回押下してカーソル206を、29行目へ移動させた状態を示している。シミュレーション画面204には、図6と同様に30行目まで制御動作を実行した場合の経路が表示される。ただし、30行目の指令によって追加された経路320および経路322は、強調表示されていない。その代わり、カーソル206がある29行目の指令によって追加された経路316および経路318が、白抜き線によって強調表示されている。この例では、移動したカーソルが指す行のコード列による工作の挙動を示す部位を白抜き線で示す。白抜き線は、移動したカーソルが指す行のコード列による工作の挙動を示す部位を表示する第2区別態様の例である。第2区別態様は、白抜き線以外の表示であってもよい。また、第2区別態様を第1区別態様と同じ表示にしてもよい。
 図9は、28行目までカーソル206を戻した編集画面202とシミュレーション画面204の画面図である。
 この例は、図8で上矢印キーを1回押下してカーソル206を、28行目へ移動させた状態を示している。シミュレーション画面204には、図6と同様に30行目まで制御動作を実行した場合の経路が表示される。ただし、カーソル206がある28行目の指令によって追加された経路312および経路314が、白抜き線によって強調表示されている。
 このように、入力済みの行へカーソル206を移動させると、カーソル206がある行に対応する経路が白抜き線によって強調表示される。したがって、どの行がどの経路に対応するかを一目で理解することができる。たとえば、ユーザがある経路を修正したいと思ったときに、その経路に相当する指令がどの行に記述されているかを編集画面202で見つけるのは、面倒であり、勘違いが起きやすい。本実施形態の場合には、シミュレーション画面204においてユーザが着目する経路が強調表示されるまで、カーソル206を上下に移動させれば該当行を特定することができるので、ユーザの労力が少なく、勘違いを防止できる。
 図10は、プログラム編集装置400の機能ブロック図である。
 プログラム編集装置400の各構成要素は、CPU(Central Processing Unit)および各種コプロセッサ(coprocessor)などの演算器、メモリやストレージといった記憶装置、それらを連結する通信線を含むハードウェアと、記憶装置に格納され、演算器に処理命令を供給するソフトウェアによって実現される。コンピュータプログラムは、デバイスドライバ、オペレーティングシステム、それらの上位層に位置する各種アプリケーションプログラム、また、これらのプログラムに共通機能を提供するライブラリによって構成されてもよい。以下に説明する各ブロックは、ハードウェア単位の構成ではなく、機能単位のブロックを示している。
 プログラム編集装置400は、インターフェース処理部410、データ処理部440およびデータ格納部450を含む。
 インターフェース処理部410は、キーボード、マウスやタッチパネルなどを介してユーザからの操作を受け付けるほか、画像表示や音声出力など、ユーザインターフェースに関する処理を担当する。インターフェース処理部410は、ネットワークを介する通信に関するインターフェース処理を担当してもよい。データ処理部440は、インターフェース処理部410により取得されたデータ、データ格納部450に格納されているデータに基づいて各種処理を実行する。データ処理部440は、インターフェース処理部410およびデータ格納部450のインターフェースとしても機能する。データ格納部450は各種データを格納する。
 インターフェース処理部410は、データ入力を受け付ける入力部420と、画像や音声等の各種情報を出力する出力部430を含む。
 入力部420は、キーの押下によって文字コード、数字コード、記号コードおよび各種制御コードなどを受け付ける受付部422を含む。
 出力部430は、プログラム表示部432、画像表示部434および画面表示部436を含む。
 プログラム表示部432は、編集画面202を生成して、表示する。画像表示部434は、シミュレーション画面204を生成して、表示する。画面表示部436は、Gコード入力ガイダンス画面を生成して、表示する。Gコード入力ガイダンス画面については、図18に関連して後述する。プログラム表示部432と画像表示部434は、編集画面202とシミュレーション画面204を同時に表示させる。
 データ処理部440は、編集部442およびシミュレーション部444を含む。
 編集部442は、NCプログラムの編集処理を実行する。シミュレーション部444は、NCプログラムによる工作の挙動をシミュレートする。
 データ格納部450は、保存記憶領域460および一時記憶領域470を含む。保存記憶領域460には、ハードディスクドライブ装置やフラッシュメモリのような不揮発性メモリが使用される。一時記憶領域470には、RAM(Random access memory)のような揮発性メモリが使用される。
 保存記憶領域460には、NCプログラムファイル462およびワーク定義ファイル464などが記憶される。
 NCプログラムファイル462については、図14に関連して後述する。ワーク定義ファイル464は、加工前のワークの形状に関するデータおよび加工後のワークの形状に関するデータが含まれる。
 一時記憶領域470には、NCプログラムコード表472、カーソル位置474、ワーク3Dモデル476および経路テーブル478などが記憶される。
 NCプログラムコード表472およびカーソル位置474については、図11~図13に関連して後述する。ワーク3Dモデル476は、工作機械700内において加工されるワークの三次元モデルである。各加工段階におけるワーク3Dモデル476が、その加工に関する指令が記述されているNCプログラムの行の番号に対応づけられる。経路テーブル478には、3次元空間において工具の刃先が移動する各経路が格納される。各経路には、その移動に関する指令が記述されているNCプログラムの行の番号が対応づけられる。
 図11は、図2に対応するカーソル位置474とNCプログラムコード表472のデータ構造図である。
 NCプログラムコード表472は、行毎の行レコードを有し、各行レコードには、行番号とその行のコード列が設定される。NCプログラムコード表472に基づいて、NCプログラムが編集され、編集画面202が表示される。カーソル位置474は、編集画面202に表示されるカーソル206の行番号と、その行のコード列のインデックスとを示す。インデックスは、配列における要素を識別する変数であって、先頭番号を0とし、配列中の要素順位を示す。この例でN個のコードを含むコード列について、各コードはインデックスの0,1,・・・N-1で特定される。図2でカーソル206が27行目の1文字目を指しているので、カーソル位置474は、「27:0」である。なお、27行目のコード列は、空である。
 図12は、図6に対応するカーソル位置474とNCプログラムコード表472のデータ構造図である。
 NCプログラムコード表472は、図11と比較して、27行目のコード列に「X100.;」が設定され、さらに28行目から31行目までの行レコードが追加されている。図6でカーソル206が31行目の1文字目を指しているので、カーソル位置474は、「31:0」である。また、31行目のコード列は、空である。
 図13は、図8に対応するカーソル位置474とNCプログラムコード表472のデータ構造図である。
 NCプログラムコード表472は、図12と同様である。図8でカーソル206が29行目の6文字目を指しているので、カーソル位置474は、「29:5」である。
 図14は、図12と図13に対応するNCプログラムファイル462のデータ構造図である。
 このNCプログラムファイル462は、図12と図13に示したNCプログラムコード表472から変換されたものであって、NCプログラムの内容自体は同じである。NCプログラムファイル462は、テーブル形式ではなく、テキスト形式である。テキスト形式では、テーブル形式における各行のコード列の間に、図中「↓」で示した改行コードが挿入される。また、NCプログラムファイル462において改行コードで区切られる各コード列について行レコードを設けることによって、NCプログラムコード表472へ変換することも可能である。
 図15と図16は、プログラム編集装置400におけるメイン処理過程を示すフローチャートである。
 ユーザによってNCプログラムファイル462の読み込みが指示された場合には、読み込み処理を実行する(S12)。
 読み込み処理において、編集部442は、NCプログラムファイル462をNCプログラムコード表472に変換する。具体的には、編集部442は、改行コードで区切られているコード列を、順に行レコードに格納する。つまり、NCプログラムファイル462にN個の改行コードが含まれる場合には、NCプログラムコード表472にN+1個の行レコードが設けられる。カーソル位置474の行番号は、最終行の番号とする。カーソル位置474のインデックスは、最終行のコード列に含まれるコード数と同じにする。これによって、最後尾にカーソル206が設定される。
 NCプログラムファイル462の読み込みが指示されない場合には、コード列が空である行レコードを1個生成する。カーソル位置474の行番号は1とし、インデックスは0とする。
 文字キーが押下された場合には(S14のY)、受付部422が文字コードを受け付けて、編集部442は文字挿入処理を実行する(S16)。文字挿入処理において、編集部442は、カーソル位置474の行番号で特定されるコード列のうち、カーソル位置474のインデックスで特定される箇所に、文字キーに対応する文字を挿入し、インデックスの値を1増加させる。プログラム表示部432は、文字を挿入した行を表示し直し、右へ移動したカーソル206を表示する。そして、S14の処理へ戻る。
 数字キーが押下された場合には(S18のY)、受付部422が数字コードを受け付けて、編集部442は数字挿入処理を実行する(S20)。数字挿入処理において、編集部442は、カーソル位置474の行番号で特定されるコード列のうち、カーソル位置474のインデックスで特定される箇所に、数字キーに対応する数字を挿入し、インデックスの値を1増加させる。プログラム表示部432は、数字を挿入した行を表示し直し、右へ移動したカーソル206を表示する。そして、S14の処理へ戻る。
 記号キーが押下された場合には(S22のY)、受付部422が記号コードを受け付けて、編集部442は記号挿入処理を実行する(S24)。記号挿入処理において、編集部442は、カーソル位置474の行番号で特定されるコード列のうち、カーソル位置474のインデックスで特定される箇所に、記号キーに対応する記号を挿入し、インデックスの値を1増加させる。プログラム表示部432は、記号を挿入した行を表示し直し、右へ移動したカーソル206を表示する。そして、S14の処理へ戻る。
 右矢印キーが押下された場合には(S26のY)、受付部422が右矢印コードを受け付けて、編集部442は右矢印移動処理を実行する(S28)。右矢印移動処理において、編集部442は、カーソル206が行末にあるか否かを判定する。具体的には、編集部442は、カーソル位置474のインデックスの値がその行のコード列のコード数と一致するか否かを判定する。カーソル206が行末より前にあれば、編集部442は、インデックスの値を1増加させ、プログラム表示部432は、右へ移動したカーソル206を表示する。
 カーソル206が行末にあれば、編集部442は、さらにカーソル206が最終行にあるか否かを判定する。具体的には、編集部442は、カーソル位置474の行番号が最終行の番号であるか否かを判定する。カーソル206が最終行にある場合には、プログラム表示部432は、そのままの表示とする。
 カーソル206が最終行以外の行末にある場合には、編集部442は、カーソル位置474の行番号の値を1増加させ、同じくインデックスの値を0とする。そして、プログラム表示部432は、1つ下の行の先頭にカーソル206を表示する。右矢印キーの操作でカーソル206が下の行へ移った場合には、シミュレーション処理を実行する(S29)。シミュレーション処理によって、白抜き線の強調表示が新たなカーソル行による挙動の部位に切り替わる。また、元のカーソル行のコード列が変更されている場合には、元のカーソル行において変更されたコード列による挙動を示すシミュレーション画像が表示される。そして、S14の処理へ戻る。シミュレーション処理については、図17に関連して詳述する。
 左矢印キーが押下された場合には(S30のY)、受付部422が左矢印コードを受け付けて、編集部442は左矢印移動処理を実行する(S32)。左矢印移動処理において、編集部442は、カーソル206が行頭にあるか否かを判定する。具体的には、編集部442は、カーソル位置474のインデックスが0であるか否かを判定する。カーソル206が行頭より後にあれば、編集部442は、カーソル位置474のインデックスの値を1減少させ、プログラム表示部432は、左へ移動したカーソル206を表示する。
 カーソル206が行頭にあれば、編集部442は、さらにカーソル206が1行目にあるか否かを判定する。具体的には、編集部442は、カーソル位置474の行番号が1であるか否かを判定する。カーソル206が1行目の行頭にある場合には、プログラム表示部432は、そのままの表示とする。
 カーソル206が2行目以降の行頭にある場合には、編集部442は、カーソル位置474の行番号の値を1減少させ、同じくインデックスの値を上の行のコード数と同じにする。そして、プログラム表示部432は、1つ上の行の末尾にカーソル206を表示する。左矢印キーの操作でカーソル206が上の行へ移った場合には、シミュレーション処理を実行する(S33)。シミュレーション処理によって、白抜き線の強調表示が新たなカーソル行による挙動の部位に切り替わる。また、元のカーソル行のコード列が変更されている場合には、元のカーソル行において変更されたコード列による挙動を示すシミュレーション画像が表示される。そして、S14の処理へ戻る。
 左矢印キーが押下されていないと判定した場合(S30のN)、図16に示したS34の処理へ移る。
 上矢印キーが押下された場合には(S34のY)、受付部422が上矢印コードを受け付けて、編集部442は上矢印移動処理を実行する(S36)。上矢印移動処理において、編集部442は、カーソル206が1行目にあるか否かを判定する。具体的には、編集部442は、カーソル位置474の行番号が1であるか否かを判定する。カーソル206が1行目にある場合には、プログラム表示部432は、そのままの表示とする。
 カーソル206が2行目以降にある場合には、編集部442は、カーソル位置474の行番号の値を1減少させる。また、カーソル位置474のインデックスの値が上の行のコード数を超える場合には、編集部442は、インデックスの値をコード数と同じにする。そして、プログラム表示部432は、上の行にカーソル206を表示する。上矢印キーの操作でカーソル206が上の行へ移った場合には、シミュレーション処理を実行する(S37)。シミュレーション処理によって、白抜き線の強調表示が新たなカーソル行による挙動の部位に切り替わる。また、元のカーソル行のコード列が変更されている場合には、元のカーソル行において変更されたコード列による挙動を示すシミュレーション画像が表示される。そして、S14の処理へ戻る。
 下矢印キーが押下された場合には(S38のY)、受付部422が下矢印コードを受け付けて、編集部442は下矢印移動処理を実行する(S40)。下矢印移動処理において、編集部442は、カーソル206が最終行にあるか否かを判定する。具体的には、編集部442は、カーソル位置474の行番号が最終行の番号であるか否かを判定する。カーソル206が最終行にある場合には、そのままの表示とする。
 カーソル206が最終行以外にある場合には、編集部442は、カーソル位置474の行番号の値を1増加させる。また、カーソル位置474のインデックスの値が下の行のコード数を超える場合には、編集部442は、インデックスの値をコード数と同じにする。そして、プログラム表示部432は、下の行にカーソル206を表示する。下矢印キーの操作でカーソル206が下の行へ移った場合には、シミュレーション処理を実行する(S41)。シミュレーション処理によって、白抜き線の強調表示が新たなカーソル行による挙動の部位に切り替わる。また、元のカーソル行のコード列が変更されている場合には、元のカーソル行において変更されたコード列による挙動を示すシミュレーション画像が表示される。そして、S14の処理へ戻る。
 「;」キーが押下された場合には(S42のY)、受付部422が「;」コードを入力して、編集部442は改行処理を実行する(S44)。改行処理において、編集部442は、カーソル206がある行の後に新しい行を挿入する。挿入箇所以降の各行の行番号は、1つ繰り下げる。また、編集部442は、カーソル206がある行のコード列のうち、カーソル206以降の部分を新しい行のコード列へ移す。つまり、カーソル206の位置でコード列を切り分ける。編集部442は、カーソル位置474の行番号の値を1増加させ、同じくインデックスの値を0とする。プログラム表示部432は、下の行の先頭へ移ったカーソル206を表示する。そして、シミュレーション部444は、シミュレーション処理を実行する(S45)。 
 削除キーが押下された場合には(S46のY)、受付部422が削除コードを受け付けて、編集部442は削除処理を実行する(S48)。削除処理において、編集部442は、カーソル206が行末にあるか否かを判定する。具体的には、編集部442は、インデックスの値がその行のコード数と一致するか否かを判定する。カーソル206の位置が行末でなければ、編集部442は、その行のコード列のうちインデックスが指すコードを削除し、プログラム表示部432は、その行を表示し直す。カーソル206が行末にあれば、編集部442は、次の行のコード列を上の行のコード列に加える。次の行は無くなり、その下以降の行が繰り上げられる。プログラム表示部432は、カーソル206がある行以降を表示し直す。そして、シミュレーション部444は、シミュレーション処理を実行する(S49)。
 終了指示を受け付けた場合には(S50のY)、書き込み処理を実行する(S52)。書き込み処理において、編集部442は、NCプログラムコード表472をNCプログラムファイル462に変換し、保存する。そして、メイン処理を終了する。
 図17は、シミュレーション処理過程を示すフローチャートである。
 シミュレーション部444は、NCプログラムコード表472における行レコードを順次特定する(S60)。シミュレーション部444は、その行レコードのコード列の指令による経路を算定する(S62)。Gコードなどの指令による経路の算定方法は、従来技術と同様でもよい。算定された経路は、その行レコードの行番号を対応づけて経路テーブル478に記憶される。シミュレーション部444は、その行レコードのコード列の指令による加工内容に応じてワーク3Dモデル476を変形させる(S64)。Gコードなどの指令によるワーク3Dモデル476の変形方法は、従来技術と同様でもよい。変形されたワーク3Dモデル476は、その行レコードの行番号を対応づけて一時記憶領域470に記憶される。シミュレーション部444は、最終行の1つ前に至るまで(S66のN)、S60へ戻ってS62とS64の処理を繰り返す。
 最終行の1つ前まで処理すると(S66のY)、画像表示部434は、シミュレーション画面204に最新のワーク3Dモデル476を描画する(S68)。
 カーソル206が最終行にあれば(S70のY)、画像表示部434は、最終行の1つ前の行の指令によって得られた経路を示す線に太線属性を設定する(S72)。つまり、カーソル位置474の行番号が最終行の行番号と一致する場合には、最終行の行番号-1に対応する経路が太線で強調される。
 一方、カーソル206が最終行より上にあれば(S70のN)、画像表示部434は、カーソル行の指令によって得られた経路を示す線に白抜き属性を設定する(S74)。つまり、カーソル位置474の行番号が最終行の行番号と一致しない場合には、カーソル位置474の行番号に対応する経路が白抜き線で強調される。
 画像表示部434は、上述の各経路の線をシミュレーション画面204に描画する(S76)。そして、S14の処理へ戻る。
 これにより、図2~図7に関連して説明したとおり、NCプログラムの入力作業において「;」キーを押下すると、空の行が追加されその行にカーソル206が移り、元の行で入力した指令に応じた太線の経路が現れる。したがって、ユーザは、想定どおりにコーディングできたかをすぐに確認できる。また、どの段階までコーディングしたかを常に意識しているので、勘違いによる記述の重複や欠落を防ぎやすい。
 また、図8と図9に関連して説明したとおり、NCプログラムの見直し作業においてカーソル206を移動させると、カーソル206がある行の指令による経路が白抜き線に変る。したがって、ユーザは、プログラムの記述と工作の挙動との関係を把握しやすい。
[変形例1]
 コーディングを補助するために、指令入力のガイダンス画面を表示するようにしてもよい。ここでは、Gコード入力のガイダンス画面の例を示す。
 図18は、Gコード入力ガイダンス画面の画面図である。
 Gコード入力ガイダンス画面500は、編集画面202におけるGコードの記述をガイドする。ユーザによって編集画面202内のガイダンスボタン602(図2)がタッチされると、画面表示部436はガイダンス画面500(図18)を表示する。ユーザがGの入力領域502にGコードの番号を入力すると、Gコードの種類(たとえば、「ヘリカル穴あけサイクル」)および引数の構成(たとえば、「G439(X_Y_Z_R_H_I_J_K_U_V_W)」)が表示され、各引数に対応する入力領域504a~hが表示される。ユーザがいずれかの引数の入力領域504を選択すると、入力領域504にその引数の値を入力することが可能となる。この例では、ユーザによって選択された引数Xの入力領域504aにカーソル206が表示され、引数Xの値を受け付ける状態を表している。また、選択された引数Xに関する概念図506と説明文508が表示される。引数Xに関する概念図506と説明文508を参照することによって、ユーザは引数Xの変数としての意味を理解できる。入力された引数の値は、引数領域514に表示される。他の引数についても同様である。図中の「*」は、値入力が必須であることを示している。ユーザが挿入ボタン510にタッチすると、Gコードと各引数の値が、所定の書式に従って、編集画面202のカーソル位置474に挿入される。ユーザが戻るボタン512にタッチした場合には、何も挿入されない。このようにすれば、ユーザはGコード毎の書式を調べる必要がなく、Gコードに関する記述の入力が簡単になる。ユーザが入力領域502へGコードの番号を直接入力せずに、Gコード入力ガイダンス画面の前に表示されるリストからGコードを選択できるようにしてもよい。
[変形例2]
 変形例2は、アイコンボタンのタッチ操作によるガイダンスメッセージ表示に関する。プログラム編集装置は、タッチパネルを用いるものとする。
 アイコンボタンは見た目で何をするためのボタンなのかがわかりにくいという課題がある。ガイダンスメッセージでボタンの説明を表示したいが、固定のメッセージ領域を確保できない。パーソナルコンピュータでは、マウスオーバーによりガイダンスメッセージを表示できるが、タッチパネルではマウスオーバーのような操作ができない。
 図19は、編集-シミュレーションの画面におけるガイダンスメッセージ604bの例を示す図である。画面表示部436は、シミュレーション画像を表示することを実行するためのボタン600aなどのボタン600を表示するボタン表示部を有する。さらに、インターフェース処理部410の入力部420は、タッチパネルにおけるタッチ操作を検出するタッチ検出部を有する。タッチ検出部が、アイコンボタン600aの長いタッチを検出すると、ボタン表示部は、アイコンボタン600aに対応する機能「シミュレーション開始」を示すガイダンスメッセージ604bを、アイコンボタン600aの近接位置に表示する。他のアイコンボタン600についても同様に、イベント検出部が、アイコンボタン600の長いタッチを検出すると、ボタン表示部は、そのアイコンボタン600に対応する機能内容を示すガイダンスメッセージ604bを、そのアイコンボタン600の近接位置に表示する。また、メッセージ表示部は、「NCプログラムの実行順に強調表示されます。」という機能メッセージ606を表示する。ガイダンスメッセージ表示中にタッチしている指を放しても「シミュレーション開始」の機能は実行されない。ただし、短くタッチした場合には、シミュレーション開始の機能を実行する。なお、イベント検出部は、アイコンボタン600に対するタッチが継続している時間が基準値を超えた場合に、アイコンボタン600の長いタッチが行われたと判定する。アイコンボタン600に対するタッチが継続している時間が基準値を下回る場合には、イベント検出部は、アイコンボタン600の短いタッチが行われたと判定する。また、データ格納部450は、保存記憶領域460に、アイコンボタン600毎に、そのアイコンボタン600に対応する機能内容を示すガイダンスメッセージ604を記憶するガイダンスメッセージ記憶部を有するものとする。
 図19に示したアイコンボタン600について説明する。
 タッチ検出部が、ファイル一覧ボタン600gの長いタッチ(長押し)を検出すると、画面表示部436は、ファイル一覧画面に遷移する。タッチ検出部が、編集ボタン600hの長いタッチ(長押し)を検出すると、画面表示部436は、ファイル一覧画面でユーザに選択されたファイルの編集画面に遷移する。タッチ検出部が、シミュレーションボタン600iの長いタッチ(長押し)を検出すると、画面表示部436は、編集しているファイルに設定されたNCプログラムをシミュレーションする画面に遷移する。タッチ検出部が、フォアグラウンド/バックグラウンド切替ボタン600jの長いタッチ(長押し)を検出すると、画面表示部436は、フォアグラウンド画面とバックグラウンド画面を切り替える。例えばバックグラウンド画面で編集したNCプログラムを運転する場合は、フォアグラウンド画面でプログラムを実行する必要があるので、当該ボタンでフォアグラウンド画面に切り替える。
 図20は、バックグラウンド編集の画面図である。バックグラウンド編集画面は、アイコンボタン600g~j,600r,600sを有する。図20~図23に示すバックグラウンド編集の画面は、図2~図9の「編集画面204とシミュレーション画面204」と同様に、操作盤702の操作画面704に表示される。また、バックグラウンド編集の画面は、「編集画面204とシミュレーション画面204」と切り替え可能である。
 図20に示したアイコンボタン600について説明する。
 タッチ検出部が、追加ボタン600rの長いタッチ(長押し)を検出すると、データ作成部は、データを新規作成する。タッチ検出部が、表示情報切替ボタン600sの長いタッチ(長押し)を検出すると、ボタン表示部は、2階層目のツールバーを表示する。表示項目のチェック状態を変更することで、画面に表示する表示項目を変更できる。
 図21は、バックグラウンド編集の画面におけるガイダンスメッセージ604cの例を示す図である。タッチ検出部が、アイコンボタン600sの長いタッチを検出すると、ボタン表示部は、アイコンボタン600sに対応する機能「表示情報変更」を示すガイダンスメッセージ604cを、アイコンボタン600sの近接位置に表示する。
 図22は、バックグラウンド編集画面で工程が選択された状態を示す図である。いずれかの工程が選択された状態で、ボタン表示部は、さらにアイコンボタン600t~wを表示する。
 図22に示したアイコンボタン600について説明する。
 タッチ検出部が、編集切替ボタン600tの長いタッチ(長押し)を検出すると、編集部442は、加工工程の編集モードを切り替える。編集モードを切り替えることで、対話形式で設定した加工工程のNCプログラムを手編集できる。タッチ検出部が、加工ON/OFFボタン600uの長いタッチ(長押し)を検出すると、切り替え部は、加工工程の実行/非実行を切り替える。加工OFFに設定することで当該加工工程はNCプログラムに出力されなくなる。タッチ検出部が、削除ボタン600vの長いタッチ(長押し)を検出すると、データ削除部は、ユーザが選択したデータを削除する。タッチ検出部が、複製ボタン600wの長いタッチ(長押し)を検出すると、データ複製部は、ユーザが選択したデータを複製する。
 図23は、バックグラウンド編集の画面におけるガイダンスメッセージ604dの例を示す図である。タッチ検出部が、アイコンボタン600uに対する長いタッチを検出すると、ボタン表示部は、アイコンボタン600uに対応する機能「加工OFF」を示すガイダンスメッセージ604dを、そのアイコンボタン600uの近接位置に表示する。なお、加工OFFは、その加工工程を無効にする機能である。加工OFFに設定された工程は、実行されない。
[その他の変形例]
 また、シミュレーション画面204における強調表示の態様は、太線や白抜き線以外でもよい。強調する経路に特定の色や輝度を施してもよい。あるいは、強調する経路をアニメーションで表示してもよい。上述の強調表示は、特定の態様による表示の例である。例示した強調表示に相当する経路が、その他の通常表示による経路と区別できる程度の態様で表示されてもよい。
 また、太線で例示した経路と白抜き線で例示した経路について、表示態様を共通にしてもよい。両方とも同じ太さの線で表示してもよいし、両方とも同じ線種の線で表示してもよい。両方とも同じ色の線で表示してもよいし、両方とも同じ輝度の線で表示してもよい。また、両方とも同じアニメーションで表示してもよい。
 また、シミュレーション画面204において、カーソルがある行より下の行の番号に対応する経路を表示せず、カーソルがある行までに対応する経路だけを表示するようにしてもよい。つまり、たとえば図8で、経路320と経路322を表示しなくてもよい。また、図9で経路316、経路318、経路320及び経路322を表示しなくてもよい。具体的な処理としては、図17のS66において、シミュレーション部444がカーソル行まで処理を終えたか否かを判定する。カーソル行まで処理していなければ(S66のN)、S60へ戻ってS62とS64の処理を繰り返す。カーソル行まで処理していれば(S66のY)、画像表示部434は、シミュレーション画面204にワーク3Dモデル476を描画する(S68)。
 また、シミュレーション画面204において、経路のみを表示して、ワーク100を表示しないようにしてもよい。具体的な処理としては、S64の処理およびS68の処理を省いてもよい。
 また、シミュレーション画面204において、ワーク100のみを表示して、経路を表示しないようにしてもよい。具体的な処理としては、S72の処理、S74の処理およびS76の処理を省いてもよい。
 また、メイン処理において、文字挿入処理、数字挿入処理および記号挿入処理の後に、シミュレーション処理を実行してもよい。このようにすれば、コードの挿入によって指令を修正した時点で、修正された内容によるシミュレーションが表示される。
 また、編集画面202において改行キーが入力された場合に、新しい行の先頭に「;」を自動的に入力するようにしてもよい。
 図17に関連して説明したシミュレーション処理について、通常はNCプログラムの最初から実行するが、NCプログラムの最初から実行されなくてもよい。たとえば、NCプログラムの途中からシミュレーション処理を実行してもよい。その場合には、図17のS60において、シミュレーション部444は、シミュレーションを行う途中のコード列から、NCプログラムコード表472における行レコードの特定を開始する。たとえば、受付部422において、シミュレーションを開始させるコード列の指定を受け付けて、シミュレーション部444は、指定されたコード列の行レコードからS60以降の処理を開始してもよい。受付部422は、指定されるコード列の行番号を受け付けてもよいし、指定されるコード列に対するタッチ操作やクリック操作を受け付けてもよい。そうすれば、NCプログラムの途中から工作の挙動を示すシミュレーション画像の表示が行われる。また、ユーザが追加したコード列の複数行前からシミュレーションを実行するようにしてもよい。追加したコード列から遡る行数は、たとえば100行から200行の範囲内である。遡る行数は、予め決めておいてもよいし、ユーザが指定してもよい。予め決めておく場合には、保存記憶領域460に所定の遡り行数を記憶しておく。ユーザが指定する場合には、受付部422において遡り行数を受け付ける。シミュレーション部444は、NCプログラムに追加されたコード列の行番号から遡り行数を引いて、S60において、シミュレーションを開始させる行レコードを特定する。これにより、作業者は、変更したNCプログラムの箇所の確認を容易に行うことができる。
 また、NCプログラムの変更後のシミュレーションの再開について、新規にコードを追加した箇所またはコードを編集した箇所からシミュレーション動画で5秒から15秒の範囲内で前まで遡って再開するように、ユーザ操作あるいは自動的にシミュレーション部444に設定してもよい。たとえば、シミュレーションの動作において1行に割り当てられる単位動作時間(行単位の動画再生時間)を決めておいてもよい。あるいは、NCプログラムの行ごとの指令に応じて各行に割り当てられる工作の挙動を示すシミュレーション画像の動作時間(指令別の動画再生時間)を算出してもよい。シミュレーション部444において、指令の種類に対応して動画再生時間を決めておいてもよい。シミュレーション部444は、新規行または編集行から昇順に各行の動作時間(動画再生時間)を合算することによって遡って再生される動画の再生時間を算出する。そして、シミュレーション部444は、動画再生時間が5秒から15秒の範囲内に収まる動画再生開始の行を特定する。このようにして、新たな行のコード列を受け付けたとき、または、1つの行のコード列の変更を付け付けたときに、シミュレーション画像においてそのコード列から5秒から15秒の範囲の動画再生時間前まで遡ってシミュレーション画像の動画再生を行える。プログラムチェックの5秒から15秒の範囲であっても、実際の加工はもっと長く(たとえば、1時間)かかる場合もあり、実際の加工時間とシミュレーションの動作時間は異なる。プログラムチェックで5秒から15秒の範囲内で遡って確認すれば、長い時間かかる加工工程も短い時間で効率よく確認できる。
 対象とする工作機械700は、マシニングセンタ以外でもよい。たとえば、ターニングセンタや複合加工機等に、上述の実施形態や変形例を適用してもよい。
 これらの工作機械700は、いずれも、工作するための工作部と、画面を有し工作機械の操作を行うための操作盤702と、工作するために、工作部内の機能部の位置を制御する数値制御部(NC装置)とを有する。工作機械700がマシニングセンタであれば、工作部は、刃物工具、主軸、主軸を回転させるサーボモーター、パレット、ATC(Automatic Tool Changer:自動工具交換装置)および工具マガジンなどを含み、フライス削り、中ぐり、穴あけやねじ立てなどの加工を行う。工作機械700がターニングセンタであれば、工作部は、刃物工具、回転軸、回転軸を回転させるサーボモーター、タレット、ATCおよび工具マガジンなどを含み、主に旋削加工を行う。マシニングセンタの主軸やターニングセンタのタレットは、工作部内の機能部に相当する。
 数値制御部は、工作部のサーボモーターやATCなどに対して、直接あるいはPLC(Programmable Logic Controller)を介して数値制御を行って工作部内の機能部の位置や工具の選択を制御する。マシニングセンタの数値制御部は、機能部である主軸を移動させる。ターニングセンタの数値制御部は、機能部であるタレットを移動させる。これによって加工の作用箇所である刃先が移動することになる。
 工作部の機能部は、その他のレーザ照射部や粉末吐出部などであってもよい。つまり、数値制御部は、レーザ照射部や粉末吐出部などを移動させることもある。レーザ照射部であれば、レーザ光が加工の作用箇所に相当し、粉末吐出部であれば、飛散した粉末の分布域が加工の作用箇所に相当する。つまり、工作部の機能部は、加工の作用箇所を操る部位である。
 上述したシミュレーション部444、画像表示部434および画面表示部434は、工作機械700用のプログラムと、工作機械700内に保存されている機能部の情報とをもとに、工作の挙動を示すシミュレーション画像を画面に表示制御する表示制御部の例である。シミュレーション部444は、加工内容に応じて仮想の3次元空間におけるワーク3Dモデル476を変形させる。工作の挙動を示すシミュレーション画像は、このワーク3Dモデル476を所定視点から観察したものとして画像表示部434が生成した2次元画像である。主に、段階的な加工によって都度変化するワークの形状が描かれる。上述の例では、切削でワークに形成された穴の形状を描いた。シミュレーション部444は、更に仮想の3次元空間における加工の作用箇所(刃先の経路、レーザ光、粉末の分布域など)を算定する。工作の挙動を示すシミュレーション画像には、この作用箇所を所定視点から観察したものとして画像表示部434が生成した加工の作用箇所を示す描画(刃先の経路の線、レーザ光の線や粉末の分布域の表示など)も含まれる。
 工作機械700用のプログラムとは、たとえばNCプログラムを指し、シミュレーション部444は、このプログラムをもとにしてワーク3Dモデル476を変形させ、加工の作用箇所を特定する。また、シミュレーション部444は、工作機械700内の機能部情報記憶部に保存されている機能部の情報も用いる。機能部の情報には、機能部の形状、機能部の機能、機能部の工作機械700内での位置 機能部の基準点とその位置などの情報が含まれる。
 このように、工作機械700の加工によって変化するワークの形状が描かれた画像が、シミュレーション画像である。また、シミュレーション画像には、上述のように加工の作用箇所も描かれる場合がある。これらの工作の挙動を示すシミュレーション画像は、時系列に順次変化する複数のシミュレーション静止画またはシミュレーション動画である。
 図25は、NCプログラムコード表472のデータ構造図である。
 NCプログラムのデータ構造について説明する。1つのNCプログラムでワークを加工する場合に、幾つかの工程が含まれることがある。たとえば、曲面の加工、平面の加工、又は穴の加工などの工程が順に実施される。そのため、NCプログラムには、工程毎のコード列のまとまり(ルーチン)が並ぶ。各工程に対応するコード列のまとまりは、シーケンス番号が付されたNコードによって区切られる。つまり、区切りを示すNコードで挟まれた部分が各工程中に実行されるコード列のまとまりに相当する。この例では、行番号:22に記述された「N035;」が工程の区切りを示している。このように工程が区切られていることを前提として、NCプログラムに対して新規にコードを追加した箇所またはコードを修正した箇所が含まれるコード列のまとまりの先頭(工程の先頭)からシミュレーションの再開をするようにしてもよい。つまり、受付部422がユーザ操作によって工程単位のシミュレーション命令を受け付けると、シミュレーション部444は、追加された箇所または修正された箇所から上方に向かって区切りを示すNコードを探索し、最初に出現したNコードの次のコード列(たとえば、行番号:23)をシミュレーション部444にシミュレーション開始位置とする。そして、シミュレーション部444は、シミュレーション開始位置のコード列からシミュレーション処理を実行する。このようにすれば、追加や修正などによって変更されたNCプログラムが正しいかどうかを、その変更箇所を含む工程の最初から表示されるシミュレーション動画によって確認することができる。
 なお、本発明は上記実施形態や変形例に限定されるものではなく、要旨を逸脱しない範囲で構成要素を変形して具体化することができる。上記実施形態や変形例に開示されている複数の構成要素を適宜組み合わせることにより種々の発明を形成してもよい。また、上記実施形態や変形例に示される全構成要素からいくつかの構成要素を削除してもよい。

Claims (8)

  1.  工作機械用の数値制御プログラムを受け付ける受付部と、
     前記数値制御プログラムの各行におけるコード列を表示するプログラム表示部と、
     (i)前記数値制御プログラムの中に新たな行のコード列を受け付けたときに、前記新たな行のコード列による工作の挙動を示すシミュレーション画像、または、(ii)前記数値制御プログラムの中に1つの行のコード列の変更を受け付けたときに、前記変更された行のコード列による前記工作の挙動を示すシミュレーション画像、を表示する画像表示部と
     を有する、プログラム編集装置。
  2.  前記新たな行のコード列を受け付けたとき、または、前記1つの行のコード列の変更を受け付けたときに、
     シミュレーション画像において前記コード列から5秒から15秒の範囲の動画再生時間前まで遡って、シミュレーション画像の再生を行う、請求項1に記載のプログラム編集装置。
  3.  前記受付部は、カーソルの移動指示を受け付け、
     前記画像表示部は、前記シミュレーション画像のうち、移動した前記カーソルが指す行のコード列による前記工作の挙動を示す部位を第1区別態様または第2区別態様で表示する請求項1に記載のプログラム編集装置。
  4.  コード列に含める指令の種類に応じて、前記指令で使用されるパラメータごとの入力領域を有する入力ガイダンス画面を表示する画面表示部を、さらに有し、
     前記受付部は、前記入力ガイダンス画面の前記入力領域に入力された値を、前記指令のパラメータとして前記コード列に加えることを特徴とする請求項1に記載のプログラム編集装置。
  5.  前記シミュレーション画像を表示することを実行するためのボタンを表示するボタン表示部と、を有し、
     前記ボタンを長押しすると、前記ボタンを押した際に実行させる機能のガイダンスを表示する、請求項1に記載のプログラム編集装置。
  6.  画面を有し工作機械の操作を行うための操作盤と、
     工作するための工作部と、
     工作するために、前記工作部内の機能部の位置を制御する数値制御部と、
     工作機械用のプログラムと、前記工作機械内に保存されている前記機能部の情報と、をもとに、工作の挙動を示すシミュレーション画像を前記画面に表示制御する表示制御部と、を備え、
     前記表示制御部は、(i)前記プログラムの中に新たな行のコード列を受け付けたときに、前記新たな行のコード列による工作の挙動を示すシミュレーション画像、または、(ii)前記プログラムの中に1つの行のコード列の変更を受け付けたときに、前記変更された行のコード列による前記工作の挙動を示すシミュレーション画像、を表示制御する、工作機械。
  7.  前記シミュレーション画像を表示することを実行するためのボタンが表示された前記画面上において、前記ボタンを長押しすると、前記ボタンを押した際に実行される機能のガイダンスが表示される請求項6に記載の工作機械。
  8.  工作機械用の数値制御プログラムを受け付ける機能と、
     前記数値制御プログラムの各行におけるコード列を表示する機能と、
     (i)前記数値制御プログラムの中に新たな行のコード列を受け付けたときに、前記新たな行のコード列による工作の挙動を示すシミュレーション画像、または、(ii)前記数値制御プログラムの中に1つの行のコード列の変更を受け付けたときに、前記変更された行のコード列による前記工作の挙動を示すシミュレーション画像、を表示する機能と、をコンピュータに発揮させることを特徴とするプログラム。
PCT/JP2022/000497 2021-03-01 2022-01-11 プログラム編集装置およびプログラム WO2022185712A1 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2021-031338 2021-03-01
JP2021031338A JP6971416B1 (ja) 2021-03-01 2021-03-01 プログラム編集装置およびプログラム

Publications (1)

Publication Number Publication Date
WO2022185712A1 true WO2022185712A1 (ja) 2022-09-09

Family

ID=78605600

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2022/000497 WO2022185712A1 (ja) 2021-03-01 2022-01-11 プログラム編集装置およびプログラム

Country Status (2)

Country Link
JP (1) JP6971416B1 (ja)
WO (1) WO2022185712A1 (ja)

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5537250A (en) * 1978-09-05 1980-03-15 Nissan Motor Co Ltd Numerical controlled lathe with display device
JPH01307805A (ja) * 1988-06-07 1989-12-12 Mitsubishi Electric Corp 加工データ編集装置
JPH0219906A (ja) * 1988-07-08 1990-01-23 Fanuc Ltd 対話形数値制御装置のncプログラム修正方式
JPH02151908A (ja) * 1988-12-02 1990-06-11 Mitsubishi Electric Corp シミュレーション機能付数値制御装置
JPH03220604A (ja) * 1990-01-26 1991-09-27 Hitachi Seiki Co Ltd 数値制御装置における工具軌跡描画装置およびその方法
JPH06138933A (ja) * 1992-10-26 1994-05-20 Mori Seiki Co Ltd プログラムチェック画面表示装置
JPH06332518A (ja) * 1993-05-24 1994-12-02 Fanuc Ltd 対話形数値制御装置
JP2009265943A (ja) * 2008-04-25 2009-11-12 Sodick Co Ltd 加工シミュレーション装置
WO2014167736A1 (ja) * 2013-04-12 2014-10-16 三菱電機株式会社 数値制御プログラム編集装置、数値制御プログラム編集方法およびプログラム
WO2016035869A1 (ja) * 2014-09-03 2016-03-10 ヤマザキマザック 株式会社 加工プログラム編集支援装置

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5537250A (en) * 1978-09-05 1980-03-15 Nissan Motor Co Ltd Numerical controlled lathe with display device
JPH01307805A (ja) * 1988-06-07 1989-12-12 Mitsubishi Electric Corp 加工データ編集装置
JPH0219906A (ja) * 1988-07-08 1990-01-23 Fanuc Ltd 対話形数値制御装置のncプログラム修正方式
JPH02151908A (ja) * 1988-12-02 1990-06-11 Mitsubishi Electric Corp シミュレーション機能付数値制御装置
JPH03220604A (ja) * 1990-01-26 1991-09-27 Hitachi Seiki Co Ltd 数値制御装置における工具軌跡描画装置およびその方法
JPH06138933A (ja) * 1992-10-26 1994-05-20 Mori Seiki Co Ltd プログラムチェック画面表示装置
JPH06332518A (ja) * 1993-05-24 1994-12-02 Fanuc Ltd 対話形数値制御装置
JP2009265943A (ja) * 2008-04-25 2009-11-12 Sodick Co Ltd 加工シミュレーション装置
WO2014167736A1 (ja) * 2013-04-12 2014-10-16 三菱電機株式会社 数値制御プログラム編集装置、数値制御プログラム編集方法およびプログラム
WO2016035869A1 (ja) * 2014-09-03 2016-03-10 ヤマザキマザック 株式会社 加工プログラム編集支援装置

Also Published As

Publication number Publication date
JP6971416B1 (ja) 2021-11-24
JP2022132726A (ja) 2022-09-13

Similar Documents

Publication Publication Date Title
JP5925976B1 (ja) 加工プログラム編集支援装置
US5808616A (en) Shape modeling method and apparatus utilizing ordered parts lists for designating a part to be edited in a view
TWI446130B (zh) 數控機床工具機的加工檔案編輯系統及方法
US20170371316A1 (en) Machining program editing apparatus, method, and storage medium
JP5990662B2 (ja) 加工プログラム編集支援装置
JP2002082704A (ja) Nc加工シミュレーション装置
US5581676A (en) Drawing processor and machining program processor for generating a machining program and method therefor
JP4276656B2 (ja) Cadシステム並びにこれを実行するためのプログラム及びこのプログラムを記録した記録媒体
WO2022185712A1 (ja) プログラム編集装置およびプログラム
JPH07311612A (ja) 数値制御装置における加工プログラム編集方法及びその装置
JP3008257B2 (ja) コマンド指定装置
US11417038B2 (en) Non-transitory computer-readable medium including figure data generation program
JP2002126975A (ja) 固定サイクル指令作成支援方法およびnc装置
JPH0677208B2 (ja) Nc装置の加工プログラム作成方式
JPH04245503A (ja) 加工プログラム編集装置
JP3124342B2 (ja) Cadシステムにおける注釈要素作成編集方式
JPH053002B2 (ja)
JPH0272413A (ja) 数値制御装置用プログラム作成装置
JP2993288B2 (ja) 加工プログラム作成装置
JP3083552B2 (ja) 階層編集処理装置
JPH0358202A (ja) シミュレーション機能付数値制御装置
JPH06138933A (ja) プログラムチェック画面表示装置
JP3966355B2 (ja) プログラム生成方法および装置
JP3201829B2 (ja) Cadシステムにおける図形抽出装置
JPH06202906A (ja) Ncプログラム編集装置

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: 22762771

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: 22762771

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: JP