Partitioning 3D CAD model

JP2023082702A5Pending Publication Date: 2025-12-05DASSAULT SYSTEMES SA
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
JP2022193319
Authority / Receiving Office
JP · JP
Patent Type
Applications
Current Assignee / Owner
Priority Date
2021-12-02
Filing Date
2022-12-02
Publication Date
2025-12-05

Smart Images

  • Figure 00000000_0000_ABST
    Figure 00000000_0000_ABST
Patent Text Reader

Abstract

To provide a computer-implemented method, system, and program for partitioning a computer-aided design (CAD) 3D model of a mechanical part.SOLUTION: The method includes providing a volumetric B-Rep of the CAD 3D model, detecting one or more ribbons of the volumetric B-Rep, ranking one or more detected ribbons on the basis of one or more geometrical criteria that are associated with the one or more detected ribbons, selecting successively following the ranking each of the ranked one or more detected ribbons, for each selected ribbons partitioning the volumetric B-Rep of CAD 3D model using a splitting method associated with the geometrical criteria of the selected ribbon, thereby obtaining two or more partitions, and for each obtained partition, determining whether the partition represents a sweepable volume.SELECTED DRAWING: Figure 1
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present disclosure relates to the field of computer programs and systems, and more particularly, to methods, systems, and programs for processing 3D models of computer-aided design (CAD) related to mechanical parts.

Background Art

[0002] Numerous systems and programs are available on the market for the design, engineering, and manufacturing of objects. CAD is an acronym for Computer-Aided Design, and for example, it relates to software solutions for designing objects. CAE is an acronym for Computer-Aided Engineering, and for example, it relates to software solutions for simulating the physical behavior of future products. CAM is an acronym for Computer-Aided Manufacturing, and for example, it relates to software solutions for defining manufacturing processes and operations. In such computer-aided design systems, graphical user interfaces play a crucial role in the efficiency of the methodology. These technologies can be incorporated into Product Lifecycle Management (PLM) systems. PLM refers to a business strategy in which companies share product data, apply common processes, and leverage corporate knowledge to help with product development from concept to product lifecycle across an extended business concept. The PLM solutions offered by Dassault Systèmes (under the trademarks CATIA, ENOVIA, and DELMIA) provide an engineering hub for organizing product engineering knowledge, a manufacturing hub for managing manufacturing engineering knowledge, and a business hub that enables the integration and joining of businesses into both the engineering and manufacturing hubs. All of these systems enable dynamic, knowledge-based product creation and decision support that drives optimized product definition, manufacturing readiness, production, and service by providing an open object model that maps products, processes, and resources.

[0003] Hexahedral meshing generates a mesh composed of deformed cubes (hexahedrons). Hexahedral meshes are commonly used in simulations of several physics fields (deformation mechanics, fluid dynamics, etc.) because they significantly improve both speed and accuracy in relation to systems and programs for design and engineering based on such simulations. The advantages of using hexahedral meshes for simulating several physical phenomena are described, for example, in "Hexahedral Meshing: Mind the Gap!" (Ray et al., hal-01551603, 2017).

[0004] However, in known conventional techniques, designers manually subdivide their 3D volumetric parts to obtain a hexahedral mesh. This manual subdivision aims to decompose the 3D volumetric part into swept volumes (also called sweepable regions). This sweepability for each region is then used by a mesh generation tool to create a 3D hexahedral mesh for each region. This manual subdivision is not only a tedious process but also relies on the designer's expertise (such as their analysis). Therefore, the results of manual subdivision are uncertain.

[0005] In this context, there is still a need for improved methods for dividing 3D models of computer-aided designs for parts (such as mechanical components). [Overview of the project]

[0006] Therefore, the present invention provides a computer implementation method for partitioning a computer-aided design (CAD) 3D model of a mechanical part. The method comprises the steps of: providing a volumetric B-Rep of a CAD3D model; detecting one or more ribbons in the volumetric B-Rep, wherein each ribbon includes one or more connecting surfaces in the volumetric B-Rep and, when unfolded, is homeomorphic to a rectangle; ranking one or more detected ribbons based on one or more geometrical criteria associated with each of the one or more detected ribbons; and successively selecting each of the ranked one or more detected ribbons, wherein the selection follows the ranking step. The method further comprises, for each of the selected ribbons, partitioning the volumetric B-Rep of the CAD3D model using a partitioning method associated with the geometrical criteria of the selected ribbon, thereby obtaining two or more partitions; and determining, for each of the obtained partitions, whether the partition represents a sweepable volume.

[0007] This method may comprise one or more of the following: - One or more geometric criteria associated with each of the one or more detected ribbons shall be selected from among the following: the detected ribbon is depression, the detected ribbon is protrusion, the detected ribbon is closed, and / or the detected ribbon is revolutionary. - The step of ranking one or more detected ribbons based on one or more geometric descriptions includes the step of ranking the detected ribbons in the following ranking order: namely, a detected ribbon is closed and convex, a detected ribbon is closed and concave, a detected ribbon is convex, a detected ribbon is concave, and a detected ribbon is a solid of revolution. - For each of the detected ribbons ranked according to a) or c), the step of dividing the volumetric B-Rep of the CAD3D model using the division method includes the step of selecting the concave neighbor of the ribbon and separating the convex portion from the rest of the volumetric B-Rep by extrapolating the concave neighbor through the volumetric B-Rep. - For each of the detected ribbons ranked according to b), the step of dividing the volumetric B-Rep of the CAD3D model using a division method includes the step of determining whether the detected ribbon has a large impact if the detected ribbon has a size smaller than the distance between the intersection of the volumetric B-Rep and the extrapolation of the detected ribbon and the ribbon, and if the detected ribbon has a large impact, the step of creating a division plane which is the offset of the convex adjacent body in the ribbon. - For each of the detected ribbons ranked according to d), the step of dividing the volumetric B-Rep of the CAD3D model using the division method includes the step of creating a division surface by extrapolating the ribbon through the volumetric B-Rep. - For each of the detected ribbons ranked according to e), the step of dividing the volume type B-Rep of the CAD3D model using the division method includes the step of dividing the volume enclosed by the ribbon into three volumes, one of which is a cylinder. - The step of detecting one or more ribbons in a volumetric B-Rep further includes the steps of: detecting one or more smooth surfaces, each of which detected smooth surfaces includes a group of connecting surfaces of a volumetric B-Rep, and each pair of connecting surfaces in the group has a smooth joint; selecting one or more square smooth surfaces from the one or more detected smooth surfaces, each of which, when unfolded, is topologically identical to a rectangle; and detecting a ribbon by selecting one or more sets of connecting surfaces from the one or more detected smooth surfaces, each of which detected ribbon has the width of one of the selected connecting surfaces. - For each of the one or more detected smooth curved surfaces, the angle between each of the two connecting surfaces is between 150 degrees and 210 degrees. - The step of dividing a volume type B-Rep of a CAD3D model using a division method further includes the step of calculating one or more traces for each of the obtained division portions, wherein the trace is a set of one or more edges present on the faces of the obtained division portion, and each of the one or more edges is created as a result of the division. - The step of determining whether a division portion represents a sweepable volume includes, for each of the acquired division portions, the step of determining a start plane and a target plane, each of which the start plane and target plane are adjacent to a ranked ribbon; the step of determining a sweep path on the ranked ribbon; the step of determining that there is a sweep from the start plane to the target plane along the sweep path; and / or, the step of determining that the division portion represents a sweepable volume. - The method further includes, with respect to a selected ribbon, obtaining two or more divisions, and then verifying that the angle between each of the two sides created as a result of the division is greater than or equal to the quality angle.

[0008] Furthermore, a computer program is provided that includes instructions for executing this method.

[0009] Furthermore, a computer-readable storage medium on which this computer program is recorded is provided.

[0010] Furthermore, they offer a system that includes a processor coupled to memory, which stores the computer's programs. [Brief explanation of the drawing]

