Systems and computer-readable storage media
Patent Information
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- FANUC LTD
- Filing Date
- 2024-01-16
- Publication Date
- 2026-08-04
AI Technical Summary
但是,若缩短工具实际进行加工时的加工时间,则有可能对工件的加工精度造成不良影响
Smart Images

Figure CN122514735A_ABST
Abstract
Description
Technical Field
[0001] This disclosure relates to system and computer readable storage media. Background Technology
[0002] In the field of machining technology, there is a desire to shorten the execution time of machining programs. However, shortening the actual machining time during which the tool performs machining may adversely affect the machining accuracy of the workpiece. Therefore, it is preferable to shorten the time during which the tool moves without contacting the workpiece (see Patent Document 1).
[0003] Existing technical documents
[0004] Patent documents
[0005] Patent Document 1: International Publication No. 2022 / 045161 Summary of the Invention
[0006] The problem that the invention aims to solve
[0007] In recent years, there has been a desire to further shorten the execution time of machining processes by further reducing the time when tools are not being used for machining.
[0008] Methods for solving problems
[0009] 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 correction unit that corrects 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 correction unit.
[0010] The computer-readable storage medium of this disclosure stores commands that enable a computer to perform the following processes: 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 modified program; and outputting the generated first modified program. Attached Figure Description
[0011] Figure 1 This is a diagram illustrating an example of the system architecture of this disclosure.
[0012] Figure 2 This is a block diagram illustrating an example of the hardware structure of a program-changing device.
[0013] Figure 3 This is a block diagram illustrating an example of the hardware structure of a machining machine.
[0014] Figure 4 This is a block diagram illustrating an example of the functions of a program modification device and a program execution device.
[0015] Figure 5 This is a diagram representing an example of a movement path specified by a machining program.
[0016] Figure 6 This is a diagram showing an example of the first curved path generated by the path generation unit.
[0017] Figure 7 This is a diagram representing an example of a second curved path.
[0018] Figure 8 This is a flowchart representing an example of a process performed in the system.
[0019] Figure 9 This is a diagram representing an example of a movement path specified by a machining program.
[0020] Figure 10 This is a diagram showing an example of the first curved path generated by the path generation unit.
[0021] Figure 11 This is a diagram representing an example of a movement path specified by a machining program.
[0022] Figure 12 This is a block diagram illustrating other examples of the functions of the program modification device and the program execution device.
[0023] Figure 13 This is a block diagram illustrating other examples of the functions of the program modification device and the program execution device. Detailed Implementation
[0024] Hereinafter, the system and computer-readable storage medium according to embodiments of the present disclosure will be described with reference to the accompanying drawings. Furthermore, in the following description, structures having the same or similar functions will be labeled with the same reference numerals. And, sometimes, repeated descriptions of these structures will be omitted.
[0025] In this application, "based on XX" means "at least based on XX," but also includes cases where it is based on other elements besides XX. Furthermore, "based on XX" is not limited to the direct use of XX, but also includes cases based on information obtained through calculations or processing of XX. "XX" can be any element (e.g., any information).
[0026] [First Implementation]
[0027] The system disclosed herein can modify the tool movement path specified by the machining program to generate a modified program containing instructions for specifying the changed path. When the modified program is executed in the machining machine, the execution time is shortened compared to executing the original machining program in the machining machine. The system can also have the function of controlling various parts of the machining machine based on the modified program.
[0028] Figure 1 This is a diagram illustrating an example of the system architecture of this disclosure. System 1 includes a program modification device 2 and a program execution device 30. The program modification device 2 and the program execution device 30 are interconnected via a network. The network is, for example, a LAN (Local Area Network) or the Internet.
[0029] The program modification device 2 is a device that modifies the machining program to generate a modified program. The program modification device 2 is installed, for example, on a PC (Personal Computer), server, or tablet terminal.
[0030] 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, for example, installed in a numerical control device for controlling the machining machine 3. Hereinafter, an embodiment in which the program execution device 30 is installed in a numerical control device will be described.
[0031] Processing machines 3 include, for example, machine tools, electrical discharge machining (EDM) machines, laser processing machines, and 3D printers. Machine tools include, for example, machining centers, lathes, and multi-functional machining centers. Electrical discharge machining (EDM) machines include, for example, electrical discharge forming machines and wire EDM machines. Laser processing machines include, for example, laser welding machines and laser cutting machines.
[0032] Figure 2 This is a block diagram illustrating an example of the hardware structure of the program changing device 2. The program changing device 2 includes, for example, a hardware processor 201, a bus 202, a ROM (Read Only Memory) 203, a RAM (Random Access Memory) 204, a non-volatile memory 205, and an interface 206.
[0033] The hardware processor 201 is a processor that controls the entire program change device 2 according to the system program. The hardware processor 201 reads the system program and the like 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.
[0034] Bus 202 is a communication path that connects the various hardware components within the program modification device 2. The various hardware components within the program modification device 2 exchange data via bus 202.
[0035] ROM203 is a storage device for storing system programs, etc. ROM203 is a computer-readable storage medium.
[0036] RAM204 is a storage device for temporary storage of various data. RAM204 functions as a working area for the hardware processor 201 to process various data.
[0037] The non-volatile memory 205 is a storage device that retains data even when the power supply to the program changing device 2 is cut off. The non-volatile memory 205 stores, for example, processing programs and modification programs. Modification programs will be described in detail later.
[0038] Non-volatile memory 205 is a computer-readable storage medium. Non-volatile memory 205 may be, for example, a battery-backed memory or an SSD (Solid State Drive).
[0039] Interface 206 is used to connect the program modification device 2 to an external device. The program modification device 2 uses interface 206 to connect to a network.
[0040] Figure 3 This is a block diagram illustrating an example of the hardware structure of the machining machine 3. The machining 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.
[0041] 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.
[0042] The hardware processor 301 is a processor that controls the entire numerical control device 300 according to the system program. The hardware processor 301 reads the system program and other data stored in the ROM 303 via the bus 302. The hardware processor 301 is, for example, a CPU or electronic circuit.
[0043] Bus 302 is a communication path that connects the various hardware components of the numerical control device 300 to each other. The various hardware components of the numerical control device 300 exchange data via bus 302.
[0044] ROM303 is a storage device for storing system programs, etc. ROM303 is a computer-readable storage medium.
[0045] RAM304 is a storage device for temporary storage of various data. RAM304 functions as a working area for the hardware processor 301 to process various data.
[0046] Non-volatile memory 305 is a storage device that retains data even when the power supply to the numerical control device 300 is cut off. For example, non-volatile memory 305 stores processing programs. Non-volatile memory 305 is a computer-readable storage medium. Non-volatile memory 305 is, for example, composed of battery-backed memory or an SSD.
[0047] The numerical control device 300 also includes a first interface 306, an axis control circuit 307, a spindle control circuit 308, and a second interface 309.
[0048] The first interface 306 connects the bus 302 to the input / output device 31. For example, the first interface 306 sends various data processed by the hardware processor 301 to the input / output device 31.
[0049] The input / output device 31 receives various data via the first interface 306 and displays various data on the display. In addition, the input / output device 31 accepts various data input operations and sends various data to, for example, the hardware processor 301 via the first interface 306.
[0050] The input / output device 31 is, for example, a touch panel. When the input / output device 31 is a touch panel, it is, for example, a capacitive touch panel. The touch panel is not limited to capacitive touch panels; other types of touch panels may also be used. The input / output device 31 is provided on the control panel (not shown) of the numerical control device 300.
[0051] The axis control circuit 307 is a circuit used to control the servo motor 33. The axis control circuit 307 receives control commands from the hardware processor 301 and sends various commands for driving the servo motor 33 to the servo amplifier 32. For example, the axis control circuit 307 sends torque commands that control the torque of the servo motor 33 to the servo amplifier 32.
[0052] The servo amplifier 32 receives instructions from the axis control circuit 307 and supplies current to the servo motor 33.
[0053] The servo motor 33 is driven by receiving current from the servo amplifier 32. A servo motor 33 is provided corresponding to each control axis of the machining center 3. In the case where the machining center 3 is a 5-axis machine tool, the servo motor 33 may include, for example, a servo motor for the X-axis, a servo motor for the Y-axis, a servo motor for the Z-axis, a servo motor for the A-axis, and a servo motor for the C-axis. In this case, an axis control circuit 307 and a servo amplifier 32 are provided for each servo motor 33.
[0054] The servo motor 33 is connected, for example, to the ball screw that drives the worktable. Driven by the servo motor 33, the worktable and other structures of the machining machine 3 move along a predetermined control axis.
[0055] The servo motor 33 has a built-in encoder (not shown) for detecting the position and feed speed of the control axis. The position and feed speed feedback information detected by the encoder are fed back to the axis control circuit 307. Thus, the axis control circuit 307 performs feedback control on each control axis.
[0056] The spindle control circuit 308 is a circuit used to control the spindle motor 35. The spindle control circuit 308 receives control commands from the hardware processor 301 and sends commands to the spindle amplifier 34 to drive the spindle motor 35. For example, the spindle control circuit 308 sends a spindle speed command to the spindle amplifier 34 to control the rotational speed of the spindle motor 35.
[0057] The spindle amplifier 34 receives instructions from the spindle control circuit 308 and supplies current to the spindle motor 35.
[0058] The spindle motor 35 is driven by receiving current from the spindle amplifier 34. The spindle motor 35 is connected to the spindle, thereby causing the spindle to rotate.
[0059] The second interface 309 is used to connect the numerical control device 300 to external devices. The numerical control device 300 uses the second interface 309 to connect to a network.
[0060] Figure 4 This is a block diagram illustrating an example of the functions of the program modification device 2 and the program execution device 30.
[0061] The program modification device 2 includes, for example, a program parsing unit 211, a path generation unit 212, a correction unit 213, an interference confirmation unit 214, and an output unit 215. The program parsing unit 211, the path generation unit 212, the correction unit 213, the interference confirmation unit 214, and the output unit 215 are implemented, for example, by a hardware processor 201 performing calculations using a system program stored in ROM 203 and various data stored in non-volatile memory 205.
[0062] 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 implemented, for example, by a hardware processor 301 using a system program stored in ROM 303 and various data stored in non-volatile memory 305 for computational processing.
[0063] The program parsing unit 211, for example, acquires a machining program stored in a storage unit (not shown). The program parsing unit 211 parses the acquired machining program. The machining program contains instructions specifying the tool's movement path and instructions specifying the tool's maximum feed rate. The program parsing unit 211 parses the machining program to obtain information indicating the tool's movement path, information indicating the tool's maximum feed rate, etc.
[0064] The tool's movement path includes cutting paths and non-cutting paths. A cutting path is the path the tool takes while in contact with the workpiece. Cutting paths are specified, for example, using linear interpolation commands or circular interpolation commands.
[0065] A non-cutting path is a path in which the tool moves without contacting the workpiece. Non-cutting paths are specified, for example, through positioning commands.
[0066] Figure 5 This diagram illustrates an example of a movement path specified in the machining program. The arrows depicted along with "X" and "Z" indicate the coordinate system of the machining machine 3. That is, the arrow marked "X" indicates the positive direction of the X-axis, and the arrow marked "Z" indicates the positive direction of the Z-axis.
[0067] Arrows marked "m1" and "m2" indicate the cutting paths specified by the machining program. Arrows marked "n1" and "n2" indicate the non-cutting paths specified by the machining program. That is, the machining program specifies that the tool should move along the cutting path m1 towards point p1 with a cutting feed. Additionally, the machining program specifies that the tool should move along the non-cutting paths n1 from point p1 to point p2 and n2 from point p2 to point p3 with rapid feed. Furthermore, the machining program specifies that the tool should move along the cutting path m2 from point p3 to point p4 with a cutting feed.
[0068] The path generation unit 212 generates a first curved path composed of curves based on the non-cutting path specified in the machining program. The first curved path is a curve generated based on the non-cutting path composed of multiple straight lines specified in the machining program. That is, the first curved path is a path that does not contain straight lines. Alternatively, the first curved path may also be a path composed of multiple tiny line segments of about a few micrometers to a few millimeters connected together.
[0069] The first curve path generated by the path generation unit 212 is, for example, a cubic Bezier curve generated by using the start and end points of a non-cutting path as control points. The first curve path is not limited to a Bezier curve, but can also be a spline curve such as a NURBS curve.
[0070] Figure 6This represents an example of the first curved path generated by the path generation unit 212. The path generation unit 212 generates the first curved path c1 using points p1, p2, and p3 that constitute the non-cutting path.
[0071] First, the path generation unit 212 adds a point p1a between point p1 and point p2. The position of point p1a can be, for example, a position where the distance between point p1 and point p2 is divided by a predetermined ratio.
[0072] Additionally, the path generation unit 212 adds a point p2a between points p2 and p3. The position of point p2a can be a position where the distance between points p2 and p3 is divided by a predetermined ratio. The path generation unit 212 uses points p1, p1a, p2a, and p3 as control points to generate a first curved path c1 composed of cubic Bezier curves.
[0073] The correction unit 213, based on the first curve path c1 generated by the path generation unit 212, corrects the processing program to generate a first modified program. For example, the path generation unit 212 generates... Figure 6 In the case of the first curved path c1 shown, the correction unit 213 generates a first modification program to move the tool along the first curved path c1.
[0074] The correction unit 213 rewrites the instructions specifying non-cutting paths n1 and n2 in the machining program into instructions specifying the first curve path c1. Thus, the correction unit 213 generates a first modified program.
[0075] The correction unit 213 generates a first modification program, which causes the control axis to operate at a predetermined maximum acceleration and below the maximum jerk, and the travel time of the tool when moving along the first curved path c1 is shorter than the travel time of the tool when moving along the non-cutting paths n1 and n2.
[0076] The maximum acceleration and maximum jerk are, for example, values predetermined in each machining center 3. The path generation unit 212 generates... Figure 6 In the case of the first curved path c1 shown, the correction unit 213 determines the tool's movement speed to generate a first modification program, causing the tool to accelerate from point p1 to the midpoint and decelerate from the midpoint to point p3. The midpoint refers to the point on the first curved path c1 located between points p1 and p3. The correction unit 213 generates a first modification program that includes the tool's speed command in each program block specifying the first curved path c1.
[0077] When executing the first modification procedure generated by the correction unit 213, the interference confirmation unit 214 confirms whether interference has occurred. The interference confirmation unit 214 performs a machining simulation based on the first modification procedure to confirm whether interference has occurred. Interference includes interference between the tool and the structure constituting the machining machine 3, interference between the tool and the workpiece, and interference between the structure and the workpiece.
[0078] Interference verification unit 214 acquires, for example, at least two of the following: CAD data of the workpiece, CAD data of the machining machine 3, and CAD data of the tool. Interference verification unit 214 also acquires, for example, these data stored in the storage unit.
[0079] Interference confirmation unit 214 uses at least two of the acquired CAD data of the workpiece, CAD data of the machining machine 3, and CAD data of the tool to confirm whether interference has occurred.
[0080] The interference confirmation unit 214 determines whether an interference has occurred based on the execution status of the machining program. In machining simulation, the workpiece shape changes as machining progresses. The interference confirmation unit 214 determines whether an interference has occurred based on an estimated machined workpiece whose shape has changed. The estimated machined workpiece used by the interference confirmation unit 214 in interference confirmation can, for example, be a workpiece shape estimated using known machining simulation techniques.
[0081] When the interference confirmation unit 214 confirms that interference has occurred, the path generation unit 212 generates a second curved path that is different from the first curved path c1. That is, the second curved path is a curved path that is regenerated by the path generation unit 212 when interference occurs while the tool is moving on the first curved path c1.
[0082] The path generation unit 212 generates a second curved path at a position offset from the first curved path c1 in the normal direction of the first curved path c1, or at a position offset from the first curved path c1 in the vertical direction towards the worktable surface. The path generation unit 212 also generates the second curved path at a position farther away from the estimated workpiece compared to the first curved path c1. The path generation unit 212 may generate more than one second curved path, or even multiple different second curved paths.
[0083] Figure 7 This represents an example of a second curve path. The path generation unit 212 generates control points p1a' and p2a' by shifting control points p1a and p2a in a direction away from the worktable surface along a line perpendicular to it. The distance by which control points p1a and p2a are shifted can be determined, for example, based on predetermined parameter values. Furthermore, in... Figure 7 In this context, the worktable surface is a plane parallel to the X-axis.
[0084] The path generation unit 212 uses points p1, p1a', p2a', and p3 as control points to generate a second curved path c2. Furthermore, the correction unit 213 generates a second modification procedure, different from the first modification procedure, based on the second curved path c2 generated by the path generation unit 212.
[0085] The correction unit 213 generates a second modification program, which causes the control axis to operate at a predetermined maximum acceleration and below the maximum jerk, and causes the travel time of the tool when moving along the second curved path c2 to be shorter than the travel time of the tool when moving along the non-cutting path specified by the machining program.
[0086] When executing the second modification procedure generated by the correction unit 213, the interference confirmation unit 214 confirms whether interference has occurred. If the interference confirmation unit 214 confirms that interference has occurred, the path generation unit 212 generates the second curve path c2 again. The path generation unit 212 generates the second curve path c2 again at a position further away from the estimated workpiece. That is, when the interference confirmation unit 214 determines that interference has occurred when the tool moves on the initially generated first curve path c1, the path generation unit 212 repeatedly generates multiple different second curve paths c2 until the interference confirmation unit 214 determines that no interference has occurred.
[0087] If the interference confirmation unit 214 determines that no interference has occurred, the output unit 215 outputs a first modification program or a second modification program generated by the correction unit 213. The output unit 215 outputs the first modification program or the second modification program to the program execution device 30.
[0088] 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.
[0089] The program execution unit 312 executes the first or second modified program received by the input unit 311.
[0090] The control unit 313 controls the movement of each control axis and the spindle of the machining machine 3 based on a first modified program or a second modified program executed by the program execution unit 312. Thus, workpiece machining is performed in the machining machine 3.
[0091] Figure 8 This is a flowchart illustrating an example of the processing performed in System 1. First, in the program changing device 2, the program parsing unit 211 parses the acquired processing program (step S1). Next, the path generation unit 212 generates a first curve path (step S2).
[0092] Next, the correction unit 213 generates a first modification procedure based on the first curve path (step S3). Next, the interference confirmation unit 214 confirms whether interference occurs when the first modification procedure is executed (step S4).
[0093] If the interference confirmation unit 214 determines that interference has occurred ("Yes" in step S5), the path generation unit 212 generates a second curve path (step S6). Next, the correction unit 213 generates a second modification procedure based on the second curve path (step S7). After that, system 1 executes step S4 and subsequent processing.
[0094] If the interference confirmation unit 214 determines that no interference has occurred ("No" in step S5), the output unit 215 outputs either the first modification procedure or the second modification procedure (step S8). That is, if the interference confirmation unit 214 determines that no interference has occurred when executing the first modification procedure, the output unit 215 outputs the first modification procedure. On the other hand, if the interference confirmation unit 214 determines that no interference has occurred when executing the second modification procedure, the output unit 215 outputs the second modification procedure.
[0095] Next, the input unit 311 of the program execution device 30 receives the first modified program or the second modified program output by the output unit 215 (step S9). Next, the program execution unit 312 executes the first modified program or the second modified program received by the input unit 311 (step S10).
[0096] Finally, the control unit 313 controls the processing machine 3 based on the first change procedure or the second change procedure (step S11), and the processing in system 1 ends.
[0097] [Second Implementation]
[0098] Figure 9 This represents an example of a movement path specified by a processing procedure. Figure 9 The movement path shown is the movement path used for the tool to continuously machine multiple holes.
[0099] Arrows marked "n11" through "n16" indicate non-cutting paths specified by the machining program. Arrows marked "m11" and "m12" indicate cutting paths specified by the machining program.
[0100] That is, in the machining program, it is specified that the tool moves along the non-cutting path n11 towards point p11 and the non-cutting path n12 from point p11 towards point p12 with rapid feed. Additionally, in the machining program, it is specified that the tool moves along the cutting path m11 from point p12 towards point p13 with cutting feed. Point p12 is the point indicating the starting position of the cut.
[0101] Furthermore, the machining program specifies that the tool should move along the non-cutting path n13 from point p13 to point p12, the non-cutting path n14 from point p12 to point p11, the non-cutting path n15 from point p11 to point p14, and the non-cutting path n16 from point p14 to point p15 with rapid feed.
[0102] Additionally, the machining program specifies that the tool should move along the cutting path m12 from point p15 to point p16 with a cutting feed. Point p15 indicates the starting position of the cut.
[0103] The path generation unit 212 generates a first curved path composed of curves based on the non-cutting paths n14, n15 and n16 specified in the machining program.
[0104] Figure 10 This represents an example of the first curved path generated by the path generation unit 212. The path generation unit 212 generates the first curved path using the points p11 and p12 of the specified non-cutting path n14, the points p11 and p14 of the specified non-cutting path n15, and the points p14 and p15 of the specified non-cutting path n16.
[0105] First, the path generation unit 212 adds a point p11a between point p11 and point p12. The position of point p11a can be, for example, a position where the distance between point p11 and point p12 is divided by a predetermined ratio.
[0106] Additionally, the path generation unit 212 adds point 14a between point p14 and point p15. The position of point p14a can be the position where the distance between point p14 and point p15 is divided by a predetermined ratio. Furthermore, the path generation unit 212 adds a midpoint pm between point p11 and point p14.
[0107] The path generation unit 212 uses points p11, p12, p11a, and pm as control points to generate a first curved path c11 composed of cubic Bezier curves. Additionally, the path generation unit 212 uses points p14, p15, p14a, and pm as control points to generate a first curved path c12 composed of cubic Bezier curves.
[0108] The correction unit 213 modifies the processing program to generate a first change program based on the first curve paths c11 and c12 generated by the path generation unit 212.
[0109] In the above embodiment, the path generation unit 212 uses points p12 and p15, which represent the cutting start positions of cutting paths m11 and m12, as control points to generate the first curved path. However, the path generation unit 212 may also generate the first curved path using, for example, the values set as parameters stored in the program change device 2.
[0110] Figure 11 This represents an example of the tool's movement path specified in the machining program. When using... Figure 11 In the example described, the path generation unit 212 generates a first curved path using the value set as a parameter.
[0111] Arrows marked "n11", "n13'", and "n15" indicate non-cutting paths specified by the machining program. Arrows marked "m11'" and "m12'" indicate cutting paths specified by the machining program.
[0112] That is, the machining program specifies that the tool should move along the non-cutting path n11 towards point p11 with rapid feed. Additionally, the machining program specifies that the tool should move along the cutting path m11' from point p11 to point p13 with a cutting feed. Furthermore, the machining program specifies that the tool should move along the non-cutting path n13' from point p13 to point p11 with rapid feed. Additionally, the machining program specifies that the tool should move along the non-cutting path n15 from point p11 to point p14 with rapid feed. Finally, the machining program specifies that the tool should move along the cutting path m12' from point p14 to point p16 with a cutting feed.
[0113] The program modification device 2, for example, presets the coordinates of positions where the tool and workpiece do not interfere with each other when the tool moves along a non-cutting path with rapid feed. These positions are positions where the tool and workpiece do not interfere with each other, located a predetermined distance away from the workpiece surface. Examples of such predetermined distances are the positions of points p12' and p15'.
[0114] The path generation unit 212 generates a first curved path using the values set as parameters. The coordinate values set as parameters are, for example, the coordinate values of points p12' and p15'.
[0115] First, the path generation unit 212 adds point p11a between point p11 and point p12' based on parameters. Additionally, the path generation unit 212 adds point p14a between point p14 and point p15'. Furthermore, the path generation unit 212 adds a midpoint pm between point p11 and point p14.
[0116] The path generation unit 212 uses points p11, p12', p11a, and pm as control points to generate a first curve path composed of cubic Bezier curves. Additionally, the path generation unit 212 uses points p14, p15', p14a, and pm as control points to generate a first curve path composed of cubic Bezier curves. That is, the path generation unit 212 generates a first curve path composed of cubic Bezier curves. Figure 10 The first curve paths c11 and c12 shown are the same as or similar to the first curve paths. The correction unit 213 modifies the processing program to generate a first modified program based on the first curve path generated by the path generation unit 212.
[0117] [Third Implementation Method]
[0118] The program change apparatus 2 according to the third embodiment of this disclosure will now be described. The difference between the program change apparatus 2 of this embodiment and the program change apparatus 2 of the first embodiment is that the same estimated workpiece is used for interference confirmation at multiple timings when changing the machining program.
[0119] Figure 12 This is a block diagram illustrating an example of the functions of the program changing device 2 and the program execution device 30 in this embodiment. Similar to the program changing device 2 in the first embodiment, the program changing device 2 in this embodiment includes, for example, a program parsing unit 211, a path generation unit 212, a correction unit 213, an interference confirmation unit 214, and an output unit 215. In addition, it also includes an estimated workpiece generation unit 216 and an estimated workpiece updating unit 217.
[0120] The program parsing unit 211, path generation unit 212, correction unit 213, and output unit 215 of this embodiment function in the same way as those in the first embodiment.
[0121] The estimated workpiece generation unit 216 generates an estimated workpiece shape as the workpiece shape during machining, based on the machining program. The estimated workpiece generation unit 216 can use a workpiece shape estimated using known machining simulation techniques. In machining simulation, for example, a pre-registered tool shape is moved along a tool path obtained by executing the machining program, and the portion in contact with the registered workpiece raw material shape is removed, thereby obtaining the machined workpiece shape. At this time, the workpiece shape is represented as a three-dimensional structure using polygons or the like. The estimated workpiece generation unit 216 performs machining simulation based on program blocks of the executed machining program during generation. Then, the workpiece shape generated through machining simulation is output as the estimated workpiece.
[0122] The estimated workpiece generated by the estimated workpiece generation unit 216 can also be precise three-dimensional shape data. In this case, the three-dimensional shape data can be recorded in an intermediate file format such as STL. By recording it in an intermediate file format, it can be read by multiple CAD software programs.
[0123] The estimated workpiece generated by the estimated workpiece generation unit 216 can also be a height mapping that defines height information in a grid with certain intervals. For example, a height mapping is a mapping that stores height information when viewing the XY plane from the +Z direction at certain intervals. This format is smaller in size compared to 3D shape data represented in an intermediate file format, thus enabling memory savings and faster processing.
[0124] The estimated workpiece updating unit 217 determines the generation timing of the estimated workpiece. When the estimated workpiece generation timing arrives, the estimated workpiece updating unit 217 instructs the estimated workpiece generation unit 216 to update (generate) the estimated workpiece. Then, the estimated workpiece generated by the estimated workpiece generation unit 216 is acquired. The estimated workpiece acquired by the estimated workpiece updating unit 216 is used for interference confirmation processing by the interference confirmation unit 214.
[0125] The estimated workpiece update unit 217 can, for example, use the timing of executing predetermined G-codes, M-codes, S-codes, T-codes, and B-codes as the generation timing for the estimated workpiece. For instance, when designing a change to the machining program for the tool path between holes from program block G81 to program block G80, the estimated workpiece can be generated when the timing of program block G81 is executed. Here, program block G81 is a G-code for a fixed hole-opening cycle, and program block G80 is a G-code for canceling the fixed hole-opening cycle. Therefore, for the tool path between holes from program block G81 to program block G80, interference confirmation can be performed using the same estimated workpiece.
[0126] The workpiece update estimation unit 217 can, for example, set the timing of the program block associated with a predetermined sequence number that has executed the machining program as the estimated workpiece generation timing. Alternatively, the timing of reading predetermined comment text can also be set as the estimated workpiece generation timing. Furthermore, the timing of reading predetermined line numbers can also be set as the estimated workpiece generation timing. Moreover, multiple codes, multiple sequence numbers, multiple comments, and multiple line numbers can be handled as generation timings. By combining them, the workpiece update can be estimated from any timing instruction during the execution of the machining program.
[0127] Figure 13This is a block diagram illustrating a modified example of the functions of the program modification device 2 and the program execution device 30 of this embodiment. In this modified example, the program modification device 2, for example, includes a program parsing unit 211, a path generation unit 212, a correction unit 213, an interference confirmation unit 214, an output unit 215, a presumed workpiece generation unit 216, a presumed workpiece updating unit 217, and also includes a timing registration unit 218.
[0128] The timing registration unit 218 receives information from the operator related to the update timing of the estimated workpiece. Then, the estimated workpiece update unit 217, based on the update timing of the estimated workpiece received by the timing registration unit 218, instructs the estimated workpiece generation unit 216 to update (generate) the estimated workpiece. The timing registration unit 218 can accept predetermined G codes, M codes, S codes, T codes, and B codes as the generation timing of the estimated workpiece. Additionally, it can accept predetermined sequence numbers of the machining program as the generation timing of the estimated workpiece. Furthermore, it can accept predetermined comment text as the generation timing of the estimated workpiece. It can also accept predetermined line numbers of the machining program as the generation timing of the estimated workpiece. Multiple codes, multiple sequence numbers, multiple comments, and multiple line numbers can also be accepted as the generation timing.
[0129] As described above, System 1 includes: a path generation unit 212 that generates a first curved path composed of curves based on a non-cutting path specified in the machining program; a correction unit 213 that corrects the machining program based on the first curved path generated by the path generation unit 212 to generate a first modified program; and an output unit 215 that outputs the first modified program generated by the correction unit 213. Therefore, System 1 can shorten the execution time of the machining program by reducing the time the tool is not machining. System 1 is particularly capable of shortening the movement path from the machining end position to the next machining start position, thereby shortening the execution time of the machining program.
[0130] Furthermore, the correction unit 213 generates a first modification program that causes the control axis to operate at a predetermined maximum acceleration and below the maximum jerk, and the travel time of the tool when moving along the first curved path is shorter than the travel time of the tool when moving along the non-cutting path specified by the machining program. Therefore, even when the modification program generated by system 1 is executed, it is possible to prevent the various structures of the machining machine 3 from being subjected to excessive loads.
[0131] Furthermore, System 1 also includes an interference confirmation unit 214 that checks whether interference has occurred when the first modification program generated by the correction unit 213 is executed. Therefore, System 1 can shorten the tool's movement path in the machining machine 3 without causing interference.
[0132] Furthermore, when interference is confirmed by the interference confirmation unit 214, the path generation unit 212 generates a second curve path that is different from the first curve path. The correction unit modifies the machining program based on the second curve path to generate a second modified program that is different from the first modified program. In addition, the path generation unit 212 generates the second curve path at a position offset from the first curve path in the normal direction of the first curve path, or at a position offset from the first curve path in the vertical direction of the worktable surface.
[0133] Therefore, even if interference is determined to occur in the machining machine 3, the system 1 can repeatedly generate curved paths. That is, the system 1 can search for curved paths that do not cause interference in the machining machine 3.
[0134] Furthermore, the interference confirmation unit 214 uses at least two of the workpiece's CAD data, the machining machine 3's CAD data, and the tool's CAD data to confirm whether interference has occurred. In this case, the system 1 can display an image indicating whether interference has occurred on the monitor.
[0135] Furthermore, the interference confirmation unit 214 confirms whether interference has occurred based on the execution status of the machining program. Therefore, the system 1 can accurately determine whether interference has occurred in the machining machine 3.
[0136] Furthermore, the estimated workpiece update unit 217 instructs the estimated workpiece generation unit 216 to generate the estimated workpiece at a predetermined time corresponding to the execution status of the machining program, instead of generating the estimated workpiece every time machining progresses. Therefore, the system 1 can use the same estimated workpiece for interference verification at multiple time points when the machining program is changed, thereby reducing the processing load.
[0137] In addition, the timing registration unit 218 receives registrations from the operator related to the timing of generating the estimated workpiece. Therefore, the operator can set a more appropriate generation timing for the estimated workpiece in conjunction with the machining program.
[0138] Furthermore, System 1 also includes a program execution unit 312 for executing the first modification procedure. For example, System 1 includes the program execution unit 312 in a program execution device 30, which is different from the program modification device 2 equipped with the interference confirmation unit 214. In this case, System 1 can pre-confirm whether interference has occurred in the program modification device 2 while the program execution device 30 is performing certain processes. Therefore, System 1 can improve the operating efficiency of the program execution device 30.
[0139] This disclosure has been described in detail, but it is not limited to the various embodiments described above. Various additions, substitutions, modifications, and partial deletions can be made to these embodiments without departing from the spirit of this disclosure, or from the spirit of this disclosure derived from the content described in the patent protection scope and its equivalents. Furthermore, these embodiments can also be implemented in combination.
[0140] The following are notes regarding embodiments of this disclosure.
[0141] Postscript [1]
[0142] A system comprising: a path generation unit that generates a first curved path composed of curves from a non-cutting path specified by a machining program; a correction unit that corrects 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 correction unit.
[0143] Postscript [2]
[0144] According to the system described in Appendix [1], the correction unit generates the first change program such that the control axis operates at a predetermined maximum acceleration and below the maximum jerk, and the travel time of the tool when moving along the first curved path is shorter than the travel time of the tool when moving along the non-cutting path.
[0145] Postscript [3]
[0146] According to the system described in Appendix [2], the system further includes an interference confirmation unit that confirms whether interference has occurred when the first modification procedure generated by the correction unit is executed.
[0147] Postscript [4]
[0148] According to the system described in Appendix [3], when the interference is confirmed by the interference confirmation unit, the path generation unit generates a second curve path that is different from the first curve path, and the correction unit modifies the processing program based on the second curve path to generate a second modification program that is different from the first modification program.
[0149] Postscript [5]
[0150] According to the system described in Appendix [4], the path generation unit generates the second curve path at a position offset from the first curve path in the normal direction of the first curve path, or at a position offset from the first curve path in the vertical direction of the worktable surface.
[0151] Postscript [6]
[0152] According to any one of the appendices [3] to [5], the interference confirmation unit uses at least two of the workpiece's CAD data, the machining machine's CAD data, and the tool's CAD data to confirm whether the interference has occurred.
[0153] Postscript [7]
[0154] According to any one of the appendices [3] to [6], the interference confirmation unit confirms whether the interference has occurred based on the execution status of the processing procedure.
[0155] Postscript [8]
[0156] According to the system described in Appendix [7], the system further comprises: a workpiece generation unit that generates a workpiece as a workpiece shape during processing according to the processing program; and a workpiece update unit that determines the generation timing of the workpiece to obtain the workpiece, wherein the interference confirmation unit uses the workpiece obtained by the workpiece update unit for interference confirmation.
[0157] Postscript [9]
[0158] According to the system described in Appendix [8], the estimated time for generating the workpiece is a time when at least one of a predetermined code, a predetermined sequence number, a predetermined comment text, and a predetermined line number is executed.
[0159] Postscript
[10]
[0160] According to the system described in Appendix [8], the system further includes a timing registration unit that accepts the registration of the estimated time of the creation of the workpiece, the estimated time of the creation of the workpiece being a time at which at least one of a predetermined code, a predetermined sequence number, a predetermined comment text and a predetermined line number is executed.
[0161] Postscript
[11]
[0162] According to the system described in Appendix [8], the estimated workpiece generated by the estimated workpiece generation unit is three-dimensional shape data recorded in an intermediate file format.
[0163] Postscript
[12]
[0164] According to the system described in Appendix [8], the estimated workpiece generated by the estimated workpiece generation unit is a height mapping of a grid with a certain interval.
[0165] Postscript
[13]
[0166] The system according to any one of the appendices [1] to
[12] , wherein the system further comprises a program execution unit that executes the first modification procedure.
[0167] Postscript
[14]
[0168] A computer-readable storage medium stores commands that cause a computer to perform the following processes: 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 modified program; and outputting the generated first modified program.
[0169] Explanation of reference numerals in the attached figures
[0170] 1 system
[0171] 2. Program Change Device
[0172] 201 Hardware Processor
[0173] 202 bus
[0174] 203 ROM
[0175] 204 RAM
[0176] 205 non-volatile memory
[0177] 206 interface
[0178] 211 Program Analysis Department
[0179] 212 Path Generation Department
[0180] 213 Revision Department
[0181] 214 Interference Confirmation Department
[0182] 215 Output Section
[0183] 216 Estimated workpiece generation unit
[0184] 217 Estimated Workpiece Replacement Department
[0185] 218 Timely Registration Department
[0186] 3 processing machines
[0187] 300 numerical control device
[0188] 301 Hardware Processor
[0189] 302 bus
[0190] 303 ROM
[0191] 304 RAM
[0192] 305 Non-volatile Memory
[0193] 306 First Interface
[0194] 307-axis control circuit
[0195] 308 spindle control circuit
[0196] 309 Second Interface
[0197] 30 Program execution device
[0198] 311 Input Section
[0199] 312 Program Execution Unit
[0200] 313 Control Department
[0201] 31 Input / Output Devices
[0202] 32 Servo Amplifier
[0203] 33 servo motors
[0204] 34-spindle amplifier
[0205] 35 spindle motor.
Claims
1. A system, characterized in that, have: The path generation unit generates a first curved path composed of curves from the non-cutting path specified by the machining program. The correction unit generates a first modification program by correcting the processing program based on the first curve path generated by the path generation unit. as well as The output unit outputs the first modification program generated by the correction unit.
2. The system according to claim 1, characterized in that, The correction unit generates the first modification program, causing the control axis to operate at a predetermined maximum acceleration and below the maximum jerk, and the travel time of the tool when moving along the first curved path is shorter than the travel time of the tool when moving along the non-cutting path.
3. The system according to claim 2, characterized in that, The system also includes an interference confirmation unit, which confirms whether interference has occurred when the first modification procedure generated by the correction unit is executed.
4. The system according to claim 3, characterized in that, When the interference confirmation unit confirms that the interference has occurred, the path generation unit generates a second curve path that is different from the first curve path. The correction unit modifies the processing program based on the second curve path to generate a second modified program that is different from the first modified program.
5. The system according to claim 4, characterized in that, The path generation unit generates the second curve path at a position offset from the first curve path in the normal direction of the first curve path, or at a position offset from the first curve path in the vertical direction of the worktable surface.
6. The system according to any one of claims 3 to 5, characterized in that, The interference confirmation unit uses at least two of the workpiece's CAD data, the machining machine's CAD data, and the tool's CAD data to confirm whether the interference has occurred.
7. The system according to any one of claims 3 to 6, characterized in that, The interference confirmation unit determines whether the interference has occurred based on the execution status of the processing program.
8. The system according to claim 7, characterized in that, The system also has: An estimated workpiece generation unit generates an estimated workpiece, which, according to the machining program, has an estimated workpiece shape for use during machining; and The estimated workpiece updating unit determines the generation timing of the estimated workpiece to obtain the estimated workpiece. The interference confirmation unit uses the estimated workpiece obtained by the estimated workpiece update unit for interference confirmation.
9. The system according to claim 8, characterized in that, The estimated time for generating the workpiece is a time when at least one of the following is executed: a predetermined code, a predetermined sequence number, a predetermined comment text, and a predetermined line number.
10. The system according to claim 8, characterized in that, The system also includes a timing registration unit, which accepts the registration of the estimated generation timing of the workpiece. The estimated time for generating the workpiece is a time when at least one of the following is executed: a predetermined code, a predetermined sequence number, a predetermined comment text, and a predetermined line number.
11. The system according to claim 8, characterized in that, The estimated workpiece generated by the estimated workpiece generation unit is a three-dimensional shape data recorded in an intermediate file format.
12. The system according to claim 8, characterized in that, The estimated workpiece generated by the estimated workpiece generation unit is a height mapping of a grid with a certain interval.
13. The system according to any one of claims 1 to 12, characterized in that, The system also includes a program execution unit that executes the first modification procedure.
14. A computer-readable storage medium, characterized in that, The storage medium stores commands that enable the computer to perform the following processes: Generate a first curved path consisting of curves from the non-cutting path specified in the machining program; The first modification program is generated by modifying the processing program based on the generated first curve path; as well as Output the generated first modification procedure.