Patent ID: 12190023

DETAILED DESCRIPTION

The disclosure describes a mechanism to generate a deformed MCAD model representing deformed geometry of a physical object whose initial geometry is represented in an undeformed MCAD model. Deformation is the initial geometry applied with displacements. The displacements can be obtained from an engineering analysis simulation using an engineering analysis model or computer-aided engineering (CAE) mesh model (i.e., mesh model) generated from MCAD faces and MCAD edges of the undeformed MCAD model.

Used hereinafter in this disclosure, terms “MCAD face” and “face” are interchangeable, and terms “MCAD edge” and “edge” are interchangeable. An MCAD model contains faces and edges. Each face is defined in an MCAD surface and bordered by one or more loops of edges. Each MCAD surface is parameterized to a two-dimensional (2-D) grid. Deformation of a face is converted to grid data inside of a region in the 2-D grid. The region corresponds to the face. The region is a mapped area in the 2-D grid of the face. The one-to-one mapping is based on the parameterization of the underformed MCAD surface and both the undeformed and deformed CAE mesh models. Grid data outside of the region are determined using the known grid data inside of the region via an extrapolation procedure based on surface smoothness criteria.

The extrapolation procedure can include a linear least squares minimization of the second and third spatial derivatives at grid points outside of the region using the known grid data. A deformed MCAD surface can then be created using the grid data inside and outside of the region.

An example MCAD face102in an MCAD surface is shown inFIG.1. The face102is bordered with edges104defining the trimmed boundary of the MCAD surface. The edges104are based on smooth parametric curves defined over a one-dimensional interval.

Also shown inFIG.1, an example engineering analysis model or computer-aided engineering (CAE) mesh model, for example, a finite element analysis model110is generated from faces/edges of the MCAD model. The example engineering analysis model110contains a number of triangular elements (i.e., triangulation or faceted representation of the face).

FIG.2shows initial CAE mesh model210and deformed CAE mesh model220. The deformed CAE mesh model220is a result of an engineering analysis simulation (e.g., a finite element analysis). Because the initial CAE mesh model210is generated from an MCAD model, deformation can be associated with a corresponding face as deformed geometry in the MCAD model. Further, a pointwise displacement can be defined between a node in the initial CAE mesh model210and the same node in the deformed CAE mesh model220.

Any given MCAD surface300shown inFIG.3Acontaining no self-intersections with continuous curvature can be mapped to a two-dimensional (2-D) grid310using its parameterization with two dimensions, u311and v312as shown inFIG.3B. The 2-D grid310is generated from an MCAD surface300. When a face305is defined in the MCAD surface300, a region315with a border318in the 2-D grid310can correspond to the face305.

The 2-D grid310contains an array of grid points316uniformly distributed in a rectangular space on a parametric plane. A grid cell317has a rectangular or shape defined by four grid points. Each grid point has a coordinate (u, v) in the parametric plane. Grid data is a geometry data in a direction perpendicular to the parametric plane at each grid point. For example, deformation of the face305can be transformed to grid data inside of the region315using an interpolation procedure.

A face can be a portion of a surface. One or more edges can be applied to trim the MCAD surface to form the face. As an example,FIG.4shows an MCAD surface400contains a region inside of a face410and another region outside of the face420. Deformation of the region inside of the face can be obtained from a simulation. However, there is no information for the region outside of the face. In order to create a deformed MCAD surface, data for the region outside of the face need to be determined with an extrapolation procedure based on surface smoothness criteria.

FIGS.5A-5Bshow an undeformed MCAD surface510for initial geometry and a deformed MCAD surface520for deformed geometry. Control points are also shown over the respective sets of NURBS patches defining the MCAD surfaces. To fit NURBS patches for defining the deformed MCAD surface520, the grid data521inside of a region corresponding the face521and the grid data522outside of the region are required. The grid data521inside of the region can be obtained from the deformation of the face. The grid data522outside of the region are unknown. The grid data522outside of the region can be determined using the known grid data521inside of the region via an extrapolation procedure based on surface smoothness criteria.

