Generating an automatic blend between two components in a computer model

EP4762478A1Pending Publication Date: 2026-06-24SIEMENS INDUSTRY SOFTWARE INC

Patent Information

Authority / Receiving Office
EP · EP
Patent Type
Applications
Current Assignee / Owner
SIEMENS INDUSTRY SOFTWARE INC
Filing Date
2024-02-09
Publication Date
2026-06-24

AI Technical Summary

Technical Problem

Existing computer-aided design methods face challenges in automating the blending of surface features like seams, edges, and corners in computer models, leading to sub-optimal manufacturability, functionality, and aesthetics due to manual trial-and-error approaches that are time and resource-intensive.

Method used

An automated method using interpolated density grid data to determine and apply blend characteristics, such as curvature profiles, to seamlessly integrate multiple components in a computer model, reducing computational burden and improving manufacturability.

Benefits of technology

Enhances the computer model by providing a more complete representation of the object, simplifying the blending process, and improving manufacturability, functionality, and aesthetics of the final product.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure US2024015220_14082025_PF_FP_ABST
    Figure US2024015220_14082025_PF_FP_ABST
Patent Text Reader

Abstract

A computer-implemented method for generating a computer model representation of an object includes obtaining a density grid representation of at least part of the object, generating a computer model representation based on the density grid, and determining a portion of the computer model representation. The computer-implemented method also includes interpolating values in the density grid, determining a portion of the interpolation of the density grid corresponding to the portion of the computer model representation, and modifying the computer model representation based on the portion of the interpolation of the density grid
Need to check novelty before this filing date? Find Prior Art

Description

GENERATING AN AUTOMATIC BLEND BETWEEN TWO COMPONENTS IN A COMPUTER MODELField of the Disclosure

[0001] The present disclosure relates to generating a computer model.Background of the Disclosure

[0002] Computer-aided design and engineering software is often used by engineers to aid in the creation, modification, and technical analysis of a product design, and to generate control data based on the design for controlling computer-controlled machinery to manufacture the product.Summary of the Disclosure

[0003] A computer model of a surface of an object may include features, for example, surface features such as seams, edges, and corners. These features may occur, for example, where the model is composed of plural discrete model components joined together, or where the model is relatively low resolution. It may be undesirable however for the resultant object manufactured based on the computer model to include these features. For example, it may be undesirable for the finished object to include sharp seams, because such sharp seams may be difficult to manufacture. Moreover, surface features, such as sharp seams between surfaces of a product, may be functionally undesirable, for example, because the product is required to present an aerodynamic exterior surface; they may be structurally undesirably in that they may weaken the product by creating a stress point; and / or they may be considered aesthetically undesirable.

[0004] In some applications therefore, it may be desirable to blend features, such as surface features like seams, edges, and corners in a computer model before the model is used in manufacture of the object, to thereby improve the manufactured product resulting from the computer model, and / or to avoid the aforementioned associated manufacturability, functionality, structural, and aesthetic issues.

[0005] A difficulty encountered in blending features of a computer model is determining an appropriate blend profile. For example, when blending an edge, the optimal blend profile may be a function of the relative positions and angles of the adjoining surfaces, in order to a form a gradual transition between the surfaces. An approach to blending surface features in a computer model is to enable a user of the modelling computer program to manually define blend characteristics, for example, to define a radius of curvature.However, this manual approach may be undesirably onerous on the user, and indeed the user may experience difficulty in determining an appropriate blend profile, for example, a suitable blend profile to achieve particular manufacturability, aerodynamic and / or structural characteristics. Such manual definition may thus require a trial-and-error approach, which may undesirably incur a significant time and computational resource burden. And even after such a trial-and-error approach, the user-defined characteristics may still be sub-optimal.

[0006] An object of aspects of the present disclosure therefore is to provide an automated method for modifying a computer model, for example, to enable automated blending of features of a computer model.

[0007] A first aspect of the presenting disclosure provides a computer-implemented method for generating a computer model representation of an object, the method comprising: obtaining a density grid representation of at least part of the object, generating a computer model representation based on the density grid, determining a portion of the computer model representation interpolating the values in the density grid, determining a portion of the interpolation of the density grid corresponding to the portion of the computer model representation, and modifying the computer model representation based on the portion of the interpolation of the density grid.

[0008] The computer model is thus selectively modified based on the interpolated density grid data. The interpolated density grid data may desirably provide a more complete representation of the object than the non-interpolated data. As a result, the computer model may be enhanced using the interpolated density grid data. The determining portions of the model could comprise determining particular surface features represented by the computer model, such as seams, edges, or corners, and the definition of these surface features may then be enhanced, for example, blended, using the interpolated density grid data. The generating the computer model representation may comprise generating a mesh representation of the object.

