Machining program dividing device and computer-readable storage medium

The processing program splitting device addresses the inefficiency in modifying large machining programs by splitting them based on acquired designation and size information, facilitating quicker and more accurate modifications.

WO2025115075A1PCT designated stage expired Publication Date: 2025-06-05FANUC LTD
View PDF 3 Cites 0 Cited by

Patent Information

Application Number
PCT/JP2023/042380
Authority / Receiving Office
WO · WO
Patent Type
Applications
Current Assignee / Owner
Filing Date
2023-11-27
Publication Date
2025-06-05

AI Technical Summary

Technical Problem

Large processing programs, such as those generated by Computer Aided Manufacturing (CAM), require significant time to search for and modify specific portions, making efficient modification challenging for operators.

Method used

A processing program splitting device that acquires designation information and size information to determine optimal splitting positions within the program, allowing for efficient splitting and generation of split programs.

Benefits of technology

Enables operators to efficiently correct and modify machining programs by splitting them into manageable sizes, reducing the time required for modifications and minimizing human error.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure JP2023042380_05062025_PF_FP_ABST
    Figure JP2023042380_05062025_PF_FP_ABST
Patent Text Reader

Abstract

This machining program dividing device comprises: a designation information acquisition unit for acquiring designation information which is used for designating a dividing position of a machining program; a size information acquisition unit for acquiring size information which indicates at least one of the minimum dividing size and the maximum dividing size of the machining program; a determination unit for determining, on the basis of the designation information acquired by the designation information acquisition unit and the size information acquired by the size information acquisition unit, a dividing position in the machining program; and a dividing unit for dividing the machining program at the dividing position determined by the determination unit to thereby generate divided programs.
Need to check novelty before this filing date? Find Prior Art

Description

Machining program division device and computer-readable storage medium

[0001] The present disclosure relates to a machining program dividing device and a computer-readable storage medium.

[0002] An operator of a processing machine may modify a processing program (see, for example, Patent Document 1). For example, when the operator changes a tool to be used for processing during setup work, the operator modifies the tool number in the processing program.

[0003] Japanese Unexamined Patent Publication No. 4-260904

[0004] However, when the size of a machining program is large, such as a machining program generated by CAM (Computer Aided Manufacturing), searching for corrections takes a lot of time. This means that operators cannot efficiently correct the machining program. Therefore, there is a demand for technology that allows operators to efficiently correct machining programs.

[0005] The machining program division device of the present disclosure includes a designation information acquisition unit that acquires designation information used to designate division positions of the machining program, a size information acquisition unit that acquires size information indicating at least one of the minimum division size and the maximum division size of the machining program, a determination unit that determines division positions within the machining program based on the designation information acquired by the designation information acquisition unit and the size information acquired by the size information acquisition unit, and a division unit that divides the machining program at the division positions determined by the determination unit to generate divided programs.

[0006] The computer-readable storage medium of the present disclosure stores instructions that cause a computer to execute the following: acquire designation information used to specify division positions of a machining program; acquire size information indicating at least one of the minimum division size and the maximum division size of the machining program; determine division positions within the machining program based on the acquired designation information and the acquired size information; and divide the machining program at the determined division positions to generate divided programs.

[0007] FIG. 1 is a block diagram showing an example of the hardware configuration of a numerical control device. FIG. 2 is a block diagram showing an example of the functions of a machining program division device. FIG. 3 is an example of a machining program acquired by a program acquisition unit. FIG. 4 is a diagram for explaining designation information. FIG. 5 is an example of a division program. FIG. 6 is an example of a division program. FIG. 7 is an example of a division program. FIG. 8 is an example of connection information. FIG. 9 is a flowchart showing an example of processing executed by the machining program division device.

[0008] Hereinafter, a machining program dividing device and a computer-readable storage medium according to an embodiment of the present disclosure will be described with reference to the drawings. In the following description, components having the same or similar functions will be assigned 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] The machining program dividing device disclosed herein divides a machining program used to machine a workpiece in a machining machine. The machining program dividing device divides the machining program according to predetermined conditions. By dividing the machining program, an operator can efficiently modify the machining program.

[0011] Examples of the processing machine include a machine tool, an electric discharge machine, a laser processing machine, and a three-dimensional printer. Examples of the machine tool include a lathe, a machining center, and a multi-tasking machine.

