System and computer-readable storage medium
The system generates and modifies machining programs to include curved non-cutting paths, reducing execution time and preventing interference, thus improving machining efficiency and accuracy.
Patent Information
- Application Number
- PCT/JP2024/000939
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- Filing Date
- 2024-01-16
- Publication Date
- 2025-07-24
AI Technical Summary
Existing machining technologies face challenges in shortening machining execution time without compromising machining accuracy, particularly during non-cutting paths where the tool does not contact the workpiece.
A system and computer-readable storage medium that generate a first curved path from non-cutting paths in machining programs, correct the program to include these paths, and output a modified program to reduce execution time while ensuring no interference occurs, using path generation, correction, and interference confirmation units.
The system effectively shortens machining time by modifying non-cutting paths into curved paths, preventing interference, and optimizing control axis operations, thereby enhancing processing efficiency without affecting machining accuracy.
Smart Images

Figure JP2024000939_24072025_PF_FP_ABST
Abstract
Description
System and computer-readable storage medium
[0001] The present disclosure relates to a system and a computer-readable storage medium.
[0002] In the technical field of machining equipment, there is a demand for technology that can shorten the execution time of a machining program. However, shortening the machining time when a tool is actually performing machining may have a negative impact on the machining accuracy of the workpiece. Therefore, it is desirable to shorten the time when the tool is moving without contacting the workpiece (see Patent Document 1).
[0003] International Publication No. 2022 / 045161
[0004] In recent years, it has become desirable to further reduce the time when a tool is not performing machining, thereby further reducing the execution time of a machining program.
[0005] The system disclosed herein includes a path generation unit that generates a first curved path composed of curves from a non-cutting path specified by a machining program, a modification unit that modifies the machining program based on the first curved path generated by the path generation unit to generate a first modified program, and an output unit that outputs the first modified program generated by the modification unit.
[0006] The computer-readable storage medium of the present disclosure stores instructions that cause a computer to execute the following steps: generate a first curved path composed of curves from a non-cutting path specified by a machining program; modify the machining program based on the generated first curved path to generate a first modified program; and output the generated first modified program.
[0007] 1 is a diagram illustrating an example of a system configuration of the present disclosure. FIG. 2 is a block diagram illustrating an example of a hardware configuration of a program change device. FIG. 3 is a block diagram illustrating an example of a hardware configuration of a machining machine. FIG. 4 is a block diagram illustrating an example of functions of a program change device and functions of a program execution device. FIG. 5 is a diagram illustrating an example of a movement path specified by a machining program. FIG. 6 is a diagram illustrating an example of a first curved path generated by a path generation unit. FIG. 7 is a diagram illustrating an example of a second curved path. FIG. 8 is a flowchart illustrating an example of processing executed in the system. FIG. 9 is a diagram illustrating an example of a movement path specified by a machining program. FIG. 10 is a diagram illustrating an example of a first curved path generated by a path generation unit. FIG. 11 is a diagram illustrating an example of a movement path specified by a machining program. FIG. 12 is a block diagram illustrating another example of functions of a program change device and functions of a program execution device. FIG. 13 is a block diagram illustrating another example of functions of a program change device and functions of a program execution device.
[0008] A system and a computer-readable storage medium according to an embodiment of the present disclosure will be described below with reference to the drawings. In the following description, components having the same or similar functions will be denoted by the same reference numerals. Duplicate descriptions of those components may be omitted.
[0009] In this application, "based on XX" means "based on at least XX," and includes cases where it is based on other elements in addition to XX. Furthermore, "based on XX" is not limited to cases where XX is used directly, but also includes cases where it is based on XX that has been calculated or processed. "XX" is any element (for example, any information).
[0010] First Embodiment A system disclosed herein is a system that can modify a tool movement path specified in a machining program and generate a modified program including commands that specify the modified path. When the modified program is executed on a machining machine, the execution time is shorter than when the machining program before the modification is executed on the machining machine. The system may also have a function of controlling each part of the machining machine based on the modified program.
[0011] 1 is a diagram illustrating an example of a system configuration according to the present disclosure. The system 1 includes a program change device 2 and a program execution device 30. The program change device 2 and the program execution device 30 are connected to each other via a network. The network may be, for example, a local area network (LAN) or the Internet.
[0012] The program modification device 2 is a device that modifies a machining program to generate a modified program. The program modification device 2 is implemented in, for example, a personal computer (PC), a server, or a tablet terminal.
[0013] The program execution device 30 is a device that executes the modified program generated by the program modification device 2. The program execution device 30 is implemented in, for example, a numerical control device that controls the processing machine 3. An embodiment in which the program execution device 30 is implemented in a numerical control device will be described below.
[0014] The processing machine 3 is, for example, a machine tool, an electric discharge machine, a laser processing machine, or a three-dimensional printer. The machine tool is, for example, a machining center, a lathe, or a multi-tasking machine. The electric discharge machine is, for example, a die-sinker electric discharge machine or a wire electric discharge machine. The laser processing machine is, for example, a laser welding machine or a laser cutting machine.
[0015] 2 is a block diagram showing an example of the hardware configuration of the program change device 2. The program change device 2 includes, for example, a hardware processor 201, a bus 202, a read-only memory (ROM) 203, a random access memory (RAM) 204, a non-volatile memory 205, and an interface 206.
[0016] The hardware processor 201 is a processor that controls the entire program modification device 2 in accordance with a system program. The hardware processor 201 reads the system program stored in the ROM 203 via the bus 202. The hardware processor 201 is, for example, a CPU (Central Processing Unit) or an electronic circuit.
[0017] The bus 202 is a communication path that connects the various pieces of hardware within the program change device 2. The various pieces of hardware within the program change device 2 exchange data via the bus 202.
[0018] The ROM 203 is a storage device that stores system programs, etc. The ROM 203 is a computer-readable storage medium.
[0019] The RAM 204 is a storage device that temporarily stores various data and functions as a work area for the hardware processor 201 to process various data.
[0020] The nonvolatile memory 205 is a storage device that retains data even when the power to the program change device 2 is turned off. The nonvolatile memory 205 stores, for example, a machining program and a change program. The change program will be described in detail later.
[0021] The nonvolatile memory 205 is a computer-readable storage medium and is configured, for example, as a battery-backed memory or an SSD (Solid State Drive).
[0022] The interface 206 is an interface for connecting the program change device 2 to an external device. The program change device 2 is connected to a network using the interface 206.
[0023] 3 is a block diagram showing an example of the hardware configuration of the processing machine 3. The processing machine 3 includes a numerical control device 300, an input / output device 31, a servo amplifier 32, a servo motor 33, a spindle amplifier 34, and a spindle motor 35.
[0024] The numerical control device 300 includes, for example, a hardware processor 301 , a bus 302 , a ROM 303 , a RAM 304 , and a non-volatile memory 305 .
[0025] The hardware processor 301 is a processor that controls the entire numerical control device 300 in accordance with a system program. The hardware processor 301 reads the system program stored in the ROM 303 via the bus 302. The hardware processor 301 is, for example, a CPU or an electronic circuit.
[0026] The bus 302 is a communication path that connects the various hardware components of the numerical control device 300. The various hardware components of the numerical control device 300 exchange data via the bus 302.
[0027] The ROM 303 is a storage device that stores system programs, etc. The ROM 303 is a computer-readable storage medium.
[0028] The RAM 304 is a storage device that temporarily stores various data and functions as a work area for the hardware processor 301 to process various data.
[0029] The nonvolatile memory 305 is a storage device that retains data even when the power to the numerical control device 300 is turned off. The nonvolatile memory 305 stores, for example, a machining program. The nonvolatile memory 305 is a computer-readable storage medium. The nonvolatile memory 305 is, for example, a battery-backed memory or an SSD.
[0030] The numerical control device 300 further includes a first interface 306 , an axis control circuit 307 , a spindle control circuit 308 , and a second interface 309 .
[0031] The first interface 306 connects the bus 302 and the input / output device 31. The first interface 306 sends various data processed by the hardware processor 301 to the input / output device 31, for example.
[0032] The input / output device 31 receives various data via the first interface 306 and displays the various data on a display. In addition, the input / output device 31 receives input operations of various data and sends the various data to, for example, the hardware processor 301 via the first interface 306.
[0033] The input / output device 31 is, for example, a touch panel. When the input / output device 31 is a touch panel, the input / output device 31 is, for example, a capacitive touch panel. The touch panel is not limited to a capacitive touch panel and may be a touch panel of another type. The input / output device 31 is installed in an operation panel (not shown) in which the numerical control device 300 is housed.
[0034] The axis control circuit 307 is a circuit for controlling the servo motor 33. The axis control circuit 307 receives control commands from the hardware processor 301 and sends various commands to the servo amplifier 32 for driving the servo motor 33. The axis control circuit 307 sends, for example, a torque command for controlling the torque of the servo motor 33 to the servo amplifier 32.
[0035] The servo amplifier 32 receives a command from the axis control circuit 307 and supplies a current to the servo motor 33 .
[0036] The servo motors 33 are driven by receiving a current supply from the servo amplifier 32. The servo motors 33 are provided corresponding to the respective control axes of the processing machine 3. If the processing machine 3 is a machine tool having five axes, the servo motors 33 include, for example, an X-axis servo motor, a Y-axis servo motor, a Z-axis servo motor, an A-axis servo motor, and a C-axis servo motor. In this case, an axis control circuit 307 and a servo amplifier 32 are provided for each servo motor 33.
[0037] The servo motor 33 is connected to, for example, a ball screw that drives the table. When the servo motor 33 is driven, a structure of the processing machine 3, such as the table, moves along a predetermined control axis.
[0038] The servo motor 33 has a built-in encoder (not shown) that detects the position and feed speed of the control axis. Position feedback information and speed feedback information indicating the position and feed speed of the control axis detected by the encoder are fed back to the axis control circuit 307. In this way, the axis control circuit 307 performs feedback control of each control axis.
[0039] The spindle control circuit 308 is a circuit for controlling the spindle motor 35. The spindle control circuit 308 receives a control command from the hardware processor 301 and sends a command to the spindle amplifier 34 to drive the spindle motor 35. The spindle control circuit 308 sends, for example, a spindle speed command to the spindle amplifier 34 to control the rotation speed of the spindle motor 35.
[0040] The spindle amplifier 34 receives a command from the spindle control circuit 308 and supplies a current to the spindle motor 35 .
[0041] The spindle motor 35 is driven by receiving a current supplied from the spindle amplifier 34. The spindle motor 35 is connected to the main shaft and rotates the main shaft.
[0042] The second interface 309 is an interface for connecting the numerical control device 300 to an external device. The numerical control device 300 is connected to a network using the second interface 309.
[0043] FIG. 4 is a block diagram showing an example of the functions of the program change device 2 and the program execution device 30. As shown in FIG.
[0044] The program modification device 2 includes, for example, a program analysis unit 211, a path generation unit 212, a correction unit 213, an interference check unit 214, and an output unit 215. The program analysis unit 211, the path generation unit 212, the correction unit 213, the interference check unit 214, and the output unit 215 are realized, for example, by the hardware processor 201 performing arithmetic processing using the system program stored in the ROM 203 and various data stored in the non-volatile memory 205.
[0045] The program execution device 30 includes, for example, an input unit 311, a program execution unit 312, and a control unit 313. The input unit 311, the program execution unit 312, and the control unit 313 are realized, for example, by the hardware processor 301 performing arithmetic processing using a system program stored in the ROM 303 and various data stored in the non-volatile memory 305.
[0046] The program analysis unit 211 acquires, for example, a machining program stored in a storage unit (not shown). The program analysis unit 211 analyzes the acquired machining program. The machining program includes commands that specify a tool movement path and a command that specifies a maximum tool feed rate. The program analysis unit 211 analyzes the machining program to acquire information indicating the tool movement path, information indicating the tool's maximum tool feed rate, and the like.
[0047] The movement path of the tool includes a cutting path and a non-cutting path. The cutting path is a path along which the tool moves while in contact with the workpiece. The cutting path is specified by, for example, a linear interpolation command or a circular interpolation command.
[0048] The non-cutting path is a path along which the tool moves without coming into contact with the workpiece, and is specified by, for example, a positioning command.
[0049] 5 is a diagram showing an example of a movement path specified by a machining program. The arrows drawn with "X" and "Z" indicate the coordinate system of the machining machine 3. That is, the direction indicated by the arrow marked with "X" is the positive direction of the X axis. The direction indicated by the arrow marked with "Z" is the positive direction of the Z axis.
[0050] The arrows marked with "m1" and "m2" indicate cutting paths specified in the machining program. The arrows marked with "n1" and "n2" indicate non-cutting paths specified in the machining program. In other words, the machining program specifies that the tool is to move at a cutting feed rate along cutting path m1 toward point p1. The machining program also specifies that the tool is to move at a rapid feed rate along non-cutting path n1 from point p1 toward point p2, and non-cutting path n2 from point p2 toward point p3. The machining program also specifies that the tool is to move at a cutting feed rate along cutting path m2 from point p3 toward point p4.
[0051] The path generating unit 212 generates a first curved path composed of curves from a non-cutting path specified by the machining program. The first curved path is a curve generated from a non-cutting path composed of multiple straight lines specified by the machining program. In other words, the first curved path is a path that does not include straight lines. Alternatively, the first curved path may be a path composed of multiple connected minute line segments on the order of several micrometers to several millimeters.
[0052] The first curved path generated by the path generating unit 212 is, for example, a cubic Bezier curve generated using the start point and end point of the non-cutting path as control points. The first curved path is not limited to a Bezier curve, and may be a spline curve such as a NURBS curve.
[0053] 6 is a diagram showing an example of a first curved path generated by the path generating unit 212. The path generating unit 212 generates a first curved path c1 using points p1, p2, and p3 that form the non-cutting path.
[0054] The path generating unit 212 first adds a point p1a between the points p1 and p2. The position of the point p1a may be, for example, a position at which the distance between the points p1 and p2 is divided by a predetermined ratio.
[0055] The path generating unit 212 also adds a point p2a between points p2 and p3. The position of point p2a may be a position that divides the distance between points p2 and p3 by a predetermined ratio. The path generating unit 212 uses points p1, p1a, p2a, and p3 as control points to generate a first curved path c1 that is configured as a cubic Bezier curve.
[0056] The correction unit 213 generates a first changed program by correcting the machining program based on the first curved path c1 generated by the path generation unit 212. When the path generation unit 212 generates, for example, the first curved path c1 shown in Fig. 6, the correction unit 213 generates a first changed program for moving the tool along the first curved path c1.
[0057] The correcting unit 213 rewrites the commands specifying the non-cutting path n1 and the non-cutting path n2 in the machining program into commands specifying the first curved path c1, thereby generating a first changed program.
[0058] The correction unit 213 generates a first change program so that the control axis operates at or below a predetermined maximum acceleration and maximum jerk, and the movement time when the tool moves along the first curved path c1 is shorter than the movement time when the tool moves along the non-cutting paths n1 and n2.
[0059] The maximum acceleration and maximum jerk are, for example, numerical values that are determined in advance for each processing machine 3. When the path generating unit 212 generates the first curved path c1 shown in FIG. 6 , the modifying unit 213 determines the moving speed of the tool so that the tool accelerates from point p1 to the midpoint and decelerates from the midpoint to point p3, and generates a first changed program. The midpoint is a point located midway between points p1 and p3 on the first curved path c1. The modifying unit 213 generates a first changed program that includes a tool speed command in each block that specifies the first curved path c1.
[0060] The interference checking unit 214 checks whether interference will occur when the first changed program generated by the modifying unit 213 is executed. The interference checking unit 214 checks whether interference will occur by performing a machining simulation based on the first changed program. Interference includes interference between a tool and a structure that constitutes the processing machine 3, interference between the tool and a workpiece, and interference between a structure and a workpiece.
[0061] The interference checking unit 214 acquires, for example, at least two of the CAD data of the workpiece, the CAD data of the processing machine 3, and the CAD data of the tool. The interference checking unit 214 acquires, for example, these pieces of data stored in a storage unit.
[0062] The interference checking unit 214 checks whether or not interference will occur using at least two of the acquired CAD data of the workpiece, the CAD data of the processing machine 3, and the CAD data of the tool.
[0063] The interference checking unit 214 checks whether interference will occur depending on the execution status of the machining program. In the machining simulation, the workpiece shape changes as machining progresses. The interference checking unit 214 checks whether interference will occur based on an estimated machined workpiece that estimates this changing workpiece shape. The estimated machined workpiece used by the interference checking unit 214 for interference checking may be, for example, a workpiece shape estimated using a known machining simulation technique.
[0064] If the interference checking unit 214 confirms that interference will occur, the path generating unit 212 generates a second curved path that is different from the first curved path c1. In other words, the second curved path is a curved path that is generated again by the path generating unit 212 when interference will occur when the tool moves on the first curved path c1.
[0065] The path generating unit 212 generates the second curved path at a position shifted from the first curved path c1 in the normal direction of the first curved path c1 or at a position shifted from the first curved path c1 in the direction perpendicular to the table surface. The path generating unit 212 generates the second curved path at a position farther away from the estimated machined workpiece than the first curved path c1. The path generating unit 212 may generate not only one second curved path, but also multiple different second curved paths.
[0066] 7 is a diagram showing an example of a second curved path. The path generating unit 212 generates control points p1a' and p2a' by, for example, shifting control points p1a and p2a on a line perpendicular to the table surface and in a direction away from the table surface. The distance by which control points p1a and p2a are shifted may be determined based on, for example, predetermined parameter values. In FIG. 7, the table surface is a plane parallel to the X-axis.
[0067] The path generating unit 212 generates a second curved path c2 using the points p1, p1a', p2a', and p3 as control points. Furthermore, the modifying unit 213 generates a second changed program different from the first changed program based on the second curved path c2 generated by the path generating unit 212.
[0068] The correction unit 213 generates a second change program so that the control axis operates at or below a predetermined maximum acceleration and maximum jerk, and the movement time when the tool moves along the second curved path c2 is shorter than the movement time when the tool moves along a non-cutting path specified in the machining program.
[0069] The interference checking unit 214 checks whether interference will occur when the second changed program generated by the modification unit 213 is executed. If the interference checking unit 214 checks that interference will occur, the path generating unit 212 generates the second curved path c2 again. The path generating unit 212 again generates the second curved path c2 at a position further away from the estimated machined workpiece. In other words, if the interference checking unit 214 determines that interference will occur when the tool moves on the initially generated first curved path c1, the path generating unit 212 repeatedly generates multiple different second curved paths c2 until the interference checking unit 214 determines that no interference will occur.
[0070] When the interference checking unit 214 determines that no interference will occur, the output unit 215 outputs the first modified program or the second modified program generated by the modification unit 213. The output unit 215 outputs the first modified program or the second modified program to the program execution device 30.
[0071] The input unit 311 of the program execution device 30 receives the first modified program or the second modified program output from the output unit 215 of the program modification device 2 .
[0072] The program execution unit 312 executes the first change program or the second change program received by the input unit 311 .
[0073] The control unit 313 controls the operation of each control axis and the spindle of the processing machine 3 based on the first changed program or the second changed program executed by the program execution unit 312. In this way, the processing machine 3 processes the workpiece.
[0074] 8 is a flowchart showing an example of processing executed in the system 1. First, in the program modification device 2, the program analysis unit 211 analyzes the acquired machining program (step S1). Next, the path generation unit 212 generates a first curved path (step S2).
[0075] Next, the correction unit 213 generates a first change program based on the first curved path (step S3), and the interference check unit 214 checks whether interference will occur when the first change program is executed (step S4).
[0076] If the interference checker 214 determines that interference will occur (Yes in step S5), the path generator 212 generates a second curved path (step S6). Next, the corrector 213 generates a second change program based on the second curved path (step S7). Thereafter, the system 1 executes the processes from step S4 onward.
[0077] If the interference checking unit 214 determines that no interference will occur (No in step S5), the output unit 215 outputs the first modified program or the second modified program (step S8). That is, if the interference checking unit 214 determines that no interference will occur when the first modified program is executed, the output unit 215 outputs the first modified program. On the other hand, if the interference checking unit 214 determines that no interference will occur when the second modified program is executed, the output unit 215 outputs the second modified program.
[0078] Next, input unit 311 of program execution device 30 receives the first or second change program output by output unit 215 (step S9). Next, program execution unit 312 executes the first or second change program received by input unit 311 (step S10).
[0079] Finally, the control unit 313 controls the processing machine 3 based on the first change program or the second change program (step S11), and the processing in the system 1 ends.
[0080] Second Embodiment Fig. 9 is a diagram showing an example of a movement path specified by a machining program, which is a movement path for a tool to continuously machine a plurality of holes.
[0081] The arrows labeled "n11" to "n16" indicate the non-cutting paths specified in the machining program. The arrows labeled "m11" and "m12" indicate the cutting paths specified in the machining program.
[0082] That is, the machining program specifies that the tool is moved at rapid traverse along a non-cutting path n11 toward point p11 and a non-cutting path n12 from point p11 toward point p12. The machining program also specifies that the tool is moved at cutting feed along a cutting path m11 from point p12 toward point p13. Point p12 indicates the cutting start position.
[0083] Furthermore, the machining program specifies that the tool is to move at rapid traverse along non-cutting path n13 from point p13 to point p12, non-cutting path n14 from point p12 to point p11, non-cutting path n15 from point p11 to point p14, and non-cutting path n16 from point p14 to point p15.
[0084] The machining program also specifies that the tool is to be moved in cutting feed along a cutting path m12 from point p15 to point p16. Point p15 indicates the cutting start position.
[0085] The path generating unit 212 generates a first curved path made up of curves from the non-cutting path n14, the non-cutting path n15, and the non-cutting path n16 specified by the machining program.
[0086] 10 is a diagram showing an example of a first curved path generated by the path generating unit 212. The path generating unit 212 generates the first curved path using point p11 and end point p12 that define non-cutting path n14, points p11 and p14 that define non-cutting path n15, and points p14 and p15 that define non-cutting path n16.
[0087] The path generating unit 212 first adds a point p11a between the points p11 and p12. The position of the point p11a may be, for example, a position at which the distance between the points p11 and p12 is divided by a predetermined ratio.
[0088] The path generating unit 212 also adds a point p14a between points p14 and p15. The position of point p14a may be a position that divides the distance between points p14 and p15 at a predetermined ratio. The path generating unit 212 also adds a midpoint pm between points p11 and p14.
[0089] The path generation unit 212 generates a first curved path c11 configured as a cubic Bezier curve using points p11, p12, p11a, and pm as control points. The path generation unit 212 also generates a first curved path c12 configured as a cubic Bezier curve using points p14, p15, p14a, and pm as control points.
[0090] The correcting unit 213 corrects the machining program based on the first curved paths c11 and c12 generated by the path generating unit 212 to generate a first changed program.
[0091] In the embodiment described above, the path generating unit 212 generates the first curved path using points p12 and p15, which indicate the cutting start positions of cutting paths m11 and m12, as control points. However, the path generating unit 212 may generate the first curved path using, for example, values set in parameters stored in the program modification device 2.
[0092] 11 is a diagram showing an example of a tool movement path specified by a machining program. In the example described with reference to FIG. 11, the path generating unit 212 generates a first curved path using values set in parameters.
[0093] The arrows labeled "n11", "n13'", and "n15" respectively indicate the non-cutting paths specified in the machining program. The arrows labeled "m11'" and "m12'" respectively indicate the cutting paths specified in the machining program.
[0094] That is, the machining program specifies that the tool be moved at rapid traverse along non-cutting path n11 toward point p11. The machining program also specifies that the tool be moved at cutting feed along cutting path m11' from point p11 toward point p13. The machining program also specifies that the tool be moved at rapid traverse along non-cutting path n13' from point p13 toward point p11. The machining program also specifies that the tool be moved at rapid traverse along non-cutting path n15 from point p11 toward point p14. The machining program also specifies that the tool be moved at cutting feed along cutting path m12' from point p14 toward point p16.
[0095] The program modification device 2 presets, in parameters, coordinate values of positions where interference between the tool and the workpiece does not occur when the tool moves at rapid traverse along a non-cutting path. The positions where interference between the tool and the workpiece does not occur are positions that are a predetermined distance away from the position of the surface of the workpiece. The positions that are a predetermined distance away from the position of the surface of the workpiece are, for example, the positions of points p12' and p15'.
[0096] The path generating unit 212 generates the first curved path using the values set in the parameters. The coordinate values set in the parameters are, for example, the coordinate values of the points p12' and p15'.
[0097] The path generation unit 212 first adds a point p11a between points p11 and p12' based on the parameters. The path generation unit 212 also adds a point p14a between points p14 and p15'. The path generation unit 212 also adds a midpoint pm between points p11 and p14.
[0098] The path generation unit 212 generates a first curved path consisting of a cubic Bezier curve using points p11, p12', p11a, and pm as control points. The path generation unit 212 also generates a first curved path consisting of a cubic Bezier curve using points p14, p15', p14a, and pm as control points. That is, the path generation unit 212 generates a first curved path that is the same as or similar to the first curved paths c11 and c12 shown in FIG. 10. The modification unit 213 modifies the machining program based on the first curved path generated by the path generation unit 212 to generate a first changed program.
[0099] Third Embodiment A program change device 2 according to a third embodiment of the present disclosure will be described below. The program change device 2 according to this embodiment differs from the program change device 2 according to the first embodiment in that the same estimated machining workpiece is used for interference check at multiple timings when the machining program is changed.
[0100] 12 is a block diagram showing an example of the functions of the program modification device 2 according to this embodiment and the functions of the program execution device 30. Like the program modification device 2 according to the first embodiment, the program modification device 2 according to this embodiment further includes, for example, a program analysis unit 211, a path generation unit 212, a correction unit 213, an interference confirmation unit 214, an output unit 215, and further includes an estimated machining work generation unit 216 and an estimated machining work update unit 217.
[0101] The program analysis unit 211, the path generation unit 212, the correction unit 213, and the output unit 215 according to this embodiment function in the same manner as the respective functions according to the first embodiment.
[0102] The estimated machined workpiece generation unit 216 generates an estimated machined workpiece, which is the shape of the machined workpiece during machining, based on the machining program. The estimated machined workpiece generation unit 216 may use a workpiece shape estimated using a known machining simulation technique. The machining simulation, for example, involves moving a pre-registered tool shape along a tool path obtained by executing the machining program, and removing the portion that comes into contact with the registered workpiece material shape to obtain the machined workpiece shape. At this time, the workpiece shape is expressed as a three-dimensional structure using polygons or the like. The estimated machined workpiece generation unit 216 performs a machining simulation based on blocks of the machining program that have been executed at the time of generation. The workpiece shape generated by the machining simulation is then output as an estimated machined workpiece.
[0103] The estimated machining workpiece generated by the estimated machining workpiece generation unit 216 may be precise three-dimensional shape data. In this case, the three-dimensional shape data may be written in an intermediate file format such as STL format. By writing in the intermediate file format, the data can be read by multiple CAD software programs.
[0104] The estimated machining workpiece generated by the estimated machining workpiece generation unit 216 may be a height map that defines height information at a regular interval grid. A height map stores, for example, height information for each regular interval grid when viewing the XY plane from the +Z direction. This format is smaller in size than 3D shape data expressed in an intermediate file format, making it possible to save memory and speed up processing.
[0105] The estimated machining work update unit 217 determines the timing for generating the estimated machining work. When the timing for generating the estimated machining work arrives, the estimated machining work update unit 217 instructs the estimated machining work generation unit 216 to update (generate) the estimated machining work. Then, the estimated machining work generated by the estimated machining work generation unit 216 is acquired. The estimated machining work acquired by the estimated machining work update unit 217 is used in the interference confirmation process by the interference confirmation unit 214.
[0106] The estimated machining workpiece update unit 217 may, for example, use the timing when a specific G code, M code, S code, T code, or B code is executed as the timing for generating the estimated machining workpiece. For example, if the machining program is designed to change the tool path between holes from the G81 block, which is the G code for the drilling canned cycle, to the G80 block, which is the G code for canceling the drilling canned cycle, the estimated machining workpiece can be generated when the G81 block is executed. This makes it possible to check for interference using the same estimated machining workpiece for the tool path between holes from the G81 block to the G80 block.
[0107] The estimated machining work update unit 217 may, for example, set the timing when a block associated with a predetermined sequence number in the machining program is executed as the estimated machining work generation timing. Alternatively, the timing when a predetermined comment statement is read may be set as the estimated machining work generation timing. Alternatively, the timing when a predetermined line number is read may be set as the estimated machining work generation timing. Furthermore, multiple codes, multiple sequence numbers, multiple comments, and multiple line numbers may be treated as the generation timing. By combining these, it becomes possible to command the update of the estimated machining work at any timing during execution of the machining program.
[0108] 13 is a block diagram showing a modified example of the functions of the program modification device 2 according to this embodiment and the functions of the program execution device 30. The program modification device 2 according to this modified example further includes a timing registration unit 218 in addition to, for example, a program analysis unit 211, a path generation unit 212, a correction unit 213, an interference confirmation unit 214, an output unit 215, an estimated machined work generation unit 216, and an estimated machined work update unit 217.
[0109] The timing registration unit 218 receives information from the operator regarding the timing of updating the estimated machining work. Then, the estimated machining work update unit 217 instructs the estimated machining work generation unit 216 to update (generate) the estimated machining work based on the timing of updating the estimated machining work received by the timing registration unit 218. The timing registration unit 218 may receive a predetermined G code, M code, S code, T code, or B code as the generation timing of the estimated machining work. Also, it may receive a predetermined sequence number of the machining program as the generation timing of the estimated machining work. Also, it may receive a predetermined comment statement as the generation timing of the estimated machining work. Furthermore, it may receive a predetermined line number of the machining program as the generation timing of the estimated machining work. Multiple codes, multiple sequence numbers, multiple comments, and multiple line numbers may be received as the generation timing.
[0110] As described above, the system 1 includes the path generating unit 212 that generates a first curved path composed of curves from a non-cutting path specified by a machining program, the correcting unit 213 that corrects the machining program based on the first curved path generated by the path generating unit 212 to generate a first modified program, and the output unit 215 that outputs the first modified program generated by the correcting unit 213. Therefore, the system 1 can shorten the execution time of a machining program by shortening the time when the tool is not performing machining. In particular, the system 1 can shorten the execution time of a machining program by shortening the movement path from the machining end position to the next machining start position.
[0111] Furthermore, the corrector 213 generates the first modified program so that the control axes operate at or below predetermined maximum accelerations and maximum jerk rates, and the movement time of the tool along the first curved path is shorter than the movement time of the tool along the non-cutting path specified in the machining program. Therefore, even if the modified program generated by the system 1 is executed, it is possible to prevent the various components of the machining machine 3 from being affected by excessive loads.
[0112] The system 1 further includes an interference checking unit 214 that checks whether or not interference occurs when the first change program generated by the correction unit 213 is executed. Therefore, the system 1 can shorten the movement path of the tool in the processing machine 3 without causing interference.
[0113] Furthermore, if the interference checking unit 214 confirms that interference will occur, the path generating unit 212 generates a second curved path different from the first curved path, and the correcting unit modifies the machining program based on the second curved path to generate a second modified program different from the first modified program. Furthermore, the path generating unit 212 generates the second curved path at a position shifted from the first curved path in the normal direction of the first curved path or at a position shifted from the first curved path in the direction perpendicular to the table surface.
[0114] Therefore, the system 1 can repeatedly generate curved paths even when it is determined that interference will occur in the processing machine 3. In other words, the system 1 can search for curved paths that will not cause interference in the processing machine 3.
[0115] Furthermore, the interference checking unit 214 checks whether or not interference will occur using at least two of the CAD data of the workpiece, the CAD data of the processing machine 3, and the CAD data of the tool. In this case, the system 1 can display an image indicating whether or not interference will occur on the display.
[0116] Furthermore, the interference checking unit 214 checks whether interference will occur depending on the execution status of the machining program. Therefore, the system 1 can accurately determine whether interference will occur in the processing machine 3.
[0117] Furthermore, the estimated machining work updating unit 217 instructs the estimated machining work generating unit 216 to generate an estimated machining work at a predetermined timing according to the execution status of the machining program, rather than generating an estimated machining work each time machining progresses. Therefore, the system 1 can use the same estimated machining work for interference check at multiple times when the machining program is changed, thereby reducing the processing load.
[0118] Furthermore, the timing registration unit 218 accepts registration from the operator regarding the timing for generating the estimated machined workpiece, thereby enabling the operator to set a more appropriate timing for generating the estimated machined workpiece in accordance with the machining program.
[0119] The system 1 further includes a program execution unit 312 that executes the first change program. For example, the system 1 includes the program execution unit 312 in a program execution device 30 that is different from the program change device 2 that includes the interference check unit 214. In this case, the system 1 can check in advance whether interference will occur in the program change device 2 while the program execution device 30 is executing some process. Therefore, the system 1 can improve the availability of the program execution device 30.
[0120] Although the present disclosure has been described in detail, the present disclosure is not limited to the individual embodiments described above. Various additions, substitutions, modifications, partial deletions, etc. are possible to these embodiments without departing from the gist of the present disclosure or the gist of the present disclosure derived from the content of the claims and their equivalents. Furthermore, these embodiments can also be implemented in combination.
[0121] The following are supplementary notes related to embodiments of the present disclosure. Supplementary Note [1] A system comprising: a path generating unit that generates a first curved path composed of curves from a non-cutting path specified by a machining program; a correcting unit that corrects the machining program based on the first curved path generated by the path generating unit to generate a first changed program; and an output unit that outputs the first changed program generated by the correcting unit. Supplementary Note [2] The system described in Supplementary Note [1], wherein the correcting unit generates the first changed program so that a control axis operates at or below a predetermined maximum acceleration and maximum jerk, and a movement time when the tool moves along the first curved path is shorter than a movement time when the tool moves along the non-cutting path. Supplementary Note [3] The system described in Supplementary Note [2], further comprising an interference checking unit that checks whether interference occurs when the first changed program generated by the correcting unit is executed. Supplementary Note [4] The system described in Supplementary Note [3], in which, when the interference checker checks that the interference will occur, the path generator generates a second curved path different from the first curved path, and the correction unit modifies the machining program based on the second curved path to generate a second modified program different from the first modified program. Supplementary Note [5] The system described in Supplementary Note [4], in which the path generator generates the second curved path at a position shifted from the first curved path in a normal direction of the first curved path or at a position shifted from the first curved path in a direction perpendicular to a table surface. Supplementary Note [6] The system described in any of Supplements [3] to [5], in which the interference checker checks whether the interference will occur using at least two of CAD data of a workpiece, CAD data of a machining machine, and CAD data of the tool. Supplementary Note [7] The system described in any of Supplements [3] to [6], in which the interference checker checks whether the interference will occur depending on the execution status of the machining program.Supplementary Note [8] The system according to Supplementary Note [7] further comprises an estimated machining work generating unit that generates an estimated machining work, which is a machined work shape during machining, from the machining program, and an estimated machining work updating unit that determines the generation timing of the estimated machining work and acquires the estimated machining work, wherein the interference checking unit uses the estimated machining work acquired by the estimated machining work updating unit for interference checking.Supplementary Note [9] The system according to Supplementary Note [8], wherein the generation timing of the estimated machining work is the timing when at least one of a predetermined code, a predetermined sequence number, a predetermined comment statement, or a predetermined line number is executed.Supplementary Note
[10] The system according to Supplementary Note [8], further comprises a timing registration unit that accepts registration of the generation timing of the estimated machining work, wherein the generation timing of the estimated machining work is the timing when at least one of a predetermined code, a predetermined sequence number, a predetermined comment statement, or a predetermined line number is executed. Supplementary Note
[11] The system according to Supplementary Note [8], wherein the estimated machined work generated by the estimated machined work generation unit is three-dimensional shape data written in an intermediate file format. Supplementary Note
[12] The system according to Supplementary Note [8], wherein the estimated machined work generated by the estimated machined work generation unit is a height map of a grid with a fixed interval. Supplementary Note
[13] The system according to any of Supplements [1] to
[12] , further comprising a program execution unit that executes the first changed program. Supplementary Note
[14] A computer-readable storage medium storing instructions that cause a computer to execute the following: generating a first curved path composed of curves from a non-cutting path specified by a machining program, modifying the machining program based on the generated first curved path to generate a first changed program, and outputting the generated first changed program.
[0122] REFERENCE SIGNS LIST 1 System 2 Program change device 201 Hardware processor 202 Bus 203 ROM 204 RAM 205 Non-volatile memory 206 Interface 211 Program analysis unit 212 Path generation unit 213 Correction unit 214 Interference confirmation unit 215 Output unit 216 Estimated machining work generation unit 217 Estimated machining work update unit 218 Timing registration unit 3 Machining machine 300 Numerical control device 301 Hardware processor 302 Bus 303 ROM 304 RAM 305 Non-volatile memory 306 First interface 307 Axis control circuit 308 Spindle control circuit 309 Second interface 30 Program execution device 311 Input unit 312 Program execution unit 313 Control unit 31 Input / output device 32 Servo amplifier 33 Servo motor 34 Spindle amplifier 35 Spindle motor
Claims
1. A system comprising: a path generation unit that generates a first curve path composed of curves from a non-cutting path specified by a machining program; a modification unit that modifies the machining program based on the first curve path generated by the path generation unit to generate a first modified program; and an output unit that outputs the first modified program generated by the modification unit.
2. The system according to claim 1, wherein the modification unit generates the first modified program such that the control axis operates below a predetermined maximum acceleration and maximum jerk, and the movement time when the tool moves along the first curve path is shorter than the movement time when the tool moves along the non-cutting path.
3. The system according to claim 2, further comprising an interference confirmation unit that checks whether interference occurs when the first modified program generated by the modification unit is executed.
4. When it is confirmed by the interference confirmation unit that the interference occurs, the path generation unit generates a second curve path different from the first curve path, and the modification unit modifies the machining program based on the second curve path to generate a second modified program different from the first modified program. The system according to claim 3.
5. The system according to claim 4, wherein the path generation unit generates the second curve path at a position shifted in the normal direction of the first curve path from the first curve path or at a position shifted in the vertical direction of the table surface from the first curve path.
6. The system according to any one of claims 3 to 5, wherein the interference confirmation unit checks whether the interference occurs using at least two of the CAD data of the workpiece, the CAD data of the machine tool, and the CAD data of the tool.
7. The system according to any one of claims 3 to 6, wherein the interference confirmation unit checks whether the interference occurs according to the execution status of the machining program.
8. Further comprising: an estimated workpiece generation unit that generates an estimated workpiece having a shape of a workpiece being machined from the machining program; and an estimated workpiece update unit that determines the generation timing of the estimated workpiece and acquires the estimated workpiece, wherein the interference confirmation unit uses the estimated workpiece acquired by the estimated workpiece update unit for interference confirmation. The system according to claim 7.
9. The system according to claim 8, wherein the generation timing of the estimated machining workpiece is the timing at which at least one of a predetermined code, a predetermined sequence number, a predetermined comment sentence, or a predetermined line number is executed.
10. The system according to claim 8, further comprising a timing registration unit that receives registration of the generation timing of the estimated machining workpiece, wherein the generation timing of the estimated machining workpiece is the timing at which at least one of a predetermined code, a predetermined sequence number, a predetermined comment sentence, or a predetermined line number is executed.
11. The system according to claim 8, wherein the estimated machining workpiece generated by the estimated machining workpiece generation unit is three-dimensional shape data described in an intermediate file format.
12. The system according to claim 8, wherein the estimated machining workpiece generated by the estimated machining workpiece generation unit is a height map of a grid at regular intervals.
13. The system according to any one of claims 1 to 12, further comprising a program execution unit that executes the first change program.
14. A computer-readable storage medium storing instructions for causing a computer to perform: generating a first curved path composed of curves from a non-cutting path specified by a machining program; modifying the machining program based on the generated first curved path to generate a first change program; and outputting the generated first change program.
Citation Information
Patent Citations
Method and system for moving axis
JP1997120310A
Method for generating tool path and medium for recording tool path generation program
JP2000163110A
Creating apparatus and method for intermediate-stage model
JP2003186512A
Numerical control device
JP2007200037A