[0009] In an implementation, the modifying the computer model representation comprises modifying the portion of the computer model representation based on the portion of the interpolation of the density grid. In other words, the particular portion of the computer model used for selecting the portion of the interpolated data may be modified.

[0010] In an implementation, the generating the computer model representation comprises generating a computer model representation of a surface of the object.

[0011] In an implementation, the generating the computer model representation comprises generating a mesh representation based on the density grid using a marching cubes algorithm.

[0012] In an implementation, the method comprises obtaining computer model representations of one or more forms, wherein the generating a computer model representation comprises generating a computer model representation based on the density grid and the one or more forms. Constructing the computer model of multiple discrete components, e.g., using the density grid and also the forms, may have an advantage in some applications. For example, performance of certain downstream operations on the computer model may be simplified, as the components of the model may be treated individually. As a result, the computational resource required for performance of those operations may be reduced, and / or a greater number of downstream operations may be successfully applied to the model.

[0013] In an implementation, the determining a portion of the computer model representation comprises determining a portion of the computer model representation based on relative positions of a part of the computer model representation generated based on the density grid and the one or more forms. Where the computer model is formed of multiple components, such as the part deriving from the density grid and the forms,

[0014] In an implementation, the determining a portion of the computer model representation comprises determining a portion of the computer model representation proximate to an intersection of a part of the computer model representation generated based on the density grid and the one or more forms.

[0015] In an implementation, the interpolating the values in the density grid comprises interpolating the values using a smoothing interpolant function. The smoothing interpolant function may desirably generate model data that gradually transitions between the data of the lattice points, which may be desirable for blending features, such as surface features, of the computer model.

[0016] In an implementation, the interpolating the values in the density grid comprises performing tricubic interpolation of the values, for example, interpolating the values using a tricubic Bspline function. The tricubic interpolation may desirably generate data that transitions smoothly between the lattice points of the density grid, and in particular, that avoids creasing at voxel boundaries.

[0017] In an implementation, the modifying the computer model representation comprises determining a profile of the portion of the interpolation of the density grid, andmodifying the computer model representation based on the profile of the portion of the interpolation of the density grid. In other words, the method may determine a profile, such as a curvature, of a body, such as a surface, represented by the interpolated data, and then modify the computer model based on that profile.

[0018] In an implementation, the determining a profile of the portion of the interpolation of the density grid comprises determining a plurality of profiles corresponding to a respective plurality of positions on the portion of the interpolation of the density grid, and determining the profile based the plurality of profiles. Determining the profile based on plural sample points may desirably improve the fidelity of the profile determination, e.g., by avoiding a risk of exposure to a single outlier profile. For example, the method may involve determining the profile based on an average profile characteristic of the plurality of profiles, such as an average curvature of the plurality of profiles.

[0019] In an implementation, the determining a profile of the portion of the interpolation of the density grid comprises determining a curvature of the portion of the interpolation of the density grid.

[0020] In an implementation, the method comprises receiving specification data describing a technical specification of the object, and / or describing technical constraints for manufacturing the object, and generating the density grid based on the specification data. The technical specification of the object described by the specification data could, for example, be one or more of a shape or volume of the object, or an operational load capacity of the object, or an aerodynamic characteristic of the object. Accordingly, the density grid representation of the object may be a reasonably accurate description of a final form of the object, reducing the extent to which the computer model may need to be evaluated and modified at later stages. Alternatively or additionally, the technical specification data could describe the technical constraints for manufacturing the object, such as a minimum seam or edge radius that particular manufacturing equipment is capable of creating. Thus, creating the computer model based on knowledge of the technical constraints for manufacturing may improve the manufacturability of the object, and reduce a risk of the computer model being unmanufacturable or difficult to manufacture.

[0021] In an implementation, the method may comprise performing a computer- implemented topology optimization method based on the specification data, and generating the density grid based on a result of the computer-implemented topology optimization method. Accordingly, the density grid representation of the object may be areasonably accurate description of a final form of the object, reducing the extent to which the computer model may need to be evaluated and modified at later stages.

[0022] In an implementation, the method comprises generating machine-readable instructions based on the computer model representation for controlling a machine to manufacture the object.

[0023] A second aspect of the present disclosure provides a computer comprising: at least one processor, and at least one memory including machine-readable instructions, wherein the at least one memoiy and the machine-readable instructions are configured to, with the at least one processor, cause the computer system to generate a computer model representation of an object by the method of any implementation of the first aspect.

[0024] A third aspect of the present disclosure provides a computer program comprising instructions, which, when executed by a computer, causes the computer to carry out the method of any implementation of the first aspect.

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

