Angle-controlled annular-strip contour partition direction-changing scanning linear path planning method and angle-controlled annular-strip contour partition direction-changing scanning linear path planning system

By performing partitioned and directional scanning and filling of the additive manufacturing slice contour and optimizing the thermal cycling method, the problems of low forming accuracy and high thermal stress in traditional path planning are solved, and high-precision part forming is achieved.

CN122020956APending Publication Date: 2026-05-12NANJING ZHONGKE RAYCHAM TECH
View PDF 0 Cites 0 Cited by

Patent Information

Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
NANJING ZHONGKE RAYCHAM TECH
Filing Date
2025-12-18
Publication Date
2026-05-12

AI Technical Summary

Technical Problem

Traditional unidirectional linear scanning paths in additive manufacturing result in low forming accuracy, a single thermal cycling method, and are prone to residual stress and deformation, which can even lead to warping or breakage.

Method used

An angle-controlled annular-strip contour partitioned variable-direction scanning straight path planning method is adopted. By partitioning and filling the slice contour with variable-direction scanning, the intersection line of the scanning line and the contour line segment is generated, optimizing the thermal circulation mode and improving the internal stress distribution.

Benefits of technology

It improves the forming accuracy and part quality of additive manufacturing, avoids thermal stress and residual stress caused by single-path filling, and prevents warping or breakage.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN122020956A_ABST
    Figure CN122020956A_ABST
Patent Text Reader

Abstract

The invention relates to the technical field of additive manufacturing, and discloses an angle-controlled annular-strip contour partition turning scanning linear path planning method and system, and the method comprises the steps: obtaining contour data; if the contour data is annular, splitting and converting the contour data into two strip-shaped contours; according to an angle threshold value, each strip-shaped contour is segmented and cut into a plurality of sub-contours; performing inward bias on each sub-contour according to the bias parameter; for each biased sub-contour, generating an intersection line of a scanning line and a contour line segment, sequentially constructing a filling path, and outputting partition path data of the whole strip-shaped contour; and merging the partition path data of the two strip-shaped contours to obtain a partition turning scanning filling path of the complete annular contour. By means of the method, partition turning scanning filling is carried out on the annular or strip-shaped slice contour, the heat cycle mode is optimized, internal stress distribution is improved, and the part forming quality is improved.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This invention relates to the field of additive manufacturing technology, and in particular to path planning technology in additive manufacturing processes. Specifically, it relates to a method and system for planning straight-line paths for annular-strip contour partitioning and direction-changing scanning with angle control. Background Technology

[0002] Additive manufacturing (AM) is characterized by high-efficiency forming, high material utilization, and high-degree-of-freedom integrated forming of complex structures. It is now widely used in the manufacturing of critical load-bearing components in aerospace, shipbuilding, automotive, bridge, and construction industries. Laser-directed energy deposition (LDED) technology uses a laser as a heat source to melt powder or wire materials at high temperatures in a short time, and then rapidly cools and deposits them along different paths. However, the setting of parameters such as the shape, length, direction, and overlap spacing of the path directly affects the surface quality of the formed material and determines the thermal cycling pattern during the deposition process, resulting in different residual stresses between rapid melting and solidification.

[0003] Traditional unidirectional linear scanning path filling methods not only have low forming accuracy in areas with large contour curvature, but also have a single thermal cycling method in the forming process. When the path is too long, it is easy to generate large residual stress and deformation, resulting in warping or even breakage. Summary of the Invention

[0004] The purpose of this invention is to provide an angle-controlled ring-strip contour partitioning and direction-changing scanning straight path planning method. By partitioning and direction-changing scanning and filling the slice contour, the forming accuracy in the additive manufacturing process is optimized, internal stress is improved, part deformation is prevented, and the forming quality of additive manufacturing is improved.

[0005] According to a first aspect of the present invention, a method for planning a straight-line path for annular-strip contour partitioning with variable direction scanning, comprising the following steps: Obtain the contour data of the planar annular or strip shape of the sliced ​​additively manufactured part; If the contour data is a circular contour, then the circular contour is split into two strip contours. Each strip contour is segmented and cut into multiple sub-contours based on the angle threshold. Each cut sub-contour has its starting scanning direction and scanning line arrangement direction. Each sub-contour is offset inward according to the offset parameters; For each offset sub-contour, the intersection of the scan line and the contour line segment is generated according to its corresponding starting scan direction, scan line arrangement direction and fill spacing parameters. After constructing the fill path in sequence, the partition path data of the entire strip contour is output. Merge the partition path data of the two strip contours to obtain the partitioned directional scan fill path of the complete ring contour.