[0012] The machining program dividing device is implemented in, for example, a numerical control device, a PC (Personal Computer), a server, a tablet terminal, etc. The machining program dividing device implemented in the numerical control device will be described below.

[0013] A numerical control device is a control device that controls a processing machine. The numerical control device controls the movement of each structure of the processing machine based on a processing program. By controlling each structure based on the processing program, the processing machine processes a workpiece.

[0014] 1 is a block diagram showing an example of the hardware configuration of a numerical control device 1. The numerical control device 1 includes, for example, a hardware processor 101, a bus 102, a read-only memory (ROM) 103, a random access memory (RAM) 104, and a non-volatile memory 105.

[0015] The hardware processor 101 is a processor that controls the entire numerical control device 1 in accordance with a system program. The hardware processor 101 reads the system program and the like stored in the ROM 103 via the bus 102. The hardware processor 101 is, for example, a CPU (Central Processing Unit) or an electronic circuit.

[0016] The bus 102 is a communication path that connects the various hardware components of the numerical control device 1. The various hardware components of the numerical control device 1 exchange data via the bus 102.

[0017] The ROM 103 is a storage device that stores system programs, etc. The ROM 103 is a computer-readable storage medium.

[0018] The RAM 104 is a storage device that temporarily stores various data and functions as a work area for the hardware processor 101 to process various data.

[0019] The nonvolatile memory 105 is a storage device that retains data even when the power to the numerical control device 1 is turned off. The nonvolatile memory 105 stores, for example, a machining program. The nonvolatile memory 105 is a computer-readable storage medium. The nonvolatile memory 105 is, for example, a battery-backed memory or a solid-state drive (SSD).

[0020] The numerical control device 1 further includes a first interface 106 , a second interface 107 , an axis control circuit 108 , and a spindle control circuit 109 .

[0021] The first interface 106 is an interface that connects the bus 102 and the external storage device 2. The first interface 106 sends various data processed by the hardware processor 101 to the external storage device 2.

[0022] The external storage device 2 stores various data transmitted from the numerical control device 1. The external storage device 2 is, for example, a storage device provided in a PC, a server, or the like.

[0023] The second interface 107 is an interface that connects the bus 102 and the input / output device 3. The second interface 107 sends various data processed by the hardware processor 101 to the input / output device 3, for example.

[0024] The input / output device 3 receives various data from the hardware processor 101 via the second interface 107, for example, and displays the various data on a display. In addition, the input / output device 3 receives input operations of various data and sends the various data to the hardware processor 101 via the interface, for example.

[0025] The input / output device 3 is, for example, a touch panel. When the input / output device 3 is a touch panel, the input / output device 3 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 3 is installed, for example, on an operation panel (not shown) in which the numerical control device 1 is housed.

[0026] The axis control circuit 108 is a circuit for controlling a servo motor (not shown) of the processing machine. The axis control circuit 108 receives control commands from the hardware processor 101 and sends various commands to a servo amplifier (not shown) for driving the servo motor. The axis control circuit 108 sends, for example, a torque command for controlling the torque of the servo motor to the servo amplifier.

[0027] The spindle control circuit 109 is a circuit for controlling a spindle motor (not shown). The spindle control circuit 109 receives a control command from the hardware processor 101 and sends a command to a spindle amplifier (not shown) to drive the spindle motor. The spindle control circuit 109 sends, for example, a spindle speed command to the spindle amplifier to control the rotation speed of the spindle motor.

[0028] 2 is a block diagram showing an example of the functions of the machining program division device 11. The machining program division device 11 includes, for example, a program acquisition unit 111, a designation information acquisition unit 112, a size information acquisition unit 113, a determination unit 114, a division unit 115, an output unit 116, a storage unit 117, an editing unit 118, and a combination unit 119. The program acquisition unit 111, the designation information acquisition unit 112, the size information acquisition unit 113, the determination unit 114, the division unit 115, the output unit 116, the editing unit 118, and the combination unit 119 are realized, for example, by the hardware processor 101 performing arithmetic processing using a system program stored in the ROM 103 and various data stored in the non-volatile memory 105. The storage unit 117 is realized, for example, by storing various data processed by the hardware processor 101 in the non-volatile memory 105.

[0029] The program acquisition unit 111 acquires a machining program stored in the storage unit 117, the external storage device 2, or the like.