[0011] Here, a non-limiting example will be explained with reference to the attached drawing. [Figure 1] This figure shows a flowchart of one example of this method. [Figure 2A] This figure shows an example of a sweepable volume. [Figure 2B] This figure shows an example of a sweepable volume. [Figure 3] This figure shows an example of a CAD model of a machine part, including a sweepable volume. [Figure 4] This figure shows an example of a CAD model of a machine part, including a sweepable volume. [Figure 5] This figure shows a flowchart of one example of this method. [Figure 6A] This figure shows a smooth curved surface, a square and smooth curved surface, and a ribbon. [Figure 6B] This figure shows a smooth curved surface, a square and smooth curved surface, and a ribbon. [Figure 7A] This figure shows a smooth curved surface, a square and smooth curved surface, and a ribbon. [Figure 7B] This figure shows a smooth curved surface, a square and smooth curved surface, and a ribbon. [Figure 7C] This figure shows a smooth curved surface, a square and smooth curved surface, and a ribbon. [Figure 8A] This figure shows an example of a detected ribbon. [Figure 8B]This is a diagram showing an example of a detected ribbon. [Figure 8C] This is a diagram showing an example of a detected ribbon. [Figure 8D] This is a diagram showing an example of a detected ribbon. [Figure 8E] This is a diagram showing an example of a detected ribbon. [Figure 8F] This is a diagram showing an example of a detected ribbon. [Figure 9A] This is a diagram showing an example of a configuration file. [Figure 9B] This is a diagram showing an example of a configuration file. [Figure 10A] This is a diagram showing an example of a splitting method. [Figure 10B] This is a diagram showing an example of a splitting method. [Figure 10C] This is a diagram showing an example of a splitting method. [Figure 10D] This is a diagram showing an example of a splitting method. [Figure 11A] This is a diagram showing an example of a splitting method. [Figure 11B] This is a diagram showing an example of a splitting method. [Figure 11C] This is a diagram showing an example of a splitting method. [Figure 12A] This is a diagram showing an example of a splitting method. [Figure 12B] This is a diagram showing an example of a splitting method. [Figure 12C] This is a diagram showing an example of a splitting method. [Figure 13A] This is a diagram showing an example of a splitting method. [Figure 13B] This is a diagram showing an example of a splitting method. [Figure 13C] This is a diagram showing an example of a splitting method. [Figure 14] This is a diagram showing an example of a trace. [Figure 15] This is a diagram showing the concept of B-rep included in this method. [Figure 16] This is a diagram showing the concept of B-rep included in this method. [Figure 17] This is a diagram showing the concept of B-rep included in this method. [Figure 18] This diagram shows the concept of B-rep included in this method. [Figure 19A] This diagram shows the concept of B-rep included in this method. [Figure 19B] This diagram shows the concept of B-rep included in this method. [Figure 19C] This diagram shows the concept of B-rep included in this method. [Figure 19D] This diagram shows the concept of B-rep included in this method. [Figure 19E] This diagram shows the concept of B-rep included in this method. [Figure 20] This figure shows an example of a graphical user interface in this system. [Figure 21] This figure shows an example of this system. [Modes for carrying out the invention]

[0012] Referring to the flowchart in Figure 1, a computer implementation method for partitioning a computer-aided design (CAD) 3D model of a mechanical part is presented. The method comprises the step of providing a volumetric B-Rep of the CAD3D model. The method further comprises the step of detecting one or more ribbons in the volumetric B-Rep. Each ribbon includes one or more connecting faces in the volumetric B-Rep and, when unfolded, is topologically identical to a rectangle. The method further comprises the step of ranking one or more detected ribbons based on one or more geometric criteria associated with each of the one or more detected ribbons, and the step of sequentially selecting each of the ranked one or more detected ribbons. This selection is performed following the ranking step. The method further comprises the step of partitioning the volumetric B-Rep of the CAD3D model with respect to each of the selected ribbons using a partitioning method associated with the geometric criteria of the selected ribbon. The method further comprises the step of determining with respect to each of the obtained partitions whether the partition represents a sweepable volume.

[0013] This constitutes an improved solution for processing CAD3D models relating to mechanical parts, for example, to automatically subdivide the CAD model and / or mosaic the CAD model (i.e., subdivide it into triangles) based on the subdivided parts thus obtained. Automated subdivision is a technically advantageous solution compared to manual subdivision because it is highly reproducible, time-efficient, and provides a better subdivision, especially for complex mechanical parts. In fact, this method provides (automatic) subdivision for the provided volumetric B-Rep representation of the CAD3D model by detecting one or more ribbons and ranking them. "Subdivision" means dividing the provided volumetric B-Rep into two or more sub-volumes.

[0014] This method partitions a volumetric B-Rep using a partitioning method associated with geometric criteria of ribbons selected according to ranking. Such a partitioning method can be carried out according to any known method. Examples of partitioning methods are described later. Therefore, this method makes it possible to adopt existing solutions in the literature for splitting (i.e., partitioning) a CAD3D model, particularly for ranked ribbons in the B-Rep of a CAD3D model.

[0015] In particular, this method improves the partitioning of CAD models by partitioning the volumetric B-Rep representation of the CAD model. The B-Rep representation provides a relatively high level of detail while maintaining relatively high information compactness. Furthermore, the B-Rep format provides the most relevant information, namely the boundaries of the solid, compared to other types such as unstructured representations. B-Rep is standardized in industrial design software solutions.

[0016] In the example, the subdivision of a CAD model relating to a mechanical part may be performed when processing the 3D CAD model before mosaicing (i.e., subdividing into triangles) the model based on one or more tessellation criteria, such as a mesh type (e.g., hexagon). In such an example, the method can ensure such tessellation criteria and verify whether each of the acquired subdivisions represents a swept volume. A “swept volume” means that the volume can be represented as a sweep, i.e., by moving faces along a path. Such a volume includes a set of faces called the source side, a set of faces called the target side, and another set of faces between these two sets representing the sweep path. An example of such a region is presented in Figures 2A and 2B, representing the source side 210, the target side 220, and the sweep path 230. Furthermore, Figure 2A shows each element layer along the sweep path 230 from the source side 210 and the nodes 240 duplicated to the target side 220. Such volumes are useful for CAD models relating to mechanical parts. Examples of 3D CAD models for mechanical parts composed of sweepable volumes are shown in Figures 3 and 4. Obtaining sweepable volumes is advantageous in the field of 3D design, as it allows the sweep mesh method to be applied to each of the obtained subdivisions.

[0017] Dividing a CAD3D model into sweepable volumes is particularly relevant to the fields of physical simulation and manufacturing CAD, which are based on physical simulations, i.e., software solutions that support the design and manufacturing processes, thereby aiming to create a physical product corresponding to the designed CAD3D model. In this context, the CAD3D model represents a manufactured product, which can be manufactured downstream of its design. Thus, this method can be part of processes such as simulation, design, and / or manufacturing. This method may, for example, form or be part of a step to test a CAD model within a process such as design and / or manufacturing, and the step of testing a CAD model design includes the steps of preparing the CAD model for (physical-based) simulation (e.g., by performing mosaicization in the CAD model or each of the acquired divided portions) and verifying whether the mechanical parts represented by the CAD model meet one or more physical criteria based on the results of such simulation (e.g., having a yield stress exceeding a given threshold). For example, this method can divide a CAD3D model into two or more smaller and / or less complex subdivisions, thereby facilitating the mosaication of the CAD model and / or improving the quality of the mesh obtained from the mosaication process. Such improvements in mesh quality constitute a dually improved solution: firstly, it improves the quality of physical simulations and physical reference verification in the corresponding mechanical parts; and secondly, it improves the time efficiency of obtaining such simulation results. As is known in the field of physical simulation, improving the quality of mosaication improves computational efficiency, thereby improving the computational time required to achieve a given accuracy in the results of simulations based on mosaication. In particular, the swept volumes resulting from the subdivision method are ideal candidates for hexahedral mesh generation, i.e., for mosaication into hexahedral meshes composed of deformed volumes.Because hexahedral meshes require fewer elements for a given level of accuracy compared to tetrahedral meshes, using such meshes significantly improves simulation speed. Furthermore, physical simulations using hexahedral meshes are more realistic because they better capture higher-dimensional variations, avoid the locking phenomenon that occurs with tetrahedrons, and allow for alignment of hexahedral layers along geometric boundary features and / or physical properties (flow direction, shock waves, thermal gradients, etc.) that further improve accuracy. As a result, the manufacturing CAD process converges more quickly on the ideal mechanical part during the design phase, meaning less trial and error with actual or virtual prototypes is required.

