Computing a surface of a multiple layer object

The method computes the surface of multiple layer objects by using surface signed distance fields and octree data structure to address deformation and resource inefficiencies, ensuring accurate and efficient manufacturing data generation.

WO2025254657A1PCT designated stage Publication Date: 2025-12-11SIEMENS INDUSTRY SOFTWARE INC
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
PCT/US2024/032812
Authority / Receiving Office
WO · WO
Patent Type
Applications
Current Assignee / Owner
Filing Date
2024-06-06
Publication Date
2025-12-11

AI Technical Summary

Technical Problem

Existing methods for computing the surface of multiple layer objects fail to accurately account for physical deformation of layers and incur high computational resources.

Method used

A method involving obtaining reference and layer data to compute a spatial field using surface signed distance fields, employing fast marching and marching cubes methods, and utilizing an octree data structure to efficiently determine the object's surface.

Benefits of technology

Enables accurate and efficient computation of the object's surface with reduced computational resources, allowing for precise manufacturing data generation.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure US2024032812_11122025_PF_FP_ABST
    Figure US2024032812_11122025_PF_FP_ABST
Patent Text Reader

Abstract

A computer-implemented method for computing a surface of a multiple-layer object is disclosed. The method includes obtaining reference data describing a reference surface, obtaining layer data describing a respective thickness and a respective boundary of each layer of the multiple layers defined on the reference surface, and computing, based on the reference data and the layer data, a spatial field that encloses a spatial region located between the reference surface and a region corresponding to a sum of the thicknesses of the multiple layers stacked on the reference surface. The spatial field describes, for each of its constituent field points, a distance of the respective field point to the boundary of the respective layer and to the reference surface. The computing of the spatial field includes computing the spatial field to describe the field to a precision that is based on a distance to the boundary of the respective layer. The computer-implemented method includes computing the surface based on the spatial field.
Need to check novelty before this filing date? Find Prior Art

Description

COMPUTING A SURFACE OF A MULTIPLE LAYER OBJECTFIELD

[0001] The present disclosure relates to computing a surface of a multiple layer object.BACKGROUND

[0002] Manufactured objects may be formed of multiple layers. For example, a laminate structure may be formed of multiple plies of material. It may be desirable to be able to compute a surface of the multiple layer object, for example, as a part of the process of engineering the manufactured object. Some existing approaches for computing a surface of a multiple layer object incur disadvantages, such as insufficiently accounting for physical deformation of the layers of the object, and / or incurring high computational resource.SUMMARY AND DESCRIPTION

[0003] An object of aspects of the present disclosure is to provide a method and an apparatus for computing a surface of a multiple layer object. Aspects of the present disclosure aim to provide a method for computing a surface of a multiple layer object that overcome one or more of the disadvantages of know n approaches, such as, for example, by incurring lower computational resource, thereby enabling convenient computation of the surface.

[0004] A first aspect of the present disclosure provides a computer-implemented method for computing a surface of a layer of a multiple-layer object. The method includes obtaining reference data describing a reference surface, obtaining layer data describing a respective thickness and a respective boundary' of each layer of the multiple layers defined on the reference surface, and computing, based on the reference data and the layer data, a spatial field that encloses a spatial region located between the reference surface and a region corresponding to a sum of the thicknesses of the multiple layers stacked on the reference surface. The spatial field describes, for each of its constituent field points, a distance of the respective field point to the boundary of the respective layer and to the reference surface. The computing of the spatial field includes computing the spatial field to describe the field to a precision that is based on a distance to the boundary of therespective layer, and computing the surface based on the spatial field.

[0005] In an implementation, the computing of the spatial field includes computing, for each layer of the multiple layers, based on the reference data and the layer data, a respective surface signed distance field. Each surface signed distance field describes, for each of its constituent field points, a distance of the respective field point to the boundary of the respective layer. The computing of the spatial field also includes computing, based on the reference data, the layer data and the surface signed distance fields for the multiple layers. The spatial field that encloses a spatial region located between the reference surface and a region corresponds to a sum of the thicknesses of the multiple layers stacked on the reference surface. The spatial field describes, for each of its constituent field points, a distance of the respective field point to the boundary of the respective layer and to the reference surface.

[0006] In an implementation, the computing for each layer a respective surface signed distance field includes computing the respective surface signed distance field using a fastmarching method.

[0007] In an implementation, the computing of the surface includes computing the surface using a marching cubes method.