[0006] As an optional implementation, the annular contour is split into two strip contours, including the following steps: Input the inner and outer contour data of the ring, construct a straight line Line, and solve for the intersection points A and B of the line with the inner and outer contours by the dot product relationship between the adjacent points of the outer contour and the normal vector of Line; Calculate the center point of the inner contour, and construct the cutting rectangle by combining the intersection points A and B and the parameters dirA, dir, and _splitRecDelta. Determine the vertex coordinates of the cutting rectangle according to the sign of vAB.Dot (dirA). The four vertices P0, P1, P2, and P3 of the generated cutting rectangle are all outside the outer contour. Using the dividing rectangle as the clipping boundary (Clip) and the inner and outer contours as the clipping objects (Subject), the Clipper tool is called to divide the circular contour into two independent strip contours by combining the center point of the inner contour and the dirA direction.

[0007] As an optional implementation, each strip contour is segmented and trimmed into multiple sub-contours based on an angle threshold, including the following steps: Generate a scan line sequence Lines covering the current strip contour from dirA, dir, and step; traverse each line segment Segment of the strip contour, calculate the projection values ​​of its vertices on dirA and dir, determine the span of the contour in the dir direction, i.e. the minimum span value LayerMin and the maximum span value LayerMax, and match intersecting contour line segments for each scan line, storing them as the intersectSegArr array; For each scan line, construct a cutting plane based on its height value in the dir direction, calculate the intersection point with the matching line segment, record the line segment number where the intersection point is located and the projection size of the intersection point in the dirA direction, and store them in the pointWithRefValues ​​list after sorting by projection size. Exclude the first line segment DeleteSeg of the cut rectangle trimming sub-outline, and calculate the starting scan line number startLineNum using the length of DeleteSeg and step; Extract the first two intersection points from the pointWithRefValues ​​list, find the corresponding contour line segment IntersectSeg, and calculate the angle between the normal vector vn of the contour line segment IntersectSeg and dirA; if the angle is within the range of [angleLimit, angleLimit+10.0], then use the two intersection points A and B as the partition boundary. Obtain the angle between IntersectSeg that meets the angle threshold and the positive x-axis, and determine the new scanning direction newDirA based on this angle; Construct a cutting rectangle based on points A and B, call Clipper to cut the current strip contour, and get two sub-contours: the current contour to be filled, polyFillData, which stores the current dirA and step, and the next contour to be cut, polySplitData, which stores the new scan direction, newDirA and step. Repeat the above process to trim the sub-contours in the polySplitData of the next contour to be trimmed, until all sub-contours meet the angle threshold requirements, and output MultiDirPolysFillData, which contains the dirA, step and contour information of each sub-contour.

[0008] According to a second aspect of the present invention, a computer system is provided, comprising: One or more processors; The memory stores operable instructions that, when executed by the one or more processors, cause the one or more processors to perform operations, including the flow of the angle-controlled annular-strip contour partitioning directional scanning straight path planning method of the foregoing embodiments.

[0009] The annular-strip contour partitioning and directional scanning straight path planning method of the above embodiments of the present invention generates basic data reference by calculating the projection length of the strip or annular contour line segments in the scanning and arrangement directions. Then, it sets a threshold based on the angle between each scanning line generated in the arrangement direction and each side of the contour to partition the contour. Finally, it retains the scanning direction within the threshold for each region and realizes the generation of multi-directional scanning straight line filling path for the entire contour. Compared with the prior art, the partitioning and directional scanning straight path planning method for additive manufacturing proposed in this invention has the advantages of regional segmentation based on the angle calculation of the contour edge and the contour line, as well as the free selection of the scanning filling direction after partitioning. It avoids the problems of poor thermal stress and forming accuracy, large residual stress, and ultimately warping deformation or even breakage caused by the single path filling in the additive manufacturing process due to the single thermal cycle mode.

[0010] It should be understood that all combinations of the foregoing concepts and the additional concepts described in more detail below may be considered part of the inventive subject matter of this disclosure, provided that such concepts do not contradict each other. Furthermore, all combinations of the claimed subject matter are considered part of the inventive subject matter of this disclosure.

[0011] The foregoing and other aspects, embodiments, and features of the teachings of the present invention will be more fully understood from the following description in conjunction with the accompanying drawings. Other additional aspects of the invention, such as features and / or beneficial effects of exemplary embodiments, will become apparent from the following description or may be learned through practice of specific embodiments according to the teachings of the present invention. Attached Figure Description

[0012] The accompanying drawings are not intended to be drawn to scale. In the drawings, each identical or nearly identical component shown in the various figures may be denoted by the same reference numeral. For clarity, not every component is labeled in each figure. Embodiments of various aspects of the invention will now be described by way of example and with reference to the accompanying drawings.