The surface smoothness criteria can ensure that the deformed MCAD surface520is smooth either singly curved or doubly curved. The extrapolation procedure can include minimization of the second spatial derivatives and the third spatial derivatives at grid points outside of the region using the known grid data with respects to the parametric dimensions. The minimization can be based on linear least squares minimization. Calculations of the second and the third spatial derivatives can be carried out based on known numerical methods, for example, finite difference method (i.e., using finite difference stencils).

In mathematics, to approximate a derivative to an arbitrary order of accuracy, it is possible to use the finite difference method. A finite difference method can be central, forward or backward.

Central Finite Difference

FIG.10Acontains a table showing the coefficients of the central finite differences, for several orders of accuracy and with uniform grid spacing. As an example, the third derivative with a second-order accuracy is as follows:

f′′′(x0)≈-12⁢f⁡(x-2)+f⁡(x-1)-f⁡(x+1)+12⁢f⁡(x+2)hx3+O⁡(hx2)where hxrepresents a uniform grid spacing between each finite difference interval, and xn=x0+nhx.

For the m-th derivative with accuracy n, there are

2⁢p+1=2⁢⌊m+12⌋-1+n
central coefficients a−p, a−p+1, . . . , ap−1, ap. These are given by the solution to the linear equation system shown inFIG.10D.
Forward Finite Difference

FIG.10Bshows a table contains the coefficients of the forward differences, for several orders of accuracy and with uniform grid spacing. As an example, the first derivative with a third-order accuracy and the second derivative with a second-order accuracy are as follows:

f′(x0)≈-1⁢16⁢f⁡(x0)+3⁢f⁡(x+1)-32⁢f⁡(x+2)+13⁢f⁡(x+3)hx+O⁡(hx3)f″(x0)≈2⁢f⁡(x0)-5⁢f⁡(x+1)+4⁢f⁡(x+2)-f⁡(x+3)hx2+O⁡(hx2)
Backward Finite Difference

While the corresponding backward approximations are given by the following:

f′(x0)≈1⁢16⁢f⁡(x0)-3⁢f⁡(x-1)+32⁢f⁡(x-2)-13⁢f⁡(x-3)hx+O⁡(hx3)f″(x0)≈2⁢f⁡(x0)-5⁢f⁡(x-1)+4⁢f⁡(x-2)-f⁡(x-3)hx2+O⁡(hx2)

In general, to get the coefficients of the backward approximations, give all odd derivatives listed in the table the opposite sign, whereas for even derivatives the signs stay the same.FIG.10Cshows a table illustrates this.

Further, an MCAD surface that contains a face for undeformed geometry can be defined by NURBS patches over a rectangular parametric space (e.g., a 2-D grid). Deformed geometry of a face needs to have an underlying MCAD surface that is again defined over the same parametric rectangular space. Additionally, the disclosed mechanism can maintain the same topological relationship between the parameterization of the undeformed MCAD surface and the deformed MCAD surface. The disclosed mechanism can fit an MCAD surface to include grid data from the known deformation of the face. The mapping over the parametric rectangular space can be evaluated to find the control points for the deformed MCAD surface.

This ensures that the map is smooth when going from grid data inside of the region to the grid data outside of the region. The combined minimization of both the second and third spatial derivatives produces good results for MCAD surfaces that are either singly or doubly curved, whereas using only the second derivatives gives good results for singly curved MCAD surfaces, and using only the third derivatives gives good results for doubly curved MCAD surfaces. Furthermore, additional linear least squares constraints are applied to grid cells corresponding to edges bordering a face. The additional constraints are to maintain smoothness for transitions between the grid data inside of the region and the grid data outside of the region.

Smoothness of a surface can be represented by applying a reflection map.FIGS.6A-6Bshow smoothness of surfaces for an undeformed MCAD surface610and for the deformed MCAD surface620, respectively.