[0008] In an implementation, the marching cubes method includes a dual marching cubes method.

[0009] In an implementation, the computing the spatial field includes computing the spatial field to include an octree data structure.

[0010] In an implementation, the computing the spatial field includes computing the spatial field to include an octree data structure having a two-to-one constraint.

[0011] In an implementation, the computing the spatial field includes computing a spatial signed distance field.

[0012] In an implementation, the method includes a computer-implemented method of obtaining evaluation data describing an evaluation surface, and performing an evaluation method to determine a similarity between the computed surface and the evaluation surface.

[0013] In an implementation, the method includes determining, based on the comparison, if the computed surface meets a similarity threshold, and in response to a determination that the computed surface does meet the similarity threshold, generating manufacturingdata based on the layer data for controlling computer-controlled manufacturing machinery' to manufacture the multiple-layer object.

[0014] In an implementation, the method is for manufacturing a multiple-layer object in a manufacturing process. The method includes generating manufacturing data based on the layer data for controlling computer-controlled manufacturing machinery to manufacture the multiple-layer object.

[0015] A second aspect of the present disclosure provides a data processing system including at least one processor and at least one memory’ including machine-readable instructions. The at least one memory and the machine-readable instructions are configured to, with the at least one processor, cause the data processing system to implement the method of any one of the preceding statements.

[0016] A third aspect of the present disclosure provides a computer program including instructions that, when executed by a data processing system, causes the data processing system to implement the method of any one of the preceding method statements.

[0017] A fourth aspect of the present disclosure provides a data storage apparatus having stored thereon the computer program of the preceding statement.

[0018] These and other aspects of the invention will be apparent from the embodiment(s) described below.BRIEF DESCRIPTION OF THE DRAWINGS

[0019] In order that the present invention may be more readily understood, embodiments of the invention will now be described, by way of example, with reference to the accompanying drawings, in which:

[0020] Figure 1 shows schematically an example of a manufacturing environment in which aspects of the present disclosure may be employed;

[0021] Figure 2 shows schematically an example of a data processing system embodying aspects of the present disclosure;

[0022] Figure 3 shows schematically an example of a multiple-layer object that may be manufactured according to aspects of the present disclosure;

[0023] Figure 4 shows schematically operations involved in manufacturing the object, which includes an operation of computing one or more surfaces of a computer model of the object and an operation of evaluating those surfaces;

[0024] Figure 5 shows schematically operations involved in computing the surfaces of the object;

[0025] Figure 6 shows schematically operations involved in evaluating the computed surfaces of the object; and

[0026] Figure 7 shows schematically a visualization of a part of the operation for computing the surfaces of the object.DETAILED DESCRIPTION

[0027] Example embodiments are described below in sufficient detail to enable those of ordinary skill in the art to embody and implement the systems and processes herein described. Embodiments may be provided in many alternate forms and should not be construed as limited to the examples set forth herein.

[0028] Accordingly, while embodiments may be modified in various ways and take on various alternative forms, specific embodiments thereof are shown in the drawings and described in detail below as examples. There is no intent to limit to the particular forms disclosed. On the contrary, all modifications, equivalents, and alternatives falling within the scope of the appended claims should be included. Elements of the example embodiments are consistently denoted by the same reference numerals throughout the drawings and detailed description where appropriate.

[0029] The terminology used herein to describe embodiments is not intended to limit the scope. The articles ’a." “an,” and “‘the'’ are singular in that they have a single referent; however, the use of the singular form in the present document should not preclude the presence of more than one referent. In other words, elements referred to in the singular may number one or more, unless the context clearly indicates otherwise. It will be further understood that the terms “comprises,” “comprising,” “includes.” and / or “including,” when used herein, specify the presence of stated features, items, steps, operations, elements, and / or components, but do not preclude the presence or addition of one or more other features, items, steps, operations, elements, components, and / or groups thereof.

[0030] Figure 1 shows schematically an environment in which an aspect of the present disclosure may be employed.

[0031] In Figure 1, an engineer is using a data processing system 101 running computer- aided manufacturing (CAM) software to create and process model data describing anobject formed of multiple layers of material, which may take the form of a computer model of the object, and then generate instructions for manufacturing an object according to the model data. For example, the CAM software may enable the user to create the model data using a computer-aided design (CAD) software tool, and then process the model data using a computer-aided engineering (CAE) software tool to compute one or more surfaces of the object, determine whether that surface meets a target specification, and subsequently generate manufacturing instructions based on the model data. The instructions may include machine-readable instructions for use by computer-controlled manufacturing equipment to produce a product to the design. For example, the instructions may describe the model data, determined machine operations for manufacturing the modelled object, and / or machine control instructions for controlling the machinery.