[0013] Figure 1 This is a flowchart illustrating the partitioned direction-changing scanning straight path planning method according to an embodiment of the present invention.

[0014] Figure 2 This is a schematic diagram illustrating the principle of a partitioned, directional scanning straight-line path planning method for a strip-shaped contour according to an embodiment of the present invention.

[0015] Figure 3 This is a schematic diagram illustrating the principle of a partitioned, directional scanning straight-line path planning method for a circular contour according to an embodiment of the present invention.

[0016] Figure 4 This is a flowchart illustrating the process of cutting a circular contour into two strip contours according to an embodiment of the present invention.

[0017] Figure 5 This is a schematic diagram illustrating the principle of cutting a circular contour into two strip contours according to an embodiment of the present invention.

[0018] Figure 6 This is a schematic diagram of the process of cropping and partitioning a strip contour based on an angle threshold according to an embodiment of the present invention.

[0019] Figure 7 This is a schematic diagram illustrating the principle of cropping and partitioning a strip contour based on an angle threshold according to an embodiment of the present invention.

[0020] Figure 8 This is a diagram illustrating the effect of a partitioned scanning straight path for angle control of a thin-walled annular contour according to an embodiment of the present invention.

[0021] Figure 9This is a diagram illustrating the effect of a partitioned scanning straight path for angle control of a thick-walled annular contour according to an embodiment of the present invention.

[0022] Figure 10 This is a diagram illustrating the effect of partitioned scanning straight path control based on the strip contour angle according to an embodiment of the present invention.

[0023] Figure 11 This is an effect diagram of a partitioned scanning straight path controlled by a strip contour angle according to another embodiment of the present invention. Detailed Implementation

[0024] To better understand the technical content of the present invention, specific embodiments are described below in conjunction with the accompanying drawings.

[0025] Various aspects of the invention are described in this disclosure with reference to the accompanying drawings, which illustrate numerous illustrative embodiments. The embodiments of this disclosure are not necessarily intended to encompass all aspects of the invention. It should be understood that the various concepts and embodiments described above, as well as those described in more detail below, can be implemented in any of many ways, because the concepts and embodiments disclosed herein are not limited to any particular implementation. Furthermore, some aspects of the invention disclosed may be used alone or in any suitable combination with other aspects of the invention disclosed.

[0026] {Example 1} Combination Figures 1 to 7 As shown, the annular-strip contour partitioned directional scanning straight path planning method according to an embodiment of the present invention aims to optimize the thermal cycling mode, improve the internal stress distribution, and enhance the forming quality of parts by partitioned directional scanning and filling of annular or strip slice contours. Its specific implementation includes the following steps: Obtain the contour data of the planar annular or strip shape of the sliced ​​additively manufactured part; If the contour data is a circular contour, then the circular contour is split into two strip contours. Each strip contour is segmented and cut into multiple sub-contours based on the angle threshold. Each cut sub-contour has its starting scanning direction and scanning line arrangement direction. Each sub-contour is offset inward according to the offset parameters; For each offset sub-contour, the intersection of the scan line and the contour line segment is generated according to its corresponding starting scan direction, scan line arrangement direction and fill spacing parameters. After constructing the fill path in sequence, the partition path data of the entire strip contour is output. Merge the partition path data of the two strip contours to obtain the partitioned directional scan fill path of the complete ring contour.

[0027] As an optional embodiment, the annular contour is split into two strip contours, including the following steps: Input the inner and outer contour data of the ring, construct a straight line Line, and solve for the intersection points A and B of the line with the inner and outer contours by the dot product relationship between the adjacent points of the outer contour and the normal vector of Line; Calculate the center point of the inner contour, and construct the cutting rectangle by combining the intersection points A and B and the parameters dirA, dir, and _splitRecDelta. Determine the vertex coordinates of the cutting rectangle according to the sign of vAB.Dot (dirA). The four vertices P0, P1, P2, and P3 of the generated cutting rectangle are all outside the outer contour. Using the dividing rectangle as the clipping boundary (Clip) and the inner and outer contours as the clipping objects (Subject), the Clipper tool is called to divide the circular contour into two independent strip contours by combining the center point of the inner contour and the dirA direction.