The extrapolation procedure can extend known grid data (i.e., deformation of a face) smoothly to a physically unbounded region, i.e., bounded only by the choice of parametric rectangular space. If the original MCAD face contains one or more holes, the extension of the known deformation into the one or more holes becomes an interpolation problem, which can be solved independently of the extrapolation problem. The interpolation problem can be solved more simply than the extrapolation problem because of two reasons: the hole regions decouple from the rest of the problem, so one large matrix factorization is not needed; and they can be solved via Laplace interpolation, which gives rise to a much sparser matrix equation than the least squares minimization in an extrapolation procedure.

FIG.7shows an original MCAD model710representing initial undeformed geometry of a physical object (i.e., a connector) and a deformed MCAD model720representing deformed geometry of the physical object. There are a number of faces (e.g., faces711,718) in the original MCAD model710. The corresponding faces721,728are in the deformed MCAD model720. The faces in the original MCAD model710and the faces in the deformed MCAD model720have one-to-one topological correlation.

FIG.8Ais a flowchart illustrating an example process800of generating an updated mechanical computer-aided design (MCAD) model representing a deformed object from an MCAD model representing an undeformed object. The deformed object includes deformation of a face obtained in a simulation using a mesh model generated from the MCAD model.

Process800starts at action802by receiving a MCAD model representing a physical object (e.g., part/product/structure) in a computer system (e.g., systems shown inFIGS.9A-9B). The MCAD model contains an MCAD surface with a face defined therein. The surface is defined by NURBS patches, while the face is further bordered by one or more MCAD edges. For example,FIG.1shows a face102with an MCAD edge104.

Next, at action804, a deformation of the face is obtained in a simulation based on the MCAD model. The simulation comprises a computer-aided engineering (CAE) analysis, for example, finite element analysis (FEA). The simulation uses a mesh model (e.g., a FEA mesh model110shown inFIG.1) generated from the MCAD model. The surface (e.g., a surface300inFIG.3A) is mapped to a two-dimensional (2-D) grid in a parametric space (e.g., 2-D grid310inFIG.3B). The 2-D grid contains a first group of grid points representing the face (e.g., region representing the face410inFIG.4) and a second group of grid points representing outside of the face (e.g., region outside of the face420).

At action806, the deformation of the face is applied to the first group of grid points such that the grid point data represent the deformation of the face. Then, at action808, the deformation of the face is extrapolated to the second group of grid points based on surface smoothness criteria.

Finally, at action810, an updated MCAD model is generated using the 2-D grid associated with the applied deformation and the extrapolated deformation. The updated MCAD model is to represent a deformed physical object. The updated MCAD model contains at least one deformed surface which is singly curved or doubly curved based on surface smoothness criteria.

FIG.8Bshows an example process820of creating a deformed mechanical computer-aided design (MCAD) surface that includes the deformation of a face obtained in a simulation using an engineering analysis model generated from an undeformed MCAD surface.

Process820starts at action822by receiving data representing an undeformed MCAD surface in a computer system (e.g., systems shown inFIGS.9A-9B). The MCAD surface contains a face defined therein. The face is further bordered by one or more loops of MCAD edges. The undeformed MCAD surface belongs to a undeformed MCAD model representing a physical object (e.g., structure/product/part). Next, at action824, the deformation of the face is also received. The deformation is obtained in a simulation (e.g., an engineering analysis simulation) using a computer-aided engineering (CAE) mesh model or engineering analysis model. The CAE mesh model can be generated from faces/edges in the undeformed MCAD model with known techniques. As a result of the simulation, a deformed mesh model is obtained. The deformation of the face can be determined by comparing the deformed mesh model with the undeformed mesh model.

Example engineering analysis simulation may include, but is not limited to, finite element analysis, boundary element analysis. Engineering analysis can be one of many different types, for example, linear, nonlinear, static, or dynamic. Engineering analysis model can include nodes connected by elements, etc.

The simulation is performed for a part/product under a design loading condition. In structural design, a design load is greater than the load which the system is expected to support. This is because engineers incorporate a safety factor in their design. Design loading condition is a condition for design a part/product to satisfy the design goal.