[0032] While in the example, data processing system 101 is depicted as a unitary computer, the data processing system 101 may instead include a plurality of separate computers each performing a part of the process of creating and evaluating the model data and generating the manufacturing instructions. For example, the data processing system 101 may include a computer used for creating the model data, and another computer that receives as an input the model data and then performs the evaluation operations and generates the manufacturing instructions.

[0033] The manufacturing instructions generated by the computer system 101 may subsequently be provided to computer-controlled manufacturing equipment, depicted schematically at 102, to manufacture a product to the design. In practice, the computer system 101 may be located remotely of the manufacturing equipment 102, and thus, the manufacturing instructions may be transmitted via electronic communications system 103, for example, via the Internet, which may include intermediary' computer systems. Again, in the example, the manufacturing equipment 102 is depicted as a unitary machine, but may instead include plural machines. The manufacturing equipment 102 may, for example, include machinery' for laying up mats of fiberglass material.

[0034] Aspects of the present disclosure therefore include a method for manufacturing an object based on a computer model of the object created and evaluated by computer system 101, and manufactured by the manufacturing equipment 102, and also to a manufacturing assembly, including the data processing system 101 and the manufacturing equipment102.

[0035] Referring next to Figure 2, the data processing system 101 includes a processor 201, a memory 202, a graphical display device 203, an input / output interface 204, a peripheral device 205, and a system bus 206.

[0036] The processor 201 is configured for running the CAM program for creating and evaluating the computer model, and generating the machine-readable manufacturing instructions. The memory 202 is configured for non-volatile storage of the CAM program, defining machine-readable instructions, for execution by the processor, and for serving as read / write memory for storage of operational data associated with computer programs executed by the processor. The graphical display device 203 is configured for enabling the user to visualize functionality' of the CAM program via graphical user interfaces, for example, to visualize the computer model during creation, and so aid interaction by the user with the software. Input / output interface 204 is configured for connection of the data processing system 202 to peripheral devices 205, and to external systems such as the communications system 103 to communicate with the manufacturing equipment 102.

[0037] The peripheral devices 205 may be functional as human-machine interfaces, to enable the user to input commands to control the computer program, for example, to enable the user to input commands to modify the model data. The peripheral devices 205 may include, for example, a computer mousejoystick, and / or keyboard. Additionally or alternatively, the peripheral devices 205 may include imaging equipment for imaging an object, such as a three-dimensional scanner to scan an object, based on which the CAM program may then generate a computer model of the imaged object. The components 201 to 204 of the data processing system 101 are in communication via the system bus 206.

[0038] Although in the depicted example, the data processing system 101 is depicted as including one of each component, in other examples, the data processing system 101 may include a plurality of one or more of the components, and the plural components may be distributed across mutually physically remote systems. For example, in examples, the data processing system 101 may include a plurality of processors such as the processor 201. Each processor of the plurality of processors fulfills a part of the processing requirements and communicates via a communications network such as the Internet, and / or may include a plurality of peripheral devices such as peripheral device 205.

[0039] Figure 3 shows schematically a cross-sectional view of an example object 301 thatmay be modelled and evaluated by the CAM software running on the data processing system 101, and subsequently manufactured by the manufacturing machinery 102.