[0028] As an optional embodiment, each strip contour is segmented and trimmed into multiple sub-contours based on an angle threshold, including the following steps: Generate a scan line sequence Lines covering the current strip contour from dirA, dir, and step; traverse each line segment Segment of the strip contour, calculate the projection values ​​of its vertices on dirA and dir, determine the span of the contour in the dir direction, i.e. the minimum span value LayerMin and the maximum span value LayerMax, and match intersecting contour line segments for each scan line, storing them as the intersectSegArr array; For each scan line, construct a cutting plane based on its height value in the dir direction, calculate the intersection point with the matching line segment, record the line segment number where the intersection point is located and the projection size of the intersection point in the dirA direction, and store them in the pointWithRefValues ​​list after sorting by projection size. Exclude the first line segment DeleteSeg of the cut rectangle trimming sub-outline, and calculate the starting scan line number startLineNum using the length of DeleteSeg and step; Extract the first two intersection points from the pointWithRefValues ​​list, find the corresponding contour line segment IntersectSeg, and calculate the angle between the normal vector vn of the contour line segment IntersectSeg and dirA; if the angle is within the range of [angleLimit, angleLimit+10.0], then use the two intersection points A and B as the partition boundary. Obtain the angle between IntersectSeg that meets the angle threshold and the positive x-axis, and determine the new scanning direction newDirA based on this angle; Construct a cutting rectangle based on points A and B, call Clipper to cut the current strip contour, and get two sub-contours: the current contour to be filled, polyFillData, which stores the current dirA and step, and the next contour to be cut, polySplitData, which stores the new scan direction, newDirA and step. Repeat the above process to trim the sub-contours in the polySplitData of the next contour to be trimmed, until all sub-contours meet the angle threshold requirements, and output MultiDirPolysFillData, which contains the dirA, step and contour information of each sub-contour.

[0029] As an optional embodiment, the first line segment DeleteSeg of the segmented rectangle clipping sub-outline is excluded, and the starting scan line number startLineNum is calculated using the length of DeleteSeg and the step, including: By determining that it is not the first time the contour is segmented, the branch processing function is entered. In the branch processing function, the size of the projection of the sub-contour line segment onto the dir vector is found to find the largest and second largest contour line segments. Determine the magnitude of the projection of the tail point of the found contour onto dir, and take the contour containing the tail point with the smaller value as the first line segment to be excluded from the intersection calculation (DeleteSeg). Then, calculate the intersection scan line number startLineNum based on the length of DeleteSeg and step.

[0030] As an optional embodiment, obtaining the angle between IntersectSeg that satisfies the angle threshold and the positive x-axis, and determining a new scanning direction newDirA based on this angle, includes: Calculate the angle angle1 between IntersectSeg and the positive x-axis that satisfies the threshold: If angle1 < 0, then the new scan direction newDirA is the vector from the start point of IntersectSeg to the end point, rotated 90 degrees counterclockwise around the z-axis; otherwise, rotated 90 degrees clockwise.

[0031] As an optional embodiment, the storage order of the current contour to be filled (polyFillData) and the next contour to be cut (polySplitData) is determined by the center coordinates of the sub-contours.

[0032] As an optional embodiment, each sub-contour is offset inward according to an offset parameter, including: For each sub-contour, the Clipper's offset function is called, and the offset is made inward according to the offset parameter _fillContourOffsetParam. The offset parameter _fillContourOffsetParam is set in the range of -0.5 to -0.3, with negative numbers indicating inward offset.

[0033] {Example 2} In this embodiment, the contour data of the planar ring or strip shape of the additive manufacturing part slice is used as an example, and further explanation is given in conjunction with the parameter control of the main path planning.

[0034] In this embodiment, the definitions of the main control parameters are as follows: outer contour outerPolygonData; innerPolygonData; Starting scan direction: dirA; Scan line arrangement direction (dir); Fill spacing step; Angle threshold (angleLimit); The endpoint extension of the rectangle generated by the split line is _splitRecDelta; The offset parameter for the fill contour is _fillContourOffsetParam.

[0035] Among them, _splitRecDelta and _fillContourOffsetParam are private fields and are usually configured with default values.

[0036] Combination Figure 1 The example shown mainly includes the following steps for planning the linear path of a partitioned scan for a circular / strip contour: Given a strip outline, determine whether it is a strip or a ring. If it is a ring outline, first split it into two strip outlines, and then perform unified sub-outline clipping and path generation. First, the intersection of each scan line and the contour line segment is determined sequentially by the angle threshold. If the angle is within the threshold, a dividing rectangle is constructed based on the scan line segment to cut the original contour and generate a new sub-contour. Then, repeat the above steps until all sub-contours have been segmented; Secondly, the sub-contour is offset inward according to the _fillContourOffsetParam parameter; Finally, the fill function is called for each offset sub-contour to realize the partitioned direction-changing scan straight path planning, and the planned path data is output.

[0037] Combination Figure 2 , Figure 3 The diagram illustrates the principle of partitioned scanning straight path planning for ring / strip contours. The processing of ring contours involves one more step than that of strip contours, namely, dividing the ring contour into two strip contours. The main steps that follow are the same as those for strip contours.