[0030] 3 shows an example of a machining program acquired by the program acquisition unit 111. The machining program acquired by the program acquisition unit 111 is a machining program before division.

[0031] In the block with sequence number "N1," "G00X0.0;" is specified. "G00" is the G code that specifies the positioning of the feed axis. Positioning means that the feed axis moves at rapid traverse to the specified position.

[0032] "X" and the number following "X" are codes that specify the position of the X axis. In other words, "X0.0" is a command to move the X axis to the "0.0" position. ";" is a code that specifies the end of the block. Therefore, the block with sequence number "N1" specifies that the X axis should be moved at rapid traverse to the "0.0" position. Note that a block refers to a collection of one or more commands written on each line of a machining program.

[0033] The block with sequence number "N2" specifies "G00Y0.0;" Therefore, the block with sequence number "N2" specifies that the Y axis should be moved at rapid traverse to the "0.0" position.

[0034] The block with sequence number "N3" specifies "G00Z0.0;" Therefore, the block with sequence number "N3" specifies that the Z axis should be moved rapidly to the "0.0" position.

[0035] In the block with sequence number "N4," "G01X100.F1000;" is specified. "G01" is a command that specifies linear interpolation. "F" and the number following "F" are commands that specify the feed rate of the feed axis. The unit of feed rate is, for example, [mm / min]. Therefore, in the block with sequence number "N4," it is specified that the X axis will move to the "100." position using linear interpolation at a feed rate of 1000 [mm / min].

[0036] The block with sequence number "N10" specifies "G00X1000.Y1000.;" Therefore, the block with sequence number "N10" specifies that the X-axis and Y-axis should each be fast-forwarded to the position "1000."

[0037] In the block with sequence number "N11", "T101;" is specified. "T" and the number following "T" are commands that specify the tool and tool compensation. "T101" is a command that specifies tool compensation with tool compensation number "1" and performs tool change to tool number "1".

[0038] In the block with sequence number "N12," "M03S3000;" is specified. "M03" is a command to rotate the spindle forward. "S" and the number following "S" are commands that specify the spindle rotation speed. Therefore, in the block with sequence number "N12," it is specified that the spindle should rotate forward at a rotation speed of 3000 rpm.

[0039] The block with sequence number "N13" specifies "G00Z0.0;" Therefore, the block with sequence number "N13" specifies that the Z axis should be moved rapidly to the "0.0" position.

[0040] The block with sequence number "N20" specifies "G00X1000.Y1000.;" Therefore, the block with sequence number "N20" specifies that the X and Y axes should each be fast-forwarded to the "1000." position.

[0041] In the block with sequence number "N21", "(EDIT);" is specified. The string between "(" and ")" is a comment written in the machining program. In other words, "(EDIT);" has no effect on the operation of the machining center.

[0042] The block with sequence number "N22" specifies "G00X50.;" Therefore, the block with sequence number "N22" specifies that the X axis should be moved at fast forward to the position "50."

[0043] The block with sequence number "N30" specifies "G00X1000.Y1000.;" Therefore, the block with sequence number "N30" specifies that the X and Y axes should each be fast-forwarded to the "1000." position.

[0044] In the block with sequence number "N31," "M98P1000;" is specified. "M98" is a command that specifies the calling of a subprogram. "P" and the number following "P" are codes that specify the subprogram number. Therefore, in the block with sequence number "N31," it is specified that the subprogram with subprogram number "1000" will be called.

[0045] In the block with sequence number "N40", "M00;" is specified. "M00" is a command that specifies the end of the program. Therefore, execution of the machining program ends in the block with sequence number "N40". Now, let's return to the explanation of Figure 2.

[0046] The designation information acquisition unit 112 acquires designation information used to designate division positions of the machining program. The designation information acquisition unit 112 acquires the designation information from, for example, at least one of the storage unit 117 of the numerical control device 1 and the external storage device 2.

[0047] 4 is a diagram for explaining the designation information, which includes at least one of a tool change command, a subprogram call command, a macro call command, and parameter information.

[0048] The tool change command is, for example, a T code. The T code is, for example, "T101." That is, when the tool change command "T101" is specified in the machining program, the division position is determined by the determination unit 114, which will be described later, based on the position of the block in which "T101" is specified.

[0049] The subprogram call command is, for example, an M code. The M code is, for example, "M98." That is, when the M code "M98" is specified in the machining program, the determination unit 114 determines the division position based on the position of the block in which "M98" is specified.