At action826, a two-dimensional (2-D) grid is generated from the undeformed MCAD surface. There is a one-to-one correlation between the MCAD surface to the 2-D grid. Example grid points are distributed uniformly on the parametric space310of an undeformed MCAD surface300shown inFIG.3A. Then, at action828, grid data inside of a region corresponding to a face in the 2-D grid are obtained from the deformation of the face (e.g., via interpolation).

At830, grid data outside of the region are determined from the known grid data inside of the region via an extrapolation procedure based on surface smoothness criteria. For example, the grid data outside of the region can be determined as follows: calculating the second and the third spatial derivatives at grid points outside of the region using the known grid data; and determining the grid data outside of the region via a linear least squares minimization of the second and the third spatial derivatives. Calculations of the second and the third spatial derivatives can be carried out based on finite difference techniques (e.g., using finite difference stencils).

When the outside of the region contains one or more holes, an interpolation procedure may be used for obtaining the grid data. One example interpolation procedure can be based on Laplace interpolation, which solves unknown grid data based on the known grid data in a 2-D grid.

Finally, at action832, a deformed MCAD surface is created using all grid data (i.e., the grid data inside and outside of the region). This can be done by fitting non-uniform rational basis spline (NURBS) patches to form the deformed MCAD surface.

Resulting NURBS patches can be either singly curved smooth surface or a doubly curved smooth surface when the combined minimization of the second derivatives and the third spatial derivatives is used. Further, since the creation of a deformed MCAD surface is independent from that of another deformed MCAD surface, the operations can be carried out in a parallel-processing computing system with either shared or distributed memory subsystem.

The deformed MCAD surface belongs to a deformed MCAD model representing a deformed geometry of the physical object. The deformed MCAD model is then formed by combining faces/edges defined in one or more deformed MCAD surfaces. Such an operation is referred to as stitching.

The subject matter described herein may be implemented using any suitable processing system with any suitable combination of hardware, software and/or firmware, such as described below with reference to the non-limiting examples shown inFIGS.9A-9C.

FIG.9Adepicts an example system900that includes a standalone computer architecture where a processing system902(e.g., one or more computer processors) includes a module904(e.g., software module stored in memory) being executed on it. The processing system902has access to a non-transitory computer-readable memory906in addition to one or more data stores908. The one or more data stores908may contain first data910as well as second data912.

FIG.9Bdepicts another example system920that includes a client-server architecture. One or more clients922(e.g., user personal computer, workstation, etc.) accesses one or more servers924executing computer instructions of a module926(e.g., software module stored in memory) on a processing system927via one or more networks928. The one or more servers924may access a non-transitory computer readable memory930as well as one or more data stores932. The one or more data stores932may contain first data934as well as second data936.

FIG.9Cshows a function block diagram of example hardware for a standalone computer architecture950, such as the architecture depicted inFIG.9A, that may be used to contain and/or implement the subject matter described herein. A bus952may serve as the information highway interconnecting the other illustrated components of the hardware. A processing system954labeled CPU (central processing unit) (e.g., one or more computer processors), may perform calculations and logic operations required to execute a program/software/module. A non-transitory computer-readable storage medium, such as read only memory (ROM)956and random access memory (RAM)958, may be in communication with the processing system954and may contain one or more programming instructions. Optionally, program instructions may be stored on a non-transitory computer-readable storage medium such as a magnetic disk, optical disk, recordable memory device, flash memory, or other physical storage medium. Computer instructions may also be communicated via a communications signal, or a modulated carrier wave, e.g., such that the instructions may then be stored on a non-transitory computer-readable storage medium thru communication port978.

A disk controller960interfaces one or more optional disk drives to the system bus952. These disk drives may be external or internal flash memory drives965, external or internal CD-ROM, CD-R, CD-RW or DVD drives964, or external or internal hard disk drives966. As indicated previously, these various disk drives and disk controllers are optional devices.