[0038] like Figure 4 , Figure 5 As shown in this example, the process of dividing a ring into two strip contours refers to transforming the ring contour (containing the outer contour outerPolygonData and the inner contour innerPolygonData) into two independent strip contours through directional cutting, which includes the following process: Input the inner and outer contour data of the ring, construct a straight line Line, and solve for the intersection points A and B of the line with the inner and outer contours by the dot product relationship between the adjacent points of the outer contour and the normal vector of Line; Calculate the center point of the inner contour, and construct the dividing rectangle by combining points A and B and the parameters dirA, dir, and _splitRecDelta. Determine the vertex coordinates of the rectangle based on the sign of vAB.Dot(dirA). Here, vAB.Dot(dirA) represents the dot product of vector vAB and the starting scan direction dirA, which is used to determine the offset rule of the rectangle vertex, and is determined in two cases: vAB.Dot(dirA)>0 and vAB.Dot(dirA)<0. Using the dividing rectangle as the clipping boundary (Clip) and the inner and outer contours as the clipping objects (Subject), the Clipper tool is invoked, and the inner contour center point and dirA direction are combined to divide the ring contour into two independent strip contours.

[0039] As an optional example, a straight line Line is constructed that passes through the central region of the ring using the center line of symmetry of the ring profile as a reference (or adaptively generated according to the direction of dirA). The normal vector components of the line can be derived from dirA, ensuring that the line is perpendicular to dirA or at a preset angle, and that the line Line satisfies the characteristic of having two intersections with the outer profile and two intersections with the inner profile.

[0040] Furthermore, iterate through all adjacent vertex segments (Segment_outer_i) of the outer contour outerPolygonData, and use the intersection formula of a line segment and a line to solve for the intersection point of Line with each Segment_outer_i; filter out two valid intersection points (excluding overlapping points and virtual intersection points outside the line segment range), and denot them as A_outer and B_outer; using the same method as for the outer contour, iterate through the adjacent vertex segments (Segment_inner_i) of the inner contour innerPolygonData, and solve for the two valid intersection points of Line with the inner contour, and denot them as A_inner and B_inner; Then, take the corresponding endpoints of the intersection of the outer contour and the intersection of the inner contour to finally determine the key intersection points A and B of the ring split. Usually, A = A_outer and B = B_outer are taken to ensure that the line connecting the two points passes through the ring area of ​​the ring.

[0041] Based on this, the geometric center can be calculated by averaging the coordinates of all vertices of the inner contour. This can be used to determine the distribution direction of the two sub-contours after trimming, ensuring that the two strip contours after splitting are complete and symmetrical.

[0042] The coordinates of the four vertices of the dividing rectangle are determined in two cases: vAB.Dot(dirA) > 0 and vAB.Dot(dirA) < 0, as detailed below: If vAB.Dot(dirA) > 0, then: p0 = A - _splitRecDelta*dirA - _splitRecDelta*dir; p1 = B + _splitRecDelta*dirA - _splitRecDelta*dir; p2 = B + _splitRecDelta*dirA + _splitRecDelta*dir; p3 = A - _splitRecDelta*dirA + _splitRecDelta*dir; If vAB.Dot(dirA) < 0, then: p0 = B - _splitRecDelta*dirA - _splitRecDelta*dir; p1 = A + _splitRecDelta*dirA - _splitRecDelta*dir; p2 = A + _splitRecDelta*dirA + _splitRecDelta*dir; p3 = B - _splitRecDelta *dirA + _splitRecDelta*dir.

[0043] Finally, the Clipper function is called to generate two strip outlines. As mentioned earlier, the constructed dividing rectangle (P0-P1-P2-P3) is used as the clipping boundary, and the outer outline (outerPolygonData) and inner outline (innerPolygonData) of the ring are used as the clipping objects. These are passed in according to the format required by Clipper, distinguishing between the inner and outer outline levels. Difference clipping or split clipping is then used to divide the ring into two independent regions along the dividing rectangle. When cutting the rectangle, it is necessary to ensure that the dividing rectangle encloses the intersection area of ​​the line (Line) and the ring, and that all four sides of the rectangle are outside the outer outline of the ring.

[0044] Furthermore, combined Figure 6 , Figure 7 As shown, for each strip contour obtained by input or segmentation, it is divided into multiple sub-contours according to the angle threshold, and each sub-contour after being cropped has its starting scanning direction and scanning line arrangement direction.

