Methods and systems for creating mechanical computer-aided design model to include deformation
12190023 ยท 2025-01-07
Assignee
Inventors
Cpc classification
G06F30/23
PHYSICS
International classification
G06F17/17
PHYSICS
Abstract
A mechanical computer-aided design (MCAD) model representing an object is received. The MCAD model contains a surface with a face defined therein. Deformation of the face is obtained in a simulation based on the MCAD model. The surface is defined by Non-Uniform Rational Basis Spline patches and mapped to a two-dimensional (2-D) parametric grid. The 2-D grid contains a first group of grid points representing the face and a second group of grid points representing outside of the face. The deformation of the face is applied to the first group of grid points. The deformation is extrapolated to the second group of grid points. An updated MCAD model representing a deformed object is generated using the 2-D grid associated with the applied deformation and the extrapolated deformation.
Claims
1. A computer-implemented method comprising: receiving a mechanical computer-aided design (MCAD) model representing an object, the MCAD model comprising a surface with a face defined therein and an original model parameterization; storing configurations for a set of surface smoothness criteria; generating a mesh model based on the face of the MCAD model; generating a deformed mesh model by using a simulation software that is configured to deform the mesh model based on one or more design loading conditions, wherein the deformed mesh model comprises a set of displacement data that describes deformation of a first region corresponding to the face of the surface, and wherein the set of displacement data does not describe deformation of a second region corresponding to the surface outside of the face; mapping the surface of the MCAD model-to a two-dimensional (2-D) grid having a first group of grid points representing the face of the surface and corresponding to the first region for which deformation is known, and a second group of grid points representing the surface outside of the face and corresponding to the second region for which deformation is unknown; and applying the set of displacement data to the MCAD model by generating an updated MCAD model representing a deformed object by: creating a first set of patches corresponding to the first region for which deformation is known based on the set of displacement data and the first group of grid points; creating a second set of patches corresponding to the second region for which deformation is unknown, using an extrapolation function based on the set of surface smoothness criteria, the set of displacement data, and the second group of grid points; and combining the first set of patches and the second set of patches to create the updated MCAD model while maintaining the original model parameterization for the updated MCAD model.
2. The method of claim 1, wherein using the extrapolation function comprises calculating second spatial derivatives and third spatial derivatives at the second group of grid points using the set of displacement data.
3. The method of claim 2, wherein the second spatial derivatives and the third spatial derivatives are calculated based on a finite difference technique.
4. The method of claim 2, wherein using the extrapolation function comprises performing a linear least squares minimization of the second spatial derivatives and the third spatial derivatives.
5. The method of claim 4, wherein using the extrapolation function comprises performing a linear least squares constraint along a border between the first group of the grid points and the second group of grid points.
6. The method of claim 1, wherein the surface is defined by Non-Uniform Rational Basis Spline (NURBS) patches.
7. The method of claim 1, wherein a surface of the updated MCAD model surface comprises no self-intersections with continuous curvature.
8. The method of claim 1, further comprising: determining whether the face contains one or more holes; where the face does not contain one or more holes, creating the second set of patches using the extrapolation function; and where the face does contain one or more holes, creating the second set of patches using an interpolation function.
9. The method of claim 8, wherein the interpolation function is based on Laplace interpolation.
10. The method of claim 1, wherein the one or more design loading conditions comprise a structural design load.
11. A system comprising: a bus; a memory storing instructions; one or more processors coupled to the bus and the memory, the one or more processors executing the instructions from the memory to perform a method comprising: receiving a mechanical computer-aided design (MCAD) model representing an object, the MCAD model having plurality of surfaces, each with a face defined therein; storing configurations for a set of surface smoothness criteria; generating a plurality of deformed mesh models by, for each surface of the plurality of surfaces: generating a mesh model based on the face of the MCAD model for that surface; generating a deformed mesh model by using a simulation software that is configured to deform the mesh model based on one or more design loading conditions, wherein the deformed mesh model comprises a set of displacement data that describes deformation of a first region corresponding to the face of the surface, and wherein the set of displacement data does not describe deformation of a second region corresponding to the surface outside of the face; and mapping that surface of the MCAD model to a two-dimensional (2-D) grid having a first group of grid points representing the face of that surface and corresponding to the first region for which deformation is known, and a second group of grid points representing that surface outside of the face and corresponding to the second region for which deformation is unknown; generating an updated MCAD model representing a deformed object by, for each surface of the plurality of surfaces: creating a first set of patches corresponding to the first region for which deformation is known based on the set of displacement data and the first group of grid points; creating a second set of patches corresponding to the second region for which deformation is unknown, using an extrapolation function based on the set of surface smoothness criteria, the set of displacement data, and the second group of grid points; and combining the first set of patches and the second set of patches to create the updated MCAD model; wherein generating the updated MCAD model further comprises a first processor and a second processor of the one or more processors operating in parallel on a first surface and a second surface of the plurality of surfaces.
Description
DESCRIPTION OF DRAWINGS
(1)
(2)
(3)
(4)
(5)
(6)
(7)
(8)
(9)
(10)
(11)
(12)
(13)
(14)
(15)
(16)
DETAILED DESCRIPTION
(17) 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.
(18) 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.
(19) 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.
(20) An example MCAD face 102 in an MCAD surface is shown in
(21) Also shown in
(22)
(23) Any given MCAD surface 300 shown in
(24) The 2-D grid 310 contains an array of grid points 316 uniformly distributed in a rectangular space on a parametric plane. A grid cell 317 has 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 face 305 can be transformed to grid data inside of the region 315 using an interpolation procedure.
(25) 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,
(26)
(27) The surface smoothness criteria can ensure that the deformed MCAD surface 520 is 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).
(28) 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.
(29) Central Finite Difference
(30)
(31)
(32) For the m-th derivative with accuracy n, there are
(33)
central coefficients a.sub.p, a.sub.p+1, . . . , a.sub.p1, a.sub.p. These are given by the solution to the linear equation system shown in
Forward Finite Difference
(34)
(35)
Backward Finite Difference
(36) While the corresponding backward approximations are given by the following:
(37)
(38) 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.
(39) 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.
(40) 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.
(41) Smoothness of a surface can be represented by applying a reflection map.
(42) 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.
(43)
(44)
(45) Process 800 starts at action 802 by receiving a MCAD model representing a physical object (e.g., part/product/structure) in a computer system (e.g., systems shown in
(46) Next, at action 804, 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 model 110 shown in
(47) At action 806, 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 action 808, the deformation of the face is extrapolated to the second group of grid points based on surface smoothness criteria.
(48) Finally, at action 810, 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.
(49)
(50) Process 820 starts at action 822 by receiving data representing an undeformed MCAD surface in a computer system (e.g., systems shown in
(51) 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.
(52) 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.
(53) At action 826, 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 space 310 of an undeformed MCAD surface 300 shown in
(54) At 830, 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).
(55) 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.
(56) Finally, at action 832, 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.
(57) 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.
(58) 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.
(59) 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 in
(60)
(61)
(62)
(63) A disk controller 960 interfaces one or more optional disk drives to the system bus 952. These disk drives may be external or internal flash memory drives 965, external or internal CD-ROM, CD-R, CD-RW or DVD drives 964, or external or internal hard disk drives 966. As indicated previously, these various disk drives and disk controllers are optional devices.
(64) If needed, the processor 954 may 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 controller 960, the ROM 956 and/or the RAM 958.
(65) A display interface 968 may permit information from the bus 952 to be displayed on a display 970 in audio, video, graphical, text, or alphanumeric format.
(66) In addition to the standard computer-type components, the hardware may also include data input devices, such as a keyboard 972, or other input device 974, such as a microphone, remote control, pointer, mouse, touch screen, and/or joystick.
(67) 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.
(68) 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.
(69) 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.
(70) 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.
(71) 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.
(72) 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.
(73) 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.