[0026] A fifth aspect of the present disclosure provides a computer-readable medium having stored thereon a digital description of an object in the form of the computer model generated by a method according to any implementation of the first aspect of the disclosure, and the machine-readable instructions according to any implementation of the third aspect.

[0027] A sixth aspect of the present disclosure provides a computer-implemented method of controlling manufacturing machinery to manufacture an object based on machine- readable instructions generated according to any implementation of the first aspect.

[0028] These and other aspects of the invention will be apparent from the embodiment(s) described below.Brief Description of the Drawings

[0029] 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:

[0030] Figure 1 shows schematically an example manufacturing assembly incorporating aspects of the present disclosure;

[0031] Figure 2 shows schematically a computer system for generating a computer model of an object, the computer system embodying aspects of the present disclosure;

[0032] Figure 3 shows schematically a view of a computer model of an object;

[0033] Figure 4 shows schematically a view of a further computer model of the object;

[0034] Figure 5 shows schematically a partial view of the further computer model;

[0035] Figure 6 shows schematically another partial view of the further computer model;

[0036] Figure 7 shows schematically another view of the computer model of the object;

[0037] Figure 8 shows schematically operations involved in designing and manufacturing a product, including a step of generating a computer model of the product;

[0038] Figure 9 shows schematically operations involved in the step of generating the computer model of the product, which includes steps of generating a computer model and modifying the computer model;

[0039] Figure 10 shows schematically operations involved in the step of generating the computer model;

[0040] Figure 11 shows schematically operations involved in the step of modifying the computer model, which includes a step of determining a curvature; and

[0041] Figure 12 shows schematically operations involved in the step of determining the curvature.Detailed Description

[0042] 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. It is important to understand that embodiments can be provided in many alternate forms and should not be construed as limited to the examples set forth herein.

[0043] Accordingly, while embodiments can 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.

[0044] 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 can number one or more, unless the context clearly indicates otherwise. It will be furtherunderstood 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.

[0045] Figure 1 shows schematically an environment in which aspect of the present disclosure may be employed.|0046| In Figure 1, an engineer is using a computer system 101 running computer-aided design and engineering software to create, modify and evaluate a product design, and then generate instructions for manufacturing a product to the design. For example, the instructions may define a shape of the product and specifications of the product. The instructions may include machine-readable instructions for use by computer-controlled manufacturing equipment to produce a product to the design. Whilst in the example computer system 101 is depicted as a unitary computer, the computer system 101 may instead comprise a plurality of separate computers each performing a part of the process of creating, modifying, and evaluating the computer model and then generating manufacturing instructions based on the computer model. For example, the computer system 101 may comprise a computer used for creating a computer model of an object, another computer used for analysing the computer model, for example, for performing computational fluid dynamic evaluation on the modelled object, and then another computer for generating manufacturing instructions based on the computer model.

[0047] The instructions for manufacturing 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 an electronics communications system, depicted schematically by arrow 103, for example, via the internet, which may include intermediary computer systems.

[0048] Aspects of the present disclosure therefore include a method for manufacturing an object based on a computer model of the object generated, modified and / or analyzed by computer system 101, and manufactured by manufacturing equipment 102, and also to a manufacturing assembly, comprising the computer system 101 and the manufacturing equipment 102.

[0049] Referring next to Figure 2, the computer system 101 comprises a processor 201, memory 202, graphical display device 203, input / output interface 204, peripheral device205, and system bus 206. Although in the depicted example, computer system 101 is depicted as comprising one of each component, in other examples, computer system 101 may comprise 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 computer system 101 may comprise a plurality of processors such as processor 201, each of the processors fidfilling a part of the processing requirements and communicating via a communications network such as the internet, and / or may comprise a plurality of peripheral devices such as peripheral device 205.

[0050] Processor 201 is configured for execution of instructions of a computer program for generating, modifying, and evaluating a computer model of an object and generating machine-readable manufacturing instructions based on the computer model. Memory 202 is configured for non-volatile storage of the computer 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. Graphical display device 203 is configured for displaying graphical representations of the computer model data generated by the computer program, to enable a user of the computer system 101 to visualize the data and so aid the user’s interaction, for example, modification, of the model data. Input / output interface 204 is configured for connection of the computer system 202 to peripheral devices 205, and to external systems such as communications system 103 to communicate with manufacturing equipment 102. Peripheral devices 205 are 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. Peripheral devices 205 may include, for example, a computer mouse, joystick and / or keyboard. The components 201 to 204 of the computer system 101 are in communication via system bus 206.

[0051] F igure 3 shows schematically a view of a computer model 301 that may be created by the computer-aided design and engineering software running on the computer system 101 and displayed as a part of a graphical user interface via graphical display device 203.