[0045] Combination Figure 6 and Figure 7 The example shown illustrates the following steps for clipping a strip outline: (1) Generate multiple scan line sequences Lines covering the strip contour from dirA, dir and step. By traversing each contour line segment Segment of the strip, calculate the projection value of its vertex on dirA and dir, and find the span LayerMin and LayerMax of the strip contour in the dir direction. At the same time, match the intersecting Segment for each Line in Lines, and use the matched array intersectSegArr = int[][]. Next, construct a segmentation plane (plane) using the height value (value) and dir (dir direction) of each line. Calculate the intersection points between the plane and the matched segments, and store the line segment number of the intersection point, as well as the corresponding projection size of the intersection point onto dirA. Sort the data according to the projection size. The data structure is: var pointWithRefValues ​​= new List <Tuple<Tuple<Point3d, int> , double>>(); (2) During the intersection process, the first contour line segment of the cut rectangle is excluded. In this example, the branch processing function is entered by judging that it is not the first time the contour is cut. In the function, the size of the projection of the sub-contour line segment on the dir vector is found, the largest and second largest contour line segments are found, and the size of the projection of the tail point of the line segment on dir is judged. The line segment where the tail point of the smaller value is located is the contour line segment DeleteSeg excluded from the intersection. Then, according to the length of DeleteSeg and step, the intersection scan line number startLineNum is calculated. (3) Find the intersection points that satisfy the angle threshold angleLimit, extract the first two intersection points through pointWithRefValues, and index the contour line segment IntersectSeg where the intersection points are located. Calculate the angle between the normal vector vn of IntersectSeg and dirA, and determine whether the angle angle is between angleLimit and angleLimit+10.0. If it is, let point A be the corresponding Point3d in pointWithRefValues, and the other intersection point be point B. (4) After finding points A and B, a cutting rectangle can be constructed and Clipper can be used to cut the original contour. Before cutting, it is necessary to determine the new scanning direction newDirA corresponding to the contour to be cut. By judging the angle angle1 between IntersectSeg and the positive x-axis that meets the threshold, if angle1 < 0, then the new scanning direction newDirA is the vector v from the starting point to the ending point of IntersectSeg that rotates 90 degrees counterclockwise around the z-axis. Otherwise, it rotates 90 degrees counterclockwise. (5) Based on points A and B, construct a dividing rectangle to trim the input outline. This operation can be referenced from the above steps of trimming the ring into two strips. Note the storage order of the trimmed outlines, one of which is the currently filled outline. polyFillData = new List <Tuple<Tuple<Vector3d, double> PolygonData>>(), the other is the outline to be clipped next, polySplitData=new List <Tuple<Tuple<Vector3d,double> PolygonData>>(), where Vector3d and double in polyFillData store the current dirA and step respectively, and similarly polySplitData stores the new newdirA and step; As an optional example, when the storage order after clipping by Clipper is not specified, in order to make the clipping function easy to call, the storage order of polyFillData and polySplitData should be consistent in each clipping process. This can be achieved by calculating the center coordinates pfortcenter and pnextcenter of the preceding and following sub-contours, calculating the vector vecpnf connecting the centers of adjacent contours, and calculating dirA.Cross(vecpnf).Dot(new Vector3d(0, 0, 1))<0. If this condition is met, the storage order can be reversed. (6) The above steps only achieve one trimming. Therefore, in this example, a do while loop is used to trim the input strip contour multiple times. By calling the single trimming function in sequence, that is, judging whether the angle between the scan line and the intersection line segment meets the threshold, multiple trimming is achieved until all sub-contours meet the angle threshold requirement. Finally, a strip outline is cropped into multiple sub-outlines with fill data, and the output data structure is as follows: var MultiDirPolysFillData = List <Tuple<Tuple<Vector3d, double> , PolygonData>>(); Vector3d stores the scan line direction dirA of each sub-contour PolygonData, and double stores the step of each sub-contour.

[0046] Furthermore, based on the sub-contours (MultiDirPolysFillData data) obtained by clipping the above strip contours, for each partition sub-contour, the Clipper's offset function is called to offset the _fillContourOffsetParam parameter inward. In this example, the default value is -0.5, and a negative number represents an inward offset.

[0047] Furthermore, for each offset sub-contour, based on its corresponding filling data, namely dirA, dir, and step, multi-directional scanning line filling is performed in the partition. The specific operation of this step can be referred to the process of generating paths sequentially after the scanning line segments after the intersection of the plane and the contour line segments in the previous steps.

[0048] Finally, output a List of path data for all partitions. <List<List <point3d>>>multiDirPaths outputs partitioned path data as bar outlines.

[0049] It should be understood that for a circular contour, the partition path data of the two strip contours are merged to obtain the partitioned directional scan fill path of the complete circular contour.

[0050] {Example 3} In this example, we use the method of the above embodiments as a basis and illustrate it with specific examples of annular and strip contours.

