Method and facility for applying coating product by use of print head
Patent Information
- Application Number
- JP2021100999
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2020-06-17
- Filing Date
- 2021-06-17
- Publication Date
- 2025-02-06
- Estimated Expiration
- 2041-06-17
AI Technical Summary
Existing methods for applying coatings using a printhead on a robotic arm face challenges in handling complex surface geometries and uncoated areas, leading to difficulties in achieving precise and efficient coating application.
A method involving a digital model of the surface to be coated, where a printhead on a robotic arm is guided by automatic calculation of strips and trajectories, adjusting for orientation and avoiding uncoated regions, with iterative steps to ensure complete coverage and precision.
The method enables easier, more intuitive, and effective coating application with improved results by optimizing printhead movement and avoiding uncoated areas, resulting in precise and efficient coating of complex surfaces.
Smart Images

Figure 00000000_0000_ABST
Abstract
Description
[Technology Field]
[0001] The present invention relates to a method for applying a coating to the surface of an object to be coated by a print head mounted on a robotic arm, having at least one print nozzle. The present invention also relates to a coating application apparatus intended for carrying out the present method. [Background technology]
[0002] U.S. Patent Application Publication No. 2015 / 0042716 describes a method for creating a set of points in space corresponding to an area to be coated, a method for creating a corresponding three-dimensional network, and a method for generating trajectory data for moving a robot equipped with a printhead and raster data for operating the printhead.
[0003] A method of applying a coating by a print head moving along two trajectories that form a sharp angle between them is also known, as described in U.S. Patent Application Publication No. 2016 / 0052312. [Overview of the project] [Problems that the invention aims to solve]
[0004] While these known methods are theoretically feasible, they are difficult to implement in practice when all constraints regarding the shape of the coated surface and any uncoated surfaces, as well as constraints regarding the movement of the print head, must be taken into account.
[0005] The present invention aims to improve, in particular, these shortcomings by proposing a novel method for applying a liquid coating to a surface coated by a print head. This method is easier and more intuitive to use and yields better results than prior art methods. [Means for solving the problem]
[0006] For this purpose, the present invention relates to a method for applying a coating to the surface of an object to be coated, having at least one area to be coated, using a digital model of the surface contained in a computer file, the method being performed by a printhead mounted on a robotic arm designed to move the printhead relative to the surface, the printhead body comprising at least one print nozzle. According to the present invention, the method of application is, at a minimum, a) A step of defining strips of surfaces to be coated from a computer file containing a model of the surfaces to be coated by automatic calculation; b) A step of defining a trajectory for a surface strip to be coated by automatic calculation, wherein the trajectory is formed by a sequence of points of interest reached by eigenpoints of the printhead having the printhead orientation to be observed at each point of interest; c) The step of removing the coating strips from a computer file that models the surface to be coated by automatic calculation; d) Repeat step a) until the modeled surface to be coated becomes a zero region; e) A step of defining a program to operate each printhead nozzle for each trajectory; and f) Applying a coating by activating each printhead nozzle to the different trajectories defined in step b) according to the trigger program specified in step e), while adhering to the orientation of the printhead at each point of interest. It consists of and includes steps performed by a computer.
[0007] According to the present invention, a computer file that models the surface to be coated by the backward and forward movement of the print head defines a three-dimensional trajectory for the robot, which is a function of that surface alone, using simple elements such as points, sections, or edges on the periphery of the surface to be coated. Then, by the method of the present invention, a program can be automatically generated to correctly orient the print head and operate the print head nozzle so that the coating is applied to the portion of the surface to be coated.
[0008] An initial limitation considered by the method of the present invention is that, when using the initially selected simple elements such as points, sections, and edges described above, the print head tends to remain oriented in a predetermined direction, for example, in a direction corresponding to a forward trajectory along the strip of surface to be coated.
[0009] According to an advantageous but not essential aspect of the present invention, the method may incorporate one or more of the following features used in any technically possible combination: Step b) is bA) Substep of defining the portion of the surface strip to be coated by an iterative method; bB) A substep that calculates the point of collision on the portion defined in substep bA) and the axis on which the print head is oriented at the point of collision; bC) Substep of removing fragments of the surface strip to be coated by calculation; bD) Repeat the substeps, starting again from step bA) until there is zero remaining area of the surface strip to be coated; bE) A substep that generates a portion of the trajectory corresponding to one forward movement of the print head across the strip to be coated; and bF) A substep that generates a portion of the trajectory (backward or forward) corresponding to the further movement of the print head across the coating strip, depending on the width of the coating strip being transported from the print head and the width of the strip being coated. It includes a series of substeps consisting of the following. The method includes a further step for a surface to be coated that includes at least one uncoated area. This step, performed between steps b) and c), consists of adjusting the trajectory of the print head based on the uncoated area so as not to strike any object. Step a) consists of at least the following consecutive substeps: a1) A substep defining a first orthogonal system, wherein the first orthogonal system is As a starting point, in the representation of a space using computer files, a point selected by the user, either on a virtual support surface located near the surface being coated, or on the surface being coated itself; The height axis is the normal to the support surface, or to the origin on the surface; The y-axis is defined as the cross product of the height axis and the axis aligned with the direction of movement selected by the user; and The cross product of the y-axis and the height axis as the x-axis. Substeps having; a2) A substep of defining the first normal and initializing its value to be equal to the vector whose direction is the height axis of the most recently defined first orthogonal system; a3) A substep defining point 1 of the first orthogonal system as the point on the surface to be coated having the largest y-axis of the first orthogonal system among the points on the surface to be coated; a4) A substep defining point 2 of the first orthogonal system as a point on the surface to be coated, located at a first distance determined as a function of the nozzle distribution in the print head, measured in the negative direction along the y-axis relative to the first point; a5) A substep to calculate the mean normal for a hypothetical strip of the surface to be coated, which is perpendicular to the y-axis of the first orthogonal system and defined between the first and second planes passing through the first and second points, respectively; a6) A substep of comparing the first normal with the mean normal; a7) If it is determined in step a6) that the first normal and the average normal are different, a71) Redefine the first normal as equal to the mean normal; a72) Redefine the first orthogonal system using this new first normal; a73) Repeat substeps a3) to a6), substep a8) If in step a6) it is determined that the first normal and the mean normal are equal, a substep is taken to define the strip to be coated as equal to the provisional strip in step a5). Includes. The printhead body comprises several nozzles arranged in parallel rows at a first distance, which is a multiple of the distance between two adjacent rows of nozzles, or between two consecutive nozzles in the same row, when measured perpendicular to the direction of movement of the printhead. Step b) consists of the following sequential substeps at a minimum: b1) A substep defining point 1 as the origin, and a second orthogonal system having axes as the x and y axes and height axis that coincide with the axes of the first orthogonal system most recently defined in step a1) or step a72); b2) A substep to define a new x-axis as the x-axis of the second orthogonal system; b3) A substep defining the initial point in the second orthogonal system as a point on the coated surface strip having the shortest y-axis among the points on the strip; b4) A substep defining the cutting point in the second orthogonal system as a point on the surface strip to be coated, located at a given distance from the initial point along a new x-axis; b5) A substep to calculate the mean normal for a provisional portion of the surface to be coated, which is perpendicular to the new x-axis and defined between a third plane and a fourth plane passing through the initial point and the cutting point, respectively; b6) A substep to calculate a hypothetical longitudinal axis equal to the normalized cross product of the mean normal calculated in step b5) and the inverse of the y-axis of the second orthogonal system; b7) A sub-step to compare the new x-axis with a temporary longitudinal axis; b8) If it is determined in step b7) that the new x-axis and the temporary longitudinal axis are different, b81) Redefine the new x-axis as being equal to the provisional longitudinal axis; b82) Repeat substeps b3) to b7); b9) If it is determined in step b7) that the new x-axis and the temporary longitudinal axis are equal, a substep is performed to define the portion of the strip to be coated as equal to the temporary portion in step b5). It consists of. Step b) consists of, at a minimum, the following consecutive substeps following substeps b1) through b9): b10) A substep to calculate the orientation vector for the printhead, which is equal to the cross product of the new x-axis and the inverse y-axis of the second orthogonal system; b11) Midway between the orthogonal projections from the initial point and the cutting point onto a line that passes through the initial point and whose direction vector is equal to the new axis, Along the y-axis of the second orthogonal system, and measuring in the negative direction along this axis, to a third distance equal to half the first distance from the initial point. A substep defining the center point as the point of location; b12) A substep defining the point of collision as a projection from the center point onto the portion of the surface strip to be coated, along a line whose direction vector is the orientation vector of the print head; b13) If a collision point exists, include the collision point and the printhead orientation vector in the trajectory substep. It consists of. The printhead body comprises several nozzles arranged in parallel rows, while the coordinates of the center point along the new x-axis of the second orthogonal system are equal to half the sum of the x-coordinates of the orthogonal projection from the initial point and the cutting point onto a line that passes through the initial point and is a direction vector equal to the new axis, while the center point is shifted relative to this line by a distance equal to half the product of the number of rows of nozzles and the distance between any two of these rows measured along the y-axis, in the opposite direction of the y-axis of the second orthogonal system. If the direction vector is the orientation vector of the print head and there is no point of collision in step b12) due to the lack of material from the surface strip to be coated along a line passing through the center point, then the following further substeps: b14) A substep to find the endpoint of the portion of the strip to be coated, where the position of the endpoint along an axis parallel to the orientation vector of the printhead is the endpoint furthest in the direction opposite to this vector; b15) A substep to define alternative collision points by projecting the endpoints onto an axis that passes through the center point and is parallel to the orientation vector of the print head; b16) Substep of aligning the point of collision with an alternative point of collision for the portion of the strip coated between the methods. This takes place between substeps b12) and 13b). Step b) consists of, at a minimum, the following consecutive substeps following substeps b1) through b13): b18) A substep of reducing the surface strip to be coated by a certain portion, i.e., the portion defined in step b9); b19) A substep to determine whether the remaining surface strip to be coated has a non-zero region; b20) If the result of the calculation in step b19) is present, repeat substeps b3) to b19). It consists of. Step b) consists of, at a minimum, the following consecutive substeps following substeps b1) through b13): b21) A substep in which the axis vector of the printhead at each collision point is defined as being equal to the normalized cross product of the orientation vector of the printhead at that point and the y-axis of the second orthogonal system; b23) A substep defining the point of interest to be reached using the point of collision, the distribution of at least one nozzle in the print head, the axial vector of the print head, and the y-axis of the second orthogonal system; b24) A substep that includes the point of interest at the corresponding collision point and the printhead orientation vector in the trajectory. It consists of. Step b) includes a further substep of adding at least one additional entry point and / or exit point to the trajectory defined for each surface strip to be coated, to what is calculated in step b24), and / or step b) includes a further substep for optimizing the number of points of interest in the trajectory when at least one point of interest, i.e., a point of interest that is collinear with the points preceding and succeeding it along the trajectory and whose orientation axis is parallel to the orientation axes of the points preceding and succeeding it along the trajectory, is removed. Step b) includes a substep for determining how many times the print head needs to move backward and forward to complete coating the strip to be coated, depending on the width of the coating strip transported from the print head and the width of the strip to be coated. If necessary, after a first forward movement across the strip to be coated, one or more track sections are calculated by reversing the order of the points of interest defined for the preceding track section in step b2). Substeps a71) to a73) or b81) and b82) are performed until a limited number of iterations are reached. From the trajectory defined in step b), the computer calculates for each printhead nozzle either the coated distance or the uncoated distance for a given sequence of printhead movement steps. Step e) is a substep: e1) A substep in which the movement of the print head is discretized between points of interest in the trajectory by the discretized positions; e2) A substep in which, in substep e1), the presence of a collision point is determined for each nozzle at each discretized position; e3) A substep of calculating, at each discretized position of the orbit, the coated distance or the uncoated distance, and optionally a multiplier, as a function of the distance between the nozzle and the reference nozzle; and e4) Substep to build programming files for the operation of each nozzle along the orbit It consists of.
[0010] From another perspective, the present invention relates to equipment for applying a liquid coating to the surface of an object to be coated, the equipment comprising a print head mounted on a robotic arm designed to move the print head relative to the surface, the body comprising at least one print nozzle. The equipment comprises an electrical control device configured to perform the method, for example, the method described above.
[0011] The present invention will be better understood and other advantages of the aforementioned advantages will become clearer in light of the following description of how to achieve a method using the principles of the present invention, which is given merely as an example and with reference to the accompanying drawings. [Brief explanation of the drawing]
[0012] [Figure 1] Figure 1 is a schematic diagram illustrating the principle of equipment for coating an automobile body according to the present invention, and also shows the method according to the present invention. [Figure 2] Figure 2 shows schematic diagrams of several print heads that can be used by the apparatus of Figure 1 using the method of the present invention. [Figure 3] The schematic diagram in Figure 3 is similar to that in Figure 2 and shows another print head that can be used by the equipment in Figure 1 using the method of the present invention. [Figure 4] The schematic diagram in Figure 4 illustrates the principle of the backward and forward movement of the print head in Figure 3 for coating a surface, using two examples of print head orientation. [Figure 5] Figure 5 is a schematic diagram illustrating the principle of the modeled surface to be coated and the support surface located in the same modeling environment during the steps of the method of the present invention. [Figure 6] The schematic diagram in Figure 6 shows the surface of Figure 5 during a later step of the method of the present invention. [Figure 7] The schematic diagram in Figure 7 shows the same surface as shown in Figures 5 and 6 during later steps of the method of the present invention. [Figure 8] The schematic diagram in Figure 8 shows an enlarged view of area VIII in Figure 7 during a later step of the method of the present invention. [Figure 9] The schematic diagram in Figure 9 shows a magnified view of the same region during a later step of the method of the present invention. [Figure 10] Figure 10 shows a printhead and several sizes of front views used in the method of the present invention. [Figure 11] Figure 11 is a schematic block diagram of the entire method of the present invention. [Figure 12] Figure 12 is a detailed block diagram illustrating the steps of the method of the present invention. [Figure 13] Figure 13 is a detailed block diagram illustrating another step of the method of the present invention. [Modes for carrying out the invention]
[0013] The equipment I shown in Figure 1 is used to apply paint to an object O, which in this example is a car body.
[0014] More precisely, in this example, equipment I is designed to coat the roof of the car body on either side of the central plane π0 parallel to the maximum dimension of the body.
[0015] Alternatively, the object to be coated may be other parts of the car body, such as bumpers or doors, and generally, any object that can be coated, such as aircraft cabin components or home appliance panels, can be coated.
[0016] Equipment I comprises a conveyor 2 designed to move an object O along a transport axis X2 perpendicular to the plane of Figure 1. Preferably, the conveyor is stop-and-go, i.e., the conveyor holds the object stationary while the coating is being applied. Equipment I further comprises an applicator 10 attached to the end of an arm 22 of a multi-axis robot 20 positioned near the conveyor 2. Alternatively, the robot 20 may be a reciprocating robot or other robot capable of moving the applicator 10 relative to the object O to be coated. The robot comprises a controller 24 sometimes called a "robot bay," which controls the movement of the arm 22 as a function of a tracked trajectory program TRAJ.
[0017] In Figure 1, the controller is shown inside the robot 20. However, the controller may be located outside the robot.
[0018] The applicator 10 is a print head consisting of a rigid body 12 and several print nozzles 14.
[0019] Equipment I further comprises an electrical control device 30 or ECU, the electrical control device 30 which communicates bidirectionally with at least the controller 24 of the conveyor 2 and the robot 20, and further controls the print head 10. For this purpose, the ECU 30 includes at least one micromethod and memory for storing a computer program (the micromethod and memory are not shown). Communication between the ECU 30 and the controller 24 enables the operation of the print head to be synchronized with the position of the robot arm 22.
[0020] In Figure 1, the ECU 30 is shown independently of devices 2 and 20. Alternatively, the ECU 30 may be integrated into the robot 20.
[0021] As shown in the first example in Figure 2, the print head 10 may consist of a body 12 having a single print nozzle 14. In this case, when the print head 10 is moved in the direction of arrow F1 in Figure 2, the print head 10 deposits a line or strip of coating, which can be considered a brush 15, and its width l15 has a first value when measured perpendicular to the direction of movement of the print head in a plane perpendicular to the nozzle 14.
[0022] In the second example shown in Figure 2, the print head 10 consists of a rigid body 12 having rows 16 of eight nozzles 14, which are identified by their centerlines. The print head 10 can move parallel to arrow F1 and tilted at an angle α with respect to the direction of this arrow, so that different lines of coating exiting the nozzles 14 together define a continuous band 15 of coating applied to the surface, the width l15 of this band 15 having a second value equal to approximately eight times the first value.
[0023] In the third example shown in Figure 2, the print head 10 consists of a row 18 of six print nozzles 14 arranged on a rigid body 12, which are identified by their centerlines. When the print head 10 is moved perpendicular to this row and the nozzles are positioned close together, the print head 10 deposits a continuous band 15 on the surface to be coated, the width l15 of which has a third value equal to about six times the first value.
[0024] In the fourth example shown in Figure 2, the rigid body 12 of the print head 10 has nozzles 14 arranged in six rows 16 and eight columns 18, which are identical by their respective centerlines, as in the second and third examples. In this case, as in the second example, when the print head is moved parallel to arrow F1 and tilted at angle α, the nozzles 14 are arranged very closely to the rigid body 12 such that the multiple nozzles 14 apply a band 15, the width l 15 of which is equal to six times the second value.
[0025] The four types of print heads shown in Figure 2 can be considered densely packed in that the coating strips produced by the movement of one or more of these heads in the direction of arrow F1 are continuous across their width.
[0026] In the example shown in Figure 3, the print head 10 contains 48 nozzles 14 arranged in a configuration of 6 rows 16 and 8 columns 18 within its rigid body 12. The difference from the fourth example shown in Figure 2 is that when the print head 10 is moved parallel to arrow F1, six separated bands 15 are produced, each band 15 having a width l15 equivalent to the second value described above. These bands 15 are separated in that, as shown in the center of Figure 3, during the movement of the nozzles 10 in the direction of arrow F1, there are areas 17 where the coating is not applied between the bands 15.
[0027] The geometric center of the surface of the print head 10 to which the nozzle 14 is attached is P. h This is how it is expressed.
[0028] In the example of use shown at the bottom of Figure 3, as the print head 10 moves parallel to arrow F1, 48 separate bands 15 of the type shown at the top of Figure 2 are applied, and the print head 10 is tilted at an angle β greater than angle α such that these bands are equally spaced, with areas 17 between them where no coating is applied.
[0029] As explained above, the print head 10 in Figure 3 has a non-dense configuration so that the bands 15 are not continuous across the entire width of the area to which the coating is applied, as gaps 17 remain between the bands 15.
[0030] Let n be the number of rows 16 and m be the number of columns 18 in the print head 10. The number of nozzles 14 is n × m. In the example in Figure 3, this number is 6 × 8 = 48.
[0031] Consider the configuration shown in Figure 3, where the print head 10 is tilted at angle α. In this configuration, let d1 be the distance measured between two adjacent rows of nozzles 16, parallel to the width l15 of the strip 15 and therefore perpendicular to the direction of movement represented by arrow F1. Let l17 be the width of the spacing 17 measured parallel to the width l15. The distance d1 is equal to the sum of the widths l15 and l17.
[0032] Regardless of the printhead used, each nozzle 14 forms an orifice into which the coating is sprayed, having a diameter of 20 micrometers (μm) to 500 micrometers, preferably 50 to 200 μm, and more preferably 100 μm. The nozzle diameter results in the width of the individual bands deposited by each nozzle, as in the configurations shown in the upper part of Figure 2 and the lower part of Figure 3, or the combined width of the bands formed by the parallel arrangement of the individual bands, as in other configurations. In addition, each nozzle 14 is supplied by a system for controlling the flow of the coating, which may be piezoelectric, electromagnetic, or pneumatic.
[0033] The present invention can be used with any of the print heads 10 shown in Figures 2 and 3, and with variations thereof regarding the number of rows 16 and columns 18, and the number of nozzles per column or row, provided that all rows have the same number of nozzles and all columns have the same number of nozzles, that is, the number of nozzles in each row matches the number of columns, and the number of nozzles in each column matches the number of rows.
[0034] For the printhead shown in Figure 2, the degree to which the nozzles 14 are densely mounted on the printhead 10 is given by a continuous band or portion thereof of coating with a width of l15 on the surface S to be coated, through a single path, i.e., a single forward movement.
[0035] In the configuration shown in the center of Figure 3 and the top of Figure 4, the width l15 represents half the distance d1, and the surface S or a portion thereof to be coated can be coated by moving the print head 10 forward in the direction of arrow 1, and then backward in the direction of arrow F2.
[0036] In the configuration shown at the bottom of Figure 4, the width l15 is equal to one-third of the distance d1, and the surface S or portion thereof to be coated can be completely coated by moving the print head 10 forward in the direction of arrow F1, then backward in the direction of arrow F2, and then forward again in the direction of arrow F3.
[0037] The present invention can be carried out using various configurations of the printhead 10 conceived above, and the number of single, or backward and forward movements depends on the density of the printhead and, accordingly, the configuration used. For the remainder of this description, consider a printhead 10 having n rows and m columns of nozzles 14. For example, in the case of the inclined printhead shown in the center of Figure 3, we know the distance d1 between two rows of nozzles, and the width l15 of the strip 15, as a function of both the distribution of rows 16 and columns 18, and the angle α of the inclination of the body 12 with respect to the direction of printhead movement represented by arrows F1, F2, or F3, and thus we can infer the number of times the printhead must move backward and forward to completely cover the surface S or a portion thereof. That is, For example, regarding the densely packed heads shown at the bottom of Figure 2, the number of forward movements is 1, and the number of return movements is 0. For a non-crowded head with a d1 / l15 ratio of 2, shown in the center of Figure 3 or at the top of Figure 4, the number of forward movements is 1 and the number of return movements is 1. For a non-crowded head with a d1 / l15 ratio of 3, as shown in the lower or upper part of Figure 4, the number of forward movements is 2 and the number of return movements is 1.
[0038] Depending on the configuration of the printhead 10, other numbers of backward and forward movements of the printhead are also possible. For example, in the case of the tilted printhead shown at the bottom of Figure 3, we know the distance d1 between two consecutive nozzles in the same row, as well as the width l15 of the line 15 deposited by the nozzle 15, as a function of both the distribution of these rows 16 and columns 18 and the angle β of the tilt of the body 12 with respect to the direction of printhead movement represented by arrow F1, and thus we can infer the number of times the printhead must move backward and forward.
[0039] From here, the method of the present invention will be described with reference to Figure 5 and the following.
[0040] Consider the left half of the upper surface of the roof of the car body shown in Figure 1 as the surface S to be coated. As seen in Figure 5, this surface S is defined by the front end B1 and the rear end B2 of the roof, as well as by the center line M, which is the trace of the plane π0 at the top of the roof. In Figure 5, the center line represents the trace of the right half of the upper surface of the roof.
[0041] The surface S to be coated consists of a coated area Z1 and an uncoated area Z0. Furthermore, the edges B1 and B2 are considered uncoated and are shown in Figure 5 for clarity purposes only.
[0042] Using known techniques, the surface to be coated S can be modeled by a computer file F, for example, a computer file F in STL format. This format allows for a representation of the actual surface to be coated S by a set of triangular facets, as shown in Figures 6-9.
[0043] Alternatively, file F may be in a different format, for example, an .obj or .vtk format that approximates the actual surface by facets, or a .step or .iges format that represents the mathematical shape of the surface S to be coated.
[0044] First, it is necessary to define the trajectory of the print head 10 and the orientation of the print head 10 relative to the surface S to be coated, which is modeled by the file F. The constraints on this trajectory are varied, namely, The constraints relate to the robot 20 that moves the print head 10, which may be a multi-axis robot, a reciprocating robot, a drawing table, or a manipulator arm; The constraints relate to the print head 10, and in particular to the number of nozzles 14, the arrangement of these nozzles 14 in the body 12, nozzle control, the size of the droplets of the coating product, and so on; The constraints relate to the shape of the surface S to be coated, particularly its curvature, the shape of its edges, and the presence of ribs, grooves, or holes.
[0045] A certain calculation method is applied to generate the path of the print head 10 to the surface S modeled by file F.
[0046] This calculation method is applied in a computer 40, shown in Figure 1, which communicates with the ECU 30 and the controller 24. This computer 40 operates offline and is time-shifted in relation to the application of the coating product. In particular, at least some of the calculations performed by the computer 40 are performed before the application of the coating product.
[0047] The method applied by the computer 40 selectively includes a starting step 100 consisting of surface files from a file library representing regions Z1 and Z0, determining the outline of surface S, in this case edges B1 and B2, the center line M, and the left edge of surface S, and then defining the iterations of the inner surface, which allows filling each portion of the surface defined between the outlines by a spiral path or by sweeping movement.
[0048] As part of this method, after the surface S and its outline have been defined and modeled in step 100, a three-dimensional path is first defined on the surface S to be coated and based on the configuration of the print head 10 by performing forward or forward-backward movements of the print head 10. This operation, and other operations that are part of the method of the present invention and are described below, are automatically applied by the computer 40. Thus, the computer 40 acts as an automatic path generator for the robot 20.
[0049] To help determine the robot's path, the rules of calculation performed by the computer 40 ensure that the print head 10 remains more or less oriented in a predetermined direction, for example, toward forward movement, supported by simple pre-selected elements, such as points, sections, or edges.
[0050] The first step 102 is to "cut" the area to be coated on the surface S, more specifically, in the file F that models the surface S.
[0051] As shown in Figures 5, 11 and 12, first, the initiation step 100 of the method of the present invention includes an initialization substep 1001 in which the iteration index i is set to 0, and a substep 1002 in which the file F is adapted to the surface S, in particular based on the edges B1, B2 and M of the surface S and regions Z1 and Z0, and to a support surface SP located in the same computational space as the surface S, having a simple shape defined by simple geometric elements, such as points, partitions and faces.
[0052] In the example shown in the figure, surface SP is a flat rectangular surface located near surface S.
[0053] In Figures 11-13, the parameters given in parentheses after the quantity specified in a step or substep are the parameters used to define that quantity.
[0054] By convention, the three orthogonal axes of a Cartesian coordinate system are called the X-axis, Y-axis, and Z-axis.
[0055] Step 102 in the method of the present invention consists of defining a section T of the surface S to be coated by calculation using file F. This step 102 is illustrated in Figure 12 and includes an initial substep 1021 in which the computer 40 defines an initial Cartesian coordinate system R0, the origin O of the initial Cartesian coordinate system R0 being a point selected by the user on the support surface SP using, for example, an indicator device such as a mouse. In this substep 1021, the Z-axis vector Oz of the first Cartesian coordinate system R0 is initially defined as the normal vector Nsp on the support surface SP at the origin O. On the other hand, the Y-axis vector Oy of the first Cartesian coordinate system R0 is defined as the normalized cross product of the Z-axis vector Oz and an axis that substantially coincides with the direction of travel of the print head 10 along the center line M, aligned with the direction of travel selected by the user along the section SU of the support surface SP selected by the user using, for example, an indicator device. Finally, the X-axis vector Ox in coordinate system R0 is defined by the normalized cross product of the Y-axis vector Oy and the Z-axis vector Oz.
[0056] Alternatively, the user can select an origin O on a different surface, in this case on surface S, or in regions Z1 and Z0. The first Cartesian coordinate system R0 is then determined and adapted based on this.
[0057] Overall, the method of the present invention enables the print head 10 to move parallel to the section SU by adjusting the position of the print head based on the geometric model of the surface S generated by the file F.
[0058] A quantity known as the "average normal" and represented by a vector N is used. In the subsequent substep 1022 of step 102, the computer 40 initializes this average normal to the Z-axis vector Oz of the first Cartesian coordinate system.
[0059] In the subsequent substep 1023, index i is increased by 1 unit.
[0060] In subsequent sub-step 1024, in the initial orthogonal coordinate system R0, computer 40 defines a point P on the surface S to be coated as the point where the ordinate of that point is maximum among the ordinates of points on the surface S to be coated in the first orthogonal coordinate system R0. init That is, as can be seen from FIG. 6, point P init is "the farthest" along the Y-axis vector Oy among the points on the surface S to be coated in the coordinate system R0. As graphically shown in the parentheses in FIG. 12, point P init is defined as a function of the surface S and the Y-axis Oy.
[0061] In subsequent sub-step 1025, based on point P init , computer 40 measures a distance d2 along the Y-axis vector Oy with respect to the initial point P init and defines another point P cut on the surface S to be coated that is located in the negative direction along this axis as a point on the surface S to be coated. This second point P cut corresponds to a virtual cut on the surface S to be coated, so the second point P cut is called the cut point. More specifically, two planes π1 and π2 passing through the initial point P init and the cut point P cut respectively, both of which are perpendicular to the Y-axis vector Oy, that is, parallel to the X-axis vector Ox and the Z-axis vector Oz, are used to define a virtual section T' on the surface S to be coated. FIG. 6 shows this virtual section T'. Its width, measured along the axis vector Oy, is equal to the distance d2.
[0062] In the central part of Figure 3 and the example in Figure 4, the distance d2 is defined as (n, number of rows 16 of nozzle 14) × (d1, distance between two rows). In the lower example of Figure 3, the distance d2 is defined as (n, number of rows 16 of nozzle 14) × (m, number of columns 18 of nozzles) × (d1, distance between the strokes of two nozzles). Thus, the distance d2 is equal to the total width of beam 15 applied during the forward-return movement in the configuration shown at the top of Figure 4, and the total width of beam 15 applied during the forward-return movement followed by the forward movement in the configuration shown at the bottom of Figure 4. Similar to distance d1, distance d2 depends on the widths l15 and l17 of beam 15 and the spacing 17, i.e., the value of angle α or β. In either case, distance d2 is a multiple of distance d1.
[0063] Next, in substep 1027, the computer 40 calculates the mean normal vector Nμ in the coated surface S between the two planes π1 and π2, i.e., in the temporary section T'.
[0064] Following substep 1027, in substep 1028, the computer 40 compares the mean normal vector N defined in step 1022 with the mean normal vector Nμ defined in step 1027. This comparison between the two vectors can be performed in various ways, for example, by determining the angle between these two normals and finding their scalar product. In the case of a comparison using the angle determined between these vectors, the vectors are considered the same if the absolute value of this angle is less than a limiting value, and different if the absolute value of this angle is greater than this limiting value. This limiting value is 10 -9 ~10, preferably 10 -6 It can be determined as follows.
[0065] Depending on the result of this comparison in substep 1028, the computer 40 applies a different substep.
[0066] If the comparison in substep 1028 results in two mean normals being different, substep 1029 verifies that index i is strictly less than or equal to threshold V1. In this case, the variable vector N takes the value vector Nμ in substep 1030, and then the first orthogonal coordinate system R0 is redefined in step 1031 by a method similar to that in step 1021, but by the following sequence: The Y-axis vector Oy of the new orthogonal coordinate system R0 is obtained by normalizing the vector obtained from the cross product of vector N and the X-axis vector Ox of the first orthogonal coordinate system R0. The Z-axis vector Oz of the new orthogonal coordinate system R0 is defined by vector N. The X-axis vector Ox of the new orthogonal coordinate system R0 is obtained by normalizing the vector obtained from the cross product of vector N and the Y-axis vector Oy of the new orthogonal coordinate system R0. Substeps 1022-1028 are then repeatedly applied until vector N and vector Nμ are deemed equal in step 1028, or until the maximum number of iterations V1 is reached, in which case the computer 40 defines the final provisional section T' as section T on the surface to be coated, which is defined in the last substep 1026 performed. This is done during substep 1032, which is the last substep in step 102 of the method of the present invention.
[0067] In practice, the threshold V1, which is the maximum number of iterations in step 102, can be set to 1 to 20, preferably 5.
[0068] In short, step 102 is to define each point P so that section T is properly defined. init and P cut The first plane π1 and the second plane π2 passing through the surface S allow for the "cutting" of the section T. These points do not need to be located at the edges of the surface S, but may be located in the middle portion of the surface, away from the edges B1 and B2, as shown in Figure 7, following the application of iterative substeps 1022-1031.
[0069] After the section T is determined in step 102, the method of the present invention uses automatic calculation and iteration during the process of step 104 to determine the path T for the printhead to follow this section T. raj Define the area.
[0070] Step 104 is illustrated in Figure 13 and first includes an initialization substep 1041 by zeroing out two indices: index j and index k.
[0071] During the subsequent substep 1042, the computer 40 defines a second Cartesian coordinate system R1, whose origin is the initial point P defined in the last substep 1024 that was performed. init The X, Y, and Z axes are equal to the X, Y, and Z axes of the final version of the first Cartesian coordinate system R0 defined in step 1021 or step 1031.
[0072] In the subsequent substep 1043, the computer 40 determines a third point P, which is called the "starting point". start This defines the third point, which is the X-axis projection vector Ox of the point in the coated parcel T having the smallest transverse coordinate in the first Cartesian coordinate system R0, in the second Cartesian coordinate system R1.
[0073] Similarly, in substep 1044, the computer 40 determines a fourth point P called the “endpoint”. end This defines the fourth point, which is the X-axis projection vector Ox of the point in the coated section T having the largest transverse coordinate in the first Cartesian coordinate system R0, in the second Cartesian coordinate system R1.
[0074] The third and fourth points can be used to determine the direction of travel for the print head 10.
[0075] The order of substeps 1043 and 1044 can be changed. Alternatively, these substeps can be performed simultaneously. In another variation, steps 1043 and 1044 are not applicable.
[0076] Figure 7 shows the third and fourth points, as well as the two coordinate systems R0 and R1.
[0077] In substep 1045, the computer 40 initializes a variable vector nX, sometimes called a new axis X, as the X-axis of the second Cartesian coordinate system R1. This substep 1045 can be performed before, after, or simultaneously with substeps 1043 and 1044.
[0078] Next, in substep 1046, index j is increased by 1 unit.
[0079] In the subsequent substep 1047, in the second Cartesian coordinate system R1, the computer 40 determines a fifth point Q, sometimes called the initial point of the section, as the point on section T that has the smallest transverse coordinate in the second Cartesian coordinate system R1 among the points on the section to be coated. init This defines the fifth point Q. init It is defined as a point on the section T that has moved the least along the X-axis in the second Cartesian coordinate system R1.
[0080] In the subsequent substep 1048, the computer 40 determines a sixth point Q, which may also be called a cutting point of the section T, and is a point on this section located at a given distance d3 with respect to the fifth point and along a new axis vector nX. cut This defines the distance d3. For example, this distance d3 may be equal to the length L10 of the print head 10 measured parallel to line 16. Alternatively, this distance d3 may be considerably smaller than this length, for example, 1 / 10 of it, or considerably larger than this length, for example, 100 times this length. In practice, when the local curvature of the section T of the surface S to be coated can be calculated based on the file F, the distance d3 can be selected based on the local curvature of the section T of the surface S to be coated with respect to the length L10 of the print head 10.
[0081] In the subsequent substep 1049, the computer 40 is perpendicular to a new axis vector nX and each of the fifth points Q init and point Q cut Between the third plane π3 and the fourth plane π4, which pass through this area, a provisional portion P' of the area T is defined. Figure 8 shows this portion P' of area T.
[0082] If a provisional portion P' of section T is defined in substep 1049 as shown above, the mean normal vector N'μ in this portion P' is calculated in substep 1050.
[0083] In the subsequent substep 1051, the computer 40 calculates a variable representing a hypothetical longitudinal axis vector Xtemp, which is the cross product of the mean normal vector N'μ calculated in substep 1050 and the vector -Oy opposite to the Y-axis vector Oy of the second Cartesian coordinate system R1, and which is equal to the cross product that has been normalized, i.e., adjusted to a length of 1.
[0084] In the subsequent substep 1052, the computer 40 compares the previously defined new X-axis vector nX with the provisional longitudinal axis vector Xtemp defined in step 1051. The comparison method may be the same as that applied in step 1028 as described above with respect to substep 1028, or another method that allows for the comparison of the two vectors.
[0085] If the comparison in substep 1052 results in the two compared vectors being different, the system applies substep 1053 to compare index j with threshold V2. If this index is strictly less than threshold V2, the new axis vector nX takes the value vector Xtemp in substep 1054, and step 104 is restarted in substep 1046, returning to substep 1052. Thus, the iterative method is applied to j from 1 to V2 as long as vector Xtemp and vector nX are different.
[0086] If, in step 1052, it is found that vector Xtemp and vector nX are equal, or if the maximum number of iterations V2 is reached in substep 1053, a new substep 1055 is applied to define a portion P of the section T to be coated as equal to the last provisional portion P' defined in the last substep 1049 that was performed.
[0087] Therefore, substeps 1041-1055 are performed on the Q through which planes π3 and π4, which are perpendicular to the new X-axis vector nX, pass. init and Q cut The demarcation of the portion P of section T, which is cut off between the two, is made possible by iteration.
[0088] The user can select a threshold V2 for threshold V1. In practice, this can be set to 1 to 20, preferably 5.
[0089] After step 1055, a substep 1056 is applied in which the computer 40 calculates an orientation vector OT for the print head 10 that is equal to the normalized cross product of a new X-axis vector nX and the inverse -Oy vector of the Y-axis vector Oy of the second Cartesian coordinate system R1.
[0090] In the subsequent substep 1057, the computer 40 determines the fifth point Q init and point Q cut The fifth point Q init A seventh point P, called the center point, is located midway through the orthogonal projection onto a line that passes through and whose direction vector is equal to the new axis vector nX. centre Calculate the position of this center point P. centre This line passing through these two points is shifted in the negative direction of this axis by a third distance d4, measured along the Y-axis vector Oy of the second Cartesian coordinate system R1. This third distance d4 is determined to be half of the first distance d2, and therefore point P centre This is approximately midway between the first plane π1 and the second plane π2 described above.
[0091] In the next substep 1058, the seventh point P center However, along the line whose direction vector is the orientation vector OT, there is an eighth point P on the portion P of section T, which is called the collision point. impact It is projected in the form of. In substep 1058, this eighth point P impact For the seventh point and orientation axis vector OT, the application point P centre This occurs only when an intersection occurs between the line of the direction vector OT and the portion P of section T that includes the filling region, i.e., the region filled with material. This is the case for the first seven portions P1 to P7 of section T, as shown in Figure 9.
[0092] According to a variation of the present invention not shown, the eighth point P impact This is the seventh point P centre Without using the above, however, it can be defined by taking an overhead line formed by the intersection of the first overhead plane and the second overhead plane. The first overhead plane is located midway between planes π1 and π2, while the second overhead plane is located midway between planes π3 and π4. When this overhead line intersects the filled region in a portion P of section T, point P impact It exists.
[0093] In the case of the eighth portion P8, which is shown in an enlarged view in Figure 9, the projection of the seventh point falls onto port O8 which crosses portion P8. In this case, the eighth point P impact As an alternative to point P', impact This is defined. This alternative point P' impact To define this, computer 40 takes the ninth point, i.e., the endpoint p8 of the part P8 that is furthest from the direction opposite to the orientation vector of the head vector OT. In the example of Figure 9, this ninth point p8 is located at the “vertex” of the bulge of part P8. Then, this point p8 is, centre It is projected perpendicular to an axis that passes through and is parallel to the orientation axis of the head vector OT. The result of this projection is the eighth point P impact The tenth point P' as an alternative to impact It is defined as follows. Using the method related to step 1058, the eighth point P impactIf it is not possible to construct, substep 1059 proceeds to the eighth point P impact The tenth point P' impact Use the eighth point P. In other words, in this case, impact This is the tenth point P' impact It is considered equal to.
[0094] At the end of substeps 1058 and 1059, the computer 40 stores the eighth point P in a storage unit (not shown) connected to the computer. impact The orientation axis vector OT is also stored.
[0095] According to variations of the present invention not shown, typically the eighth point P impact This is determined as described above for the case of the eighth part P8. In other words, for consideration, the seventh point P centre Whether a line or overhead line passing through crosses a filled area such as section P1, P2, or the other is irrelevant. Usually, the tenth point P' impact This is used.
[0096] Therefore, substeps 1056 to 1070 enable the calculation and storage of the theoretical impact point of the jet of the coating product onto the portion P defined in substep 1055, and the orientation axis vector OT of the print head for this impact point.
[0097] In the subsequent substep 1071, the portion P of section T where the collision point and orientation vector were calculated is removed from section T, and after setting the index j to zero in substep 1073, step 104 is restarted in substep 1046.
[0098] As shown in substep 1072 of Figure 13, the series of substeps 1046–1071 applies as long as the area of partition T is not zero.
[0099] Instead, the reduction of the section T of the surface S to be coated, which is done in step 1071 by removing the section P defined in step 1055, is done at point Q init Starting at point Q, a substep of removing a certain segment from a section T that extends over a user-defined distance dAvance can be replaced. To do this, the computer 40 removes a segment from point Q. init Starting from, adding the distance dAvance along a new axis vector nX, then the computer 40 determines the partition T and point Q init It is exchanged for a portion of the section located at a distance dAvance away.
[0100] By the deletion of part P identified in step 1055, or by the variable Q init In step 1071, the fragments of partition T are removed by the portion determined using the vectors nX and dAvance.
[0101] The iterative method applied in substeps 1046 to 1072 is thought to enable stepwise processing of partition T and, in step 1070, the storage of points and axes for each of the considered parts P or corresponding parts of partition T.
[0102] This means that the collision point P impact Alternatively, an alternative collision point P' impact However, the orientation axis vector OT at this point results in the configuration shown in Figure 9, which is defined for each surface portion P1, P2, etc.
[0103] After the entire surface of section T has been processed in substeps 1046 to 1071, that is, after substep 1072 has determined that the area of section T is 0, the computer 40 determines, for each eighth point, in substep 1074, the axis vector AxeXT of the print head 10 at this collision point, which is equal to the normalized cross product of the orientation vector OT of the print head 10 at this point and the Y-axis vector Oy of the second Cartesian coordinate system R1.
[0104] In the subsequent substep 1075, the computer 40 determines the eighth point P impact Using this, a feature point P is reached, called the "tool center point," which is a reference point for the spatial positioning of the print head 10. tcp This defines the eighth point P, as shown in Figure 10. impact This is at half the distance d2 defined above, relative to the print head 10, and at point P impact and P h It is assumed that the two are positioned such that they are aligned along the axis vector Oy. The reference nozzle 140 is specified among the nozzles 14, and for example, in Figure 10, it is the nozzle located at the lower right corner of the print head 10. This nozzle 140 is the tool center point or point P tcp It can be defined as follows: Point P parallel to the axis vector AxeXT. h and P tcp The difference dx between point P and point P is described. impact and P h Since the points are aligned along the axis vector Oy, the displacement dx is also parallel to the axis vector AxeXT, point P impact and P tcp It is also a discrepancy between point P and point P. impact and P tcp Between these two points, a negative displacement dy parallel to the Y-axis vector Oy of the second Cartesian coordinate system R1 is described.
[0105] Under these conditions, the position of the reference nozzle 140 is given by: [Math 1] Therefore, collision point P impact Feature points P expressed as a function of position tcp This can be considered as its position.
[0106] point P tcp If this is specified, in substep 1076 following step 1075, point P tcpIt is included in the file Traj for the path for the reference nozzle 140 that follows the section T of the surface S to be coated, together with the vector OT of the head. This is because in the path file Traj, different feature points P corresponding to different parts P or fragments of the section T tcp and different orientation axes of the head vector OT are continuously recorded.
[0107] Instead, sub-steps 1074 to 1076 can be applied between sub-steps 1070 and 1071 or even simultaneously with sub-step 1070.
[0108] According to an optional sub-step 1077 of the present invention, at least one additional engagement point and at least one additional release point for the print head on the path, which are completed along the section T, can be added to the path file Traj. In practice, two additional engagement points P e1 and P e2 and two additional release points P d1 and P d2 are added to the path file generated for each section T. The two engagement points P e1 and P e2 are collinear with the first two points P tcp of the path Traj and are located at a certain parameterized distance from these first two points. Similarly, the two release points P d1 and P d2 are collinear with the last two points P tcp of the path and are located at a certain parameterized distance from the last two points P tcp . The two parameterized distances used for the engagement points and the release points may be the same or different.
[0109] If the path file generated for the section T contains a single point P tcp , based on this single point, at least one engagement point and at least one release point are defined using the axis vector AxeXT.
[0110] Instead, according to a technique that provides further flexibility to the method of engaging the print head 10 with the path Traj, the engagement points P e1 and P e2 are defined by the fact that they are collinear with the point P tcp corresponding to the first point on the path Traj and P e1 and P e2 and that the line on which they are located is parallel to the vector defined by the cross product of the first orientation axis of the head vector OT for the path Traj and the Y-axis vector Oy of the second orthogonal coordinate system R1. Similarly, according to a technique that provides further flexibility to the method of releasing the print head 10 from the path Traj, the release points P d1 and P d2 are defined by the fact that they are collinear with the point P tcp corresponding to the last point on the path Traj and P d1 and P d2 and that the line on which they are located is parallel to the vector defined by the cross product of the last orientation axis of the head vector OT for the path Traj and the Y-axis vector Oy of the second orthogonal coordinate system R1.
[0111] The number of engagement points and release points is not essential but is equal to 2. As described above, the number may be 1. The number may also be 3 or more. The number of engagement points is not essential but is equal to the number of release points.
[0112] In the subsequent sub-step 1078, the computer 40 optimizes the number of points P tcp of the trajectory file Traj. In this context, if three consecutive points P tcp of the trajectory file are collinear and their orientation axis vectors OT are parallel, the intermediate point P tcp under consideration is deleted from the startup file, and the head orientation vector OT associated with this point is also deleted. This optimization sub-step makes it possible to reduce the number of points P tcp of the trajectory due to the collinearity of these points in space and to avoid overloading the computing power of the computer 40.
[0113] Substep 1078 is optional. Substep 1078 is for point P in each trajectory file Traj. tcp Depending on the number of [units] and the computing power of computer 40, this may or may not be performed.
[0114] In the subsequent substeps 1079–1091 of step 104, the number of forward and backward strokes to be made for coating the strip T of surface S is taken into account. The explanation provided above in relation to Figures 3 and 4 is applied and mutatis mutandis to the coating of the strip T of surface S to be coated.
[0115] The Armax value is defined as the sum of the forward and backward strokes required for the print head to cover strip T. In the case shown at the bottom of Figure 2, this ARmax number is equal to 1. In the case shown in the middle of Figure 3 and at the top of Figure 4, this number is equal to 2. In the case shown at the bottom of Figure 4, this number is equal to 3.
[0116] The index k, which is initialized to zero in step 1041 and incremented by 1 in step 1079, represents the number of trajectory sequences to be performed, and is either a forward stroke (when index k is odd) or a backward stroke (when index k is even). The file corresponding to trajectory T is actually point P tcp and the associated vector OT exists as an array. As the process progresses from index k-1 to index k, the computer 40 duplicates the array generated in step 1076.
[0117] If index k is even, computer 40 inverts the duplicated array, i.e., point of interest P tcp By changing the order of the associated vectors OT, the first point and the first vector become the last point and the vector, and vice versa. Each point of interest P tcp Regarding point P, computer 40 determines tcpShift point P in the opposite direction to the vertical axis vector Oy of the second orthogonal system R1 by a distance d5 equal to (index (k-1)) × (beam width l15). In other words, point P tcp The vector is shifted by a distance d5 = (k-1) × l15. The resulting new set of points, along with the uncorrected orientation vector OT for these different points, forms the return section of the trajectory along section T. This new section Δtraj of the trajectory Traj is added to the existing trajectory in substep 1091.
[0118] If index k is odd and not 1, then point P tcp The order is maintained with respect to the order determined in substep 1076, i.e., inverse to that of the orbital section ΔTraj determined for index k-1 which is even, and for some point P tcp However, for the last calculation performed, the axis vector Oy of the second orthogonal system R1 is shifted by the same distance d5 in the opposite direction. The resulting new set of points, and the orientation vector OT which has not been modified for these different points, form a new forward section of the trajectory along section T. This new section ΔTraj of the trajectory Traj is added to the existing trajectory in substep 1091.
[0119] Therefore, for indices k from 2 to ARmax, the respective segment Δtraj added to the orbit is determined by the previously calculated orbital segment P. tcp It is calculated by reversing the order of the terms.
[0120] In step 1090, when the maximum number of forward and backward strokes is reached, the complete trajectory for the T-strip is generated in substep 1092 of step 104.
[0121] According to aspects of the present invention not shown, if an uncoated area exists on the surface S, as represented by region Z0 in Figure 5, the robot's trajectory is adjusted so as not to interfere with this region Z0. Consider a strip T of surface S crossing the uncoated region Z0. When the computer 40 proceeds with the calculation of step 104 described above, point of interest P tcp For one of these, its projection P by the orientation vector OT onto the uncoated region Z0. tcp / proj If such a thing exists, and point P tcp From point P tcp / proj If the vector moving is in the opposite direction to the orientation vector OT, then computer 40 determines point of interest P tcp This is considered to mean that it is interfering with the uncoated region Z0. In this case, the shift of the adapted size is at point P of interest. tcp This is applied to the position and moves that position in the opposite direction to the orientation vector OT from the surface S to be coated to the level of the uncoated area Z0. In other words, in the uncoated area Z0, the trajectory followed by the print head is adapted so as not to hit the object O to be coated, i.e., to avoid interference between the print head 10 and this object.
[0122] The technique used to avoid interference between the print head 10 and the object to be coated O in the uncoated region Z0 can also be applied to the coated region Z1. When step 104 is performed with the possible adaptations at the level of the uncoated region Z0 described above, step 106, which consists of automatically removing the coated strip T that was included in the calculations between steps 102 and 104 from the modeling file F, is performed by the computer 40 before starting again at step 102.
[0123] Instead, in step 106, the computer 40 generates a new modeling file F corresponding to the modeling file F from which strip T has been removed. This is also equivalent to removing strip T from file F.
[0124] In other words, trajectory generation is performed by sequential iterations corresponding to each strip T, and these T strips are removed from file F when the corresponding trajectory Traj is determined.
[0125] This is done until the area of the modeled coated surface S in file F becomes zero; that is, the successive deletion of different strips T corresponds to the complete elimination of surface S in file F. This is evaluated in step 108. Steps 102-106 are repeated unless the area detected in step 108 is zero.
[0126] At the end of this Step 108, each point of interest P tcp In this case, the orientation vector OT of the print head is followed, and the point of interest P is reached by the reference nozzle 140 of the print head 10. tcp A global orbital file TRAJ containing a set of orbitals is available, and this orbital file contains Traj orbitals corresponding to the possible forward and backward strokes performed for each strip T.
[0127] To avoid the risk of interference between the print head 10 and the physical surface of the object O to be coated, preferably, a system offset of, for example, 10 nm, at point P tcp The orientation vector OT and the offset in the opposite direction are controlled by the controller 24 to all points P of each trajectory Traj. tcp This applies to point P. In practice, controller 24 is at point P. tcp Using these points P tcpThis constitutes a set of points further from the surface S. This offset is a measure of safety intended to prevent the print head 10 from hitting the object O being coated. The value of this offset is selected according to the accuracy of the robot 20's movement, the accuracy of the modeling of the surface S in the file F, and the shape of the print head 10.
[0128] From the trajectory files Traj generated in various stages 104, the digital simulation allows us to know the position, orientation, and possible operation of each nozzle 14 during stage 110 as a function of the configurable forward steps of the standard nozzle 140 relative to each trajectory Traj.
[0129] Step 110 includes a first substep 1101 in which the position and orientation of each nozzle 14 are determined as a function of a parameterizable feed rate.
[0130] In this substep 1101, the computer 40 controls the movement of each reference nozzle 140 to point P of interest in the trajectory Traj. tcp and two pairs (P) formed by the associated head orientation vector OT tcp Between vector OT, it is divided into several elemental steps p. In other words, computer 40 focuses on point P of the orbit Traj. tcp Between nozzle 14, discretized portion P14 I,p This discretizes the position of the print head 10.
[0131] Assuming that the body 12 of the print head 10 is rigid and accurately modeled, the position of the reference nozzle 140 makes it possible to know the positions of the other nozzles 14 as the print head 10 moves along the trajectory Traj.
[0132] Nozzle 14 is thought to be numbered by index I, from 1 to n × m. P14 is I between 1 and n × m, and during the movement of the print head 10 along the trajectory Traj, nozzle 14l It is the point reached by [the means of the action].
[0133] In substep 1102 of step 110, and at each point P14 I In this case, the computer 40 determines the point PI of the collision between the spray of the coating product coming out of this nozzle and the surface S, that is, the nozzle 14 in question. I Regarding the points of intersection between the straight line positioned along the axis and the surface to be coated, the corresponding nozzle 14 I To search for each nozzle 14 and each discretized position P14 in substep 1101. I,p Regarding the collision point PI, I,p The computer determines the existence of point PI of this collision. If point PI of this collision exists, the computer 40 determines that the nozzle should spray the coating material at this point. If point PI of this collision does not exist, the computer 40 determines point P14 I While in this state, the nozzle determines that it should not spray the coating material.
[0134] Consider that the print head 10 is moving forward along the trajectory in step p. In this case, during substep 1102, each nozzle 14 I Regarding this, the computer 40 determines that point P14 is reached in step p. I,p , the orientation vector OT in this step I,p+1 and collision point PI l,p We can focus on the corresponding coordinates, where indices I and p mean that the point to be reached and the collision point are those of nozzle I in step p. Then the computer 40 moves on to the next step, p+1, and each nozzle 14 I Regarding the collision point PI l,p+1 The same operation is repeated to calculate. If a point of collision exists, the computer 40 determines it as point P. I,p+1 and related vector OT I,p+1 Record again as a pair formed by the same action.
[0135] Nozzle 14 I Regarding point P of two consecutive collisions, I,P and PI I,p+1 When such a distance d exists, the computer 40 calculates the distance d between these two collision points during substep 1103 of step 110. I,p Calculate this distance d. I,p Between two steps p and p+1 of the advancement of nozzle I along trajectory Traj, nozzle 14 I This is the distance covered by [the element / structure].
[0136] Similarly, the same nozzle 14 I If there are three consecutive collision points, the computer 40, during substep 1103, coats the distance d in the second step with the same grade as before. I,p+1 , that is, point PI I,p+1 and PI I,p+2 Calculate the distance between them.
[0137] Therefore, during the movement of the print head 10 along the trajectory, each nozzle 14 l Regarding the sequence of steps, The distance d coated during this sequence of steps l In other words, when painting, that is, when spraying a coating material, the distance that this nozzle needs to cover is, The distance d' that is not covered in this sequence of steps l That is, without painting, that is, without spraying a coating product, the distance that this nozzle must cover and This makes it possible to make a decision.
[0138] The nozzles 14 are distributed apart from each other and spaced apart on the front side of the print head 10, that is, on the side of the print head 10 facing the object O to be coated. Therefore, not all nozzles travel the same distance between two consecutive steps of the print head 10. Consequently, the coated surface S seen from each nozzle is different. To simplify the calculation, we calculate the coated distance and / or uncoated distance for the reference nozzle 140, and the coated distance or uncoated distance for each nozzle 14 relative to the reference nozzle 140. I Taking the position of the nozzle 14 into consideration, it is possible to apply an increasing or decreasing multiplier, which determines whether the distance to be coated or not to be coated, relative to the nozzle 14 of the reference nozzle 140. I The goal is to convert it into a function of distance. This is also done during substep 1103.
[0139] Alternatively, in substep 1103, the ratio of distances can be applied directly to the relevant distances without using multipliers.
[0140] Regardless of whether a multiplier is used or not, in substep 1103, the computer 40 controls the nozzle 14 I Based on the distance between the reference nozzle 140 and the coated distance d at each discretized position of the orbit I or the distance d that is not coated l And, optionally, calculate the multiplication coefficient.
[0141] Each nozzle 14 I Regarding the coated distance d I and the uncoated distance d' IThe calculation of various multiplication coefficients, as well as the calculation of various multiplication coefficients if necessary, is performed during the final substep 1104 of step 110, which is to program the program file, i.e., for each trajectory Traj defined for each section T of the surface S to be coated, in particular, for various nozzles 14 for the overall trajectory TRAJ formed by various trajectories Traj. I This makes it possible to create a storage medium for the program Prog(TRAJ) that operates it.
[0142] This programming file Prog(TRAJ) is used by ECU30 to control each nozzle 14 I This is controlled according to the coated distance, the uncoated distance, and the associated multiplication coefficient.
[0143] As in the alternative assumed above, when the ratio of distances is applied directly to the relevant distances without using a multiplier, the Prog(TRAJ) programming file contains only the covered and uncovered distances, and does not contain a multiplication factor.
[0144] In the alternative, in each discretization step of substep 1101, each nozzle 14 I Regarding the potential collision point PI, the distance d I or d' I And it can be determined in the same way as the multiplication coefficient.
[0145] Therefore, the order of substeps 1101 to 1103 described above can be changed by adapting step 110.
[0146] In practice, the calculation steps are performed by computer methods that constitute the computer 40, which are programmed for this purpose and are associated with computer memory that can store the results of these calculations before they are sent to the ECU 30 in the form of a programming file Prog(TRAJ) and to the controller 24 in the form of a trajectory TRAJ.
[0147] Under these conditions, when the program Prog(TRAJ) is defined during step 110 of the method of the present invention as described above, during step 112, the robot 20 moves along the trajectory TRAJ to the physically coated surface, whose file F is a computer model, according to the operating program defined in step 110, to each point of interest P tcp This can be done when moving the print head 10 while adhering to the orientation of the reference nozzle 140, as shown by step 112 in Figure 11.
[0148] Alternatively, the program Prog(TRAJ) for activating the nozzles 14 of the print head 10 can be defined immediately after determining the paths for each strip T of the surface S to be coated. In other words, step 110 may be performed before steps 106 and 108. The different nozzle activation programs defined for each trajectory to the strip T can then be grouped together to form a global program for activating the nozzles for the entire trajectory across the entire surface S.
[0149] The present invention has been described above in the case where markers R0 and R1 are orthogonal. In particular, these marks may be orthogonal, or conversely, they may not be orthogonal and / or normal. In such cases, the calculations of the method of the present invention are applicable.
[0150] By combining the operating modes and modifications described above, new operating modes of the present invention can be created.
Claims
1. A method for applying a coating product to a surface (S) to be coated of an object (O), the surface to be coated being modeled by a computer file (F) and comprising at least one area to be coated (Z1), the method being carried out on the one hand by a print head (10) provided with a body (12) equipped with at least one print nozzle (14) on the other hand, attached to an arm (22) of a robot (20) provided for moving the print head relative to the surface, the method being carried out by a computer (40), and a) defining (102) a strip (T) of the surface to be coated from a computer file (F) containing a model of the surface (S) to be coated by automatic calculation; b) Defining (104) by automatic calculation a trajectory (Traj) for the surface strip (T) to be coated, said trajectory being determined by each of the points of interest (P tcp ), a point of interest (P) reached by a given point (140) of the printhead with the printhead orientation (vector OT) being respected. tcp ) (104); c) deleting (106) the strip to be coated (T) from a computer file (F) modelling the surface to be coated (S) by automatic calculation; d) repeating step a) until the area of the modeled surface to be coated is zero; e) defining (110) for each path (Traj) a program (Prog(TRAJ)) for activating each nozzle (14) of the printhead (10); and f) applying (112) the coating product by activating each nozzle of the print head for the different trajectories (Traj) defined in step b) according to the activation program (Prog(TRAJ)) defined in step e), while respecting the orientation (vector OT) of the print head (10) at each point of interest; 16. A method comprising at least the successive steps of:
2. Step b) is bA) the substep (1041 to 1055) of defining, by repetition, portions (P) of a strip (T) of an area (T) of a surface (S) to be coated; bB) the point of collision (P) on the part defined in sub-step bA). impact ) and the axis (10) of orientation (vector OT) at the point of impact; bC) substeps (1041-1071) of eliminating, by calculation, portions (P) of the strip (T) of the surface area (S) to be coated; bD) starting again with step bA) until no more parts are coated; bE) generating (1076) a portion of the trajectory (Traj) corresponding to a forward movement of the print head length of the part (T) to be coated; and bF) generating (1091) a portion of the trajectory (ΔTraj) corresponding to a further return or forward movement of the print head along the part to be coated, if necessary, based on the size of the beam of coating product (15) coming from the print head and the size of the part to be recoated (d2); 2. The method of claim 1, comprising the successive substeps of:
3. The method is carried out between steps b) and c) when the surface to be coated (S) comprises at least one uncoated area (Z0), and g) Adapting the trajectory (Traj) of the print head (10) based on the uncoated area (Z0) to avoid hitting the object (O). The method according to claim 1 or 2, comprising the further step of:
4. Step a) is a1) a point (O) selected by the user as an origin, in the representation of the space using a computer file (F), on a virtual support surface (SP) located close to the area to be coated (S) or on the surface to be coated (S) itself; a normal (Nsp) perpendicular to the support surface (SP) or surface (S) at the origin as the height axis (Oz); As the ordinate axis (vector Oy), the vector product of the height axis and the axis aligned with the direction of travel selected by the user; and The vector product of the abscissa axis (vector Ox) and the ordinate axis (vector Oy) and the height axis (vector Oz) defining a first Cartesian coordinate system (R0) having the substep (1021); a2) substep (1022) of defining a first normal (vector N) and taking as its initial value a value equal to a vector whose direction is the height axis (vector Oz) of the most recently defined first Cartesian coordinate system (R0); a3) in the first Cartesian coordinate system (R0), a first point (P) is selected as the point on the surface to be coated (S) having the largest ordinate in the first Cartesian coordinate system among the points of the surface to be coated. init ) (1024); a4) in a first Cartesian coordinate system (R0), a second point (P) is determined as a point on the surface to be coated that is located a first distance (d2) from the first point, relative to the ordinate axis and the location of each nozzle (14) in the print head (10); cut ) (1025); a5) perpendicular to the ordinate axis (vector Oy) of the first Cartesian coordinate system (R0) and a first point (P init ) and the second point (P cut a sub-step (1027) of calculating the average normal vector (vector Nμ) of a virtual strip (T′) of the surface to be coated defined (1026) between a first plane (π1) and a second plane (π2) passing through respectively the first plane (π1) and the second plane (π2); a6) comparing the first normal vector (vector N) with the average normal vector (vector Nμ) (1028); a7) if it is determined in step a6) that the first normal vector and the average normal vector are different, a71) redefining the first normal vector as equal to the average normal vector (1030); a72) redefining the first Cartesian coordinate system taking into account the new first normal vector (1031); a73) repeating sub-steps a3) to a6); a8) if in step a6) it is determined that the initial normal vector and the average normal vector are equal, then redefining (1032) the portion to be coated (T) as being equal to the provisional strip (T') in step a5); A method according to any one of claims 1 to 3, characterized in that it comprises at least the successive sub-steps of:
5. 5. The method according to claim 4, characterized in that the body (12) of the printhead (10) comprises several nozzles (14) arranged in parallel rows (16), and the first distance (d2) is a multiple of the distance (d1) between two adjacent rows (16) of nozzles or between two consecutive nozzles of the same row, measured perpendicularly to the forward movement direction (F1) of the printhead.
6. Step b) is b1) The origin is the first point (P init ) and defining a second Cartesian coordinate system (R1) whose abscissa axis (vector Ox), ordinate axis (vector Oy) and height axis (vector Oz) are superimposed on the axes of the first Cartesian coordinate system (R0) most recently defined in step a1) or step a72); b2) defining (1045) a new abscissa axis (vector nX) as an abscissa axis (vector Ox) of a second Cartesian coordinate system (R1); b3) in a second Cartesian coordinate system (R1), an initial point (Q init a sub-step (1047) of defining b4) in a second Cartesian coordinate system (R1), the cutting point (Q) is calculated as a point on the strip (T) of the surface to be coated that is located at a given distance (d3) relative to the initial point and along the new abscissa axis. cut ) (1048); b5) perpendicular to the new abscissa axis (vector nX) and the initial point (Q init ) and the cut point (Q cut a sub-step (1050) of calculating the average normal vector (vector N′μ) for a hypothetical portion (P′) of a defined strip (T) of the surface to be coated, the portion (P′) being defined (1049) between a third plane (π3) and a fourth plane (π4) passing through, respectively, b6) calculating (1051) a temporary longitudinal axis (vector Xtemp) equal to the normalized vector product of the mean normal vector calculated in step b5) (vector N′μ) and the inverse of the ordinate Y axis (vector −Oy) of a second Cartesian coordinate system (R1); b7) comparing the new abscissa axis (vector nX) with the temporary longitudinal axis (vector Xtemp) (1052); b8) if it is determined in step b7) that the new abscissa axis and the provisional longitudinal axis are different, b81) redefine the new abscissa axis (vector nX) as equal to the temporary longitudinal axis (vector Xtemp) (1054); b82) performing sub-steps b3) to b7) again; b9) if in step b7) it is determined that the new X-axis and the provisional longitudinal axis are equal, then a substep (1055) of defining the portion of the strip to be coated (P) as being equal to the provisional portion (P') in step b5); 6. The method according to claim 4 or 5, characterized in that it comprises at least the successive sub-steps of:
7. Step b) follows sub-steps b1) to b9), and b10) calculating (1056) a print head orientation vector (vector OT) equal to the vector product of the new abscissa axis (vector nX) and the inverse of the ordinate axis (vector -Oy) of the second Cartesian coordinate system (R1); b11) Initial point (Q init ) and the cut point (Q cut ) and the initial point (Q init ) and having a direction vector equal to the new axis (vector nX), Measure along the ordinate axis (vector Oy) of the second Cartesian coordinate system (R1) and in the negative direction along this axis to find the initial point (Q init ) to a third distance (d4) which is half of the first distance (d2). The center point (P centre ) (1057); b12) A center point (P) of a strip (T) of the surface to be coated along a straight line whose direction vector is the print head orientation vector (vector OT) centre ) as a projection of the collision point (P impact ) (1058); b13) If a collision point exists, the collision point (P impact ) and the print head orientation vector (vector OT) to the trajectory (Traj) (1070).
7. The method of claim 6, comprising at least the successive substeps of:
8. The printhead (10) has a body (12) with several nozzles (14) arranged in parallel rows (16), a center point (P) along a new abscissa axis (vector nX) of a second Cartesian coordinate system (R1), centre ) is the abscissa of the initial point (Q init ) and the cut point (Q cut ), and half the sum of the abscissas of the orthogonal projection onto a line that passes through the initial point and has a direction vector equal to the new axis (vector nX), and the center point (P centre 8. The method according to claim 7, characterized in that the straight line (n) is shifted with respect to this straight line and in a direction opposite to the ordinate axis (vector Oy) of the second Cartesian coordinate system by a distance (d4) equal to half the product of the number of nozzle rows (n) and the distance (d1) between two of these rows (n x d1 / 2), measured along the ordinate axis.
9. The direction vector is the print head orientation vector (vector OT) and the center point (P centre If there is no point of impact in step b12) due to a lack of material in the strip (T) of the surface to be coated along a straight line passing through b14) finding an end point (p8) of the portion (P) of the strip to be coated, the end point (p8) being located along an axis parallel to the orientation vector (vector OT) of the print head, in the opposite direction to this vector; b15) Center point (P centre ) and projecting the end point (p8) onto an axis parallel to the print head orientation vector (vector OT) to obtain an alternative point of collision (P' impact ) defining the b16) Point of collision (P centre ) to the alternative points of impingement (P') for the part (P) of the strip (T) being coated in the process. impact ) and substep (1059) 9. The method according to claim 7 or 8, characterized in that a further sub-step consisting of:
10. Step b) follows sub-steps b1) to b13), and b18) substep (1071) of reducing the strip (T) of surface to be coated by a fraction of itself; b19) determining whether the strip of surface to be coated has a non-zero area (1072); b20) if the result of the determination in step b19) is yes, performing sub-steps b3) to b19) again A method according to any one of claims 7 to 9, characterized in that it comprises at least the successive sub-steps of:
11. 11. A method according to claim 10, characterized in that the portion from which the strip (T) is reduced in sub-step b18) is the portion (P) defined in step b9).
12. Step b) follows steps b1) to b13), and b21) Each collision point (P impact defining (1074) the axis vector of the print head at point (vector AxeXT) as equal to the normalized vector product of the orientation vector of the print head at this point (vector Ot) and the ordinate axis of the second Cartesian coordinate system (vector Oy); b23) Point of collision (P impact , the distribution (dx, dy) of the nozzles (14) in the print head (10), the head axis vector (vector AxeXT) and the Y axis (Oy) of the second Cartesian coordinate system (R1), the target point (P tcp ) (1075); b24) The corresponding collision point (P impact ) in the focus (P tcp ) and the print head orientation vector (vector OT) in a trajectory (Traj) (1076). A method according to any one of claims 7 to 11, characterized in that it comprises at least the successive sub-steps of:
13. Step b) calculates at least one entry point (P e1 , P e2 ) and / or the exit point (P d1 , P d2 ) to the trajectory (Traj) defined for each strip (T) of the surface to be coated; and / or Step b) removes at least one point of interest (P) in the trajectory, i.e., a point of interest that is collinear with the points preceding and following it along the length of the trajectory (Traj) and whose axis of orientation (vector OT) is parallel to the axis of orientation of the points preceding and following it along the length of the trajectory. tcp ) and further comprising the sub-step (1078) of optimizing the number of The method according to claim 12, characterized in that
14. Step b) prints the beam (15) of coating product from the printhead (10). and the width (d2) of the strip (T) of the surface to be coated, and if necessary, after the first forward movement, one or more sections (ΔTraj) of the trajectory (Traj) are moved to a focus point (P) defined in step b23) for the previous section of the trajectory. tcp 14. The method according to claim 12 or 13, characterized in that the calculation is performed by reversing the order of
15. Method according to any one of claims 4 to 14, characterised in that the sub-steps a71) to a73) or b81) and b82) are performed until a certain number of iterations (V1, V2) have been performed.
16. Based on the trajectory (Traj) defined in step b), the calculator (40) calculates for each printhead nozzle (14) the covered distance (d) from the succession of points (p) of the printhead (10) progression. I ) or the uncovered distance (d' I 16. The method according to claim 1, further comprising calculating
17. Step e) is e1) Discretized position (P14) I,p ) to find the point (P) of the trajectory (Traj). tcp ) a sub-step (1101) of discretizing the shift of the print head (10) between the e2) In sub-step e1), each discretized position (P14 l,p ) for each nozzle (14) l,p ) substep (1102); e3) At each discretized position of the trajectory, the covered distance (d l ) or the uncovered distance (d' l ) and optionally a multiplication factor based on the distance between the nozzle (14) and the reference nozzle (140); and e4) creating a programming sheet (Prog(TRAJ)) for activating each nozzle along the length of the trajectory (1104); A method according to any one of claims 1 to 16, characterized in that it comprises the sub-steps:
18. An installation for applying a liquid coating product to a surface (S) of an object (O) to be coated, characterized in that the installation comprises, on the one hand, a print head (10) attached to an arm (22) of a robot (20) so as to be able to move the print head according to the surface, and on the other hand, a body (12) provided with at least one print nozzle (14), characterized in that this setup comprises a computer configured to carry out the method according to any one of claims 1 to 17.