[0018] Alternatively or additionally, the method may form, or be part of, a step in such a design and / or manufacturing process to acquire CAD features, which includes a step of dividing a CAD model to acquire two or more smaller and / or less complex subdivisions, and then performing a step of acquiring CAD features for each of the acquired subdivisions. The step of acquiring CAD features may include the detection of geometry and the parameterization of the detected geometry by each CAD feature. For example, the step of acquiring CAD features may be a step of feature-tree construction. Within this step, the method may detect extrusion surfaces, while other methods may detect other geometry, for example. The method then further comprises a step of parameterizing the detected extrusion surfaces. In fact, the step of detecting each extrusion surface as in the method enables the parameterization of each surface portion in the CAD3D model representing the aforementioned extrusion surfaces. This parameterization facilitates the manipulation / editing of the CAD model.

[0019] The steps of testing a CAD model containing this method and acquiring CAD functionality may be followed by, for example, mosaicization by this method, and / or design and / or manufacturing using parameterized and detected geometric shapes / CAD functionality. These subsequent steps may include further design and / or editing actions, testing, simulation, and / or manufacturing. In other words, this method may be included in a manufacturing CAD process at a step in which the CAD model has been adapted for use in subsequent steps of the manufacturing process (e.g., further design / editing actions, testing, simulation, and / or manufacturing). This method may be included in many other applications that use the segmented parts acquired by this method.

[0020] This method is implemented on a computer. This means that the steps (or substantially all steps) of this method are performed by at least one computer or any similar system. Therefore, the steps of this method are performed by the computer as fully or semi-automatically as possible. In the example, at least some of the triggers for the steps of this method are performed through user-computer interaction. The required level of user-computer interaction may depend on the expected level of automation and may be balanced with the need to fulfill the user's requirements. In the example, this level may be user-defined and / or predefined. For example, the step of providing a volumetric B-Rep of a CAD3D model relating to a machine part may be triggered by a user action. For example, this action may include the user importing, loading, or creating a CAD3D model.

[0021] A typical computer implementation of the method is to perform the method on a system suited to this purpose. The system may comprise a processor coupled with memory and a graphical user interface (GUI), the memory storing a computer program containing instructions for performing the method. The memory may also store a database. The memory is any hardware suited to such storage and may consist of several physically distinct parts (e.g., one for the program, and possibly one for the database).

[0022] This method typically manipulates modeled objects, such as CAD3D models. A modeled object is any object defined by data stored, for example, in a database. More precisely, the term "modeled object" refers to the data itself. Depending on the system type, modeled objects can be defined by various types of data. In fact, a system can be any combination of CAD systems, CAE systems, CAM systems, PDM systems, and / or PLM systems. In these various systems, modeled objects are defined by corresponding data. Consequently, it may be possible to refer to CAD objects, PLM objects, PDM objects, CAE objects, CAM objects, CAD data, PLM data, PDM data, CAM data, and CAE data. However, since modeled objects can be defined by data corresponding to any combination of these systems, these systems are not exclusive to others. Therefore, a system can be both a CAD system and a PLM system, as will become clear from the definitions of such systems provided below.

[0023] A CAD system can also refer to any system, such as CATIA, that is adapted to at least design modeled objects based on their graphical representation. In this case, the data defining the modeled object includes data that enables the representation of the modeled object. A CAD system can provide a representation of a CAD modeled object using, for example, edges or lines, and possibly faces or curves. Lines, edges, or curves can be represented in various ways, for example, as non-uniform rational B-splines (NURBS). Specifically, a CAD file contains specifications from which geometric shapes are generated, thus enabling the generation of representations in sequence. The specifications of a modeled object can be stored in a single CAD file or multiple CAD files. The typical size of a file representing a modeled object in a CAD system is in the range of 1 megabyte per part. Also, a modeled object can typically be a collection of thousands of parts.

[0024] In relation to CAD, a modeled object can be a 3D modeled object or 3D (CAD) model that typically represents a product, such as a part, a collection of parts, or sometimes a collection of products. "3D modeled object" or "3D model" means any object modeled with data that enables its 3D representation. 3D representation allows for viewing of a part from any angle. For example, when a 3D modeled object is represented in 3D, it can be manipulated or rotated around any of its axes, or any axis within the screen on which the representation is displayed. This excludes 2D icons, which are not 3D modeled. The display of 3D representations facilitates design (i.e., increases the speed at which designers statistically accomplish their work). Since product design is part of the manufacturing process, this increases the speed of the manufacturing process in the industry.

[0025] A 3D modeled object, or 3D model, can represent the geometric shape of a product to be manufactured in the real world after its virtual design is completed using a CAD software solution or CAD system. This could be, for example, a (e.g., mechanical) part, or an assembly of parts (or, as an assembly of parts may be considered a part itself from the perspective of this method, or as equivalent to an assembly of parts, since this method may be applied individually to each part of the assembly), or more generally, an assembly of any rigid body (e.g., a movable mechanism). CAD software solutions enable the design of products in a wide and boundless range of industrial sectors, including aerospace, architecture, construction, consumer goods, high-tech devices, industrial equipment, transportation, marine, and / or offshore oil / gas production or transportation. Therefore, 3D modeled objects can represent industrial products that may be any machine parts, such as parts of ground vehicles (e.g., equipment for passenger cars and light trucks, racing cars, motorcycles, truck and motor equipment, trucks and buses, and trains), parts of aircraft (e.g., aircraft equipment, aerospace equipment, propulsion equipment, defense products, aerospace equipment, and space equipment), parts of naval vehicles (e.g., naval equipment, merchant ships, offshore equipment, yachts and workboats, and marine equipment), general machine parts (e.g., industrial manufacturing machinery, heavy mobile machinery or equipment, embedded equipment, industrial equipment products, processed metal products, and tire manufacturing products), electromechanical or electronic components (e.g., home appliances, security and / or control and / or instrumentation products, computing and communication equipment, semiconductors, medical devices and equipment), consumer goods (e.g., furniture, household goods and gardening supplies, leisure goods, fashion products, products of hard goods retailers, and products of soft goods retailers), and packaging (e.g., food, beverages, and tobacco, cosmetic medicine and personal medicine, and household goods packaging).

[0026] CAD systems can be history-based. In this case, the modeled object is further defined by data containing a history of its geometric features. In fact, the modeled object may be designed by a physical person (e.g., a designer / user) using standard modeling functions (e.g., extrusion, rotation, cutting, and / or rounding) and / or standard surface functions (e.g., sweep, blend, loft, fill, deform, and / or smoothing). Many CAD systems that support such modeling functions are history-based systems. This means that the creation history of design functions is stored by a non-circular data flow that typically associates the aforementioned geometric features together via input and output links. The history-based modeling paradigm has been well known since the early 1980s. The modeled object is described by two persistent data representations: history and B-rep (i.e., boundary representation). The B-rep is the result of calculations defined in the history. When a modeled object is represented, the shape of the part displayed on the computer screen is the B-rep (e.g., a mosaic of B-reps). The history of the part is the design intent. Essentially, the history collects information about the operations performed on a modeled object. B-reps can be saved along with the history to make complex parts easier to visualize. The history can also be saved along with the B-rep to allow for design changes to the part according to the design intent.