[0050] The macro call command is, for example, a G code. The G code is, for example, "G65." That is, when the G code "G65" is specified in the machining program, the determination unit 114 determines the division position based on the position of the block in which "G65" is specified.

[0051] The parameter information includes a command set by an operator. For example, the command set by the operator is "S1000." That is, when "S1000" is specified in the machining program, the determining unit 114 determines the division position based on the position of the block to which "S1000" is specified.

[0052] The parameter information includes annotations. An annotation is a phrase such as "EDIT" enclosed in parentheses. That is, when "(EDIT)" is specified in the machining program, the determining unit 114 determines the division position based on the position of the block to which "(EDIT)" is specified. Now, return to the description of FIG. 2.

[0053] The size information acquisition unit 113 acquires size information indicating at least one of the minimum and maximum division sizes of the machining program. The minimum division size is, for example, 10 MB. The maximum division size is, for example, 100 MB.

[0054] The determination unit 114 determines the division positions in the machining program based on the designation information acquired by the designation information acquisition unit 112 and the size information acquired by the size information acquisition unit 113. The determination unit 114 first determines the division positions in the machining program based on the designation information.

[0055] The determining unit 114 determines, for example, the boundary between the block indicated by the designation information and another block immediately preceding the block indicated by the designation information to be the division position. The block indicated by the designation information is a block in which the command indicated by the designation information or the parameter information indicated by the designation information is written.

[0056] The determining unit 114 also determines that the position immediately before the first block of the machining program is the dividing position. The determining unit 114 also determines that the position immediately after the last block of the machining program is the dividing position.

[0057] For example, if the specified information acquisition unit 112 acquires "T101," "M98," and "(EDIT)" as the specified information, the determination unit 114 determines that the position immediately before the block with sequence number "N1" specified by "G00X0.0;" shown in Figure 3 is the division position.

[0058] The determining unit 114 also determines that the position immediately before the block with sequence number "N11" and designated "T101;" is the dividing position. In other words, the dividing position is the position between sequence numbers "N10" and "N11."

[0059] The determining unit 114 also determines that the position immediately before the block with sequence number "N21" that has "(EDIT);" specified is the division position. In other words, the division position is the position between sequence numbers "N20" and "N21."

[0060] The determining unit 114 also determines that the division position is the position immediately before the block with sequence number "N31" that specifies "M98P1000;". In other words, the division position is the position between sequence numbers "N30" and "N31".

[0061] Furthermore, the determining unit 114 determines that the position immediately following the block with sequence number "N40" designated by "M00;" is the division position.

[0062] Next, the determination unit 114 determines the final division positions based on the size information. The determination unit 114 compares the size information with the data sizes of all blocks included between a first position determined to be a division position and a second position determined to be the division position next to the first position. For example, if the data size of the blocks between the first position and the second position is greater than the minimum division size and less than or equal to the maximum division size, the determination unit 114 determines the first position and the second position as the division positions.

[0063] On the other hand, if the data size of the block between the first position and the second position is equal to or smaller than the minimum division size, the determination unit 114 does not determine the second position as the division position. In this case, the determination unit 114 determines the third position as the division position so that the data size of the block between the first position and the third position, which is determined to be the division position next to the second position, is larger than the minimum division size.

[0064] Furthermore, if the data size of the block between the first position and the second position is larger than the maximum division size, the determination unit 114 determines a third position between the first position and the second position as the division position so that the data size of the block is equal to or smaller than the maximum division size.

[0065] The third position is a position where the tool does not affect the machining accuracy of the workpiece even if the tool temporarily stops at that position. The third position is a position where the tool and the workpiece are not in contact with each other. The third position is, for example, a position immediately before a block in which a command to change the rotation speed of the spindle motor is specified.

[0066] In the example shown in Figure 3, if the data size of blocks from sequence number "N1" to sequence number "N10" is greater than the minimum division size and less than or equal to the maximum division size, the determination unit 114 determines the position between the block with sequence number "N10" and the block with sequence number "N11" as the division position.

[0067] If the data size of the blocks from sequence number "N1" to sequence number "N10" is equal to or smaller than the minimum division size, the determination unit 114 determines the position immediately before sequence number "N21" as the division position so that the data size is larger than the minimum division size.