[0052] The computer program defines a modelled volume, in which a computer model of an object, such as an engineered complex product, is simulated. The computer model 301 is a composite model formed of multiple components, namely a main body part 302 and secondary parts 303. The main body part 302 is represented by a polygon mesh structure, and the secondary parts 303 by respective cylindrical solid forms.

[0053] The present disclosure is directed particularly to generation of a computer modelbased on an initial density grid representation of at least a part of the product to be modelled. Such a density grid representation may be utilized as a part of a topology optimization process for the purpose of initial optimization of a design of the modelled product. In the example, the mesh representation of the main body part 302 is generated in accordance with the present disclosure based on a received density grid representation. The density grid representation may be generated, for example, by an upstream topology optimization process, for which processes a density grid may be a preferred representation of an object.

[0054] Thus, the method of the present disclosure may begin by the computer system 101 receiving as inputs a density grid representation of the main body 302, a threshold value t where t < 0 < 1, and additional model data representing the forms ‘F’ forming the secondary parts 303.

[0055] The density grid received by the computer system representing the main body part 302 is a finite, uniformly spaced lattice of points in model space, with a value ‘d’, where 0 < d < 1, assigned to each point. The density grid is thus a partial representation of the body at the lattice points. The values of d at the lattice points determine whether the point is inside the body or outside the body. Specifically, if at a lattice point d > t, the lattice point is inside of the body; if d < t at a lattice point, the point is outside of the body; and if d = t the point is on the boundary of the body.|0056] The computer software may perform conversion operations to convert the density grid representation to the mesh representation of the main body 302, which mesh representation may be preferred for application of downstream operations. Methods for conversion of a density grid representation to a mesh representation are known in the prior art. Implementations of the present disclosure employ a known marching cubes algorithm and known mesh smoothing techniques to create a mesh M, and construct a body R from the mesh M to represent the main body 302. In the following step, R may be thought of as both an input and result of Boolean operations.

[0057] The computer software may then perform operations to join the forms F with the mesh representation R of the main body 302.

[0058] The forms F may be labelled as ‘solid’, as in the present example, ‘void’ or ‘shell’. If a form F is labelled solid, the entirety of F must be contained in the result body R. If a form F is labelled void R must not contain any point of F. If a form is labelled Shell with an offset distance k, R must contain points which are in the offset of F by k but not in F itself; for example, for a cylindrical ‘shell’ form with offset k, the tube of thickness karound the cylinder must be in R.

[0059] In the present example, the form bodies F are solid bodies. Hence, the computer software unites the forms with the mesh body R. Alternatively, for form bodies marked as void, the computer software would subtract the form bodies from the result body R, and for form bodies marked as shell, the computer software constructs the offset O of F, unites the offset O to the result body R, and subtracts the form body F from the result body R. In the event that the form bodies F carry pre-defined blend attributes, the computer software applies those blend attributes to the seams of R which result from the Boolean operation between the forms F and the body R.

[0060] Constructing the computer model of multiple discrete components, e.g., the mesh body 302 and the solid forms 302, may have an advantage in some applications. For example, performance of certain downstream operations on the computer model may be simplified, as the components of the model may be treated individually. As a result, the computational resource required for perfomiance of those operations may be reduced, and / or a greater number of downstream operations may be successfully applied to the model. In particular, the use of the solid forms 302 has an advantage where a part of a mesh computer model may need to be modified at a later stage, as it may be relatively computationally simple to modify the solid form, for example, to modify the size of the solid form. Whereas modifying a mesh may be relatively more computationally complex. 10061] A complication however arises from the multiple component construction of the model, in that seams 304 occur where the respective solid secondaiy part 303 joins to the mesh main body 302. In many scenarios, seams 304 may define relatively sharp transitions between the surfaces of the adjoining parts. Surface features, such as sharp seams, edges, and corners, as may result where the product is formed by uniting multiple discrete components, may undesirably impair manufacturability of the product. For example, where the product is to be molded, difficulties may be encountered in flowing molding material into the areas of the mold defining sharp surface features, and / or where the product is machined, difficulties may be encountered in machining the sharp surface features. Moreover, surface features, such as sharp seams between surfaces of a product, may be functionally undesirable, for example, where the product is required to present an aerodynamic exterior surface; they may structurally undesirably in that they may weaken the product by creating a stress point, and / or may be considered aesthetically undesirable.

[0062] In some applications therefore, it may be desirable to blend surface features in a computer model, such as the seams 304, to thereby avoid sharp surface features in amanufactured product resulting from the computer model, and / or to avoid the aforementioned associated manufacturability, functionality’, structural, and aesthetic issues.