[0040] In the example, the object is formed of multiple discrete layers of material 302 to 306 using mold 307. The layers 302 to 306 are selected to conform about the surface 308 of the mold 307 and about underlying layers. The layers of material may, for example, include flexible sheets of material, such as mats of woven glass fibers. The object is formed by laying the layers of material 302 to 306 onto the surface 308 of the mold 307 to take the shape of the mold surface and the underlying layers, and subsequently impregnating the layers with a setting binder (e.g., epoxy resin). The finished object 301 presents an upper surface, approximated generally by the dashed line 309, defined by the layer 306 and peripheral portions of certain of the underlying layers 302, 305. The peripheral portions of the layers (e.g., termed herein as "ramp regions’ and indicated by 302a for layer 302 and as 303a for layer 303) are the regions of each layer that influence the ramp gradient of the surface 309 to be computed, in the case of layers 302 and 303, by directly forming a part of the surface 309 of the object, and in the case of layer 305, by displacing layer 306. The object 301 may. for example, be a component part of a complex object, such as a part of a machine or a section of bodywork of a vehicle such as an aircraft.

[0041] A multiple layer construction of this type may be desired for its particular structural characteristics and / or for manufacturing convenience. However, a disadvantage of the multiple layer construction is that it may be complicated to accurately model the object (e.g.. to determine the shape of an object of a given construction, or conversely, determine a construction of an object to achieve a given shape). Conventionally, a CAD model of a surface of a multiple layer object may be generated via specialized rule-based schemes that create simple region-based offset surfaces and then connect the simple region-based offset surfaces through ramp geometry’, or by offsetting the vertices of a faceted representation of the original surface. These conventional approaches treat the development of the surfaces of the layers as geometric operations, and thus may not accurately depict, quantitively or qualitatively, the physical deformation of each subsequent ply as the respective subsequent ply conforms about the underlying plies. Additionally, errors or inaccuracies in representing the surfaces of the layers accumulate with each additional layer.

[0042] It may be desirable to be able to model the object where the object is required to have a particular shape (e.g., where the object forms a part of a vehicle bodywork and the surface 309 is an aerodynamic surface) and / or where the object forms a component part of a complex object, such as a part of a machine, and the surface 309 of the object is required to mate with another part of the complex object. In such a scenario, the process of manufacturing the obj ect may begin with a definition of one or more surfaces of the object to be manufactured, and optionally also structural requirements for the object, and the engineering process may subsequently involve determining a construction of the object that achieves that desired shape and technical requirements.

[0043] Aspects of the present disclosure to be described herein thus provide a method for computing a surface of a multiple layer object, such as the object 301. The method may be useful in the abovementioned example scenario for engineering an object to match a particular defined surface shape.

[0044] Although in the example the disclosure is described herein with reference to the laminate structure of object 301, the disclosure is useful for computing surfaces of other multiple-layer objects, such as objects that are additively built up by deposition of material in successive layers from a deposition head of an additive machine (e.g., a 3D printer). Although the object 301 is depicted as being formed of layers stacked one on top of another, each layer including a single ply of material, in other examples, the layers may include multiple plies. For example, a layer may include two or more plies in side- by-side relation that are placed on and / or under a larger ply of material. Further, while the disclosure is described herein in the context of computing the final surface 309 of the object, the disclosure is also useful for computing the respective surfaces of the individual layers 302 to 306.

[0045] Referring next to Figure 4, in examples, the present disclosure provides a method for manufacturing a product including seven operations. Operations 401 to 406 are performed by one or more computer programs of the CAM software running on the data processing system 101. Operation 407 is performed by the manufacturing equipment 102.

[0046] At operation 401, the computer program causes the processor 201 of the data processing system 101 to obtain data describing requirements for the object, such as a target surface shape and target structural characteristics (e.g., load-bearing requirements) for the object. Operation 401 may further involve receiving data describing availablematerials from which the object may be manufactured, and an available surface on which the object may be formed, such as the mold surface 308. Operation 401 may, for example, involve the data processing system receiving the data from an external data processing system connected via the input / output interface 204.

[0047] At operation 402, the computer program causes the processor 201 of the data processing system 101 to determine initial parameters for the object. For example, operation 402 may involve computing the surface 308 of the mold 307 based on the data received at operation 401. Operation 402 may further involve determining characteristics of layers and, for example, a respective thickness and boundary of each of the layers, that may feasibly be employed to build an object meeting the requirements described at operation 401 on the surface of the tool. Operation 402 may involve using conventional CAM software to determine these initial parameters. Operation 402 may subsequently generate and output reference data describing the surface of the tool (e.g., data describing the surface on which the layers will be laid to create the object) and layer data describing the characteristics, such as the respective thicknesses and boundaries, of the layers.

[0048] At operation 403, the computer program causes the processor 201 of the data processing system 101 to compute one or more surfaces of the object based on the layer data and the reference data generated at operation 402. Operation 403 may, for example, involve computing the upper surface 309 of the object and / or may involve computing surfaces of one or more of the constituent layers 302 to 306. Operation 403 will be described in further detail with particular reference to Figure 5.

[0049] At operation 404. the computer program causes the processor 201 of the data processing system 101 to evaluate the object surfaces computed at operation 403, with reference to the data describing the one or more target surfaces (also referred to herein as evaluation surfaces) received at operation 401, to assess whether the computed surfaces match the target surfaces. If the result of the evaluation at operation 404 is a determination that the computed surfaces do not match the target surfaces, the processor may proceed to operation 405, whereby the object parameters may be altered, for example, to modify the layers or add additional layers. Operations 402 to 404 may be repeated in order until the results of the evaluation process at operation 404 indicate that the design is acceptable (e.g., that the computed surfaces match the target surfaces). When the result of the evaluation at operation 404 is a determination that the computed surfaces do match thetarget surfaces, the method may progress to operation 406.

[0050] At operation 406, manufacturing data for manufacturing the object is generated based on the object parameters determined at operation 402. The manufacturing data may, for example, include a CAD model of the object, and machine control instructions for controlling the manufacturing equipment 102 to manufacture the object. The manufacturing data may thus serve as control data for controlling the manufacturing equipment 102 to manufacture the modelled object. The manufacturing data is then transmitted by the computer system 101 to the manufacturing equipment 102, for example, via the communication system 103.

[0051] At operation 407, the manufacturing equipment 102 may utilize the manufacturing data output at operation 404 to manufacture the modelled product.

[0052] Referring next to Figure 5, in examples, operation 403 for computing one or more surfaces of the object evaluating the computer model includes five operations.

[0053] At operation 501, the computer program causes the processor 201 of the data processing system 101 to obtain the reference data describing the surface 308 of the mold tool 307. The reference data may, for example, include mesh data that is refined at varying rates based on local topology and geometry.

[0054] At operation 502, the computer program causes the processor 201 of the data processing system 101 to obtain the layer data describing a respective thickness and boundary of each of the multiple layers on the reference surface.

[0055] At operation 503, the computer program causes the processor 201 of the data processing system 101 to compute, for each of the layers determined at operation 502, a surface Signed Distance Field (SDF) map, using a fast-marching method. This operation may involve marching the reference surface mesh starting at the boundary of each layer with a signed starting seed value of zero. The output of operation 503 is thus a set of surface SDF maps, one surface SDF map per layer, where the map indicates, for each of its constituent field points, a closest distance of the point to the boundary of the layer. These distance values represented in the SDF maps may be used to determine, for each layer, a portion of the layer that is located in the ‘ramp region’ close to the boundary of the layer.

[0056] At operation 504, the computer program causes the processor 201 of the data processing system 101 to generate a spatial SDF map based on the set of surface SDFmaps output at operation 503, and the reference data and the layer data output at operations 501 and 502, respectively. The spatial SDF map describes, for each of its constituent field points, a distance of the respective field point to the boundary of the respective layer and to the reference surface 308. Operation 504 will be described in further detail with reference to Figures 7 and 8.

[0057] At operation 505, the computer program causes the processor 201 of the data processing system 101 to extract the implicit iso-surface surface (e.g., the surface 309) based on the spatial SDF map output at operation 504. In implementations, this may involve using the marching cubes method to extract the implicit iso-surface. Triangles are extracted in each cube cell of the spatial SDF map and form a surface mesh. A dual marching cubes method may be employed to avoid cracks and gaps between neighboring cells. An extra layer of cells is included to provide that the dual domain contains the primal domain, so that no segments are missed.

[0058] Referring next to Figure 6, in examples, operation 404 for evaluating the computed surface(s) may involve three operations.

[0059] At operation 601, the computer program causes the processor 201 of the data processing system 101 to retrieve the data describing the target surface (also referred to herein as the evaluation surface) and the structural requirements that was received at earlier operation 401.

[0060] At operation 602, the computer program causes the processor 201 of the data processing system 101 to compare the surface computed at operation 403 to the target surface, and determine a similarity of the computed surface to the target surface based on the comparison. Operation 602 may involve, for example, a conventional approach for computing a similarity between the surfaces.

[0061] At operation 603, the computer program causes the processor 201 of the data processing system 101 to determine whether the similarity measure of the computed surface to the target surface, computed at operation 602, meets or exceed a predefined threshold measure. In other words, operation 603 involves determining whether the computed surface is acceptably similar to the target surface. Where it is determined at operation 603 that the computed surface is not sufficiently similar to the target surface, the method may loop back to operation 402, whereas where it is determined that the computed surface is acceptably similar to the target surface, the method may progress tooperation 406, as previously described.

[0062] Referring next to Figure 7, in examples, operation 504 for computing the spatial signed distance field may involve computing the spatial field such that the description of the distance of a field point to the reference surface is more precisely described for some regions of the field than for other regions. In other words, the spatial field may be locally refined to include greater definition of some regions of the field than other regions, particularly, to better define the regions of the field corresponding to the ramp regions of the layers, than the central regions of the layers. This approach is reflective of the fact that the form of the surface 309 of the object 301 is more significantly influenced by the ramp regions of the layers, either directly or indirectly, as previously described, than by the central regions of the layers that only contribute to the overall height of the stack of layers. Hence, this approach of refining the descriptions of the ramp regions of the layers may desirably improve the computation of the surface 309 without incurring the excessive computational resource that may be incurred if the descriptions of the central regions of the layers were also similarly refined.

[0063] Aspects of the present disclosure thus employ two levels of spatial field to describe the object; a coarse field and an adaptive field. The coarse field is generated to encompass a spatial region, a volume, corresponding to a sum of the layers stacked on the reference surface 308. The adaptive field, refined from the coarse field, adapts to the surface topology and the geometry of each layer boundary7using an octree data structure. The octree data structure is based on Morton code and spatial hashing techniques, which provide memory efficiency and random accessibility. This adaptation occurs dynamically and concurrently with the computation of the solution. The adaptive field is used to adjust the precision of the numerical computation based on the requirements of the computation problem in the ramp regions of the layers, which necessitates high precision. Meanwhile, other regions of the surface are left at lower levels of precision and resolution.

[0064] A spatial adaptive SDF is stored in the hash table of each octree node to avoid redundant calculations. The spatial signed distance value of each octree node is updated by the sum of the fast-marching surface signed distance value accordingly. A single fast marching surface signed distance value determined is the spatial signed distance value should add an offset value, if it is close to the boundary of the layer, a ratio of the offset value, if it is within the ramp region of the layer, or remain unchanged if located in thecentral region of the layer.

[0065] Thus, based on the surface SDF maps output at operation 503, an adaptive grid carry ing spatial SDF values, describing the distance to the reference surface 308, is derived benefiting from the octree structure. The spatial SDF values are labelled as positive if the field point is on the outward propagation side, and negative otherwise.

[0066] A true offset / propagation process is implicitly carried out by updating the spatial SDF values according to the surface SDF value of the projection point from the field point to the reference surface. A projection point, the closest mesh point on the reference surface to the field point, is first identified. The corresponding surface SDF value of the projection point determines if the corresponding surface SDF value is in the ramp region of the layer (e.g., less than one thickness of the layer away from the boundary) in the constant offset value region (e.g., approximately one thickness of the layer away from the boundary of the layer) or in a central region of the layer (e.g., more than one thickness of the layer away from the boundary of the layer).

[0067] For the constant offset value region, with positive surface SDF values, the spatial SDF value of the field point will be updated by adding the value of one thickness of the layer material. For the ramp region, with a negative surface SDF value, the spatial SDF of the field point will be updated by a value proportional to the layer thickness (e.g., by a value of one half of the thickness of the layer). For the central region, the spatial SDF value will be updated by adding nothing.

[0068] This updating process is carried out across all field points. Meanwhile, the update process for each field point iterates over all surface SDF maps. Subsequently, a locally refined adaptive grid is generated carrying spatial SDF values to represent an implicit surface.

[0069] Referring then to Figure 7, Figure 7 depicts another example of an object 701 formed of layers 702 and 703 laid on a reference surface 704. and a spatial field 705 encompassing the reference surface and the stack of layers. The object 701 is analogous to the object 301 depicted in Figure 3. The layer 702 includes a peripheral ramp region 706 and a central region 707, and layer 703 includes peripheral ramp region 708 and central region 709. By looping through the update process over all leaves over all of the surface SDF maps, an implicit multi-layer offset process is accomplished simultaneously, as depicted in Figure 7.

[0070] Point Pl falls within the central, constant offset, region 707 of layer 702 and the far away (e.g., not intersecting) region of layer 703. Thus, the coarse field values may be updated by the thickness of layer 702 added onto the original spatial SDF of Pl.

[0071] Point P2 falls within the ramp region 706 of layer 702 and the central, constant offset, region 709 of layer 703. Thus, the coarse field values should be the thickness of layer 703 and a proportion of the thickness of layer 702 added onto the original spatial SDF value of P2.

[0072] Point P3 falls within the ramp region, 708, of layer 703 and the far away region of layer 702. Thus, the coarse field values should be a proportion of the thickness of layer 703 added onto the original spatial SDF value of P3.

[0073] The balance refinement enforces a continuity condition, also known as the two- to-one, or 2-to-l, constraint, on the octree grid. This provides that the cotree decomposition remains relatively smooth throughout the domain, preventing abrupt changes in size between adjacent leaf octants. The continuity condition may stipulate that no tw o leaf octants sharing a face or an edge should differ by more than a factor of two in terms of their edge sizes. In other words, all spatially adjacent leaf octants that share a face or an edge should differ by at most one level in their tree hierarchy.

[0074] Accordingly, balance refinement is performed on the adaptive field, both on the octree and the forest. This process of balance refinement may prevent surface misrepresentation or potential mesh issues that may arise due to roughness or abrupt changes in size between adjacent leaf octants. Such issues may otherwise occur when the decomposition levels in two adjacent leaf octants differ by a factor of two or more. By implementing balance refinement, these potential problems may be effectively mitigated.

[0075] The system and apparatus described above may use dedicated processor systems, micro controllers, programmable logic devices, microprocessors, or any combination thereof, to perform some or all of the operations described herein. Some of the operations described above may be implemented in software, and other operations may be implemented in hardw are. Any of the operations, processes, and / or methods described herein may be performed by an apparatus, a device, and / or a system substantially similar to those as described herein and with reference to the illustrated figures.

[0076] The processor may execute instructions or "code" stored in memory. The memory may store data as well. The processing device may include, but may not be limited to, ananalog processor, a digital processor, a microprocessor, a multi-core processor, a processor array, a network processor, or the like. The processing device may be part of an integrated control system or system manager, or may be provided as a portable electronic device configured to interface with a networked system either locally or remotely via wireless transmission.

[0077] The memory' may be integrated together with the processing device (e.g., RAM or FLASH memory disposed within an integrated circuit microprocessor or the like). In other examples, the memory’ may include an independent device, such as an external disk drive, a storage array, a portable FLASH key fob, or the like. The memory and processing device may be operatively coupled together, or in communication with each other (e.g., by an I / O port, a network connection, or the like), and the processing device may read a file stored on the memory. Associated memory may be "read only" by design (ROM) byvirtue of permission settings, or not. Other examples of memory may- include, but may not be limited to, WORM, EPROM, EEPROM, FLASH, or the like, which may be implemented in solid state semiconductor devices. Other memories may include moving parts, such as a known rotating disk drive. All such memories may be "machine-readable" and may be readable by a processing device.

[0078] Operating instructions or commands may be implemented or embodied in tangible forms of stored computer software (also known as "computer program" or "code"). Programs, or code, may be stored in a digital memory- and may be read by the processing device. "‘Computer-readable storage medium" (or alternatively, "machine-readable storage medium") may include all of the foregoing types of memory, as well as new technologies of the future, as long as the memory may be capable of storing digital information in the nature of a computer program or other data, at least temporarily, and as long at the stored information may be "read" by an appropriate processing device. The term "computer-readable" may not be limited to the historical usage of "computer" to imply a complete mainframe, mini-computer, desktop, or even laptop computer. Rather, "computer-readable" may include storage medium that may be readable by a processor, a processing device, or any computing system. Such media may be any available media that may be locally and / or remotely accessible by a computer or a processor, and may include volatile and non-volatile media, and removable and non-removable media, or any combination thereof.

[0079] A program stored in a computer-readable storage medium may include a computer program product. For example, a storage medium may be used as a convenient means to store or transport a computer program. For the sake of convenience, the operations may be described as various interconnected or coupled functional blocks or diagrams. However, there may be cases where these functional blocks or diagrams may be equivalently aggregated into a single logic device, program, or operation with unclear boundaries.

[0080] While the application describes specific examples of carrying out embodiments of the invention, those skilled in the art will appreciate that there are numerous variations and permutations of the above-described systems and techniques that fall within the spirit and scope of the invention as set forth in the appended claims. For example, while specific terminology has been employed above to refer to electronic design automation processes, various examples of the invention may be implemented using any desired combination of electronic design automation processes.

[0081] One of skill in the art will also recognize that the concepts taught herein may be tailored to a particular application in many other ways. For example, those skilled in the art will recognize that the illustrated examples are but one of many alternative implementations that will become apparent upon reading this disclosure.

[0082] Although the specification may refer to “an,” “one,” “another,” or “some” example(s) in several locations, this does not necessarily mean that each such reference is to the same example(s). or that the feature only applies to a single example.

[0083] The elements and features recited in the appended claims may be combined in different ways to produce new claims that likewise fall within the scope of the present invention. Thus, whereas the dependent claims appended below depend from only a single independent or dependent claim, it is to be understood that these dependent claims may, alternatively, be made to depend in the alternative from any preceding or following claim, whether independent or dependent. Such new combinations are to be understood as forming a part of the present specification.

[0084] While the present invention has been described above by reference to various embodiments, it should be understood that many changes and modifications can be made to the described embodiments. It is therefore intended that the foregoing description beregarded as illustrative rather than limiting, and that it be understood that all equivalents and / or combinations of embodiments are intended to be included in this description.

Claims

Claims1. A computer-implemented method for computing a surface of a layer of a multiplelayer object, the computer-implemented method comprising. obtaining reference data describing a reference surface; obtaining layer data describing a respective thickness and a respective boundary of each layer of multiple layers defined on the reference surface, computing, based on the reference data and the layer data, a spatial field that encloses a spatial region located between the reference surface and a region corresponding to a sum of the thicknesses of the multiple layers stacked on the reference surface, the spatial field describing, for each of its constituent field points, a distance of the respective constituent field point to the boundary of the respective layer and to the reference surface, wherein the computing of the spatial field comprises computing the spatial field to describe the spatial field to a precision that is based on a distance to the boundary of the respective layer, and computing the surface based on the spatial field.

2. The computer-implemented method of claim 1, wherein computing the spatial field comprises: computing, for each layer of the multiple layers, based on the reference data and the layer data, a respective surface signed distance field, each surface signed distance field describing, for each of its constituent field points, a distance of the respective field point to the boundary of the respective layer; and computing, based on the reference data, the layer data, and the surface signed distance fields for the multiple layers, the spatial field that encloses a spatial region located between the reference surface and a region corresponding to a sum of the thicknesses of the multiple layers stacked on the reference surface, the spatial field describing, for each of its constituent field points, a distance of the respective field point to the boundary of the respective layer and to the reference surface.

3. The computer-implemented method of claim 2, wherein computing, for each layer, the respective surface signed distance field comprises computing the respective surface signed distance field using a fast-marching method.

4. The computer-implemented method of claim 1, wherein computing the surface comprises computing the surface using a marching cubes method.

5. The computer-implemented method of claim 4, wherein computing the surface using the marching cubes method comprises computing the surface using a dual marching cubes method.

6. The computer-implemented method of claim 1, wherein computing the spatial field comprises computing the spatial field, such that the spatial field comprises an octree data structure.

7. The computer-implemented method of claim 4, wherein computing the spatial field, such that the spatial field comprises an octree data structure comprises computing the spatial field, such that the spatial field comprises an octree data structure having a two-to-one constraint.

8. The computer-implemented method of claim 1, wherein computing the spatial field comprises computing a spatial signed distance field.

9. The computer-implemented method of claim 1, further comprising: obtaining evaluation data describing an evaluation surface; and performing an evaluation, such that a similarity between the computed surface and the evaluation surface is determined.

10. The computer-implemented method of claim 9, further comprising: determining whether the computed surface meets a similarity threshold; andin response to determining the computed surface meets the similarity threshold, generating manufacturing data based on the layer data for controlling computer- controlled manufacturing machinery to manufacture the multiple-layer object.

11. The computer-implemented method of claim 1 , further comprising manufacturing the multiple-layer object in a manufacturing process, the manufacturing of the multiplelayer object in the manufacturing process comprising the generating of the manufacturing data based on the layer data for controlling the computer-controlled manufacturing machinery to manufacture the multiple-layer object.

12. A data processing system comprising: at least one processor; and at least one memory including machine-readable instructions, wherein the at least one memory and the machine-readable instructions are configured to, with the at least one processor, cause the data processing system to implement the method of claim 1.

13. A computer program comprising instructions that, when executed by a data processing system, causes the data processing system to implement the method of claim 1.

14. A data storage apparatus having stored thereon the computer program of claim 13.

Citation Information

Patent Citations

  • Additive manufacturing of a 3D part

    EP3483755A1

  • Generating data for a three-dimensional (3D) printable object

    WO2018070993A1