[0068] However, if the data size of the blocks from sequence number "N1" to sequence number "N21" is equal to or smaller than the minimum division size, the determination unit 114 determines the position immediately preceding sequence number "N31" as the division position. In other words, the determination unit 114 determines the position whose data size first exceeds the minimum division size as the division position, out of the multiple positions determined by the determination unit 114 to be division positions.

[0069] If the data size of the blocks with sequence numbers "N1" to "N10" is larger than the maximum division size, the determination unit 114 determines the division position so that the data size is equal to or smaller than the maximum division size. For example, after the execution of the block with sequence number "N3" is completed and before the execution of the block with sequence number "N4" is started, the tool and the workpiece are not in contact. Therefore, the determination unit 114 determines the position immediately before the block with sequence number "N4" as the division position, for example. Now, returning to the description of FIG. 2 .

[0070] The dividing unit 115 divides the machining program at the dividing positions determined by the determining unit 114 to generate divided programs.

[0071] 5A to 5D are examples of divided programs. When the positions immediately before the block with sequence number "N1" and the position immediately before the block with sequence number "N11" of the machining program shown in Fig. 3 are determined as division positions, the dividing unit 115 divides the machining program to generate the divided programs shown in Fig. 5A. That is, the dividing unit 115 generates the divided programs by duplicating the commands specified in the blocks with sequence numbers "N1" to "N10."

[0072] Furthermore, when the positions immediately before the block with sequence number "N11" and the position immediately before the block with sequence number "N21" are determined as the division positions, the division unit 115 divides the machining program to generate the divided programs shown in Fig. 5B. That is, the division unit 115 generates the divided programs by duplicating the commands specified in the blocks from sequence number "N11" to sequence number "N20".

[0073] Furthermore, when the positions immediately before the block with sequence number "N21" and the position immediately before the block with sequence number "N31" are determined as the division positions, the division unit 115 divides the machining program to generate the divided programs shown in Fig. 5C. That is, the division unit 115 generates the divided programs by duplicating the commands specified in the blocks from sequence number "N21" to sequence number "N30".

[0074] Furthermore, when the positions immediately before the block with sequence number "N31" and immediately after the block with sequence number "N40" are determined as the division positions, the division unit 115 divides the machining program to generate the divided programs shown in Fig. 5D. That is, the division unit 115 generates the divided programs by duplicating the commands specified in the blocks from sequence number "N31" to sequence number "N40".

[0075] The division unit 115 further assigns program names to the generated divided programs. The program names assigned to the divided programs may be any names as long as they are different from each other. The program names may be numbers, for example. The divided programs shown in FIGS. 5A to 5D are assigned the program names "File_001," "File_002," "File_003," and "File_004," respectively.

[0076] The dividing unit 115 further generates combination information. The combination information is information that specifies the order in which the divided programs are combined. The dividing unit 115 generates the combination information so that the order of commands specified in the original machining program is reproduced when the divided programs are combined.

[0077] 6 shows an example of the combination information. The combination information is information that represents the order of "File_001," "File_002," "File_003," and "File_004." In other words, the combination information indicates that when the split programs "File_001," "File_002," "File_003," and "File_004" are combined, they should be combined in the order of "File_001," "File_002," "File_003," and "File_004."

[0078] The combination information may be the program name assigned to the divided program. In other words, the numbers indicated by the program names assigned to the divided programs may be the combination information. When the dividing unit 115 assigns numbers to each divided program in order starting from "001," the numbers assigned to each divided program are the combination information. Now, return to the description of FIG. 2.

[0079] The output unit 116 outputs the divided program generated by the dividing unit 115 to at least one of the storage unit 117 of the numerical control device 1 and the external storage device 2. The output unit 116 transmits the divided program to the external storage device 2 via a communication line.

[0080] The storage unit 117 stores the division program output by the output unit 116. The external storage device 2 also stores the division program output by the output unit 116.

[0081] The editing unit 118 edits the divided programs stored in at least one of the memory unit 117 and the external storage device 2. For example, when the input / output device 3 receives an editing operation for the divided program, the editing unit 118 edits the divided program based on the editing operation. The editing operation is, for example, an operation for editing a tool number or an operation for editing a subprogram number.

[0082] The combining unit 119 combines the divided programs stored in at least one of the storage unit 117 and the external storage device 2. The combining unit 119 combines the divided programs based on the combination information. When the combination information is the information shown in FIG. 6 , the combining unit 119 sequentially calls the divided programs "File_001," "File_002," "File_003," and "File_004" and combines these divided programs. The numerical control device 1 controls the processing machine using the combined divided programs.