[0063] A difficulty encountered in blending features of a computer model is determining an appropriate blend profile. For example, when blending an edge, it may be desirable that the blend radius is determined based on the relative positions and angles of the adjoining surfaces, in order to form a smooth and gradual transition between the surfaces. An approach to blending surface features in a computer model is to enable a user of the modelling computer program to manually define blend characteristics, for example, to define a radius of curvature. However, this manual approach may be undesirably onerous on the user, and indeed the user may experience difficulty in determining a subjectively appropriate blend profile, and such a manual definition may thus require a trial-and-error approach. A trial-and-error approach of this type may undesirably incur a significant time and computational resource burden. And even after a trial-and-error approach, the user- defined characteristics may still be sub-optimal.

[0064] Aspects of the present disclosure are instead directed to a method for applying blends to surface features, such as the seams 304, of a computer model in an automated manner, i.e., whereby the user is not required to manually define the blend characteristics, such as the radius of curvature. As a result of the automation, the process of blending surface features is simplified for the user, which particularly in comparison to a manual trial-and-error method may desirably reduce time and computational resource burden. Moreover, in implementations of the present disclosure, the blend may be improved compared to a user's manual definition of blend characteristics, as the determination of the blend accounts for interpolated model data, which data may not ordinarily be available to or comprehensible by the user. As a result of the improved blend characteristics, the manufacturability of the product may be improved.

[0065] As discussed above, the uniting of the secondary’ parts 303 with the main body 302 results in seams 304, and aspects of the present disclosure are directed to the computer software determining appropriate blend characteristics, e.g., a curvature profile, to apply to the seams 304, and then modifying the computer model 301 to apply the determined blend characteristics. Processes involved in determining appropriate blend characteristics for the seams 304 and modifying the computer model 301 accordingly will be described in further detail with reference to Figures 4 to 12.

[0066] Referring next to Figure 4, in implementations the method for determiningappropriate blend characteristics for the seams 304 involves interpolating the values in the density’ grid at the lattice points using a tricubic bspline function G.

[0067] As mentioned previously, the density grid is a partial representation of the main body 302. The density grid describes, for the lattice points, whether the lattice point is inside or outside the body. It does not describe the in / out status for points in model space which are not lattice points. Methods are known in the prior art for constructing a complete representation of a modelled body based on a density grid which preserves the in / out status of the lattice points, such as the marching-cubes algorithm. Another method is to construct a real-valued function G whose domain is the box containing the lattice points of the density grid which has the property that for any lattice point q, G(q) agrees with the value of the density grid at q.

[0068] Implementations of the present disclosure involve interpolating the values in the density grid to construct a complete representation of the body including the interpolated data, and then using the complete representation as a basis for determining appropriate blend characteristics to apply to the seams 304.

[0069] In implementations, a tricubic bspline function G may be constructed to interpolate the values in the density grid at the lattice points. This then gives a complete representation of the body, because G can be evaluated at any point in the box containing the density grid with reference to the received threshold value t. A point p is inside the body if G(p) > t, outside the body if G(p) < t, and on the surface of the body if G(p) = t. Figure 4 depicts a representation of the t-isosurface of the tricubic bspline function G, that is the set of points p for which G(p) = t, for the tricubic bspline function G.

[0070] Because the function G is a tricubic bspline function, the surface of the body represented by G(p) = t is a smooth surface. This smooth surface may be undesirable for use as the final representation of the product, for example, due to the loss of feature definition, but the smooth surface can be used as a basis for determining suitable blend characteristics for blending the seams 304, as will be described in further detail with reference to Figures 5 and 6.

[0071] Figures 5 and 6 depict a process for blending the seams 304 of the computer model 301 based on the interpolation of the density grid using the tricubic bspline function G.

[0072] Figure 5 depicts a portion of the t-isosurface of the tricubic bspline function G that corresponds to the position of one of the seams 304. It can be observed that the portion of the smooth t-isosurface at the seam has blend like features. The present disclosure determines a suitable blend profile, e g., a radius of curvature, to apply to theseams 304 based on the corresponding portion of the interpolated density grid data, as represented in Figure 5 by the portion of the t-isosurface of G. In implementations, the method involves determining the radius of curvature of the portion C of the t-isosurface of G, and determining the blend to be applied to the computer model based on that curvature.

[0073] Figure 6 depicts a method employed in aspects of the present disclosure for determining the curvature of the relevant portion of the t-isosurface of G.

[0074] For each of the surface features to be blended, in the example, each of the seams 304, one or more seam points 601, are determined on the portion C of the t-isosurface of G corresponding in position to the respective seam. At each seam point, the radius of curvature of the corresponding position of the t-isosurface is determined, as will be described in further detail herein.

