Step-based tool path generation through divided slice regions
By segmenting the sliced region and applying segmentation criteria and automated evaluation to modify the toolpath, the problem of generating toolpaths for complex 3D objects in the prior art is solved, thereby improving the efficiency and quality of 3D printing.
Patent Information
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- SIMENS INDASTRI SOFTVEAR INK
- Filing Date
- 2023-09-27
- Publication Date
- 2026-04-24
AI Technical Summary
Existing additive manufacturing technologies struggle to automatically generate toolpaths that conform to the allowable step size range when constructing complex 3D objects, leading to product defects such as material overlap or missing parts. This is especially true in the sliced areas of curved or circular parts, where manually constructed zigzag toolpaths are complex and time-consuming.
By dividing the sliced region into multiple segments and applying segmentation criteria based on the central axis and geometric features, the sub-tool paths of the segments are automatically evaluated and modified to ensure that the step range meets the requirements and generate efficient tool paths.
It improves the efficiency and part quality of 3D printing processes, reduces material defects, and simplifies the toolpath generation process, especially for the manufacture of complex 3D objects.
Smart Images

Figure CN121925657A_ABST
Abstract
Description
Background Technology
[0001] Computer systems can be used to create, use, and manage data on products, articles, and other objects. Examples of computer systems include computer-aided design (CAD) systems (which may include computer-aided engineering (CAE) and computer-aided manufacturing (CAM) systems), visualization and manufacturing systems, product data management (PDM) systems, and product lifecycle management (PLM) systems. These systems may include components that facilitate the design, analysis, visualization, and simulation testing of product structures and manufacturing processes. Attached Figure Description
[0002] Some examples are described in the following detailed description and with reference to the accompanying drawings.
[0003] Figure 1 An example of a system that supports step-based tool path generation by dividing slice regions is shown.
[0004] Figure 2 An example of dividing a sliced region into multiple segments according to the present invention is shown.
[0005] Figure 3 An example tool path generation according to the present invention is shown by dividing a slice region into selected segments.
[0006] Figure 4 An example tool path generation according to the present invention is shown by dividing all segments of a slice region.
[0007] Figure 5 An example tool path generation according to the present invention is shown, which is performed by extending the boundaries of selected segments.
[0008] Figure 6 An example is shown of the logic that the system can implement to support step-based tool path generation through divided slice regions.
[0009] Figure 7 An example of a computational system that supports step-based toolpath generation by dividing slice regions is shown. Detailed Implementation
[0010] Additive manufacturing (sometimes referred to as 3D or 3D printing) can be performed via a 3D printer capable of constructing objects layer by layer. Examples of additive manufacturing include multi-axis 3D printing and laser bed fusion processes. In multi-axis 3D printing, the 3D printer can adjust (e.g., tilt) the axis along which the 3D construction is performed via material deposition. In laser bed fusion, a laser can be used as a power source to sinter / melt powdered material (e.g., metal powder) laid on a bed of powder or a build platform. 3D printing can involve the incremental, continuous formation of material using 3D printing tools, such as a material deposition head or energy beam for incrementally building 3D parts in an ordered manner. As used herein, toolpath can refer to any path, route, or route used by a 3D printer to construct any part of a 3D part via additive manufacturing, whether as a path for continuously depositing material in a material deposition 3D printing technique, or as a path for applying energy by guiding a laser (or other energy emission) in an LPBF-type 3D printing technique, and so on.
[0011] The specific properties and characteristics of the deposited material, along with additive manufacturing process parameters, can influence the physical structure of the product. One characteristic of additive manufacturing processes is the step size, or step size value, which can refer to the distance between successive or continuous material deposits in the additive manufacturing process. The step size can be calculated, specified, or otherwise determined in various ways, such as as a fixed value or range of values, and can be based on the bead size (e.g., diameter) of the deposited material in the additive manufacturing process. In some 3D printing systems, the step size is measured as the distance between consecutively deposited beads (e.g., center-to-center distance).
[0012] The step size in the additive manufacturing toolpath can affect the part quality of the constructed object. If the step size at a toolpath segment in the additive manufacturing process is too small (e.g., a relatively short distance between consecutively deposited beads), the 3D printed product may have deformation caused by unintended material overlap or buildup at such segments. If the step size at a toolpath segment in the additive manufacturing process is too large (e.g., a relatively long distance between consecutively deposited beads), the 3D printed product may have gaps or missing material in the build layers, which can also lead to product defects.
[0013] A key feature of additive manufacturing processes is the allowable stepper range. The allowable stepper range specifies the range of stepper values in the 3D printing process that will not result in product defects due to material deposition, and this range can be user-configurable or user-specified. The stepper range can be specified as a range of values within a maximum and minimum stepper value. The maximum stepper value can be specified based on the diameter of the deposited material beads, for example, equal to the bead diameter, or as a function of the bead diameter. The minimum stepper value can be specified as a numerical value or a percentage of the maximum stepper value, such as 90% of the maximum stepper value. By adhering to the allowable stepper range specified for the additive manufacturing process through toolpaths, the quality of 3D printed products can be improved, and defects in the manufactured parts can be reduced or eliminated.
[0014] One challenge in modern 3D printing processes is constructing toolpaths within permissible stepover ranges, especially as 3D object designs and 3D printed products continue to increase in size and complexity. For curved or circular parts (e.g., constructed via arc additive manufacturing machines), it may be further advantageous to construct such parts by using shorter zigzag toolpaths between the parts' near boundaries, rather than by moving along long horizontal toolpaths across the entire width of the part. Manually constructing zigzag or weaving toolpaths for additive manufacturing of 3D object designs is practically impractical, as doing so would require individually constructing toolpaths that typically involve hundreds to thousands of weaving passes across each slice of the product, potentially requiring the construction of hundreds or thousands of slices.
[0015] Furthermore, satisfying the step size constraints in manual toolpath construction further complicates this process. Ensuring compliance with the step size range of each individual slicing toolpath will require significant time and resources, even for simple 3D objects. Meeting the allowable step size range in such zigzag toolpaths can be particularly challenging because the curvature and arcs of circular parts can cause the deposition distance to violate the maximum step size value on the longer arc boundary, or the minimum step size value when weaving and zigzagging from the shorter arc boundary, or both. For slicing regions of 3D objects where the toolpath may zigzag between shorter and longer arc boundaries, violating the minimum step size value along the shorter arc can lead to foreign material deposition and manufacturing defects. Violating the maximum step size value along the longer arc can lead to missing material and incomplete product manufacturing, similarly introducing part defects.
[0016] The disclosure herein provides systems, methods, apparatus, and logic for step-based toolpath generation from divided slice regions. The toolpath generation techniques described herein provide automated and intelligent additive manufacturing toolpath generation techniques that take into account the step range in a zigzag toolpath generating slices of 3D objects. As further described herein, the toolpath generation techniques of the present invention can divide a slice region into multiple distinct segments, for example, based on a segmentation criterion applied to the central axis of the slice region. Different segments can be evaluated and modified individually, thereby allowing increased flexibility and toolpath adaptability that takes into account the specific geometric characteristics of the segments.
[0017] The toolpath generation technique disclosed herein supports segment evaluation on a per-segment basis. For example, individual segments can be evaluated to determine whether sub-toolpaths of the segment (e.g., zigzag toolpaths of the segment) violate an allowable step size range. As used herein, a sub-toolpath can refer to an additive manufacturing toolpath used for slicing region segments and can be combined with other sub-toolpaths to form a toolpath for the slicing region. If a sub-toolpath violation of an allowable step size range is detected, the segment is modified. Example segment modifications of the invention include segmentation and boundary extension as described in more detail herein.
[0018] Segment modification can continue until each of the multiple segments of the slice region satisfies the allowable step range of the segmented sub-toolpath. Sub-toolpath generation can be performed on each segment, and then the toolpath for the slice region can be generated as a combination of sub-toolpaths generated for the segments of the divided slice region. Through slice region division, segment modification, and sub-toolpath generation, slice region toolpaths can be automatically generated with improved efficiency, intelligence, and effectiveness. The toolpath generation features of this invention can therefore improve the speed of the 3D printing process through efficient toolpath generation and improve part quality by reducing step violations in the 3D printing process.
[0019] The tool path generation features and technical benefits of these and other inventions are described in more detail herein.
[0020] Figure 1 An example of a computing system 100 supporting step-based toolpath generation through divided slice regions is shown. The computing system 100 can take the form of a single or multiple computing devices, such as application servers, compute nodes, desktop or laptop computers, smartphones or other mobile devices, tablets, embedded controllers, and any related or applicable technology devices. In some implementations, the computing system 100 hosts, supports, executes, or implements applications supporting any number of aspects of additive manufacturing, such as toolpath generation and 3D printing of physical objects.
[0021] This serves as an example implementation of any combination of tool path generation features described in this paper. Figure 1 The computing system 100 shown includes a slice region access engine 108 and a tool path generation engine 110. The computing system 100 can implement engines 108 and 110 (including their components) in various ways, such as as hardware and programming. Programming for engines 108 and 110 can take the form of processor-executable instructions stored on a non-transient machine-readable storage medium, and the hardware for engines 108 and 110 can include processors that execute these instructions. The processor can take the form of a single-processor or multi-processor system, and in some examples, the computing system 100 uses the same computing system features or hardware components (e.g., a common processor or a common storage medium) to implement multiple engines.
[0022] In operation, the slice region access engine 108 can access slice regions of a digital object design (e.g., a CAD object) of a product to be manufactured using additive manufacturing processes. A slice region can refer to any portion of a slice applicable to additive manufacturing processes, and can include the entire slice or a sub-slice of the digital object design. Access to slice regions by the slice region access engine 108 can be based on user input, such as accessing a specific slice region selected by the user to generate a zigzag toolpath. As another example, the slice region access engine 108 can identify and access slice regions based on the curvature of the part in the digital object design or according to configured application parameters, for which zigzag toolpaths have been configured, specified, or selected for the portion of the digital object design. Figure 1 In the example, slice region access engine 108 accesses slice regions designed for digital objects shown as slice region 120.
[0023] During operation, the toolpath generation engine 110 can automatically generate toolpaths for the slice region 120 based on the allowable step size range specified for the additive manufacturing process. Figure 1In the example, tool path generation engine 110 generates a tool path 130 for the visited slice region 120. Tool path generation engine 110 can generate tool path 130 by determining the central axis of slice region 120 and dividing slice region 120 into multiple segments based on the central axis. The division of slice region 120 by tool path generation engine 110 can be performed based on a segmentation criterion, which can include any constraints, conditions, requirements, or other criteria by which tool path generation engine 110 can divide the slice region. In some implementations, the segmentation criterion can include a criterion applied to the central axis of slice region 120, and tool path generation engine 110 can identify the segmentation between different segments in slice region 120 at (and through) a point 220 on the central axis 210 that satisfies the segmentation criterion.
[0024] When generating toolpath 130, toolpath generation engine 110 can also evaluate each segment of the multiple segments of the divided slice region based on the allowable step range, and modify the given segment in response to determining that a sub-toolpath for a given segment would violate the allowable step range. Toolpath generation engine 110 can also generate sub-toolpaths for each of the multiple segments of the divided slice region (including any modified segments), and generate toolpath 130 for slice region 120 as a combination of sub-toolpaths generated for each of the multiple segments of the divided slice region. In operation, toolpath generation engine 110 can also provide toolpath 130 to a 3D printer to support the physical fabrication of products via additive manufacturing processes.
[0025] These and other features of the tool path generation technique of the present invention will now be described in more detail.
[0026] Figure 2 An example of dividing a sliced region into multiple segments according to the present invention is shown. As an example, Figure 2 Example features are described using the tool path generation engine 110, but any suitable implementation is envisioned in this paper.
[0027] The tool path generation engine 110 can divide the slice region 120 into multiple segments to support step-based tool path generation. A segment can refer to any sub-part, partition, or portion of the slice region. As described herein, the tool path generation engine 110 can apply any number of segmentation criteria to determine portions, locations, points, or any suitable divisions within the slice region 120, dividing the slice region 120 into different segments at these portions, locations, points, or any suitable divisions. In some implementations, the tool path generation engine 110 can divide the slice region 120 into different segments based on the central axis of the slice region 120. The central axis can provide an indicator or representative curve of the overall shape of the slice region, and the tool path generation engine 110 can utilize the central axis of the slice region 120 to determine at which points the slice region 120 is divided into multiple segments.
[0028] exist Figure 2 In the example shown, the tool path generation engine 110 determines the central axis 210 of the slice region 120, and can do so via any suitable central axis determination technique. For central axis determination, the tool path generation engine 110 can apply or implement any suitable technique, algorithm, computation, or logic to determine the central axis of any type of slice region. The tool path generation engine 110 can then determine the points of the central axis 210 that satisfy the applied segmentation criteria, and segment the slice region 120 into different segments via the identified points.
[0029] By dividing the slice region 120 into different segments, the toolpath generation engine 110 can create different regions with different characteristics and generate separate toolpaths for each segment. Therefore, the toolpath generation engine 110 can effectively divide the slice region 120 into different sub-parts with different characteristics and generate corresponding sub-toolpaths for the divided segments, rather than generating a single toolpath for the entire slice region 120. The segmentation of the slice region 120 into segments can be intentional and controlled, as guided by the segmentation criteria used to divide the slice region 120. Such segmentation criteria allow for segmentation that can specifically conform to the generation of individual sub-toolpaths, and the toolpath generation engine 110 can apply any number of segmentation criteria to divide the slice region 120. Various examples of segmentation criteria are described herein.
[0030] As a first example, the tool path generation engine 110 can apply a straight line segmentation criterion that is satisfied at the beginning or end of a straight line portion of the central axis 210. Using the straight line segmentation criterion, the tool path generation engine 110 can segment the slice region 120 using straight (or mirrored) boundaries. This can be for portions of the slice region 120 along which the central axis 210 is a straight line, and the tool path generation engine 110 can divide the slice region 120 into straight line boundary segments using the straight line segmentation criterion applied to the central axis 210. Since zigzag tool paths do not need to consider curvature variations that may lead to step violations, and sub-tool path generation can be performed quickly and efficiently for such segmented straight lines, sub-tool path generation for segmented straight lines can be particularly effective.
[0031] As another example, the toolpath generation engine 110 can apply a curvature segmentation criterion, satisfying the criterion when the curvature in the middle exceeds a curvature threshold. The curvature threshold can be a predetermined value, either user-specified or configured as a system parameter. In some implementations, the curvature threshold is set to a curvature value at which a permissible step range would be violated, for example, for a zigzag toolpath generated for a portion of slice region 120 with a curved boundary that causes the central axis 210 to exceed the curvature threshold. Therefore, the toolpath generation engine 110 can determine to divide such portions of slice region 210 into separate segments and address such segments individually, allowing for more efficient and effective toolpath generation for different segments.
[0032] As another example, the toolpath generation engine 110 can apply an inflection point segmentation criterion that is satisfied at an inflection point in the central axis 210 where the concavity of the central axis 210 changes. This change in the concavity of the central axis 210 can reflect a change in the concavity of the boundary of the slice region 120, at which point the toolpath generation engine 110 can segment the slice region 120 into individual segments. By doing so, the toolpath generation engine 110 can reduce (e.g., eliminate) segments with multiple boundary curve concavities that could lead to step size violations due to excessively drastic changes in boundary curvature for the required step size range of material deposition. Therefore, the toolpath generation engine 110 can address this situation by dividing these slice portions into different segments via the inflection point segmentation criterion and generating corresponding sub-toolpaths for the segments segmented by the inflection point segmentation criterion.
[0033] The tool path generation engine 110 can therefore apply segmentation criteria, including straight line segmentation criteria, curvature segmentation criteria, inflection point segmentation criteria, or any combination thereof. Figure 2In the example, the tool path generation engine 1120 applies segmentation criteria to the slice region 120 and processes the central axis 210 to determine points along the central axis 210 that satisfy the segmentation criteria. Specifically, the tool path generation engine 1120 determines three (3) points along the central axis 210 that satisfy the segmentation criteria. Figure 2 It is marked as point 220. Figure 2 In the example, the tool path generation engine 110 determines that the leftmost point of point 220 satisfies the straight line segmentation criterion, the center point of point 220 satisfies the inflection point segmentation criterion, and the rightmost point of point 220 satisfies the straight line segmentation criterion. Through the points 220 on the intermediate axis 210 that satisfy the segmentation criteria, the tool path generation engine 110 can divide the slice region 120 into multiple different segments.
[0034] While some examples of segmentation criteria are presented regarding the central axis in this paper, the tool path generation engine 110 can utilize segmentation criteria applicable through any suitable analysis of the slice region 120. For example, segmentation criteria can be applied directly to the boundaries of the slice region or any relevant geometric features, rather than to the central axis. Through such geometric analysis, the tool path generation engine 110 can determine the points at which the slice region 120 is divided to form segments for subsequent evaluation and sub-tool path generation.
[0035] The tool path generation engine 110 can divide the slice region 120 from the determined point 220 by dividing the slice region via a dividing line passing through point 220. For the leftmost point in point 220 that satisfies the straight-line division criterion, the tool path generation engine 110 can insert a dividing line passing through that point, and the dividing line can separate different segments of the slice region 120. The tool path generation engine 110 can insert the dividing line in any suitable manner and according to any configurable or specified parameters. For example, the tool path generation engine 110 can insert a dividing line that passes through the determined point 220 that satisfies the division criterion by connecting points perpendicular to the slice region boundary and passing through a specific point on the central axis 210, or in any other suitable manner, at a specified angle (e.g., as a perpendicular line).
[0036] As an example, the tool path generation engine 110 can insert dividing lines by adaptively determining the angle of the insertion dividing line to divide different segments. In doing so, the tool path generation engine 110 can adjust the angle of the inserted dividing line for straight or low-curvature segments to reduce the length difference between longer and shorter boundaries of adjacent segments (e.g., those with relatively high curvature). This allows for a reduction in boundary length differences between adjacent segments and lowers the likelihood of step violations.
[0037] In order to form Figure 2In the example, for the segmentation of slice region 120, tool path generation engine 110 inserts three (3) dividing lines. Each dividing line intersects with a corresponding point 220 that satisfies the segmentation criteria. In doing so, tool path generation engine 110 can divide slice region 120 into four (4) distinct segments via the determined points 220, and... Figure 2 The segments are designated as segments 231-234. By dividing the slice region 120 into multiple distinct segments 231-234, the tool path generation engine 110 can separate different parts of the slice region 120 and generate sub-tool paths for each segment individually. In this regard, step violation determination and subsequent adjustments can be performed by evaluating each segment, rather than generating a single tool path covering the entire slice region 120. This improves the efficiency of tool path generation because problematic segments can be quickly and individually identified and addressed accordingly without requiring a global evaluation and tool path modification of the entire slice region 120.
[0038] This paper envisions various segmented evaluation and modification features to generate sub-tool paths for multiple segments of a divided slice region. The following steps... Figures 3 to 5 ,use Figure 2 The slice region with segments 231 to 234 is used as a continuing example to illustrate the example modification techniques and tool path generation techniques.
[0039] Figure 3 An example toolpath generation according to the invention is shown by dividing a sliced region into selected segments. To support the toolpath generation technique of the invention, the toolpath generation engine 110 can evaluate each segment of the divided sliced region based on an allowable step size range specified for the additive manufacturing process. As used herein, the evaluation of a slice segment may include determining whether a sub-toolpath of that segment would violate the allowable step size range.
[0040] The evaluation of segments by the tool path generation engine 110 can vary depending on the format, type, or characteristics of the segmented sub-tool paths for which a step range violation has been determined. This document envisions any suitable sub-tool path, and the tool path generation engine 110 can support the generation or evaluation of any type of sub-tool path. As a continuing example used herein, the tool path generation engine 110 can generate or evaluate tool paths (including sub-tool paths) in the form of zigzag tool paths, which weave back and forth from one boundary of a slice region or segment to another. Such a zigzag tool path can traverse from one boundary to another, advance a small distance, and weave back from the other boundary to the first boundary. The distance increment along the segment boundary can be called the weave increment, and the weave increment value can be boundary-specific. In such a zigzag tool path, the number of weave increments can be equal for the two boundaries in which the zigzag tool path weaves. Therefore, the weave increment value in the zigzag tool path can be evaluated along the two boundaries of the segment for a step range violation.
[0041] When performing segmentation evaluation, the tool path generation engine 110 does not need to actually generate sub-tool paths for determining step range violations. Instead, the tool path generation engine 110 can evaluate the boundary geometry or other properties of the segment when determining step range violations. For zigzag tool paths, the tool path generation engine 110 can evaluate a given segment by considering the two boundaries between which sub-tool paths that allow step range processing of the given segment are woven together.
[0042] In some implementations, the tool path generation engine 110 may evaluate a sub-tool path in which the weaving increment along the longer boundary of a segment is assigned the maximum step size within the step size range. The tool path generation engine 110 may then determine whether the weaving increment in the shorter boundary violates the minimum step size range value of the allowed step size range. In doing so, the tool path generation engine 110 may evaluate a given segment by dividing the longer boundary of the given segment into points, wherein the interval between adjacent points along the longer boundary is equal to the maximum step size value within the allowed step size range; and by dividing the shorter boundary of the given segment into the same number of points as the longer boundary, wherein adjacent points along the shorter boundary are equidistant.
[0043] In this way, the tool path generation engine 110 can set the weave increment along the longer boundary to the maximum step value and divide the shorter boundary into an equal number of weave increments. Then, in response to determining that the equidistant interval between adjacent points along the shorter boundary (e.g., the weave increment along the shorter boundary) is less than the minimum step value in the allowed step range, the tool path generation engine 110 can determine that a sub-tool path for a given segment will violate the allowed step range.
[0044] As another example, the tool path generation engine 110 can evaluate a sub-tool path in which the weaving increment along the longer boundary of a segment is assigned the minimum step size value (or any other value less than the maximum step size value) within the step size range. In this example, the tool path generation engine 110 can determine whether the weaving increment in the longer boundary violates the maximum step size range value of the allowed step size range. Therefore, the tool path generation engine 110 can evaluate a given segment by dividing the shorter boundary of the given segment into points, wherein the interval between adjacent points along the shorter boundary is equal to the minimum step size value (or other configuration value) within the allowed step size range; and dividing the longer boundary of the given segment into the same number of points as the shorter boundary, wherein adjacent points along the longer boundary have equidistant intervals.
[0045] By doing so, the tool path generation engine 110 can set the weave increment along the shorter boundary to a minimum step size (or other configuration value) and divide the longer boundary into an equal number of weave increments. Then, in response to determining that the equidistant interval between adjacent points along the longer boundary (e.g., the weave increment along the longer boundary) is greater than the maximum step size value in the allowed step size range, the tool path generation engine 110 can determine that a sub-tool path for a given segment will violate the allowed step size range.
[0046] As another example, the tool path generation engine 110 can evaluate a given segment based on the distance difference between the longer and shorter boundaries where sub-tool paths will weave together. In response to determining that this distance difference is greater than a distance threshold, the tool path generation engine 110 can determine that the segment violates an allowed step size range. The distance threshold can be specified as a function of the maximum or minimum step size value. This comparison using a distance threshold calculated based on the maximum or minimum allowed step size value is functionally equivalent to determining a violation by dividing the longer and shorter boundaries into equidistant intervals, as described above.
[0047] In any of the ways described herein, the tool path generation engine 110 can evaluate individual segments of a divided slice region. The evaluation can be based on the sub-tool paths of each segment and whether such sub-tool paths would violate the allowed step range. In response to determining that a given segment would violate the allowed step range (e.g., a zigzag tool path for a given segment would violate the allowed step range), the tool path generation engine 110 can perform segment modifications to resolve the detected step violation.
[0048] As an example, the tool path generation engine 110 can modify a given segment by splitting it into two separate segments. In order to... Figure 3To illustrate with an example, the tool path generation engine 110 can evaluate each of segments 231-234 individually and determine that segments 232 and 233 violate the allowed step range. In response to this violation determination, the tool path generation engine 110 can split each of segments 232 and 233 into two separate segments. Figure 3 As shown, the tool path generation engine 110 can divide segment 232 into segment 311 and segment 312. In a similar manner, the tool path generation engine 110 can divide segment 233 into segment 321 and segment 322.
[0049] The tool path generation engine 110 can divide a given segment into multiple segments in any number of ways. In some examples, the tool path generation engine 110 can divide the given segment into two segments by dividing it along the central axis of the slice region 120. As another example, the tool path generation engine 110 can divide the given segment along the central axis of the given segment itself. As yet another example, the tool path generation engine 110 can divide a given segment into two segments of equal area (or within an area difference threshold). The tool path generation engine 110 can use any suitable segmentation scheme, configuration, and parameters to segment the violated segments, including dividing the segment into three (3) segments, four (4) segments, or more segments.
[0050] In some examples, the toolpath generation engine 110 can further evaluate any modified segments, including, for example, the split segments of segments 311, 312, 321, and 322. Then, if any modified segment (e.g., its sub-toolpaths) violates the allowed step range, the toolpath generation engine 110 can perform further modifications. Figure 3 In the example, the tool path generation engine 110 can evaluate segmentation segments 311, 312, 321, and 322, and in response to determining that a corresponding segment violates the allowed step range, further modify any of these segmentation segments 311, 312, 321, and 322.
[0051] exist Figure 3In the example, the tool path generation engine 110 determines that the sub-tool paths of segments 311, 312, 321, and 322 satisfy the allowed step range and do not require further modification. Therefore, the divided slice region (after modification) can include segment 231, segments 311 and 312 (modified from segment 232), segments 321 and 322 (modified from segment 233), and segment 234. The tool path generation engine 110 can then generate sub-tool paths for each of these segments 231, 311, 312, 321, 322, and 234.
[0052] The tool path generation engine 110 can generate sub-tool paths automatically and in any suitable manner. Since the evaluation of segments by the tool path generation engine 110 may include subdividing the segment boundaries into equidistant points / equidistant intervals (e.g., weaving increments), sub-tool path generation can follow a similar process. To generate sub-tool paths, the tool path generation engine 110 may connect different points on the segment boundaries (or within a threshold distance from the boundaries, such as half the maximum step size) to weave back and forth between the segment boundaries. In doing so, the tool path generation engine 110 can generate sub-tool paths for each segment.
[0053] Figure 3 The diagram shows examples of sub-tool paths for each of the segments 231, 311, 312, 321, 322, and 234 of the divided slice region. Figure 3 As seen in the illustrative example, each sub-toolpath can zigzag between the corresponding boundaries of a given segment. The toolpath generation engine 110 can then combine the sub-toolpaths to form the toolpath for the entire slice region 120, which... Figure 3 This is shown as tool path 130. Such combinations may include linking the endpoints of a sub-tool path to the start point of another sub-tool path. Figure 3 Illustrative examples of sub-toolpath generation and merging of sub-toolpaths to generate slice region toolpaths are provided, and the toolpath generation engine 110 can implement any suitable toolpath generation capability to flexibly and efficiently generate zigzag toolpaths for each segment of a slice region. Although Figure 3 An example of segmented modification is provided, but this article envisions other examples, such as... Figure 4 and Figure 5 Further description.
[0054] Figure 4 An example tool path generation according to the present invention is shown by dividing all segments of a slice region. Figure 4In the example, the tool path generation engine 110 individually evaluates segments 231, 232, 233, and 234 of the divided slice region, doing so in any manner described herein. In this example, the tool path generation engine 110 determines that segments 232 and 233 violate the allowed step size range. In response to this determination, the tool path generation engine 110 can modify the segmentation of the slice region by dividing all segments of the slice region, including those that do not violate the allowed step size range.
[0055] exist Figure 4 In the example, the tool path generation engine 110 modifies each of segments 231, 232, 233, and 234 by dividing the segment into multiple sub-segments. Specifically, the tool path generation engine 110 may subdivide segment 231 into segments 411 and 412, segment 232 into segments 421 and 422, segment 233 into segments 431 and 432, and segment 234 into segments 441 and 442. Thus, even if the sub-tool paths of segments 231 and 234 do not violate the allowed step range, the tool path generation engine 110 may still subdivide each of segments 231 and 234 into two additional separate segments. The segmentation modifications made by dividing segments 231-234 can be performed in any manner described herein.
[0056] In a manner consistent with that described herein, the toolpath generation engine 110 can also evaluate any modified segments, including segments 411, 412, 421, 422, 431, 432, 441, and 442. Further modifications may include splitting all segments, including the modified segments, in response to determining that one or more of segments 411, 412, 421, 422, 431, 432, 441, and 442 (e.g., their sub-toolpaths) would violate the allowed step range.
[0057] When it is determined that the absence of segments (including modified segments) would violate the allowed step range, the toolpath generation engine 110 can generate sub-toolpaths for the divided slice regions. Figure 4In the example, the tool path generation engine 110 determines that segments 411, 412, 421, 422, 431, 432, 441, and 442 do not violate the allowed step range, and therefore the divided slice region includes segments 411, 412, 421, 422, 431, 432, 441, and 442. The tool path generation engine 110 can then generate separate sub-tool paths for each of segments 411, 412, 421, 422, 431, 432, 441, and 442, in any manner described herein. Next, the tool path generation engine 110 can form the tool path 130 of the slice region by combining the sub-tool paths generated for segments 411, 412, 421, 422, 431, 432, 441 and 442.
[0058] Figure 3 and Figure 4 The example features demonstrate that the tool path generation engine 110 can perform various segmentation modifications to resolve violated segments. As another example modification, the tool path generation engine 110 can perform boundary expansion modifications, which will be discussed in the following references. Figure 5 It was described.
[0059] Figure 5 An example tool path generation based on the invention, performed by extending the boundaries of selected segments, is shown. Figure 5 In the example, the tool path generation engine 110 individually evaluates segments 231, 232, 233, and 234 of the divided slice region, doing so in any manner described herein. In this illustrative example, the tool path generation engine 110 determines that segments 232 and 233 violate the allowed step range. In response to this determination, the tool path generation engine 110 can modify segments 232 and 233 to resolve the step range violation by extending the boundaries of segments 232 and 233.
[0060] When extending the boundary of a violating segment, the tool path generation engine 110 can extend the boundary of the violating segment to include a portion of an adjacent segment. The selection of specific adjacent segments and the degree of boundary extension can be configurable and controllable via various extension parameters. In some examples, the tool path generation engine 110 may extend the boundary of a violating segment to include a portion of an adjacent non-violating segment and determine not to extend that boundary into another violating segment. To achieve this... Figure 5To illustrate, the tool path generation engine 110 can determine to extend the boundary of the violating segment 232 into the adjacent segment 231 (not violated), but not into the adjacent segment 233 (violated). In a consistent manner, the tool path generation engine 110 can determine to extend the boundary of the violating segment 233 into the adjacent segment 234 (not violated), but not into the adjacent segment 232 (violated).
[0061] The extent to which the tool path generation engine 110 extends boundaries can be controllable, for example, by using a pre-fixed value (e.g., a fixed length value) or the percentage of boundaries of a violated segment, adjacent segment, or a combination thereof. As another example, the tool path generation engine 110 can extend the boundaries of a given segment until the given segment no longer violates the allowed step range, which can be determined through segment evaluation or similar calculations. While some examples are provided in this document, the tool path generation engine 110 can apply any suitable criteria, parameters, and configurations when extending the boundaries of violating segments into adjacent segments for segment modification.
[0062] exist Figure 5 In the example, the tool path generation engine 110 determines to modify segment 232 by extending the left boundary of segment 232 (which is in the form of an inserted dividing line) into the adjacent segment 231. Furthermore, the tool path generation engine 110 determines to modify segment 233 by extending the right boundary of segment 233 (which is in the form of an inserted dividing line) into the adjacent segment 234. Through this boundary extension, the tool path generation engine 110 can reduce the difference between boundary lengths for which the weaving increment of the zigzag sub-tool path might lead to a step violation. Therefore, the sub-tool path of the extended segment can satisfy the step range and improve the quality of the 3D printed product. In some implementations, the tool path generation engine 110 can evaluate any extended segment for step violation and can further modify any determined violating segment.
[0063] The toolpath generation engine 110 can generate sub-toolpaths for divided slice regions (including any extended segments). Figure 5 In the example, the tool path generation engine 110 determines that after boundary expansion, segments 231 (reduced), 232 (expanded), 233 (expanded), and 234 (reduced) do not violate the allowed step range. The tool path generation engine 110 can then generate sub-tool paths for segments 231 (reduced), 232 (expanded), 233 (expanded), and 234 (reduced), and combine the generated sub-tool paths to form a tool path 130 generated for the slice region 120.
[0064] While many examples herein are presented in the context of 2D slice regions, the tool path generation features of the present invention are not limited thereto. For example, the tool path generation engine 110 can consistently apply any of the tool path generation features described herein to 3D freeform tool path regions. In such a 3D region, tool paths can be woven between any two sides of the freeform region, for example, by planes intersecting as points in the 3D region. In doing so, the tool path generation engine 110 can perform segmentation and individual segment evaluation and modification in any manner described herein, as if applied to a freeform region.
[0065] In many of the examples provided in this paper, step violations are discussed at segment boundaries. The toolpath generation engine 110 can generate sub-toolpaths that also satisfy the allowed step range across the entire sub-toolpath (e.g., in toolpath sections woven between segment or slice region boundaries), and thus improve the efficiency of 3D part manufacturing by reducing (e.g., eliminating) step violations.
[0066] Figure 6 An example of logic 600 that the system can implement to support step-based toolpath generation through divided slice regions is shown. For example, computing system 100 can implement logic 600 as hardware, executable instructions stored on a machine-readable medium, or a combination of both. Computing system 100 can implement logic 600 via slice region access engine 108 and toolpath generation engine 110, through which computing system 100 can execute or implement logic 600 as a method to support step-based toolpath generation through divided slice regions. The following description of logic 600 is provided using slice region access engine 108 and toolpath generation engine 110 as examples. However, various other implementation options for the system are possible.
[0067] In implementing logic 600, the slice region access engine 108 can access slice regions (602) of the digital object design of the product to be manufactured by the additive manufacturing process. In implementing logic 600, the toolpath generation engine 110 can automatically generate toolpaths (604) based on the allowable step range specified for the additive manufacturing process, including by determining the central axis of the slice region (606) and dividing the slice region into multiple segments based on the central axis, including by identifying the divisions between different segments in the slice region at points on the central axis that satisfy the division criteria (608).
[0068] The tool path generation engine 110 can also generate tool paths by the following steps: evaluating a given segment among multiple segments of a divided slice region based on an allowed step range (610); modifying the given segment in response to determining that a sub-tool path of the given segment would violate the allowed step range (612); generating a sub-tool path for each of the multiple segments of the divided slice region (including any modified segments) (614); and generating the tool path of the slice region as a combination of the sub-tool paths generated for each of the multiple segments of the divided slice region (616).
[0069] In implementing logic 600, the toolpath generation engine 110 can also provide toolpaths to the 3D printer to support the physical fabrication of the product via additive manufacturing processes. In some implementations, the toolpath engine 110 can control, implement, or otherwise access the 3D printer, and the toolpath generation engine 110 can use toolpaths generated for sliced regions to physically fabricate the product.
[0070] Figure 6 The illustrated logic 600 provides an illustrative example of how computing system 100 can support, implement, or provide the capability for step-based toolpath generation through partitioned slice regions. Additional or alternative steps in logic 600 are envisioned herein, including any toolpath generation techniques described herein with respect to slice region access engine 108, toolpath generation engine 110, or a combination of both.
[0071] Figure 7 An example of a computing system 700 supporting step-based toolpath generation through divided slice regions is shown. The computing system 700 may include a processor 710, which may take the form of a single processor or multiple processors. One or more processors 710 may include a central processing unit (CPU), a microprocessor, or any hardware device adapted to execute instructions stored on a machine-readable medium. The computing system 700 may include a machine-readable medium 720. The machine-readable medium 720 may take the form of any non-transient electronic, magnetic, optical, or other physical storage device storing executable instructions, such as... Figure 7 The slice region access instruction 722 and tool path generation instruction 724 are shown. Therefore, the machine-readable medium 720 can be, for example, random access memory (RAM) (e.g., dynamic RAM (DRAM)), flash memory, spin torque memory, electrically erasable programmable read-only memory (EEPROM), a storage drive, optical disc, etc.
[0072] The computing system 700 can execute instructions stored on the machine-readable medium 720 via the processor 710. Executing the instructions (e.g., slice region access instruction 722 and / or tool path generation instruction 724) can cause the computing system 700 to perform any of the tool path generation features described herein, including any feature based on the slice region access engine 108, the tool path generation engine 110, or a combination of both.
[0073] For example, executing slice region access instruction 722 by processor 710 enables computing system 700 to access slice regions of a digital object design for a product to be manufactured using an additive manufacturing process. Executing toolpath generation instruction 724 by processor 710 enables computing system 700 to automatically generate toolpaths based on a permissible step range specified for the additive manufacturing process, including determining the central axis of the slice region and dividing the slice region into multiple segments based on the central axis. The division may include identifying the segmentation between different segments within the slice region at points on the central axis that satisfy the segmentation criteria.
[0074] The execution of tool path generation instructions 724 by processor 710 can also cause computing system 700 to generate tool paths by the following steps: evaluating a given segment among multiple segments of a divided slice region based on an allowed step range; modifying the given segment in response to determining that a sub-tool path of the given segment would violate the allowed step range; generating sub-tool paths for each of the multiple segments of the divided slice region (including any modified segments); and generating the tool path of the slice region as a combination of sub-tool paths generated for each of the multiple segments of the divided slice region.
[0075] The execution of toolpath generation instructions 724 by processor 710 can also enable computing system 700 to provide toolpaths to 3D printers to support the physical fabrication of products via additive manufacturing processes. In some implementations, computing system 700 itself includes a 3D printer, and the execution of toolpath generation instructions 724 by processor 710 can also enable computing system 700 to physically fabricate products using toolpaths generated for sliced regions.
[0076] Any additional or alternative tool path generation features as described herein may be implemented via slice region access instruction 722, tool path generation instruction 724, or a combination of both.
[0077] The systems, methods, apparatuses, and logic described above, including slice region access engine 108 and tool path generation engine 110, can be implemented in many different ways using many different combinations of hardware, logic, circuitry, and executable instructions stored on a machine-readable medium. For example, slice region access engine 108, tool path generation engine 110, or combinations thereof may include circuitry in a controller, microprocessor, or application-specific integrated circuit (ASIC), or may be implemented using discrete logic or components or combinations of other types of analog or digital circuitry combined on a single integrated circuit or distributed among multiple integrated circuits. A product (e.g., a computer program product) may include a storage medium and machine-readable instructions stored on the medium that, when executed in a terminal, computer system, or other device, cause the device to perform operations according to any of the above descriptions (including any features of slice region access engine 108, tool path generation engine 110, or combinations thereof).
[0078] The processing power of the systems, devices, and engines described herein (including slice region access engine 108 and tool path generation engine 110) can be distributed across multiple system components, such as across multiple processors and memories, optionally including multiple distributed processing systems or cloud / network elements. Parameters, databases, and other data structures can be stored and managed separately, can be combined into a single memory or database, can be logically and physically organized in many different ways, and can be implemented in many ways, including data structures such as linked lists, hash tables, or implicit storage mechanisms. Programs can be parts of a single program (e.g., subroutines), standalone programs, distributed across several memories and processors, or implemented in many different ways, such as in libraries (e.g., shared libraries).
[0079] While the above examples illustrate various approaches, many more implementations are possible.
Claims
1. A method comprising: Through the calculation system: Access (602) the slice area (120) of the digital object design of the product to be manufactured by additive manufacturing process. Automatically generate (604) toolpaths (130) based on the allowable step size range specified for the additive manufacturing process, including: Determine the central axis (210) of the slice region (120) (606); The slice region (120) is divided (608) into multiple segments (231, 232, 233, 234) based on the central axis (210) of the slice region (120), including identifying the segmentation between different segments in the slice region (120) at points (220) on the central axis (210) that satisfy the segmentation criteria; The evaluation is based on the allowed step size range, assessing a given segment among the plurality of segments (231, 232, 233, 234) of the divided slice region (610); In response to determining that the sub-tool path of the given segment would violate the allowed step range, the given segment is modified (612); For each of the plurality of segments of the divided slice region, including any modified segments (231, 232, 233, 234, 311, 312, 321, 322, 411, 412, 421, 422, 431, 432, 441, 442), generate a (614) sub-tool path; and The tool path (130) of the slice region (120) is generated (616) as a combination of the sub-tool paths generated for each of the plurality of segments of the divided slice region; and The tool path (130) is provided (618) to the 3D printer to support the physical manufacturing of the product through the additive manufacturing process.
2. The method according to claim 1, wherein, The segmentation criteria include: The straight line segmentation criterion is satisfied at the beginning or end of the straight line portion of the central axis (210); The curvature segmentation criterion is satisfied when the curvature in the middle exceeds the curvature threshold. Inflection point segmentation criterion: at the inflection point in the central axis (210), the concavity of the central axis (210) changes at the inflection point; Or any combination of the straight line segmentation criterion, the curvature segmentation criterion, or the inflection point segmentation criterion.
3. The method according to claim 1 or 2, wherein, The evaluation of the given segment includes: The longer boundary of the given segment is divided into multiple points, wherein the interval between adjacent points along the longer boundary is equal to the maximum step size within the allowed step size range. Divide the shorter boundary of the given segment into the same number of points as the longer boundary, wherein adjacent points along the shorter boundary are equidistant; and In response to determining that the equidistant interval between adjacent points along the shorter boundary is less than the minimum step size in the allowed step size range, it is determined that the sub-tool path of the given segment will violate the allowed step size range.
4. The method according to any one of claims 1 to 3, wherein, Modifying the given segment includes: dividing the given segment into two separate segments.
5. The method according to any one of claims 1 to 4, further comprising: The different segments among the multiple segments are divided into two other separate segments, wherein the sub-tool paths of the different segments will not violate the allowed step range.
6. The method according to any one of claims 1 to 3, wherein, Modifying the given segment includes: extending the boundary of the given segment to include a portion of the adjacent segments.
7. The method according to any one of claims 1 to 6, wherein, The allowable step size range for the additive manufacturing process is specified by the user.
8. A computing system (700), comprising: Processor (710); and A non-transient machine-readable medium (720) includes instructions (722, 724) that, when executed by the processor (710), cause the computing system (700) to: Access the slice area (120) of the digital object design for the product to be manufactured using additive manufacturing processes. Toolpaths (130) are automatically generated based on the allowable step size range specified for the additive manufacturing process, including through: Determine the central axis (210) of the slice region (120); The slice region (120) is divided into multiple segments (231, 232, 233, 234) based on the central axis (210) of the slice region (120), including the division between different segments in the slice region (120) by identifying points (220) on the central axis (210) that meet the segmentation criteria; The given segment (231, 232, 233, 234) of the divided slice region is evaluated based on the allowed step size range; The given segment is modified in response to the determination that the sub-tool path of the given segment will violate the allowed step range; For each of the plurality of segments of the divided slice region, including any modified segments (231, 232, 233, 234, 311, 312, 321, 322, 411, 412, 421, 422, 431, 432, 441, 442), generate a sub-tool path; and The tool path (130) of the slice region (120) is generated as a combination of the sub-tool paths generated for each of the plurality of segments of the divided slice region; as well as The toolpath (130) is provided to the 3D printer to support the physical manufacturing of the product through the additive manufacturing process.
9. The computing system (700) according to claim 8, wherein, The segmentation criteria include: The straight line segmentation criterion is satisfied at the beginning or end of the straight line portion of the central axis (210); The curvature segmentation criterion is satisfied when the curvature in the middle exceeds the curvature threshold; Inflection point segmentation criterion: at the inflection point in the central axis (210), the concavity of the central axis (210) changes at the inflection point; Or any combination of the straight line segmentation criterion, the curvature segmentation criterion, or the inflection point segmentation criterion.
10. The computing system (700) according to claim 8 or 9, wherein, The instructions (722, 724) cause the computing system (700) to evaluate the given segment by: The longer boundary of the given segment is divided into multiple points, wherein the interval between adjacent points along the longer boundary is equal to the maximum step size within the allowed step size range. Divide the shorter boundary of the given segment into the same number of points as the longer boundary, wherein adjacent points along the shorter boundary are equidistant; and In response to determining that the equidistant interval between adjacent points along the shorter boundary is less than the minimum step size in the allowed step size range, it is determined that the sub-tool path of the given segment will violate the allowed step size range.
11. The computing system (700) according to any one of claims 8 to 10, wherein, The instructions (722, 724) cause the computing system (700) to modify the given segment by dividing the given segment into two separate segments.
12. The computing system (700) according to any one of claims 8 to 11, wherein, The instructions (722, 724) also cause the computing system (700) to divide different segments of the plurality of segments into two other separate segments, wherein the sub-tool paths of the different segments will not violate the allowed step range.
13. The computing system (700) according to any one of claims 8 to 10, wherein, The instructions (722, 724) cause the computing system (700) to modify the given segment by extending the boundary of the given segment to include a portion of the adjacent segments.
14. The computing system (700) according to any one of claims 8 to 13, wherein, The allowable step size range for the additive manufacturing process is specified by the user.
15. A non-transient machine-readable medium (720) comprising instructions (722, 724) that, when executed by a processor (710), cause a computing system (100, 700) to perform the method according to any one of claims 1 to 7.