[0051] like Figure 8 The thin-walled annular contour shown is an angle-controlled partitioned scanning straight path effect. The input parameters dirA(1,0,0), dir(0,-1,0), step(1.0), and angleLimit(35.0) are as follows. The partitioning effect is as follows. Figure 8 As shown, (a) is the fill effect when _fillContourOffsetParam = 0 (with cropping outline displayed), and (b) is the fill effect when _fillContourOffsetParam = 0.5 (without cropping outline displayed).

[0052] like Figure 9 The thick-walled annular contour shown is an example of a partitioned scanning straight path effect controlled by angle. The input parameters dirA(1,0,0), dir(0,-1,0), step(1.0), and angleLimit(35.0) are as follows: The partitioning effect is shown below. Figure 9 As shown, (a) is the fill effect when _fillContourOffsetParam = 0 (with cropping outline displayed), and (b) is the fill effect when _fillContourOffsetParam = 0.5 (without cropping outline displayed).

[0053] like Figure 10 The bar angle control effect shown is a partitioned scanning straight path effect. The input parameters dirA(1,-2.2,0), dir(2.2,1,0), step(1.0), and angleLimit(35.0) are as follows. The partitioning effect is as follows. Figure 10 As shown, (a) is the fill effect when _fillContourOffsetParam = 0 (with cropping outline displayed), and (b) is the fill effect when _fillContourOffsetParam = 0.5 (without cropping outline displayed).

[0054] like Figure 11 The other example shown is a partitioned scanning straight path effect controlled by a strip angle. The input parameters are dirA(-1,-1.2,0), dir(-1.2,1,0), step(1.0), and angleLimit(45.0). The partitioned effect is as follows: Figure 10 As shown, (a) is the fill effect when _fillContourOffsetParam = 0 (with cropping outline displayed), and (b) is the fill effect when _fillContourOffsetParam = 0.5 (without cropping outline displayed).

[0055] {Example 4} Based on the above embodiments, the present invention also proposes a computer system for the annular-strip contour partitioning and directional scanning straight path planning method in additive manufacturing processes, comprising: One or more processors; Memory stores operable instructions that, when executed by one or more processors, cause one or more processors to perform multiple operations.

[0056] These operations include the flow of the annular-strip contour partitioning directional scanning straight path planning method of any of the aforementioned embodiments.

[0057] While the present invention has been disclosed above with reference to preferred embodiments, it is not intended to limit the invention. Those skilled in the art can make various modifications and refinements without departing from the spirit and scope of the invention. Therefore, the scope of protection of the present invention shall be determined by the claims.

Claims

1. A method for planning a linear path for scanning a ring-strip contour partition with angle control, characterized in that, Includes the following steps: Obtain the contour data of the planar annular or strip shape of the sliced ​​additively manufactured part; If the contour data is a circular contour, then the circular contour is split into two strip contours. Each strip contour is segmented and cut into multiple sub-contours based on the angle threshold. Each cut sub-contour has its starting scanning direction and scanning line arrangement direction. Each sub-contour is offset inward according to the offset parameters; For each offset sub-contour, the intersection of the scan line and the contour line segment is generated according to its corresponding starting scan direction, scan line arrangement direction and fill spacing parameters. After constructing the fill path in sequence, the partition path data of the entire strip contour is output. Merge the partition path data of the two strip contours to obtain the partitioned directional scan fill path of the complete ring contour.

2. The angle-controlled annular-strip contour partitioning and direction-changing scanning straight path planning method according to claim 1, characterized in that, The process of splitting the circular contour into two strip contours includes the following steps: Input the inner and outer contour data of the ring, construct a straight line Line, and solve for the intersection points A and B of the line with the inner and outer contours by the dot product relationship between the adjacent points of the outer contour and the normal vector of Line; Calculate the center point of the inner contour, and construct the cutting rectangle by combining the intersection points A and B and the parameters dirA, dir, and _splitRecDelta. Determine the vertex coordinates of the cutting rectangle according to the sign of vAB.Dot (dirA). The four vertices P0, P1, P2, and P3 of the generated cutting rectangle are all outside the outer contour. Using the dividing rectangle as the clipping boundary (Clip) and the inner and outer contours as the clipping objects (Subject), the Clipper tool is called to divide the circular contour into two independent strip contours by combining the center point of the inner contour and the dirA direction.

3. The angle-controlled annular-strip contour partitioning and direction-changing scanning straight path planning method according to claim 2, characterized in that, The coordinates of the four vertices of the dividing rectangle are determined as follows: If vAB.Dot(dirA) > 0, then: p0 = A - _splitRecDelta*dirA - _splitRecDelta* dir; p1 = B + _splitRecDelta* dirA - _splitRecDelta*dir; p2 = B + _splitRecDelta*dirA + _splitRecDelta* dir; p3 = A - _splitRecDelta*dirA + _splitRecDelta*dir; If vAB.Dot(dirA) < 0, then: p0 = B - _splitRecDelta*dirA - _splitRecDelta*dir; p1 = A + _splitRecDelta*dirA - _splitRecDelta*dir; p2 = A + _splitRecDelta*dirA + _splitRecDelta* dir; p3 = B - _splitRecDelta*dirA + _splitRecDelta*dir.