[0027] A PLM system can be any system adapted to the management of modeled objects that represent physically manufactured (or manufactured) products. Therefore, in a PLM system, modeled objects are defined by data suitable for manufacturing physical objects. These are typically dimensional and / or tolerance values. Having such values ​​is actually preferable for correctly manufacturing an object. For example, a PLM system can manage manufacturing tolerances in machining or forming related to extrusion functions provided in a CAD model.

[0028] A CAM system further refers to any hardware-based software solution adapted for managing product manufacturing data. Manufacturing data typically includes data related to the product being manufactured, the manufacturing process, and the necessary resources. CAM solutions are used to plan and optimize the entire product manufacturing process. For example, they can provide CAM users with information on feasibility, the duration of the manufacturing process, or the number of resources, such as specific robots that may be used at certain steps in the manufacturing process, enabling decisions regarding management or required investments. CAM is a process that follows the CAD process and potentially the CAE process. For example, a CAM solution may provide information on machining parameters or forming parameters tightly linked to the extrusion capabilities provided in the CAD model. Such CAM solutions are offered by Dassault Systèmes under the trademark DELMIA.

[0029] A CAE system further refers to any hardware-based software solution adapted for the analysis of the physical behavior of modeled objects. A well-known and widely used CAE method is the finite element method (FEM), which typically involves dividing a modeled object into a set of elements that can be computed and simulated through equations. Such CAE solutions are offered by Dassault Systèmes under the trademark SIMULIA. Another emerging CAE method involves the modeling and analysis of complex systems composed of multiple components from various fields of physics, without the use of CAD geometric data. CAE solutions enable simulation of products being manufactured, allowing for optimization, improvement, and verification. Such CAE solutions are offered by Dassault Systèmes under the trademark DYMOLA.

[0030] PDM stands for Product Data Management. A PDM solution refers to a hardware or software solution tailored to manage all types of data related to a specific product. PDM solutions can be used by all stakeholders involved in the product lifecycle, primarily engineers, but also project managers, finance personnel, sales personnel, and purchasing personnel. PDM solutions are typically based on a product-oriented database. This prevents stakeholders from using different data, as it allows them to share consistent data about their products. Such PDM solutions are offered by Dassault Systèmes under the ENOVIA trademark.

[0031] As described above, the method for dividing a CAD3D model relating to a mechanical part comprises the step (S10) of providing a volumetric B-Rep of the CAD3D model. The volumetric B-Rep model includes topological and geometric entities. Topological entities are faces, edges, and vertices, and geometric entities are 3D objects, i.e., surfaces, planes, curves, lines, and points. By definition, a face is the boundary portion of a surface called a support surface. An edge is the boundary portion of a curve called a support curve. Furthermore, by definition, a vertex is a point in 3D space. The boundary portion of a curve is defined by two points (i.e., vertices) on the curve as described above. The boundary portion of a surface is defined by the boundary of the portion described above. The boundary described above is a set of vertices on the surface. Edges at the boundary of a face are connected together by sharing a vertex. Faces are connected together by sharing an edge. By definition, if two faces share an edge, these faces are adjacent. Similarly, if two edges share a vertex, these edges are adjacent. A volumetric B-Rep model of a CAD3D model is bounded in an appropriate data structure by topological relations, relationships between topological entities and support shapes, and mathematical descriptions of support shapes. "Bounded by topological relations" means a relationship that defines each topological entity as being bounded by other topological entities. The steps of providing a volumetric B-Rep of a CAD3D model may include the step of inputting a volumetric B-Rep by the user, or the step of retrieving a volumetric B-Rep from memory (e.g., RAM or persistent memory).

[0032] For illustrative purposes, the B-Rep model is discussed further with reference to Figure 19. Figures 19A and 19B illustrate the B-Rep model of a cylindrical slot consisting of three faces, namely a top plane and two side cylindrical faces. Figure 19A is a perspective view of the slot with visible faces, edges, and vertices numbered. Figure 19B presents an exploded view of all faces in the slot. Duplicate numbers indicate shared edges and vertices. Face 1 is the boundary portion of the plane. In this B-Rep model, the boundary of face 1 includes edges 4 and 5, each of which is enclosed by vertices 10 and 11. Both of these edges have the same support circle. Face 2 is bounded by edges 6, 8, 5, and 13, all of which lie on an infinite cylindrical surface. Faces 1 and 2 are adjacent because they share edge 5, faces 2 and 3 are adjacent because they share edges 8 and 13, and faces 1 and 3 are adjacent because they share edge 4. Figure 19C illustrates the "bound by" topological relationships in the B-Rep model. Nodes in the upper layers are faces, nodes in the middle layers are edges, and nodes in the lower layers are vertices. Figures 19D through 19C illustrate the relationships between topological entities (faces, edges, vertices) and support shapes (infinite cylinders, infinite planes, infinite lines, points). In a CAD system, the B-Rep model collects the "bound by" relationships, the relationships between topological entities and support shapes, and the mathematical descriptions of the support shapes in an appropriate data structure.

[0033] The method further comprises the step (S20) of detecting one or more ribbons in a volumetric B-Rep. Each ribbon includes one or more connecting faces in the volumetric B-Rep and, when unfolded, is topologically isomorphic to a rectangle. Each of the one or more connecting faces in a ribbon may be connected to another face in the ribbon by one or more edges. Connecting faces mean adjacent faces. In other words, each of two connecting faces in a ribbon may share one or more edges. A “unfolded” ribbon means that the ribbon is substantially flat on a plane. In other words, the angle between any two of the one or more connecting faces in an unfolded ribbon may be substantially 180 degrees. “Substantially” means that the angle between any two of the one or more connecting faces in an unfolded ribbon may differ from 180 degrees to a small threshold. In the example, the threshold value may be less than or equal to 1 degree or less than or equal to 0.5 degrees. “Topologically isomorphic to a rectangle” means that, as known in the field of topology, there exists a topological isomorphism between the region of the unfolded ribbon, i.e., the region bounded on each unfolded plane, and a rectangle. Each bounded region on the unfolded plane may be enclosed by a boundary formed by an unfolding of one or more edges on one or more connecting faces in the ribbon, or one or more edges on one or more connecting faces in the ribbon.

[0034] In the example, the step of detecting one or more ribbons in a volumetric B-Rep may be performed according to the following procedure.

[0035] (1) The step of detecting one or more smooth surfaces such that each detected smooth surface includes a group of connecting faces of a volumetric B-Rep and each pair of connecting faces in a groove having a smooth joint. In other words, detecting one or more ribbons may include grooving the faces of a B-Rep (e.g., all faces) into one or more groups according to the smoothness of the joint of each face with respect to a connecting (i.e., adjacent) face. A group of faces that share a smooth joint between any pair of groups may be equivalently called a smooth surface. "Smooth joint" means that the angle defined between the two faces in the joint is within a smooth range. In one example, the smooth range may include angles between 150 degrees and 210 degrees. That is, with respect to each of the one or more detected smooth surfaces, the angle between each of the two connecting faces may be between 150 degrees and 210 degrees. An example of a smooth surface is illustrated in Figure 6A, where the smooth surface 610 is a smooth surface that includes four connecting faces 611, 612, 613 and 614. The angles between each of the two adjacent surfaces on the smooth curved surface 610 are between 150 degrees and 210 degrees.