[0075] The use of plural seam points pl-pn spaced along the seam allows computation of an average radius of curvature of the portion of the t-isosurface, which may provide a more reliable measure of the curvature. The spacing between the seam points may usefully be determined as a function of a length of the seam C, which length may be expressed in terms of the voxels of the density' grid. For example, the spacing between consecutive seam points C(pi) and C(pi+1) may be determined as two voxels in size. Thus, the seam points may be determined by computing a length of the portion of C corresponding to the seam, and dividing by the desired spacing, to obtain a number of intervals N. The spacing s may then be set as s = (pmax - pmin) / N. The parameter points may thus be determined to be po Pmin + s / 2, pj = pj-l + s forj > 0.

[0076] For each seam point p, a radius of curvature of the t-isosurface is determined as follows. Firstly, the oriented normal to the two under faces Fl and F2 at p are computed, from which the normalized average N is computed. The tangent vector T to C at the seam point p is also computed. A fan of rays are then constructed, based at p in the directions of vectors which are rotations of N about T. For each of these rays, the intersection with the tri cubic interpolant is computed. The pierce points, where the rays intersect the tricubic interpolant surface, are depicted in Figure 6.

[0077] An example implementation of the piercing process, to determine the pierce points associated with each parameter point p is described in further detail with reference to Figure 12.

[0078] For each pierce point, the principal curvatures are computed, from which the largest principal curvature, in absolute value, is determined for each pierce point. Incomputing the principal curvatures, a condition is applied that pierce points are only considered as valid if: (1) the respective pierce point has two neighboring pierce points in the fan each having a valid curvature; and (2) the mesh normal at the pierce point must not be close to parallel with the fan plane normal. The greatest of those principal curvatures for each pierce point is then determined. And from this, the maximum curvature (kMax) of the values is determined for each seam point. The radius for the respective seam point is then determined to be the smallest radius of curvature, as given by 1 / kMax, i.e., the reciprocal of the maximum curvature kMax. The blend radius to be applied to the seam is then determined as an average, for example a median value, of the 1 / kMax values for all the seam points. This then determines an average minimum radius of curvature of the portion of the t-isosurface to be applied to the seam.

[0079] Referring next to Figure 7, the computer model 301 may be modified to blend the seams 304 using the determined blend radius.

[0080] Referring next to Figure 8, in examples the present disclosure provides a method for manufacturing a product comprising five operations. Operations 801 to 804 are performed by the computer program running on the computer system 101.

[0081] At operation 801, the computer program causes the processor 201 of the computer system 101 to create a computer model of the product or a part thereof. Operation 801 could, for example, involve a step of receiving technical specification data describing a technical specification for the finished product, for example, describing a volume constraint, or load capacity for the product and generating the computer model based on the technical specification data. The technical specification data could, for example, be received from an external computing system connected to the input / output interface 204, or could be generated by one or more computer programs running on the computing system 101.

[0082] At operation 802, the computer program causes the processor 201 of the computer system 101 to functionally evaluate the computer model, or a part thereof. For example, operation 802 could involve the computer system 101 performing a CFD evaluation method on one or more surfaces of the model 301 to determine the interaction of each of those surfaces with a fluid flow.

[0083] At operation 803, based on the results of the evaluation at operation 802, the computer system 101 may modify the model created at operation 801, for example, to improve fluid flow across the evaluated surfaces. Operation 803 could, for example, involve a user interacting with the computer program via a peripheral device 205 such asa human-machine interface device to modify the computer model.

[0084] Operations 802 and 803 may be repeated in order until the results of the evaluation process indicate that the design is acceptable, e.g., that the design meets a desired technical specification.

[0085] At operation 804, manufacturing data for manufacturing the subject product is generated based on the finalized model generated at operation 803. The manufacturing data could, for example, include the model data digitally representing the product, and / or machine control instructions based on the model data for controlling a machine to manufacture the product. The manufacturing data may thus sen e as control data for controlling machinery to manufacture the modelled product. The manufacturing data is then transmitted by the computer system 101 to the manufacturing equipment 102, for example, via the communication system 103.

[0086] At operation 805, the manufacturing data received at operation 804 is utilized by the manufacturing equipment 102 to manufacture the product.

[0087] Referring next to Figure 9, in examples operation 801 for creating the computer model comprises six stages.

[0088] At operation 901, the computer program causes the processor 201 of the computer system 101 to obtain the density grid representation of the model, the threshold value t, and the solid forms 303, as depicted in Figure 3. Operation 901 may, for example, involve the computer system 101 receiving the density grid, threshold value, and solid forms from an external computer via the input / output interface 204. Alternatively, operation 901 could involve the computing system 101 making use of technical specification data received at operation 801 to generate the density grid and / or the forms. Operation 901 could, for example, involve the computing system 101 running topology optimization software, based on the technical specification data, to generate the density grid.

