EP3317783A1 - Dispositif de traitement de données pour fabrication additive - Google Patents
Dispositif de traitement de données pour fabrication additiveInfo
- Publication number
- EP3317783A1 EP3317783A1 EP16747818.9A EP16747818A EP3317783A1 EP 3317783 A1 EP3317783 A1 EP 3317783A1 EP 16747818 A EP16747818 A EP 16747818A EP 3317783 A1 EP3317783 A1 EP 3317783A1
- Authority
- EP
- European Patent Office
- Prior art keywords
- voxel
- data
- graph
- edge
- nodes
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Withdrawn
Links
- 239000000654 additive Substances 0.000 title claims abstract description 8
- 230000000996 additive effect Effects 0.000 title claims abstract description 8
- 238000004519 manufacturing process Methods 0.000 title claims abstract description 8
- 238000012545 processing Methods 0.000 title claims description 11
- 238000000034 method Methods 0.000 claims abstract description 20
- 239000003351 stiffener Substances 0.000 claims description 33
- 239000003550 marker Substances 0.000 claims description 18
- 230000009466 transformation Effects 0.000 claims description 16
- 230000000644 propagated effect Effects 0.000 claims description 12
- 238000004088 simulation Methods 0.000 claims description 11
- 238000007747 plating Methods 0.000 claims description 7
- 230000003252 repetitive effect Effects 0.000 claims description 3
- 238000013519 translation Methods 0.000 claims description 3
- 238000004590 computer program Methods 0.000 claims description 2
- 238000003672 processing method Methods 0.000 claims description 2
- 230000008569 process Effects 0.000 abstract description 3
- 230000006870 function Effects 0.000 description 52
- 239000007787 solid Substances 0.000 description 28
- 238000005070 sampling Methods 0.000 description 5
- 238000010146 3D printing Methods 0.000 description 4
- 238000004364 calculation method Methods 0.000 description 4
- 238000007639 printing Methods 0.000 description 3
- 230000003247 decreasing effect Effects 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 238000011282 treatment Methods 0.000 description 2
- 230000000007 visual effect Effects 0.000 description 2
- 241000283973 Oryctolagus cuniculus Species 0.000 description 1
- 238000005520 cutting process Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 210000005069 ears Anatomy 0.000 description 1
- 230000002708 enhancing effect Effects 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 238000010297 mechanical methods and process Methods 0.000 description 1
- 230000001902 propagating effect Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 238000003860 storage Methods 0.000 description 1
- 230000002195 synergetic effect Effects 0.000 description 1
- 238000000844 transformation Methods 0.000 description 1
- 230000001131 transforming effect Effects 0.000 description 1
- 239000013598 vector Substances 0.000 description 1
Classifications
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B29—WORKING OF PLASTICS; WORKING OF SUBSTANCES IN A PLASTIC STATE IN GENERAL
- B29C—SHAPING OR JOINING OF PLASTICS; SHAPING OF MATERIAL IN A PLASTIC STATE, NOT OTHERWISE PROVIDED FOR; AFTER-TREATMENT OF THE SHAPED PRODUCTS, e.g. REPAIRING
- B29C64/00—Additive manufacturing, i.e. manufacturing of three-dimensional [3D] objects by additive deposition, additive agglomeration or additive layering, e.g. by 3D printing, stereolithography or selective laser sintering
- B29C64/30—Auxiliary operations or equipment
- B29C64/386—Data acquisition or data processing for additive manufacturing
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B29—WORKING OF PLASTICS; WORKING OF SUBSTANCES IN A PLASTIC STATE IN GENERAL
- B29C—SHAPING OR JOINING OF PLASTICS; SHAPING OF MATERIAL IN A PLASTIC STATE, NOT OTHERWISE PROVIDED FOR; AFTER-TREATMENT OF THE SHAPED PRODUCTS, e.g. REPAIRING
- B29C64/00—Additive manufacturing, i.e. manufacturing of three-dimensional [3D] objects by additive deposition, additive agglomeration or additive layering, e.g. by 3D printing, stereolithography or selective laser sintering
- B29C64/30—Auxiliary operations or equipment
- B29C64/386—Data acquisition or data processing for additive manufacturing
- B29C64/393—Data acquisition or data processing for additive manufacturing for controlling or regulating additive manufacturing processes
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B33—ADDITIVE MANUFACTURING TECHNOLOGY
- B33Y—ADDITIVE MANUFACTURING, i.e. MANUFACTURING OF THREE-DIMENSIONAL [3-D] OBJECTS BY ADDITIVE DEPOSITION, ADDITIVE AGGLOMERATION OR ADDITIVE LAYERING, e.g. BY 3-D PRINTING, STEREOLITHOGRAPHY OR SELECTIVE LASER SINTERING
- B33Y50/00—Data acquisition or data processing for additive manufacturing
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B33—ADDITIVE MANUFACTURING TECHNOLOGY
- B33Y—ADDITIVE MANUFACTURING, i.e. MANUFACTURING OF THREE-DIMENSIONAL [3-D] OBJECTS BY ADDITIVE DEPOSITION, ADDITIVE AGGLOMERATION OR ADDITIVE LAYERING, e.g. BY 3-D PRINTING, STEREOLITHOGRAPHY OR SELECTIVE LASER SINTERING
- B33Y50/00—Data acquisition or data processing for additive manufacturing
- B33Y50/02—Data acquisition or data processing for additive manufacturing for controlling or regulating additive manufacturing processes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/10—Geometric CAD
- G06F30/17—Mechanical parametric or variational design
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/06—Ray-tracing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2113/00—Details relating to the application field
- G06F2113/10—Additive manufacturing, e.g. 3D printing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2119/00—Details relating to the type or aim of the analysis or the optimisation
- G06F2119/18—Manufacturability analysis or optimisation for manufacturability
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02P—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
- Y02P90/00—Enabling technologies with a potential contribution to greenhouse gas [GHG] emissions mitigation
- Y02P90/02—Total factory control, e.g. smart factories, flexible manufacturing systems [FMS] or integrated manufacturing systems [IMS]
Definitions
- the invention relates to the field of texturing and in particular the field of printing in three dimensions.
- the invention proposes a data processing device for additive manufacturing, comprising a memory for receiving voxel data from a surface of an object to be manufactured, each voxel indicating a full or empty location, a generator capable of to compute a first graph from the voxel data by defining each voxel as a node, connecting together by edges the nodes that correspond to respective voxels that share a corner, and assigning to each edge a weight calculated at from the distance between the centers of the voxels corresponding to the nodes associated with it, an arranged extractor, to define a second graph by defining nodes from a subset of nodes of the graph comprising nodes corresponding to voxels indicating a full location, and to interconnect the nodes of the second graph with first edges and second edges, a first edge being defined as representing a path within the first graph between two nodes of the second graph, each node of the first graph connecting these two nodes corresponding to a voxel
- This device is particularly advantageous because it allows to offer an object whose mechanical strength is safe, while offering aesthetic possibilities previously inaccessible.
- the device may have one or more of the following characteristics:
- the extractor determines in a first operation the first edges by associating with each node of the first graph corresponding to a voxel indicating a full location a marker of a node of said subset, the markers being propagated from each of the nodes of said subassembly by choosing, from a marked node, that of the nodes which is directly connected to it by an edge in the first graph, which corresponds to a voxel indicating a full location and whose edge has the lowest weight a first edge being created when the propagation involves marking a node already having a marker of a node of said subset,
- the extractor determines the second edges by associating with each node of the first graph a marker of a node of said subset, the markers being propagated from each of the nodes of said subset by choosing, from a marked node, that of the nodes which is directly connected to it by an edge in the first graph, whose edge has the least weight, and which does not belong to a first edge, a second edge edge being created when propagation involves marking a node already having a marker of a node of said subset,
- the stiffener executes a recursive loop in
- the stiffener performs a loop in
- the memory further receives three-dimensional surface data (22), projection data and pattern data
- the device further comprises a sorter capable of selecting for voxel input voxels surrounding the voxel. which correspond to the three-dimensional surface data, an estimator capable of calculating a similarity value between a first voxel associated with first projection data and a second voxel associated with second projection data by calculating the projection of the data of three-dimensional surface associated with the first voxel and three-dimensional surface data associated with the second voxel, respectively on a first surface defined by the first projection data and on a second surface defined by the second data of projection on which the pattern data are plated, and calculating a value derived from the difference between the projection of the first voxel on the first surface and the second surface on the one hand, and the difference between the projection of the second voxel on the first surface and the second surface, on the other hand, a selector capable, for a given voxel and from a
- the estimator determines the value derived from the difference between the projection of a voxel on the first surface and the second surface from the texture difference resulting from the plating of the pattern data on the first surface and the second surface. for these projections, the estimator determines the value of similarity further from a value derived from the value of the angle formed by the normal to the plane defined by the three-dimensional surface data on the one hand, and by the normal to the projection plan on the other hand,
- the similarity value is strictly positive and indicates a similarity that is all the better if the similarity value is small
- the propagator associates at least some of the plurality of higher resolution voxels with randomly selected projection data
- the projection data comprises a surface identifier selected from a set of planes and transformation data indicating a translation and / or a rotation of the reference of the surface designated by the surface identifier for the plating of the pattern data,
- the projection data are independent of the three-dimensional surface data
- the area defined by the projection data is a plane
- the three-dimensional surface data associated with a given voxel comprise an average of the normals of a surface portion associated with the given voxel
- the pattern data are of a stochastic and repetitive nature
- the pilot calls the selector so as to select only projection data such that the voxel data concerned will indicate a full location after treatment
- stiffener and the driver are looped until the stiffener no longer modifies voxel data.
- FIG. 1 represents a schematic diagram of a device according to the invention
- FIG. 2 represents an example of implementation of a function by the sorter of FIG. 1
- FIG. 3 represents an exemplary implementation of a function by the estimator of FIG. 1
- FIG. 4 represents an exemplary implementation of a function by the selector of FIG. 1,
- FIG. 5 represents an exemplary implementation of a function by the propagator of FIG. 1,
- FIG. 6 represents an exemplary implementation of a function by the pilot of FIG. 1,
- FIG. 7 represents an exemplary implementation of the device of FIG. 1;
- FIG. 8 represents an example of implementation of a function by the extractor of FIG. 1;
- FIG. 9 represents an exemplary implementation of a function by the stiffener of FIG. 1, and
- FIG. 10 shows an example of implementation of a variant of a function by the selector of Figure 1, during a specific loop.
- FIG. 1 represents a schematic diagram of a device 2 according to the invention.
- the device 2 comprises a memory 4, a sorter 6, an estimator 8, a selector 10, a propagator 12, a driver 14, a generator 16, an extractor 18, and a stiffener 20.
- the memory 4 can be any type of data storage suitable for receiving digital data: hard disk, hard disk with flash memory (SSD), flash memory in any form, RAM, magnetic disk, distributed storage locally or in the cloud, etc.
- the data calculated by the device can be stored on any type of memory similar to or on memory 2. This data can be erased after the device has completed its tasks or stored.
- the data stored in the memory 4 are of several types.
- the memory 4 receives three-dimensional surface data 22, pattern data 24, and work data 26.
- the three-dimensional surface data 22 describes the object on which it is desired to apply a texture. These data can be directly usable, that is to say have already been voxelized, or be raw data. In this case, an unrepresented element can perform the voxelization. Voxelization is not the subject of the invention, it will be considered in the following that the three-dimensional surface data 22 have already been voxelized. In the example described here, the three-dimensional surface data 22 contain for each voxel the average of the normals of the surface of the object associated with this voxel.
- the three-dimensional surface data 22 could contain the data of the surface as such, or any other data which makes it possible to describe the portion of the surface of an object that is associated with a voxel.
- the three-dimensional surface data 22 thus make it possible to define the object by voxels associated with portions of the surface of the object.
- the pattern data 24 represents the pattern with which it is desired to texture the three-dimensional surface data 22. In the example described here, the goal is to produce a "black and white" pattern, which represents the full and the empty in the three-dimensional object to print. For this, the pattern data 24 can directly define a bit pattern. When the pattern data 24 is not of the binary type, it can be the subject of a specific processing for this purpose.
- the pattern data 24 can be colorized to texture the object in color, for example for a three-dimensional multi-color printing.
- the pattern data 24 may optionally define a relief on the solid portions.
- the work data 26 includes all the data used to carry out the data processing according to the invention. This data includes data associating three-dimensional surface data with the data defining the voxels, projection data, similarity value data and other values described below.
- the projection data define on the one hand a projection plane (that is to say a pair of non-collinear vectors), and on the other hand a transformation in this plane.
- the pattern data 24 will be transformed in a plane according to the transformation data of this plane to texture the latter, then the center of the voxel concerned is projected and can receive a texture associated with its projection in the textured plane. It is possible from a limited number of planes (26 in the example described here) and a number of transformations to define a very large number of possible projection planes. Once the projection data thus defined, it is therefore to choose the best plan / transformation pairs for each voxel. Alternatively, the pattern data 24 may be plated on the portion of the surface data corresponding to the voxel, and this textured surface may be projected onto the plane and then transformed according to the transformation data.
- the sorter 6, the estimator 8, the selector 10, the propagator 12, the driver 14, the generator 16, the extractor 18 and the stiffener 20 are elements accessing directly or indirectly the memory 4. They can be made under the form of an appropriate computer code executed on one or more processors. By processors, it should be understood any processor adapted to the calculation of projection of textures on plans and treatments related to voxels.
- Such a processor can be made in any known manner, in the form of a microprocessor for a personal computer, a dedicated FPGA or SoC chip ("system on chip"), a computing resource on a grid, a microcontroller, or any other form to provide the computational power necessary for the embodiment described below.
- a processor can also be realized in the form of specialized electronic circuits such as an ASIC.
- a combination of processor and electronic circuits can also be considered.
- the invention achieves good texturing by finding the right planar / transformation pairs to be applied to each element of the three-dimensional surface data (voxels) and the pattern data. More specifically, the invention applies a method of resolution descent to determine these pairs.
- the problem is solved for a given resolution, and that one will seek to solve this same problem for a higher resolution, that is to say whose grain is finer.
- the result of the given resolution is propagated to the higher resolution, by cutting each of the voxels of the given resolution into voxels of higher resolution, and by applying to these voxels the solution found for the given resolution.
- the problem is solved by optimizing the plan / transformation pairs thus assigned to the higher resolution. For this, each voxel of the higher resolution is tested with all the known plane / transformation pairs for the given resolution, and a similarity value is determined according to the pairs plan / transformation of the neighbors of this voxel.
- each voxel adopts the plan / transformation pair which indicates the best similarity with its neighbors to define the solution for the higher resolution.
- These operations are performed by the sorter 6 whose role is to select the voxels that are the neighbors of a given voxel, the estimator 8 whose role is to calculate a similarity value between two voxels and their associated plan / transformation combination , the selector 10 which uses the sorter 6 and the estimator 8 to determine the best plan / transformation combination for a given voxel, the propagator 12 which propagates the solution of a given resolution at a higher resolution, and the driver 14, which selectively activates the selector 10 and the propagator 12 to propagate the resolution result in resolution, and to call the selector 10 on the resulting voxels to calculate the solution for each higher resolution.
- the projection of the voxels corresponding to the surface data on the planar / transformation pairs combined with the pattern data 24 produces result data 28.
- the generator 16, the extractor 18 and the stiffener 20 process the result data 28 to make the corresponding physical structure stable from a mechanical point of view.
- FIGS. 2 to 6 and 7 to 9 Although synergetic to provide a device which starts from surface data and pattern data to give a three-dimensional printing object of an original nature, are quite independent. each other.
- Figures 2-6 describe an original device for producing advantageous plated pattern data
- Figures 7-9 describe an original device for producing a three-dimensional printing object that is mechanically sound.
- a variable whose name is all caps means in most cases a list containing several elements, while a variable whose name is lowercase designates a single element.
- FIG. 2 represents an example of a function implemented by the sorter 6 to determine the neighboring voxels of a given voxel.
- a voxel is said to be close to another when it is included in a cube whose edge measures five voxels and whose center is the other voxel.
- the voxels by coordinates of type (x; y; z) where x, y and z are multiples of one voxel dimension, two coordinate voxels (xl; yl; zl) and (x2; y2; z2) are neighbors when x1-x2, y1-y2 and z1-z2 have an absolute value less than or equal to 2.
- y1-y2 and z1-z2 have an absolute value less than or equal to 2.
- only those voxels that correspond to surface data 22 are of interest.
- the sorter 6 begins in an operation 260 with three-dimensional surface data O, a neighbor size variable n_s, an input voxel v and a neighbors list N initialized to 0 (i.e. empty ).
- the neighborhood size variable n_s is set to 5 to denote a cube-shaped neighborhood of length voxels.
- the neighborhood could have a different shape, as well as different dimensions.
- a function Ngb () is called with the input voxel v, and the neighbor size n_s as variables.
- the function Ngb () selects all the voxels that surround the voxel v in a cube of dimension n_s and centered on the voxel v, and stores them together in the list P.
- the voxels that are associated with surface data 22 is associated with projection data 26.
- the list P receives both the neighboring voxels, but also the projection data 26 associated with them.
- the correspondence between these voxels and the corresponding projection data is maintained outside the list P.
- List P contains all the neighbors of voxel v, including voxels that do not correspond to surface data 22. Therefore, it is useless to keep these voxels, since they can not be used to project the data of 24.
- a loop is started in an operation 226, in which the list P is unstacked in a pair (x; p_dx) which receives the first voxel of the list P as well as the projection data 26 associated therewith .
- the projection data p_dx are tested: if they are empty, this means that the voxel x does not correspond to surface data 22, and vice versa.
- FIG. 3 represents an example of a function implemented by the estimator 8 to calculate a similarity value between a first voxel v1 associated with first projection data p_dl, and a second voxel v2 associated with second projection data p_d2.
- the estimator 8 receives a first voxel v1, a second voxel v2, first projection data p_d1, second projection data p_d2, the pattern data t, the three-dimensional surface data O , and a similarity value variable initialized to 0.
- two textures t1 and tl 2 are calculated by means of a function ProjQ, so that:
- the texture tl 1 receives the texture of the projection of the center of the first voxel v 1 on the plane defined by the first projection data p_d1 and textured according to the latter with the pattern data 24, and
- the texture tl2 receives the texture of the projection of the center of the first voxel v1 on the plane defined by the second projection data p_d2 and textured according to the latter with the pattern data 24. Then, or in parallel according to the variants, in a operation 312, two textures t21 and t22 are calculated by means of a function Proj (), so that:
- the texture t21 receives the texture of the projection of the center of the second voxel v2 on the plane defined by the first projection data p_dl and textured according to the latter with the pattern data 24, and
- the texture t22 receives the texture of the projection of the center of the second voxel v2 on the plane defined by the second projection data p_d2 and textured according to the latter with the pattern data 24.
- the similarity value returned d is calculated as the sum of the difference between the textures tl 1 and t! 2 on the one hand and between the textures t21 and t22 on the other hand.
- the difference between the textures is calculated by means of a function L2 () which calculates the Euclidean norm of the pixel-by-pixel color difference of the respective textures.
- FIG. 4 represents an example of a function implemented by the selector 10 to determine the projection data that are most suitable for a given voxel given its surroundings.
- the selector 10 receives in an operation 400 the voxel v concerned, the projection data p_dv associated therewith, a projection data set that can improve the situation P_D, the pattern data t, the surface data in three O dimensions, and a value value of best similarity dm initialized to 0.
- the similarity between the voxel v and its neighborhood is calculated for the projection data p_dv associated with it.
- the selector 10 calls the sorter 6 which stores the result in a list N.
- a loop is performed in which the list N is depilated in an operation 410.
- the selector 10 calls the estimator 8 with on the one hand the voxel v and its associated projection data p_dv, and on the other hand, each neighbor voxel x depilated and its associated projection data p_dx.
- the variable of best similarity dm receives each time the similarity value thus calculated.
- the best similarity variable dm has been initialized with the sum of the similarity values between the given voxel with its associated projection data p_dv and its neighbors with their associated projection data.
- the selector 10 initializes another loop in which each of the projection data of the projection data set P_D will be applied to the given voxel v, to determine whether they are a better match with the voxels of the vicinity of the voxel v and their data. associated projection.
- a similarity value variable d is initialized to 0 in an operation 426, then the set P_D is pared in an operation 425. Then, the same loop as for the operations 410 and 415 is performed with the unstacking operations 430 and calculating the similarity 435 between the voxel given v and the voxels of its neighborhood. However, in the operation 435, the voxel v is not called with the projection data p_dv associated with it, but with the projection data p_dy which has been depilated in the operation 425.
- the values d and dm are compared. If d is less than dm, this means that the projection data p_dy, associated with the voxel v, are closer to the voxels in the vicinity of the voxel v than the projection data p_dv. In this case, the value dm receives the value d as a new value of best similarity in an operation 445, and the projection data p_dv receive the projection data p_dy in an operation 450. Thus, the pair dm and p_dv permanently contains the value of best similarity between the voxel v and the voxels of its neighborhood, as well as the corresponding projection data.
- the unstacking loop of the set P_D resumes with the operation 426 and the zeroing of the variable d.
- the selector 10 returns the projection data p_dv which best match the voxel v given its vicinity.
- Many variants are directly conceivable, such as performing operations 445 and 450 in parallel, the parallelization of the calculation loops of the similarity value.
- some similarity value calculation loops for different p_dy projection data could also be performed in parallel, and the best candidate selected at the end.
- the Applicant has identified the fact that the similarity value between the given voxel and its neighborhood for given projection data may optionally depend on an additional value, which derives from the angle formed between the normal to the plane defined by the projection data given and the normal to the three-dimensional surface data associated with the given voxel. Indeed, if this angle is large, the projection of the pattern data can be strongly distorted, despite a good similarity with the voxels of the neighborhood. Thus, after calculating the neighbor similarity, a value derived from the dot product of the normal to the three-dimensional surface data associated with v with the normal to the projection data plane can be added.
- the Applicant has also identified the fact that the similarity value between the given voxel and its neighborhood for given projection data may optionally depend on a position in the pattern, to encourage or discourage the use of certain portions of the pattern. This can for example be used when the pattern is repeated on the projection plane, to prevent visual discontinuities due to junctions between the edges of the pattern from appearing on the surface.
- the voxels that select a projection showing this portion of the pattern are penalized by an increase in the similarity values.
- Figure 5 shows an example of a function implemented by the propagator 12 to propagate the solution of a given resolution to a higher resolution.
- the propagator 12 receives an input voxel v, associated projection data p_dv, three-dimensional surface data O, a resolution sampling size s, and a list of higher resolution voxels V initialized to 0.
- the propagator 12 calls a function Up () with the voxel v and the sampling size s.
- the Up () function returns an X list of voxels of higher resolution, depending on the sampling size s.
- the sample size is set to 2, so that the list X contains 8 voxels that together correspond to voxel v.
- the propagator 12 executes a loop in which the voxels of the X list are popped in an operation 526, and then tested in an operation 525 to determine if these voxels correspond to three-dimensional surface data. If this is not the case, then the voxel is stored without associated projection data in the V list in an operation 540. Otherwise, the voxel is stored with the projection data p_dv in the V list in one operation. 550. Finally, when the list X is empty, the propagator 12 returns the list V in an operation 560.
- operation 550 could introduce variety enhancing noise by randomly assigning separate projection data from the projection data p_dv to some of the at least higher resolution voxels that correspond to three-dimensional surface data. Alternatively, the variety is not added randomly, but deterministically.
- FIG. 6 shows an example of a function implemented by the driver 14 to calculate the result data 22 from the three-dimensional surface data 22, the pattern data 24 and a projection data set. In an operation 600, the driver 14 receives these data along with the desired resolution level r, the sampling size s and initializes a resolution loop variable i to 0.
- the driver 14 executes an Init () function to initiate the operations.
- the function of this function is to determine the first coarse resolution voxel that includes the three-dimensional surface data, as well as the corresponding projection data. In the example described here, there is only one first voxel, but there could be several. In addition, the projection data associated with this first voxel are chosen randomly. Alternatively, the function Init () could calculate these projection data.
- the pilot 14 starts a series of loops of index i until the resolution r is reached (operation 610).
- a list Z associating voxels and projection data is initialized to 0 in an operation 615.
- the list of resolution voxels corresponding to the previous iteration V is popped up in an operation 626.
- Each voxel x and its projection data p_dx are then propagated by calling the propagator 12 in an operation 625 and the resulting list is stored in a list W.
- the projection data set P_D used to operate the selector is then initialized to 0 in an operation 630, and a loop traverses the list W with an operation 635 and an operation 640 in order to fill the list P_D with the projection data associated with the voxels of the list W.
- a function Rand adds a selected number of projection data to the list PD to promote the exploration of new solutions.
- the variety may not be added randomly but deterministically.
- the list W is traversed by a loop, starting from an operation 650.
- the selector 10 is called in an operation 655 with each voxel of the list W in order to find the best projection data p_dy of the list P_D considering from his neighborhood.
- the result is stored in the list Z which constitutes the result data 22 for the current index resolution i.
- the index i is incremented in an operation 670.
- the loop of the operations 630 to 660 can be repeated a chosen number of times, or a number of times depending on a convergence criterion, in order to ensure that the exploration of new solutions has been optimized within each resolution.
- the driver When the resolution r is reached, the driver returns the list V containing the result data in an operation 675.
- FIG. 7 represents an exemplary implementation of the device 2 for transforming the previously calculated voxel data into three-dimensional printable object data.
- the data produced by the pilot 14 are not necessarily "reliable" structurally.
- the ears of the rabbit although corresponding to the ideal projection of the pattern data, are not attached to the rest of the body. Under these conditions, you can not print an object.
- the object of FIGS. 7 to 9 is also applicable in the case where the voxel data are not obtained as described above.
- the device 2 shares in an operation 700 of voxel data V.
- This voxel data describes a three-dimensional object blank: either the voxel designates a solid location, or it designates an empty space.
- the generator 16 transforms the voxel data V into a first graph G.
- the graph G is constructed as follows:
- each voxel of the voxel data V forms a node
- the weight of the edge in the graph is the length of the edge, defined as the distance between the centers of the two voxels connected by the edge.
- the invention proposes two methods that can be combined to evaluate the mechanical strength of an object corresponding to the voxel data.
- the number of nodes in the first graph G is too important to be able to calculate anything. Indeed, for the additively manufactured object to be aesthetic, it takes a large number of voxels to have a good print resolution, which makes the simulation very complex.
- the graph G is "simplified" into a second graph A by means of a function Conn ().
- the function Conn () is performed by the extractor 18, and FIG. 8 represents an example of implementation of this function.
- the first graph G is sampled Poisson to define a sampled graph S of voxels each corresponding to a full location.
- the extractor 18 starts from the data of the first graph G, the sampled graph S, as well as from a graph of markers T and a second graph A which are both initialized to 0.
- the purpose of the function Conn () is to connect all the nodes of the sampled graph S by first edges and second edges.
- the first edges are "solid” edges, while the second edges are "non-solid” edges. This is achieved by the propagation of markers in the graph of markers T, starting from the nodes of the sampled graph S.
- the marker graph T is initialized by means of an Exs () function which receives the sampled graph S and the first graph G as arguments.
- the function Exs () proceeds by selecting, for each node of the graph S, the nodes of the first graph G with which it shares an edge, and to mark with a marker identifying the respective node of the graph S that of the selected nodes which designates a location full and whose ridge has the lowest weight. In other words, by iterating this process it is a matter of propagating the graph S in the solid candidates of the graph G according to a geodesic distance based on the weight of the edges.
- Operation 805 can be viewed as an initialization operation. Indeed, after this one, two loops will follow one another. The first loop will determine the first edges and the second loop will determine the second edges. The first loop begins with an operation 810 in which the Exs () function is called again to propagate the markers. For this, the marker graph T is used as argument of the function ExsQ (instead of the sampled graph S of the operation 805). Thus, it is the nodes that were marked at the previous iteration of the loop that are propagated, and the result is reinjected into the graph of markers T.
- an Edg () function tests the T marker graph to identify whether a solid edge has been detected by the propagation.
- a solid edge is detected when two different markers are associated with the same voxel of the first graph G. In fact, this means that this voxel is directly connected by a voxel path designating a solid location between two nodes of the second graph which designate them. even a solid location.
- a function Fill () determines if all the nodes of the marker graph have been propagated in an operation 825. If it remains possible to propagate markers, the loop resumes in 810.
- the second loop starts in an operation 830 with the execution of an Ex () function.
- the Ex () function is similar to the Exs () function, except that marker propagation can be done to all voxels in the first G graph, and not only to those that indicate a full location.
- the Ex () function also differs from the Exs () function in that the propagation excludes the voxels associated with a first edge.
- the rest of the second loop is similar with operations 835, 840, and 845 that are identical to operations 815, 820, and 825.
- the extractor 18 could implement the Conn () function differently, for example by detecting the first edges and the second edges simultaneously, or by using a non-geodesic distance or determined differently.
- the stiffener 20 starts from the second graph A and analyzes whether an object corresponding to this graph would be mechanically stable. For this, the stiffener 20 uses two methods that can be used alone or in combination. These methods correspond to two distinct physical simulations that determine whether one or more edges exceed a threshold that is synonymous with structural rigidity.
- the first method is a method based on a finite element simulation and Figure 9 represents an example of implementation of this method by the stiffener 20. This function analyzes the second edges, called "non-solid" and redefines some of they are solid heads if necessary to make the object mechanically rigid.
- the stiffener 20 starts from the second graph A. Then, in an operation 910, a loop starts.
- This loop begins with a simulation by finite element methods of the object defined by the second graph A. This simulation is performed by a function FE () which also has access to the parameters of mechanical simulation (that is to say the boundary conditions to be met by the printed object for a desired manipulation).
- the result of the function FE () is a list of second edges W in which the second edges are classified in order of decreasing simulated stress, each of these edges having been determined to have a stress exceeding a constraint threshold in view of the conditions at limits.
- This ranking in order of decreasing stress value is important because the principle of the method applied by the stiffener 20 is to make solid the most constrained edge, then the second most constrained edge which is at a given distance from the edge previous, etc.
- an operation 940 it is tested if the list W still contains an edge. If so, then the corresponding y edge is tested by a Dist () function in a 950 operation to determine if it is at a sufficient distance from the newly-made x edge. If it is not, then operation 940 is repeated, until a non-solid edge sufficiently far from the edge x is found in W or the list is empty. Thus, all the edges are not systematically made solid when they are neighbors, which makes it possible to better respect the original form of the object of the second graph A. If such an edge is found, then it is made solid in an operation. 960 identical to operation 930, and in an operation 970, the edge is stored therein as the previous edge x for the repetition of the loop with operation 940.
- the loop is repeated. If the list W is empty, then none of the non-solid edges has a stress value that is too large given the boundary conditions, and the function ends with the operation 980, in which all the voxels of the first corresponding graph G the edges that have been made solid are also made solid.
- neighboring voxels that are also made solid could be selected differently (for example on a geometric and non-geodesic criterion), or neighboring voxels might not be changed.
- the second method that the stiffener 20 can apply is a geometric method.
- the stiffener 20 traverses each of the non-solid edges of the second graph A and calculates the ratio between the Euclidean distance between the two nodes of each edge and the geodesic distance through the solid edges that separates them. If this ratio exceeds a chosen threshold, then the edge is made solid, as well as optionnally the neighbors of the voxels that compose it in the first graph as described above.
- the mechanical method and the geometric method can be used separately or in combination. The Applicant's work brings her in the current state of her research to consider that their combination is particularly advantageous, although it may appear redundant to the skilled person.
- the object can be printed on the basis of the voxels corresponding to the second graph A and the voxels of the first graph G thus modified.
- the Applicant has discovered that it was advantageous, after the execution of the stiffener 20, to recall the image processing on the voxels that have been redefined. For this, the driver 14 performs the function of Figure 5 again, only on modified voxels, for a smaller number of resolutions, and a slightly different way.
- the pilot 14 determines for each modified voxel the list of parent voxels for a chosen number of lower resolutions, that is to say what are the voxels that the propagator 12 has transformed into these voxels, and this for a size corresponding to that of the lowest resolution sought.
- the number of resolutions chosen is 2, but it could be higher.
- the propagator 12 doubles the resolution at each execution (eight times more voxels), then: - the lowest resolution will include a voxel,
- the intermediate resolution will have 8 voxels, and the resolution corresponding to the voxels of the second graph A will include 64 voxels.
- the execution of the driver 14 will be carried out from each of the lowest resolution voxels which has a son which has been modified by the stiffener 20.
- the driver 14 indicates whether a voxel corresponds to a voxel that has been modified. When this is not the case, the selector 10 is executed identically. On the other hand, if the voxel in question corresponds to a voxel that has been modified, then the function performed by the selector 10 is slightly modified according to FIG. 10 to select as projection data 26 only those which will also designate a full location. Thus, the execution of the driver 14 does not degrade the mechanical structure, and only visually harmonize the object so that it better corresponds to the pattern data 24.
- FIG. 10 the operations identical to those of FIG. 4 have been represented with an identical numerical suffix, so that the operation 410 and the operation 1010 are identical, and so on.
- only one operation 1042 has been added, which is a test to determine whether projection data p_dy likely to improve the image processing correspond to a solid location, or not.
- the generator 16, the extractor 18 and the stiffener 20 are again applied to the resulting voxel data.
- the invention can also be defined as a data processing method for additive manufacturing, comprising the following operations: a) receiving voxel data from a surface of an object to be manufactured, each voxel indicating a full or empty location,
- a second graph by defining nodes from a subset of nodes of the graph comprising nodes corresponding to voxels indicating a full location, and to interconnect the nodes of the second graph with first edges and nodes; second edges, a first edge being defined as representing the shortest path in terms of weight within the first graph between two nodes of the second graph, each node of the first graph connecting these two nodes corresponding to a voxel indicating a full location, and the sum of the weights of the edges of the first graph connecting the two nodes associated with the first edge defining the weight of this first edge, a second edge being defined as representing the shortest path in terms of weight within the first graph between two nodes of the second graph which can not be connected by a first edge, d) determine a list of second ar are exceeding a threshold on the basis of a physical simulation of an object corresponding to the second graph, and redefine at least some of these second edges as first edges, and to redefine at least some of the voxels corresponding to
- operation c) comprises the following operation:
- cl determining the first edges by associating with each node of the first graph corresponding to voxel indicating a full location a marker of a node of said subset, the markers being propagated from each of the nodes of said subset by choosing, from a marked node, that of the nodes which is directly connected to it by an edge in the first graph, which corresponds to a voxel indicating a full location and whose edge has the lowest weight, a first edge being created when the propagation involves the marking of a node already having a marker of a node of said subset,
- operation c) further comprises the following operation:
- c2) determining the second edges by associating with each node of the first graph a marker of a node of said subset, the markers being propagated from each of the nodes of said subset by choosing, from a marked node, the one of the nodes which is directly connected to it by an edge in the first graph, whose edge presents the weakest weight, and which does not belong to a first edge, a second edge being created when the propagation involves the marking of d a node already having a marker of a node of said subset,
- the operation d) comprises a recursive loop comprising the following operations: d1) to simulate by finite elements from the second graph a stress field for each of the edges of the second graph,
- operation d comprises a loop comprising the following operations:
- dl determining a ratio between the distance in terms of weight between the nodes of each second edge and the Euclidean distance between these same nodes, d2) redefining each second edge whose upper ratio is at a threshold chosen as the first edge,
- the method also comprises the following operations:
- gl defining a projection data set comprising firstly the projection data associated with the plurality of resultant voxel data, and secondly a non-zero quantity of other projection data
- g2 for at least some of the projection data from the operation gl), and for at least some voxels neighboring the given voxel, and to calculate a similarity value between the given voxel and each neighboring voxel concerned, from projecting the three-dimensional surface data associated with the given voxel and three-dimensional surface data associated with the neighboring voxel, respectively on a first surface defined by projection data of the project data set and on a second surface defined by the projection data of the neighbor voxel on which the pattern data is plated, by calculating a value derived from the difference between the projection of the given voxel on the first surface and the second surface on the one hand, and the difference between the projection neighbor voxel on the first surface and the second surface on the other hand,
- operation g) comprises determining the value derived from the difference between the projection of a voxel on the first surface and the second surface from the texture difference resulting from the plating of the pattern data on the first surface. and on the second surface for these projections,
- operation g) comprises determining the similarity value from a value derived from the value of the angle formed by the normal to the plane defined by the data three-dimensional surface on one hand, and by the normal to the projection plane on the other hand,
- the similarity value is strictly positive and indicates a similarity that is all the better as the similarity value is small
- the operation f) comprises the association of at least some of the plurality of voxels of higher resolution with randomly selected projection data
- the projection data comprises a surface identifier selected from a set of planes and transformation data indicating a translation and / or a rotation of the reference of the surface designated by the surface identifier for the plating of the pattern data,
- the projection data are independent of the three-dimensional surface data
- the area defined by the projection data is a plane
- the pattern data is of a stochastic and repetitive nature.
- the similarity value is strictly positive and indicates a similarity that is all the better if the similarity value is small
- the operation g3) is repeated so as to select only projection data such that the relevant voxel data will indicate a full location
- the invention may also be defined as a computer program product comprising portions of program code for implementing the device or method as described above when said program is run on a computer.
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Chemical & Material Sciences (AREA)
- Materials Engineering (AREA)
- Theoretical Computer Science (AREA)
- Manufacturing & Machinery (AREA)
- General Physics & Mathematics (AREA)
- Geometry (AREA)
- Mechanical Engineering (AREA)
- Optics & Photonics (AREA)
- General Engineering & Computer Science (AREA)
- Evolutionary Computation (AREA)
- Computer Hardware Design (AREA)
- Computer Graphics (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Image Generation (AREA)
- Data Mining & Analysis (AREA)
- Quality & Reliability (AREA)
Abstract
Description
Claims
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
FR1556188A FR3038254B1 (fr) | 2015-06-30 | 2015-06-30 | Dispositif de traitement de donnees pour fabrication additive |
PCT/FR2016/051603 WO2017001768A1 (fr) | 2015-06-30 | 2016-06-28 | Dispositif de traitement de données pour fabrication additive |
Publications (1)
Publication Number | Publication Date |
---|---|
EP3317783A1 true EP3317783A1 (fr) | 2018-05-09 |
Family
ID=55361571
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
EP16747818.9A Withdrawn EP3317783A1 (fr) | 2015-06-30 | 2016-06-28 | Dispositif de traitement de données pour fabrication additive |
Country Status (4)
Country | Link |
---|---|
US (1) | US10751947B2 (fr) |
EP (1) | EP3317783A1 (fr) |
FR (1) | FR3038254B1 (fr) |
WO (1) | WO2017001768A1 (fr) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105740802A (zh) * | 2016-01-28 | 2016-07-06 | 北京中科慧眼科技有限公司 | 基于视差图的障碍物检测方法和装置及汽车驾驶辅助系统 |
US10399280B1 (en) * | 2016-04-29 | 2019-09-03 | The Administrators Of The Tulane Educational Fund | Method and system for rapid and efficient three-dimensional printing |
FR3066953B1 (fr) * | 2017-06-01 | 2019-08-02 | Inria Institut National De Recherche En Informatique Et En Automatique | Dispositif de traitement de donnees pour la generation de microstructures a proprietes elastiques orthotropiques |
US10926467B2 (en) * | 2019-04-15 | 2021-02-23 | Zhejiang Xunshi Technology Co., Ltd | 3D printer with multiple light sources and its controlling method |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6356272B1 (en) * | 1996-08-29 | 2002-03-12 | Sanyo Electric Co., Ltd. | Texture information giving method, object extracting method, three-dimensional model generating method and apparatus for the same |
US8579620B2 (en) * | 2011-03-02 | 2013-11-12 | Andy Wu | Single-action three-dimensional model printing methods |
US10354018B2 (en) * | 2014-06-20 | 2019-07-16 | Autodesk, Inc. | Generating tubes within three-dimensional models |
US20160096318A1 (en) * | 2014-10-03 | 2016-04-07 | Disney Enterprises, Inc. | Three dimensional (3d) printer system and method for printing 3d objects with user-defined material parameters |
US10354442B2 (en) * | 2014-11-12 | 2019-07-16 | Autodesk Inc. | Generative modeling framework for deferred geometry generation |
-
2015
- 2015-06-30 FR FR1556188A patent/FR3038254B1/fr active Active
-
2016
- 2016-06-28 WO PCT/FR2016/051603 patent/WO2017001768A1/fr active Application Filing
- 2016-06-28 EP EP16747818.9A patent/EP3317783A1/fr not_active Withdrawn
- 2016-06-28 US US15/738,465 patent/US10751947B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
US10751947B2 (en) | 2020-08-25 |
FR3038254A1 (fr) | 2017-01-06 |
US20180264736A1 (en) | 2018-09-20 |
FR3038254B1 (fr) | 2021-02-12 |
WO2017001768A1 (fr) | 2017-01-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10748324B2 (en) | Generating stylized-stroke images from source images utilizing style-transfer-neural networks with non-photorealistic-rendering | |
EP3292541B1 (fr) | Procede des simplification de modele de geometrie | |
Battiato et al. | Digital mosaic frameworks‐An overview | |
EP3070678B1 (fr) | Procédé de génération d'une séquence vidéo cyclique | |
FR2974433A1 (fr) | Evaluation de la qualite d'image | |
WO2017001768A1 (fr) | Dispositif de traitement de données pour fabrication additive | |
EP3080782A1 (fr) | Méthode et système de comparaison de modèles 3d | |
EP3317782A1 (fr) | Dispositif de traitement de donnees | |
CN117635418B (zh) | 生成对抗网络的训练方法、双向图像风格转换方法和装置 | |
FR2907246A1 (fr) | Procede et dispositifs de projection de motifs bidimensionels sur des surfaces complexes d'objets tridimensionnels | |
Ioannou et al. | Depth-aware neural style transfer using instance normalization | |
EP2591457B1 (fr) | Dispositif de synthèse d'image | |
WO2021123209A1 (fr) | Procédé de segmentation d'une image d'entrée représentant un document comportant des informations structurées | |
EP3631589B1 (fr) | Dispositif de traitement de donnees pour la generation de microstructures a proprietes elastiques orthotropiques | |
EP3918576A1 (fr) | Procédé dynamique d'imagerie tridimensionnelle | |
FR3049213A1 (fr) | Dispositif de traitement de donnees pour la generation de microstructures a elasticite variable par fabrication additive | |
Dobbs | Art Authentication in an Untagged Art Database | |
WO2024088914A1 (fr) | Dispositif de génération d'objet tridimensionnel encodant des données par fabrication additive | |
EP3268963B1 (fr) | Dispositif de traitement d'image | |
FR3133261A1 (fr) | Essai de style avec Des GAN inversÉs | |
Prakash | Using appearance to efficiently render and edit captured scenes | |
Mitsouras et al. | U-Sketch: An Efficient Approach for Sketch to Image Diffusion Models | |
EP2204775B1 (fr) | Triangulation incrementale de polygone pour affichage numerique | |
CN113486908A (zh) | 目标检测方法、装置、电子设备及可读存储介质 | |
Mohammed | Mesh Visual Quality based on the combination of convolutional neural networks |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
STAA | Information on the status of an ep patent application or granted ep patent |
Free format text: STATUS: THE INTERNATIONAL PUBLICATION HAS BEEN MADE |
|
PUAI | Public reference made under article 153(3) epc to a published international application that has entered the european phase |
Free format text: ORIGINAL CODE: 0009012 |
|
STAA | Information on the status of an ep patent application or granted ep patent |
Free format text: STATUS: REQUEST FOR EXAMINATION WAS MADE |
|
17P | Request for examination filed |
Effective date: 20180115 |
|
AK | Designated contracting states |
Kind code of ref document: A1 Designated state(s): AL AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HR HU IE IS IT LI LT LU LV MC MK MT NL NO PL PT RO RS SE SI SK SM TR |
|
AX | Request for extension of the european patent |
Extension state: BA ME |
|
DAV | Request for validation of the european patent (deleted) | ||
DAX | Request for extension of the european patent (deleted) | ||
STAA | Information on the status of an ep patent application or granted ep patent |
Free format text: STATUS: EXAMINATION IS IN PROGRESS |
|
17Q | First examination report despatched |
Effective date: 20210503 |
|
STAA | Information on the status of an ep patent application or granted ep patent |
Free format text: STATUS: EXAMINATION IS IN PROGRESS |
|
P01 | Opt-out of the competence of the unified patent court (upc) registered |
Effective date: 20230608 |
|
STAA | Information on the status of an ep patent application or granted ep patent |
Free format text: STATUS: THE APPLICATION IS DEEMED TO BE WITHDRAWN |
|
18D | Application deemed to be withdrawn |
Effective date: 20231117 |