[0036] (2) The step of selecting one or more square smooth surfaces from one or more detected smooth surfaces. Each of the rectangular smooth surfaces, when unfolded, is topologically isomorphic to a rectangle. In other words, each of the square smooth surfaces, when unfolded, is a smooth surface that represents a region having two or four super edges as boundaries of the region. A "super edge" means an open wire where each of two sides is connected by a smooth joint (i.e., a smooth contact). A super edge consists of a set of edges containing n edges (1 ≤ n), where the end of each edge is connected to the end of the next edge. A super edge can be closed, for example, a closed circle at each end of the base of a cylinder (e.g., consisting of two semicircles as depicted in Figure 19A) is a super edge. In some examples, two connecting edges in a set of edges can be tangent at the connection point, i.e., the two sides are connected at an angle of 180 degrees. A square smooth surface can be a smooth surface that has two or four smooth surfaces as adjacent faces. An example of a square smooth surface is shown in Figure 6B. The square smooth surface 610 (gray, top) has four adjacent smooth surfaces, which consist of a smooth surface with one surface 620 (back) with one surface, a smooth surface with two surfaces 630 (right) with two surfaces, a smooth surface with three surfaces 640 (front) with three surfaces, and a smooth surface with one surface 650 (left) with one surface. In cases where none of the detected smooth surfaces are square smooth surfaces, the method does not divide the provided volume type B-Rep, which may become a sub-volume of the provided volume type B-Rep in the CAD3D model.

[0037] (3) A detection step by selecting a set of one or more connecting faces from one or more detected square smooth surfaces. Each detected ribbon may have the width of one of the one or more selected connecting faces. The set of one or more connecting faces may be connected along a path, i.e., the path of the ribbon, and the width of the ribbon may correspond to the size of one of the ribbon's connecting faces that is perpendicular to the (ribbon's) path. In the example, the ribbon may optionally represent a sweep direction (or path) perpendicular to the ribbon's path. In such an example, the width of the ribbon corresponds to the size of the ribbon along the sweep direction. The faces adjacent to the ribbon in the sweep direction are called start faces / target faces. The start faces may represent the base profile of the sweep along the sweep direction relative to the target face. Thus, the step of detecting ribbons makes it possible to find regions in a CAD3D model that can function as sweep paths during a mesh generation operation using the sweep mesh method.

[0038] Figures 7A to 7C show examples of detected ribbons. Figure 7A presents a ribbon 710 containing four smooth, square surfaces 711, 712, 713, and 714 in both a folded (top) and unfolded (bottom) configuration. The unfolding of the ribbon 710 is performed along the ribbon path 718. Furthermore, the ribbon 710 presents a sweep from a starting surface 715 to a target surface 716 along a sweep direction 717. The sweep direction 717 is perpendicular to the ribbon path 718.

[0039] In Figure 7B, the ribbon 720 includes four smooth, square surfaces 721, 722, 723, and 724 (not shown). Furthermore, the ribbon 720 presents a sweep along the sweep direction 727 with a starting surface 725 and a target surface 726.

[0040] In Figure 7C, the ribbon 740 includes a square smooth curved surface having two faces 741 and 742. Furthermore, the ribbon 740 presents sweeping along the sweeping direction 745 with a starting surface 743 and a target surface 744.

[0041] Returning to the flowchart in Figure 1, the method ranks one or more detected ribbons based on one or more geometric criteria associated with each of the one or more detected ribbons (S30). "One or more geometric criteria" means one or more descriptors, i.e., words that characterize the geometric shape of the detected ribbon.

[0042] In the example, one or more geometric criteria associated with each of the one or more detected ribbons may be selected from the following: the detected ribbon is concave, the detected ribbon is convex, the detected ribbon is closed, and / or the detected ribbon is rotatable. A ribbon is considered concave if the connection (i.e., contact) between the ribbon and the start and target surfaces is concave on one side and convex on the other, and the ribbon is detected as "In".

[0043] The following explains the concept of convex / concave connections. Given a B-Rep of a 3D modeled object, let E be an edge shared by faces (i.e., curved surfaces) F1 and F2, and let X be a point on edge E. The outer normal vectors of faces F1 and F2 are represented by N1 and N2, respectively. Let P1 and P2 be planes passing through point X, each having normal vectors N1 and N2, respectively. Planes P1 and P2 locally define an outer 3D region and an inner 3D region in the vicinity of point X. Originally, vectors N1 and N2 refer to the outer 3D region. M1 and M2 are the respective material vectors of point X with respect to faces F1 and F2. Originally, M1 and M2 refer to the convex 3D region. By definition, when M1+M2 and N1+N2 have opposite directions, i.e., as illustrated in Figure 15,<M1+M2,N1+N2> If <0, then edge E is convex at point X. Edge E, or equivalently each connection of faces F1 and F2, is convex if it is convex at all points. Conversely, if M1+M2 and N1+N2 have the same direction, i.e., as illustrated in Figure 16,<M1+M2,N1+N2> If > 0, then each connection of edge E, or equivalently, faces F1 and F2, is said to be concave at point X. Edge E is concave if it is concave at all points. Otherwise,<N1+N2,N1+N2> =0 means that edge E is either a smooth edge or a knife edge. A smooth edge is one such that M1+M2=0 and N1=N2, as illustrated in Figure 17. This usually occurs in B-Reps for typical machine parts. A knife edge is one such that N1+N2=0 and M1=M2, as illustrated in Figure 18. Knife edges are described for completeness and are not typically used in modeling machine parts.

[0044] An example of a concave ribbon is shown in Figure 8A (gray) with a concave connection 801 and a convex connection 802. A ribbon is considered convex if the connection between the ribbon and the start and target surfaces is concave on one side and convex on the other, and if the ribbon is detected as "Out". An example of a convex ribbon is shown in Figure 8B (gray) with a concave connection 803 and a convex connection 804. A ribbon is considered closed if it does not adjoin any surfaces other than the start and target surfaces. An example of a closed ribbon is shown in Figure 8C (gray). Furthermore, this method can be used to determine whether a detected ribbon has a significant impact. A ribbon is considered to have a significant impact if the distance between the intersection of the B-Rep and the extrapolation of this ribbon and the ribbon is greater than the size of the ribbon. "Size of the ribbon" means the length of the maximum diagonal of the bounding box with respect to the set of faces of the ribbon in Cartesian coordinates. An example of a ribbon with a significant impact is shown in Figure 8D (gray) with a distance of 805. “Extrapolation of the ribbon” means an extension of the ribbon along the sweep direction (i.e., the sweep direction 745, as explained with reference to Figure 7). A ribbon is considered a solid of revolution if it lies on a plane of revolution having the same axis. An example of a rotating ribbon is shown in Figure 8E (gray) with axis 806 and radius 807. A ribbon is considered in or out if it is part of a hole or bump, respectively. Specifically, for each face of the ribbon, if the center of gravity of the face lies inside the object (i.e., the volume occupied by the object), the ribbon is detected as in; for each face of the ribbon, if the center of gravity of the face lies outside the object, the ribbon is detected as out. In Figure 8F, the center of gravity of the face (with centers 809 and 810) is 808, and the direction of the object is 811. Dotted arrows indicate the direction from the center of the face to the center of gravity of the face. In configuration 812, the ribbon is detected as an in-line, but in configuration 813, the ribbon is detected as an out-line. This method can detect the ribbon as an in-line or out-line solely to distinguish between convex and concave references.

[0045] In the example, the step of ranking one or more detected ribbons based on one or more geometric criteria includes the step of ranking the detected ribbons in the following ranking order: a) the detected ribbon is closed and convex, b) the detected ribbon is closed and concave (i.e., a hole), c) the detected ribbon is convex, d) the detected ribbon is concave, and e) the detected ribbon is a body of revolution. In the example, the method may verify one or more of the above geometric criteria and, for example, rank one or more detected ribbons based on the first condition from a) to e) that is met. In the example, the method may apply the above ranking order according to a configuration file stored in persistent memory, for example. In such an example, the method may analyze each line of the configuration file from the first line to the last line to find the corresponding ribbon among the detected ribbons. An example of such a configuration is shown in Figure 9A.