[0089] At operation 902, the computer program causes the processor 201 of the computer system 101 to generate the computer model based on the density grid, threshold value, and solid forms, as depicted in Figure 3. As previously described, operation 902 could involve the computer program applying a marching cubes algorithm to the density grid to generate the mesh of the main body 302, and could then involve the computer program uniting the solid forms 303 with the mesh main body 302.

[0090] At operation 903, the computer program causes the processor 201 of the computer system 101 to determine one or more portions of the computer model, that was generated at operation 902, for modification. In aspects of the present disclosure, as describedpreviously with reference to Figure 3, operation 903 may involve the computer program determining surface features of a computer model, such as the seams 304, for blending. Operation 903 could involve the computer program determining these surface features, such as the seams, based on relative positions of the mesh main part 302 of the computer model and the one or forms 303, e.g., by identifying the parts of the mesh of the main body 302 that intersect or are proximate to the solid forms of the secondary parts 303.

[0091] At operation 904, the computer program causes the processor 201 of the computer system 101 to interpolate the values in the density grid, based on the tricubic interpolant function, as described previously with reference to Figure 4.

[0092] At operation 905, the computer program causes the processor 201 of the computer system 101 to determine the one or more portions of the interpolated densify grid data that correspond to the one or more portions of the computer model determined previously at operation 903, e.g., determine the portions of the interpolated densify grid data that correspond in position to the seams 304.

[0093] At operation 906, the computer program causes the processor 201 of the computer system 101 to modify the portions of the computer model determined at operation 903 based on the portions of the interpolated densify grid data determined at operation 904, as described previously with reference to Figures 5, 6, and 7. As previously described, in the example, operation 906 may involve the computer program determining a curvature of the surface described by the interpolated data, and then modifying the computer model to blend the seams 304 based on the determined curvature.

[0094] Referring next to Figure 10, in examples, operation 902 for generating the computer model comprises two stages.

[0095] At operation 1001. the computer program causes the processor 201 of the computer system 101 to convert the received densify’ grid representation to the mesh representation, for example, using a marching cubes algorithm.

[0096] At operation 1002, the computer program causes the processor 201 of the computer system 101 to join the mesh generation at operation 1001 to the solid forms received at operation 901, as described previously with reference to Figure 3.

[0097] Referring next to Figure 11, in examples, operation 905 for modifying the computer model comprises two stages.

[0098] At operation 1101, the computer program causes the processor 201 of the computer system 101 to determine a curvature of the surface described by the determined portion of the interpolated data, as previously described with reference to Figures 5, 6,and 7.

[0099] At operation 1102. the computer program causes the processor 201 of the computer system 101 to modify the computer model to blend the seams 304, as depicted in Figure 7. Operation 1102 could, for example, involve the computer program modifying the mesh representation of the main body 302 generated at operation 902, or could instead involve the computer program generating one or more discrete models describing the blend surface, and then joining those discrete models to the computer model generated at operation 902 overlaid over the seams 304.

[0100] Referring next to Figure 12, in examples, operation 1101 for determining the curvature of a portion of the density grid interpolation comprises a sub-operation of determining pierce points, as previously described with reference to Figure 6. In example, the determining the pierce points comprises eight operations.

[0101] At operation 1201, the computer program causes the processor 201 of the computer system 101 to determine an index [I,J,K] of the voxel of the densify grid which contains the subject seam point p.

[0102] At operation 1202, the computer program causes the processor 201 of the computer system 101 to determine, from the eight comer value, if the voxel [I,J,K] contains any of the tricubic isosurface generated at operation 904. If the question is answered in the affirmative, the process proceeds to operation 1203.

[0103] At operation 1203, the computer program causes the processor 201 of the computer system 101 to construct a 9x9x9 marching cubes mesh within the model space of the voxel [I,J,K] which approximates the VO-isosurface of the tricubic interpolant F3.

[0104] At operation 1204, the computer program causes the processor 201 of the computer system 101 to intersect the 9x9x9 mesh generated at operation 1203 with the portion of the ray that lies in the voxel [I,J,K], to determine whether an intersection occurs. If an intersection does occur, the method proceeds to operation 1207, whereby the point of intersection is determined as a pierce point. If an intersection does not occur, the method proceeds to operation 1207.

[0105] At operation 1205, the computer program causes the processor 201 of the computer system 101 to determine a next voxel in the densify grid along the ray.

[0106] At operation 1206, the computer program causes the processor 201 of the computer system 101 to determine whether the maximum ray distance of the voxel determined at operation 1205 is equal or greater than twice the voxel size. If this determination is answered in the affirmative, it is inferred that no further pierce points arerelevant for the seam point, and the method proceeds to and ends at operation 1208. Else, if the determination at operation 1206 is answered in the negative, the method loops back to operation 1202.