4. The angle-controlled annular-strip contour partitioning and direction-changing scanning straight path planning method according to claim 1, characterized in that, The step of dividing each strip contour into multiple sub-contours based on an angle threshold includes the following steps: Generate a scan line sequence Lines covering the current strip contour from dirA, dir, and step; traverse each line segment Segment of the strip contour, calculate the projection values ​​of its vertices on dirA and dir, determine the span of the contour in the dir direction, i.e. the minimum span value LayerMin and the maximum span value LayerMax, and match intersecting contour line segments for each scan line, storing them as the intersectSegArr array; For each scan line, construct a cutting plane based on its height value in the dir direction, calculate the intersection point with the matching line segment, record the line segment number where the intersection point is located and the projection size of the intersection point in the dirA direction, and store them in the pointWithRefValues ​​list after sorting by projection size. Exclude the first line segment DeleteSeg of the cut rectangle trimming sub-outline, and calculate the starting scan line number startLineNum using the length of DeleteSeg and step; Extract the first two intersection points from the pointWithRefValues ​​list, find the corresponding contour line segment IntersectSeg, and calculate the angle between the normal vector vn of the contour line segment IntersectSeg and dirA; if the angle is within the range of [angleLimit, angleLimit+10.0], then use the two intersection points A and B as the partition boundary. Obtain the angle between IntersectSeg that meets the angle threshold and the positive x-axis, and determine the new scanning direction newDirA based on this angle; Construct a cutting rectangle based on points A and B, call Clipper to clip the current strip contour, and obtain two sub-contours: the current contour to be filled, polyFillData, which stores the current dirA and step, and the next contour to be clipped, polySplitData, which stores the new scan direction, newDirA, and step. Repeat the above process to trim the sub-contours in the polySplitData of the next contour to be trimmed, until all sub-contours meet the angle threshold requirements, and output MultiDirPolysFillData, which contains the dirA, step and contour information of each sub-contour.

5. The angle-controlled annular-strip contour partitioning direction-changing scanning straight path planning method according to claim 4, characterized in that, The first line segment DeleteSeg of the excluded segmentation rectangle clipping sub-outline is used, and the starting scan line number startLineNum is calculated using the length of DeleteSeg and the step, including: By determining that it is not the first time the contour is segmented, the branch processing function is entered. In the branch processing function, the size of the projection of the sub-contour line segment onto the dir vector is found to find the largest and second largest contour line segments. Determine the magnitude of the projection of the tail point of the found contour onto dir, and take the contour containing the tail point with the smaller value as the first line segment to be excluded from the intersection calculation (DeleteSeg). Then, calculate the intersection scan line number startLineNum based on the length of DeleteSeg and step.

6. The angle-controlled annular-strip contour partitioning direction-changing scanning straight path planning method according to claim 4, characterized in that, The step of obtaining the angle between IntersectSeg that satisfies the angle threshold and the positive x-axis, and determining the new scanning direction newDirA based on this angle, includes: Calculate the angle angle1 between IntersectSeg and the positive x-axis that satisfies the threshold: If angle1 < 0, then the new scan direction newDirA is the vector from the start point of IntersectSeg to the end point, rotated 90 degrees counterclockwise around the z-axis; otherwise, rotated 90 degrees clockwise.

7. The angle-controlled annular-strip contour partitioning and direction-changing scanning straight path planning method according to claim 4, characterized in that, The storage order of the current polyFillData and the next polySplitData is determined by the center coordinates of the sub-contours.

8. The angle-controlled annular-strip contour partitioning and direction-changing scanning straight path planning method according to claim 1, characterized in that, The step of offsetting each sub-contour inward according to the offset parameter includes: For each sub-contour of a partition, the Clipper's bias function is called and biased inward according to the bias parameter _fillContourOffsetParam.

9. The angle-controlled annular-strip contour partitioning direction-changing scanning straight path planning method according to claim 7, characterized in that, The offset parameter _fillContourOffsetParam is set in the range of -0.5 to -0.3, with negative numbers indicating inward offset.

10. A computer system, characterized in that, include: One or more processors; The memory stores operable instructions that, when executed by the one or more processors, cause the one or more processors to perform operations, including the flow of the angle-controlled annular-strip contour partitioning directional scanning straight path planning method as described in any one of claims 1-9.