[0046] Returning to the flowchart in Figure 1, the method sequentially selects each of the one or more ranked ribbons (S40), this selection being performed following the ranking step. For each selected ribbon, the method divides the volume type B-Rep of the CAD3D model using a division method associated with the geometric criteria of the selected ribbon (S50), thereby obtaining two or more divisions. The division method may be an existing topology operation. In the example, the existing topology operation may be one or more standard CAD operations such as extrapolation of a surface (or extrapolation of a surface boundary), and / or division of a geometric shape by intersection between a volume and a surface, cutting a surface of a volume with wires, and / or assembly of surfaces.

[0047] In the example, the association between the division method and the selected ribbon may be according to a configuration file in which each line of the configuration file stores a division method related to the geometric criteria of the ribbon. An example of such a configuration file is shown in Figure 9B. The method can then select a division method according to the geometric criteria of the selected ribbon.

[0048] In the example, for each detected ribbon ranked according to a) or c), the step of dividing the volumetric B-Rep of the CAD3D model using the division method may include the step of selecting a concave adjacent body of the ribbon and separating the convex portion from the rest of the volumetric B-Rep by extrapolating the concave adjacent body through the volumetric B-Rep. The step of extrapolating the concave adjacent body may remove an internal hole, for example, if the detected ribbon is a closed convex portion (i.e., ranked according to a). Examples of division according to such an example are shown in Figures 10A to 10D. In Figure 10A, ribbon 1010 is detected as a closed convex portion. The method may select a concave adjacent body 1020. Next, the method may create a division surface 1030 by extrapolating the concave adjacent body 1020. Next, the method may divide the volumetric B-Rep into two volumes 1040 and 1050.

[0049] In the example, for each of the detected ribbons ranked according to b), the step of dividing the volumetric B-Rep of the CAD3D model using the division method may include a step of determining whether to create a division surface which is an offset of the concave adjacent body of the ribbon if the detected ribbon has a significant impact. As mentioned above, the detected ribbon has a significant impact if its size is smaller than the distance between the intersection of the volumetric B-Rep and the extrapolation of the detected ribbon and the ribbon. Examples of division according to such examples are shown in Figures 11A to 11C. In Figure 11A, the ribbon 1110 is detected as a closed recess and has a significant impact. The method may select the concave adjacent body 1020 and create a division surface 1030 on the offset to remove the hole. Next, the method may divide the volumetric B-Rep into two volumes 1040 and 1050.

[0050] In the example, for each of the detected ribbons ranked according to d), the step of dividing the volumetric B-Rep of the CAD3D model using the division method may include the step of creating a division surface by extrapolating the ribbon through the volumetric B-Rep. Examples of division according to such examples are shown in Figures 12A to 12C. In Figure 12A, ribbon 1210 is considered to be a recess. The method may create a division surface 1230 by extrapolating ribbon 1210 through the volumetric B-Rep 1220. The method may then divide the volumetric B-Rep into two volumes 1040 and 1050.

[0051] In the example, for each detected ribbon ranked according to e), the step of dividing the volume type B-Rep of the CAD3D model using the division method may comprise the step of dividing the volume enclosed by the ribbon into three volumes, one of which is a cylinder. Examples of division according to such an example are shown in Figures 13A to 13C. In Figure 13A, ribbon 1310 is detected as a recess. The method can create a division surface 1340 from ribbon 1320 and ribbon axis 1330. The method can then divide the volume type B-Rep into three volumes 1350, 1360 and a cylinder 1370.

[0052] In the example, the step of dividing a volumetric B-Rep of a CAD3D model using a division method may further comprise the step of calculating one or more traces for each of the obtained division portions, where a trace is a set of one or more edges present on the face of the obtained division portion, and each of the one or more edges is created as a result of the division. "Created as a result of the division" means that the creation of the trace is a result of the division of adjacent volumes. An example of a trace is shown in Figure 14, where a volumetric B-Rep is divided into four volumes 1400, 1410, 1420 and 1430, and trace 1450 is a result of such a division.

[0053] Returning to Figure 1, for each acquired segment, the method determines whether the segment represents a sweepable volume (S60). In the example, the step of determining whether a segment is a sweepable volume includes determining a start plane and a target plane for each acquired segment. As described above, each of the start plane and target plane is adjacent to the ranked ribbon. This determining step further includes determining a sweep path on the ranked ribbon, determining that a sweep exists from the start plane to the target plane along the sweep path, and determining that this represents a sweepable volume. The sweep path may be perpendicular to the ribbon path (i.e., the direction connecting one or more faces on the ribbon). Referring to Figure 7A, an example of a sweep path 717 is perpendicular to the ribbon path 718.

[0054] In the example, the method further comprises, after the step of obtaining two or more divisions for each selected ribbon, a step of verifying that the angle between each of the two edges created as a result of the division is greater than or equal to the quality angle. The method may perform a positioning step such as a quality check by verifying that no edges with an angle less than the quality angle have been created. The quality angle may be an angle in the range of 0.5 degrees to 5.0 degrees. The quality angle may be set according to the performance of the mesh generation software that may be used to mosaic the volume after division.

[0055] In the example, the method may be performed in a recursive manner. In such an example, if the method determines that a segment does not represent a swept volume, the method may invoke the disclosed method for ribbon detection in the volume type B-Rep of that segment. The method may terminate when the volumes of all acquired segments become swept.

[0056] Figure 20 shows an example of a system GUI, which is a CAD system. Model 2000 is an example of a CAD3D model provided in this method. GUI2000 may be a typical CAD-like interface having menu bars 2110 and 2120, as well as a bottom toolbar 2140 and a side toolbar 2150. Such menu bars and toolbars include a set of icons that the user can select, each icon being associated with one or more operations or functions as is known in the art. Some of these icons are associated with software tools suitable for editing and / or working with the 3D modeled object 2000 displayed in GUI2100. Software tools may be grouped into workbenches. Each workbench consists of a subset of software tools. In particular, one of the workbenches is an editing workbench suitable for editing the geometric features of the modeled product 2000. In the apparatus, the designer may, for example, pre-select a portion of the object 2000 and then begin an operation (e.g., changing dimensions, color, etc.) or edit geometric constraints by selecting the appropriate icon. For example, a typical CAD operation is modeling the punching or bending of a 3D modeled object displayed on the screen. The GUI may, for example, display data 2500 related to the displayed product 2000. In the example shown, the data 2500 displayed as a "function tree" and its 3D representation 2000 relate to a brake assembly including a brake caliper and disc. The GUI may further display various types of graphic tools 2130, 2070, and 2080 to facilitate 3D orientation of objects, to simulate the behavior of an edited product, or to trigger rendering of various attributes of the displayed product 2000. A cursor 2060 may be controlled by a haptic device to allow the user to interact with the graphic tools.

[0057] Figure 21 shows an example of a system, which is a client computer system, such as a user's workstation.

[0058] In this example, the client computer comprises a central processing unit (CPU) 1010 connected to an internal communication path 1000, and random access memory (RAM) 1070 similarly connected to the path. Furthermore, the client computer is provided with a graphics processing unit (GPU) 1110 associated with video random access memory 1100 connected to the bus. The video RAM 1100 is also known in the art as a frame buffer. A mass storage device controller 1020 manages access to mass storage devices such as a hard drive 1030. Mass storage devices suitable for tangibly embodying computer program instructions and data include, by example, all forms of non-volatile memory, including semiconductor memory devices such as EPROMs, EEPROMs, and flash memory; magnetic disks such as internal hard disks and removable disks; magneto-optical disks; and CD-ROM disks 1040. Any of the above may be supplemented or incorporated by specially designed application-specific integrated circuits (ASICs). A network adapter 1050 manages access to the network 1060. The client computer may also include tactile devices 1090 such as a cursor control device and a keyboard. The cursor control device is used in the client computer to allow the user to selectively place the cursor at any desired position on the display 1080. Furthermore, the cursor control device allows the user to select various commands and input control signals. The cursor control device includes a number of signal generators for inputting control signals into the system. Typically, the cursor control device is a mouse, and signals are generated using the mouse buttons. Alternatively or additionally, the client computer system may include a sensing pad and / or a sensing screen.