[0107] 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 hardware. 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.

[0108] 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, an analog 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.

[0109] The memory7may be integrated together with the processing device, for example RAM or FLASH memory disposed within an integrated circuit microprocessor or the like. In other examples, the memory may comprise 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, for example 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) by virtue of permission settings, or not. Other examples of memory7may 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 comprise moving parts, such as a known rotating disk drive. All such memories may be "machine-readable" and may be readable by a processing device.

[0110] 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 alternatively7, "machine- readable storage medium") may include all of the foregoing types of memory, as well asnew 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 comprise 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.

[0111] A program stored in a computer-readable storage medium may comprise 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 maybe equivalently aggregated into a single logic device, program, or operation with unclear boundaries.

[0112] While the application describes specific examples of carry ing 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, it should be appreciated that various examples of the invention may be implemented using any desired combination of electronic design automation processes.

[0113] One of skill in the art will also recognize that the concepts taught herein can be tailored to a particular application in many other ways. In particular, 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.

[0114] 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.

[0115] 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 asingle 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.

[0116] 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 be regarded 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 generating a computer model representation of an object, the computer-implemented method comprising: obtaining a density grid representation of at least part of the object; generating a computer model representation based on the density grid; determining a portion of the computer model representation; interpolating values in the density grid; detennining a portion of the interpolation of the density grid corresponding to the portion of the computer model representation, and modifying the computer model representation based on the portion of the interpolation of the density grid.

2. The computer-implemented method of claim 1, wherein modifying the computer model representation comprises modifying the portion of the computer model representation based on the portion of the interpolation of the density grid.

3. The computer-implemented method of claim 1, wherein generating the computer model representation comprises generating a computer model representation of a surface of the object.

4. The computer-implemented method of claim 1, wherein generating the computer model representation comprises generating a mesh representation based on the densify grid using a marching cubes algorithm.

5. The computer-implemented method of claim 1, further comprising obtaining computer model representations of one or more forms, wherein generating the computer model representation comprises generating the computer model representation based on the densify grid and the one or more fonns.

6. The computer-implemented method of claim 5, wherein determining the portion of the computer model representation comprises determining the portion of the computer model representation based on relative positions of a part of the computer model representation generated based on the densify grid and the one or more forms.

7. The computer-implemented method of claim 5, wherein determining the portion of the computer model representation comprises determining the portion of the computer modelrepresentation proximate to an intersection of a part of the computer model representation generated based on the density grid and the one or more forms.

8. The computer-implemented method of claim 1, wherein interpolating the values in the density grid comprises interpolating the values using a smoothing interpolant function.

9. The computer-implemented method of claim 1, wherein interpolating the values in the density grid comprises tricubic interpolation of the values.

10. The computer-implemented method of claim 1. wherein modifying the computer model representation comprises determining a profile of the portion of the interpolation of the density grid, and modifying the computer model representation based on the profile of the portion of the interpolation of the density grid.

11. The computer-implemented method of claim 10, wherein determining the profile of the portion of the interpolation of the density grid comprises determining a plurality of profiles corresponding to a respective plurality of positions on the portion of the interpolation of the density7grid, and determining the profile based on the plurality of profiles.

12. The computer-implemented method of claim 10, wherein determining the profile of the portion of the interpolation of the density grid comprises determining a curvature of the portion of the interpolation of the density' grid.

13. The computer-implemented method of claim 1, further comprising receiving specification data describing a technical specification of die object and / or describing technical constraints for manufacturing the object, and generating the density grid based on the specification data.

14. The computer-implemented method of claim 13, further comprising performing a computer-implemented topology optimization method based on the specification data, and generating the density grid based on a result of the computer-implemented topology optimization method.

15. The computer-implemented method of claim 1. further comprising generating machine- readable instructions based on the computer model representation for controlling manufacturing machinery to manufacture the object.

16. A computer comprising: at least one processor, and at least one memory including machine-readable instructions, wherein the at least one memory and die machine -readable instructions are configured to, with the at least one processor, cause the computer to generate a computer model representation of an object by the method of claim 1.

17. A computer program comprising instructions, which, when executed by a computer, causes the computer to carry out the method of claim 1.

18. A data storage apparatus having stored thereon the computer program of claim 15.

19. A computer-readable medium having stored thereon a digital description of an object in the form of the computer model generated by a method according to any one of claims 1 to 14, and the machine-readable instructions according to claim 15.

20. A computer-implemented method of controlling manufacturing machinery to manufacture an object based on the machine-readable instructions generated according to claim 15.