[0083] FIG. 7 is a flowchart showing an example of processing executed by the machining program dividing device 11.

[0084] In the machining program dividing device 11, first, the program acquisition unit 111 acquires the machining program (step S1), and then the designation information acquisition unit 112 acquires the designation information (step S2).

[0085] Next, the size information acquisition unit 113 acquires size information (step S3), the determination unit 114 determines division positions in the machining program (step S4), and the division unit 115 generates a division program (step S5).

[0086] Next, the output unit 116 outputs the divided program (step S6). Next, the memory unit 117 stores the divided program (step S7). Next, the editing unit 118 edits the divided program stored in the memory unit 117 or the like (step S8). Finally, the combining unit 119 combines the divided programs (step S9), and the processing in the machining program dividing device 11 ends. The numerical control device 1 controls the machining machine based on the machining program generated by combining the divided programs.

[0087] As described above, the machining program division device 11 includes a designation information acquisition unit 112 that acquires designation information used to designate division positions of the machining program, a size information acquisition unit 113 that acquires size information indicating at least one of the minimum division size and the maximum division size of the machining program, a determination unit 114 that determines division positions within the machining program based on the designation information acquired by the designation information acquisition unit 112 and the size information acquired by the size information acquisition unit 113, and a division unit 115 that divides the machining program at the division positions determined by the determination unit 114 to generate divided programs.

[0088] Therefore, the machining program dividing device 11 can divide the machining program into appropriate sizes. This allows the operator to efficiently correct the divided programs. Furthermore, the machining program dividing device 11 automatically divides the machining program. In other words, the operator does not need to divide the machining program manually. Therefore, the machining program dividing device 11 can prevent the occurrence of human error that can occur when the operator manually divides the machining program.

[0089] The designation information includes at least one of a tool change command, a subprogram call command, a macro call command, and parameter information. That is, the machining program dividing device 11 can use, as designation information, a tool change command, a subprogram call command, a macro call command, parameter information, or the like that is likely to be modified by an operator.

[0090] The machining program dividing device 11 further includes an output unit 116 that outputs the divided program generated by the dividing unit 115 to at least one of the storage unit 117 of the numerical control device 1 and the external storage device 2. Therefore, the operator can call up the divided program as needed and edit the machining program.

[0091] Furthermore, the designation information acquisition unit 112 acquires the designation information from at least one of the storage unit 117 of the numerical control device 1 and the external storage device 2. In other words, the machining program division device 11 only needs to acquire the designation information as needed. Therefore, the machining program division device 11 can effectively utilize storage devices such as memories.

[0092] The machining program dividing device 11 further includes an editing unit 118 that edits the divided programs stored in at least one of the storage unit 117 and the external storage device 2. Therefore, the operator does not need to edit the divided programs using another device such as an editing device. In other words, the operator can efficiently edit the divided programs using the machining program dividing device 11.

[0093] The machining program dividing device 11 further includes a combining unit 119 that combines the divided programs stored in at least one of the storage unit 117 and the external storage device 2. Therefore, the operator does not need to combine the divided programs using another device such as a combining device. In other words, the operator can efficiently combine the divided programs using the machining program dividing device 11.

[0094] Furthermore, the dividing unit 115 generates combination information that defines the order in which the divided programs are combined, and the combining unit 119 combines the divided programs based on the combination information. Therefore, the operator does not need to combine the divided programs manually. In other words, the machining program dividing device 11 can reduce the burden on the operator involved in combining the divided programs.

[0095] Furthermore, the determination unit 114 determines that the boundary between the block indicated by the designation information and the block immediately preceding that block is the division position. Therefore, the first block of the divided program is the block containing information such as a tool change command indicated by the designation information. This allows the operator to easily find the editing position of the divided program. This reduces the time it takes the operator to edit the divided program.

[0096] 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.