[0059] A computer program may include instructions executable by a computer, the instructions comprising means for causing the system described above to perform the Method. The program may be recordable on any data storage medium, including the system's memory. The program may be implemented, for example, in digital electronic circuits, or in computer hardware, firmware, software, or a combination thereof. The program may be implemented as a device, for example, a product tangibly embodied in a machine-readable storage device for execution by a programmable processor. The steps of the Method may be performed by a programmable processor that executes a program of instructions, manipulating input data to produce outputs, thereby performing the functions of the Method. Thus, the processor may be programmable and coupled to receive data and instructions from a data storage system, at least one input device, and at least one output device, and to transmit data and instructions to them. The application program may be implemented, as necessary, in a high-level procedural programming language or an object-oriented programming language, or in assembly language or machine language. In any case, the language may be a compiled language or an interpreted language. The program may be a complete installation program or an update program. Applying the program to a system in any case provides instructions for performing the Method.

[0060] Now, let's explain the implementation of this method.

[0061] Such an implementation is required to analyze the volume and divide it into several sweepable regions. After this division operation is performed, known algorithms from the prior art can be used to create a 3D hexahedron mesh for each of the several sweepable regions.

[0062] Referring to Figure 5, the implementation performs partitioning of a B-rep model using an iterative program. In step 1, the implementation detects ribbons, analyzes a given B-rep, and characterizes them. In step 2, the implementation selects one of the detected ribbons and a partitioning method. The selection of the ribbon (and associated partitioning method) depends on the criteria of the ribbon found in step 1. In step 3, the implementation partitions the B-rep model using the partitioning method found in step 2, thereby obtaining several subvolumes. In step 4, the implementation examines each subvolume and detects whether it is meshable in hexahedrons using a sweep meshing method. The implementation then saves all meshable subvolumes, all subvolumes that the implementation failed to partition, and other volumes given as input in step 1. If subvolumes are saved for assembly, the implementation stops the iterative process. In step 5, the implementation assembles all subvolumes.

[0063] Hexahedral mesh generation generates a hexahedral mesh composed of deformed cubes (i.e., hexahedrons). As described in the reference “Hexahedral Meshing: Mind the Gap!” (Ray et al., hal-01551603, 2017), hexahedral meshes significantly improve both the speed and accuracy of simulations, and are therefore often used to simulate several physical phenomena such as deformation mechanics (e.g., elasticity and elastoplasticity), fluid dynamics, or biomechanics simulations. This improvement stems from the fact that (1) the number of elements in a hexahedral mesh is smaller compared to a tetrahedral mesh (i.e., 5-6 tetrahedra compared to a single hexahedron), (2) the basis of the cubic linear function associated with the hexahedral elements has a cubic term that can better capture higher-order changes, (3) the hexahedral mesh avoids the locking phenomenon that occurs with tetrahedra, and (4) hexahedral layers consisting of hexahedral elements can be arranged along the features of the geometric boundary and / or several physical properties (flow direction, shock wave, thermal gradient, etc.). Hexahedral meshes are known to perform well in bending and torsion in elastic and elastoplastic analyses and / or yield better results in biomechanical simulations by providing reasonable contact pressure and contact shear stress regardless of load conditions, material incompressibility, contact, friction, and collective conditions. A hexahedron mesh can be generated by a standard mesh generation tool for a swept region, where the region includes a set of faces called the source side, a set of faces called the target side, and another set of faces called the sweep path between them. For such a region, the mesh generation tool creates a 2D square mesh on the starting set of faces and duplicates the same 2D square mesh on the target set of faces.Next, the mesh generation tool can create a 3D hexahedral mesh by sweeping from a starting 2D mesh to a target 2D mesh, for example, by using the method of "Automatic Hexahedral Sweep Mesh Generation of Open Volumes" (Mukherjee et al., Proceedings of the 21st International Roundtable on Mesh Generation, 2013).

[0064] Furthermore, the implementation provides an automatic splitting function that saves time compared to manual splitting by an operator, for example. In addition, automatic splitting obtains more relevant split parts for complex parts, improving reproducibility.

[0065] The implementation is based on B-rep as a 3D volumetric part (i.e., a volumetric B-rep of a 3DCAD model), as explained with reference to Figure 5.

[0066] [Step 1: Detect the ribbon] First, the implementation groups all faces of the B-rep according to the smoothness of their joints in order to detect one or more ribbons. Two adjacent faces belong to the same group only if all the edges between them obtain the maximum angle within a given range. The range chosen here is 150 to 210 degrees. Such groups are called smooth surfaces. Next, the implementation detects a square smooth surface. When a square smooth surface is unfolded, its boundary consists of only four transcendental edges. Transcendental edges are open wires where two edges are connected by smooth contact. In practice, a square smooth surface is a smooth surface that has two or four adjacent smooth surfaces.

[0067] Finally, the implementation detects ribbons. The idea behind ribbon detection is to find areas that could potentially become sweep paths during the mesh generation operation. Thus, ribbons are also defined by the sweep direction. Specifically, a ribbon is a set of connected square smooth surfaces. A ribbon consists of at least one square smooth surface, and only one width from the square smooth surface. Adjacent faces of a ribbon in the sweep direction are called the start / target faces.

[0068] [Step 2.1: Calculation of Geometric Criteria] First, for each ribbon, the implementation calculates five criteria, which are words that characterize the ribbon. • Criteria for concave sections: A ribbon is considered concave if its connection to the start / target surface is concave on one side and convex on the other, and is detected as "in" as defined below. • Criteria for protrusions: A ribbon is considered a protrusion if its connection to the start / target surface is concave on one side and convex on the other, and is detected as "out" as defined below. • Closure Criteria: A ribbon is considered closed if it does not have any adjacent surfaces other than the starting / target plane. • Criteria for significant impact: If the distance between the intersection of the B-rep model and the extrapolation of this ribbon and the ribbon is greater than the size of the ribbon, then the ribbon is considered to have a significant impact. • Criteria for rotation: A ribbon is considered a solid of revolution if it lies on a plane of rotation that shares the same axis. • In / Out: The idea is to detect whether the ribbon is part of a hole or a knot. Specifically, for each face of the ribbon, the implementation checks whether the center of gravity of the face is inside or outside the object.

[0069] [Step 2.2: Select the first ribbon to split] To cut out (i.e., divide) parts, the implementation follows general logic. The implementation first isolates parts that are too complex to mesh by prioritizing the most local cuts. The simplest parts are cylinders. The idea is to cut out the details first. Specifically, the implementation attempts to cut around small ribbons (compared to the size of the part). The idea behind the term "most local" is to be able to cut out details with as little impact as possible on the rest of the model. The implementation isolates areas in privileged sweep directions, such as circular holes.

[0070] This logic provides an algorithm for cutting out sections in this order around a ribbon having the following properties: 1. Closed protrusions: Implementation begins with removing the bumps of closed protrusions. The associated cutouts do not affect the rest of the part. In fact, the bumps come off without altering the shape of the adjacent parts. 2. Closed recesses: Next, the implementation handles the areas with holes. The holes are oriented in a specific direction. These areas need to be extracted, otherwise they risk becoming more complex due to adjacent cutouts. 3. Protrusions: Here, it is best to remove anything near the bump. The associated cuts will slightly alter the adjacent shape. 4. Recesses: Finally, the last local criterion is to isolate any non-closed recesses. This is because it largely imposes the local sweep direction that needs to be extracted. 5. Rotation: In the case of a rotating ribbon, the implementation uses a specific cutting method described below, which creates new volumetric elements that can be meshed by sweeping. Because the algorithmic approach is a comprehensive volumetric cutting, the algorithm can reach the fifth criterion.