If needed, the processor954may access each of the following components: real-time data buffer, conveyors, file input processor, database index shared access memory loader, reference data buffer and data managers. Each component may include a software application stored in one or more of the disk drives connected to the disk controller960, the ROM956and/or the RAM958.

A display interface968may permit information from the bus952to be displayed on a display970in audio, video, graphical, text, or alphanumeric format.

In addition to the standard computer-type components, the hardware may also include data input devices, such as a keyboard972, or other input device974, such as a microphone, remote control, pointer, mouse, touch screen, and/or joystick.

This written description describes example embodiments of the subject matter, but other variations fall within scope of the disclosure. For example, the systems and methods may include and utilize data signals conveyed via networks (e.g., local area network, wide area network, internet, combinations thereof, etc.), fiber optic medium, carrier waves, wireless networks, etc. for communication with one or more data processing devices. The data signals can carry any or all of the data disclosed herein that is provided to or from a device.

The methods and systems described herein may be implemented on many different types of processing devices by program code comprising program instructions that are executable by the device processing system. The software program instructions may include source code, object code, machine code, or any other stored data that is operable to cause a processing system to perform the methods and operations described herein. Any suitable computer languages may be used such as C, C++, Java, etc., as will be appreciated by those skilled in the art. Other implementations may also be used, however, such as firmware or even appropriately designed hardware configured to carry out the methods and systems described herein.

The systems' and methods' data (e.g., associations, mappings, data input, data output, intermediate data results, final data results, etc.) may be stored and implemented in one or more different types of computer-implemented data stores, such as different types of storage devices and programming constructs (e.g., RAM, ROM, Flash memory, flat files, databases, programming data structures, programming variables, IF-THEN (or similar type) statement constructs, etc.). It is noted that data structures describe formats for use in organizing and storing data in databases, programs, memory, or other non-transitory computer-readable media for use by a computer program.

The computer components, software modules, functions, data stores and data structures described herein may be connected directly or indirectly to each other in order to allow the flow of data needed for their operations. It is also noted that a module or processor includes but is not limited to a unit of code that performs a software operation, and can be implemented for example as a subroutine unit of code, or as a software function unit of code, or as an object (as in an object-oriented paradigm), or as an applet, or in a computer script language, or as another type of computer code. The software components and/or functionality may be located on a single computer or distributed across multiple computers depending upon the situation at hand.

It should be understood that as used in the description herein and throughout the claims that follow, the meaning of “a”, “an”, and “the” includes plural reference unless the context clearly dictates otherwise. Also, as used in the description herein and throughout the claims that follow, the meaning of “in” includes “in” and “on” unless the context clearly dictates otherwise. Finally, as used in the description herein and throughout the claims that follow, the meanings of “and” and “or” include both the conjunctive and disjunctive and may be used interchangeably unless the context expressly dictates otherwise; the phrase “exclusive or” may be used to indicate situation where only the disjunctive meaning may apply.

Additionally, used herein, the terms “inside”, “outside”, “perpendicular”, “front”, “rear”, “high”, “low”, “outer”, and “inner” are intended to provide relative positions/locations for the purposes of description, and are not intended to designate an absolute frame of reference. Further, the order of blocks in process flowcharts or diagrams do not inherently indicate any particular order nor imply any limitations.

Although the subject matter has been described with reference to specific embodiments thereof, these embodiments are merely illustrative, and not restrictive of, the invention. Various modifications or changes to the specifically disclosed example embodiments will be suggested to persons skilled in the art. Whereas example parametric space has been described and shown as a rectangle, other shape of parametric space may be used, for example, a periodical surface of a cylinder. Furthermore, whereas example minimization procedure has been described and shown as linear least squares minimization, other type of minimization procedures may be used for achieving the same. In summary, the scope of the subject matter should not be restricted to the specific example embodiments disclosed herein, and all modifications that are readily suggested to those of ordinary skill in the art should be included within the spirit and purview of this application and scope of the appended claims.