[0097] The following are supplementary notes related to embodiments of the present disclosure. Supplementary note [1] A machining program dividing device comprising: a designation information acquisition unit that acquires designation information used to designate division positions of a machining program; a size information acquisition unit that acquires size information indicating at least one of a minimum division size and a maximum division size of the machining program; a determination unit that determines division positions within the machining program based on the designation information acquired by the designation information acquisition unit and the size information acquired by the size information acquisition unit; and a division unit that divides the machining program at the division positions determined by the determination unit to generate divided programs. Supplementary note [2] The machining program dividing device according to Supplementary note [1], wherein the designation information includes at least one of a tool change command, a subprogram call command, a macro call command, and parameter information. Supplementary note [3] The machining program dividing device according to Supplementary note [1] or [2], further comprising an output unit that outputs the divided programs generated by the division unit to at least one of a storage unit of a numerical control device and an external storage device. Supplementary Note [4] The machining program dividing device according to Supplementary Note [3], wherein the designation information acquisition unit acquires the designation information from at least one of the storage unit of the numerical control device and the external storage device. Supplementary Note [5] The machining program dividing device according to Supplementary Note [3] or [4], further comprising an editing unit that edits the divided programs stored in at least one of the storage unit and the external storage device. Supplementary Note [6] The machining program dividing device according to any of Supplements [3] to [5], further comprising a combining unit that combines the divided programs stored in at least one of the storage unit and the external storage device. Supplementary Note [7] The machining program dividing device according to Supplementary Note [6], wherein the dividing unit generates combining information that specifies the order in which the divided programs are combined, and the combining unit combines the divided programs based on the combining information. Supplementary Note [8] The machining program dividing device according to any of Supplements [1] to [7], wherein the determination unit determines that the position of a boundary between a block indicated by the designation information and another block immediately preceding the block is the division position.Supplementary Note [9] A computer-readable storage medium that stores instructions that cause a computer to execute the following: acquiring designation information for designating division positions of a machining program; acquiring size information indicating at least one of a minimum division size and a maximum division size of the machining program; determining division positions within the machining program based on the acquired designation information and the acquired size information; and dividing the machining program at the determined division positions to generate divided programs.

[0098] REFERENCE SIGNS LIST 1 Numerical control device 101 Hardware processor 102 Bus 103 ROM 104 RAM 105 Non-volatile memory 106 First interface 107 Second interface 108 Axis control circuit 109 Spindle control circuit 11 Machining program division device 111 Program acquisition unit 112 Designation information acquisition unit 113 Size information acquisition unit 114 Determination unit 115 Division unit 116 Output unit 117 Storage unit 118 Editing unit 119 Combination unit 2 External storage device 3 Input / output device

Claims

1. A machining program division device comprising: a designation information acquisition unit that acquires designation information used to designate a division position of a machining program; a size information acquisition unit that acquires size information indicating at least one of a minimum division size and a maximum division size of the machining program; a determination unit that determines a division position within the machining program based on the designation information acquired by the designation information acquisition unit and the size information acquired by the size information acquisition unit; and a division unit that divides the machining program at the division position determined by the determination unit to generate a divided program.

2. The machining program dividing device according to claim 1, wherein said designation information includes at least one of a tool exchange command, a subprogram call command, a macro call command, and parameter information.

3. A machining program dividing device according to claim 1 or 2, further comprising an output section for outputting the divided program generated by the dividing section to at least one of a memory section of a numerical control device and an external memory device.

4. The machining program division device according to claim 3, wherein the designated information acquisition unit acquires the designated information from at least one of the memory unit of the numerical control device and the external storage device.

5. The machining program dividing device according to claim 3 or 4, further comprising an editing section for editing the divided programs stored in at least one of the memory section and the external storage device.

6. A machining program dividing device according to any one of claims 3 to 5, further comprising a combining unit that combines the divided programs stored in at least one of the memory unit and the external storage device.

7. The machining program division device according to claim 6, wherein the division unit generates combination information that specifies the order in which the divided programs are combined, and the combination unit combines the divided programs based on the combination information.

8. A machining program division device according to any one of claims 1 to 7, wherein the determination unit determines that the position of the boundary between the block indicated by the specification information and another block immediately preceding the block is the division position.

9. A computer-readable storage medium storing instructions that cause a computer to execute the following: acquiring designation information for designating a division position of a machining program; acquiring size information indicating at least one of a minimum division size and a maximum division size of the machining program; determining a division position within the machining program based on the acquired designation information and the acquired size information; and dividing the machining program at the determined division position to generate a divided program.

Citation Information

Patent Citations

  • NC program management system

    JP1993143126A

  • Automatic hole machining data production system

    JP1994149335A

  • Command value generating device

    WO2018042704A1