[0071] Specifically, the algorithm is driven by a configuration file. The implementation can analyze each line of the configuration file from the first line to the last. An example of such a configuration file is illustrated in Figure 9A. Each line of the configuration file presents a criterion. If the implementation finds a ribbon corresponding to the criterion of each line, the found ribbon is suitable for the algorithm. Otherwise, the implementation proceeds to the next line in the configuration file. The implementation then performs a split around the found ribbon, as described below.

[0072] [Step 3: Volume division] The implementation selects a splitting method based on the ribbon's criteria and configuration file. An example of a configuration file is shown in Figure 8B.

[0073] The implementation can use four methods to divide the volume, namely, • Offset Method: The idea behind the offset method is to separate the hole from the rest of the B-rep model. To do this, the implementation creates a dividing surface which is the offset of the convex adjacent in the ribbon. The offset value varies depending on the ribbon size. An example of the offset method is illustrated in Figure 11. • Ribbon extrapolation: The idea behind ribbon extrapolation is to address the problem of holes. To do this, the implementation extrapolates the ribbon through a B-rep model to create a division surface. An example of ribbon extrapolation is illustrated in Figure 12. • Adjacent Extrapolation: The idea behind adjacent extrapolation is to separate the convex parts from the rest of the B-rep model. To do this, the implementation selects a concave adjacent body in the ribbon and extrapolates it to remove the internal hole. An example of adjacent extrapolation is illustrated in Figure 10. • Axial method: The idea behind the axial method is to process solids of revolution. The implementation divides this B-rep model by a special pattern to obtain three meshable volumes using the sweep direction. An example of the adjacent extrapolation method is illustrated in Figure 13.

[0074] Referring to the example configuration file in Figure 9B, the implementation of this method uses the offset method for ribbons characterized by three criteria: concave, closed, and large influence. Furthermore, the implementation uses the ribbon extrapolation method for ribbons characterized by the concave criterion. The implementation may use the adjacent extrapolation method for ribbons characterized by the convex criterion, and the axial method may be used for ribbons characterized by two criteria: rotationality and closed.

[0075] The implementation performs the subdivision using existing topology operations. These topology operations may be one or more standard CAD operations such as extrapolation of surfaces (or extrapolation of surface boundaries) and / or subdivision of geometric shapes by intersections of volumes and surfaces, cutting of faces in a volume by wires, and / or assembly of faces.

[0076] The implementation may perform a quality check after the subdivision step by ensuring that edges are not created at an angle smaller than the quality angle. The implementation may set the quality angle in the range of 0.5 to 5.0 degrees according to the mesh generation tool capability. In some suitable implementations, the quality angle may be equal to 0.5 degrees.

[0077] The result in step 3 is a 3D part with multiple volumes.

[0078] [Step 4: Checking Meshability] An implementation may declare a volume "meshable" only if it can be meshed using a sweep mesh method. In this step, the implementation analyzes the subvolumes resulting from step 3 and saves all "meshable" subvolumes. All "non-meshable" subvolumes are partitioned using the algorithm from step 1.

[0079] [Step 5: Assembly] In this step, the implementation assembles all the subvolumes into a single component using standard connections, preserving the internal surfaces.

Claims

1. 1. A computer-implemented method for partitioning a computer-aided design (CAD) 3D model of a mechanical part, comprising: Providing a volumetric B-Rep of the CAD 3D model (S10); - detecting (S20) one or more ribbons in said volumetric B-Rep, each ribbon comprising one or more connected surfaces in said volumetric B-Rep, and being homeomorphic to a rectangle when unfolded; ranking (S30) the one or more detected ribbons based on one or more geometric criteria associated with each of the one or more detected ribbons; a step (S40) of sequentially selecting each of the one or more detected ribbons, the selection being performed subsequent to the ranking step; For each selected ribbon, Segmenting (S50) the volumetric B-Rep of the CAD 3D model using a segmentation method associated with the geometric criteria in the selected ribbon, thereby obtaining two or more segmented portions; For each of the acquired subdivisions, determining whether the subdivision represents a sweepable volume (S60); A method comprising:

2. The one or more geometric criteria associated with the one or more detected ribbons include: the detected ribbon is a recess; the detected ribbon is a convex portion; the detected ribbon is closed; and / or The detected ribbon has rotational properties.

2. The method of claim 1, wherein the compound is selected from the group consisting of:

3. The step of ranking the one or more detected ribbons based on one or more geometric criteria may include ranking the ribbons in the following order: a) the detected ribbon is closed and convex; b) the detected ribbon is closed and concave; c) the detected ribbon is a convex portion; d) the detected ribbon is a recess; and e) The detected ribbon is a rotating body.

3. The method of claim 2, further comprising the step of ranking the selected ribbons by:

4. for each of the detected ribbons ranked according to a) or c), segmenting said volumetric B-Rep of the CAD 3D model using a segmentation method, comprising: Separating the protrusion from the remainder of the volumetric B-Rep, selecting a concave neighbor in the ribbon; extrapolating the concave neighbors through the volumetric B-Rep; By step The method of claim 3, comprising:

5. b) for each of the detected ribbons ranked according to step b), segmenting said volumetric B-Rep of the CAD 3D model using a segmentation method, determining whether the detected ribbon has a significant impact, wherein the detected ribbon has a significant impact if the detected ribbon has a size smaller than the distance between the intersection of the volumetric B-Rep and the extrapolation of the detected ribbon and the ribbon; if the detected ribbon has a large influence, creating a split surface that is an offset of a convex neighbor in the ribbon; The method of claim 3, comprising:

6. d) for each of the detected ribbons ranked according to step d), segmenting said volumetric B-Rep of the CAD 3D model using a segmentation method, comprising: creating a split surface by extrapolating the ribbon through the volumetric B-Rep; The method of claim 3, comprising:

7. e) for each of the detected ribbons ranked according to step e), segmenting said volumetric B-Rep of the CAD 3D model using a segmentation method, dividing the volume enclosed by the ribbon into three volumes, one of which is a cylinder; The method of claim 3, comprising:

8. The step of detecting one or more ribbons in the volumetric B-Rep includes: detecting one or more smooth surfaces, each detected smooth surface comprising a group of connected surfaces in said volumetric B-Rep, each pair of connected surfaces in said group having a smooth junction; selecting one or more square smooth surfaces from the detected one or more smooth surfaces, each of which, when unfolded, is homeomorphic to a rectangle; detecting ribbons by selecting a set of one or more connecting surfaces from the detected one or more square smooth curved surfaces, each detected ribbon having a width of one of the one or more selected connecting surfaces; 10. The method of claim 1, further comprising:

9. 9. The method of claim 8, wherein for each of the detected one or more smooth curved surfaces, the angle between each two connecting surfaces is greater than or equal to 150 degrees and less than or equal to 210 degrees.

10. 2. The method of claim 1, wherein the step of dividing the volumetric B-Rep of the CAD 3D model using a division method further comprises the step of calculating one or more traces for each of the obtained divisions, wherein a trace is a set of one or more edges lying on a surface of the obtained division, each of the one or more edges being created as a result of the division.

11. The step of determining whether the divided portion is a sweepable volume includes the steps of: determining a starting surface and a target surface, each of the starting surface and the target surface being adjacent to the ranked ribbon; determining a sweep path on the ranked ribbons; determining that there is a sweep from the starting surface to the target surface along the sweep path, thereby determining that the subdivision represents a sweepable volume; 2. The method of claim 1, comprising:

12. 2. The method of claim 1, further comprising, for each selected ribbon, after the step of obtaining two or more divisions, verifying that the angle between each of the two sides created as a result of the division is equal to or greater than a quality angle.

13. A computer program comprising instructions for carrying out the method according to any one of claims 1 to 12.

14. A computer-readable storage medium having the computer program according to claim 13 recorded thereon.

15. 14. A system comprising a processor coupled to a memory and a graphic user interface, said memory having stored thereon a computer program according to claim 13.