Draft feature detection method
The method iteratively groups segments in discrete 3D models based on draft axes and angles to detect CAD volume draft operators, addressing the inefficiencies in existing CAD systems and improving manufacturing processes.
Patent Information
- Application Number
- JP2024111397
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2023-07-11
- Filing Date
- 2024-07-11
- Publication Date
- 2025-01-24
AI Technical Summary
Existing CAD systems lack efficient methods for detecting CAD volume draft operators in discrete 3D models, which are crucial for manufacturing mechanical parts, as they do not adequately handle various types of draft volumes and cross-sections.
A computer-implemented method for CAD volumetric draft operator detection in discrete 3D models, involving segmentation, iterative grouping of segments based on draft axes and angles, and determination of CAD volume draft operators through cross-sectional curve analysis.
Enables accurate and computationally efficient detection of CAD volume draft operators, facilitating improved material distribution and manufacturing processes by distinguishing between CAD pocket and pad features, reducing memory requirements, and enhancing design and fabrication efficiency.
Smart Images

Figure 2025013281000001_ABST
Abstract
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 CAD volumetric draft operator detection in discrete 3D models representing mechanical parts. [Background technology]
[0002] For the design, engineering and manufacturing of objects, several systems and programs are offered on the market. CAD is an acronym for Computer-Aided Design, which relates, for example, to software solutions for designing objects. CAE is an acronym for Computer-Aided Engineering, which relates, for example, to software solutions for simulating the physical behavior of future products. CAM is an acronym for Computer-Aided Manufacturing, which relates, for example, to software solutions for defining manufacturing processes and operations. In such computer-aided design systems, the graphical user interface plays an important role in the efficiency of the techniques. These techniques may be incorporated within a product lifecycle management (PLM) system. PLM refers to a business strategy that helps companies share product data, apply common processes and leverage enterprise knowledge across the extended enterprise concept for product development from conception to its end of life. The PLM solutions offered by Dassault Systèmes (under the trademarks CATIA, ENOVIA, and DELMIA) provide an Engineering Hub that organizes product engineering knowledge, a Manufacturing Hub that manages manufacturing engineering knowledge, and an Enterprise Hub that enables enterprise integration and joins to both the Engineering and Manufacturing Hubs. The entire system provides an open object model that links products, processes, and resources, enabling dynamic knowledge-based product creation and decision support that drives optimized product definition, manufacturing preparation, production, and service.
[0003] In this and other contexts, processing CAD 3D models is gaining widespread importance, and in particular detecting draft operators of 3D models representing mechanical parts is of particular importance due to the widespread application of draft operators in designing parts with regard to their manufacture.
[0004] However, there is a need for improved solutions for CAD 3D model processing and CAD volume draft operator detection. [Prior art documents] [Patent documents]
[0005] [Patent Document 1] European Patent Application Publication No. 4044116 [Patent Document 2] European Patent Application Publication No. 4057222 [Patent Document 3] European Patent Application Publication No. 4092558 [Patent Document 4] European Patent Application Publication No. 4141725 [Patent Document 5] European Patent Application Publication No. 4250164 [Non-patent literature]
[0006] [Non-Patent Document 1] https: / / my.3dexperience.3ds.com / welcome / fr / compass-world / rootroles / nc-shop-floor-programmer [Non-Patent Document 2] https: / / my.3dexperience.3ds.com / welcome / fr / compass-world / rootroles / nc-mill-turn-machine-programmer [Non-Patent Document 3] https: / / my.3dexperience.3ds.com / welcome / fr / compass-world / rootroles / powder-bed-machine-programmer Summary of the Invention [Problem to be solved by the invention]
[0007] Thus, a computer-implemented method is provided for CAD volumetric draft operator detection in a discrete 3D model representing a mechanical part. [Means for solving the problem]
[0008] The method includes obtaining a segmentation of the discrete 3D model, the discrete 3D model including a skin representing an exterior surface of the machine part, the segmentation including segments each representing a skin portion. The method further includes iteratively grouping the segments, where two segments of a pair of segments are grouped if each segment of the pair is a drafted face, both segments have the same respective draft axis, and both segments have the same respective draft angle relative to the respective draft axis, or at least one segment has a zero angle relative to the respective draft axis, or one segment of the pair is a drafted face and the other segment is a closed plane, and at least one iteration groups the pair of segments with at least one segment having a non-zero draft angle relative to the respective draft axis. The method further includes determining one or more CAD volume draft operators, each CAD volume draft operator corresponding to a respective group.
[0009] The method may include one or more of the following: - determining all segments that are drafted faces,
[0010]
number
[0011] , n p performing a test whether u=sin(θ), where S is a segment, and n pis the normal vector to segment S at point p, and the faces that satisfy the test are determined as drafted faces; - The steps to perform the test are as follows for each segment S:
[0012]
number
[0013] and T S (u)≦ε,
[0014]
number
[0015] and
[0016]
number
[0017] is defined by A S =∫ S dvol S , and vol. S is the reference measure for S, ε>0,
[0018]
number
[0019] teeth,
[0020]
number
[0021] is the mean normal of S defined as; - Rating is type
[0022]
number
[0023] where:
[0024]
number
[0025] is of type
[0026]
number
[0027] is; - The steps to solve the optimization problem are:
[0028]
number
[0029] The smallest eigenvalue of and its associated eigenvector
[0030]
number
[0031] and the testing step includes the step of finding
[0032]
number
[0033] testing the
[0034]
number
[0035] is the smallest eigenvalue; - The step of repeatedly grouping segments is Searching for pairs of segments; A determining step, ■ whether a first difference between a value of the draft detection objective function for the union of the searched pair of segments and a weighted sum of the values of the draft detection objective function for the searched pair of segments, the weighting being based on the area of the segments, is less than a first predetermined threshold value; or ■ whether a second difference between the value of a draft closure objective function that rewards orthogonality of an input segment with respect to the draft axis of another input segment and the weighted sum for the searched pair of segments is less than a second predetermined threshold. determining grouping the found pairs of segments if the first difference is smaller than a first predefined threshold or if the second difference is smaller than a second predefined threshold Contains one or more repetitions of; - the value of the draft detection objective function for an input segment is the minimum eigenvalue of the normal matrix of the input segment; and / or the value of the draft closure objective function is the minimum eigenvalue of a matrix that is a weighted sum of the normal matrices of the other input segments and an identity minus the normal matrix of the input segment, the sum being weighted based on the area of the input segment; - The first difference is that the type
[0036]
number
[0037] where S1 and S2 are the two segments of the searched pair,
[0038]
number
[0039] is the normal matrix of the combination of S1 and S2
[0040]
number
[0041] is the smallest eigenvalue of
[0042]
number
[0043] is the normal matrix of S1
[0044]
number
[0045] is the smallest eigenvalue of
[0046]
number
[0047] is the normal matrix of S2 when S2 has a nonzero draft angle
[0048]
number
[0049] is the smallest eigenvalue of S2, and is the normal matrix of S2 where S2 has zero draft angle.
[0050]
number
[0051] is the smallest eigenvalue of
[0052]
number
[0053] where S1 and S2 have non-zero draft angles;
[0054]
number
[0055] is the area of S1,
[0056]
number
[0057] is the area of S2, and
[0058]
number
[0059] where S1 has a non-zero draft angle and S2 has a zero draft angle;
[0060]
number
[0061] is the area of S1,
[0062]
number
[0063] is the area of S2, and / or The second difference is that the type
[0064]
number
[0065] where
[0066]
number
[0067] is a matrix
[0068]
number
[0069] where S1 is another input segment, S2 is an input segment,
[0070]
number
[0071] is the normal matrix of S1
[0072]
number
[0073] is the smallest eigenvalue of
[0074]
number
[0075] is the normal matrix of S2
[0076]
number
[0077] is the smallest eigenvalue of however,
[0078]
number
[0079] teeth,
[0080]
number
[0081] is the non-centred normal matrix of S2 defined as, where |S2| is the surface area of S2; - for each group, determining a CAD volumetric draft operator corresponding to each group includes constructing a cross-section curve for each group; - constructing the cross-sectional curves comprises, for each segment of the respective group, providing a respective cross-sectional curve of the segment and iteratively concatenating the respective cross-sectional curves, wherein a pair of respective cross-sectional curves is concatenated if a third difference between the respective cross-sectional curves of the pair is less than a third predetermined threshold; - for each group, determining a CAD volume draft operator corresponding to the respective group further comprises determining a draft type of the CAD volume draft operator based on the constructed cross-section curves; and / or - The step to determine the draft type is: determining whether the cross-section curve is closed; Calculate the total curvature of the cross-sectional curve; Including, A CAD volume draft operator is a draft face if the cross-section curve is open and the absolute value of the total curvature is strictly less than 2π; a CAD volume draft operator is a pad operator if the cross-section curve is closed and the total curvature is equal to β2π; A CAD volume draft operator is a pocket operator if the cross-section curve is closed and has total curvature equal to -β2π. where β∈{-1,1} and, optionally, the total curvature is of type
[0082]
number
[0083] where K γ (t) is the algebraic curvature of the curve γ at the parameter t.
[0084] A computer program comprising instructions for carrying out the method is further provided.
[0085] There is further provided a computer readable data storage medium having a computer program recorded thereon.
[0086] There is further provided a system comprising a processor coupled to a memory, the memory having a computer program recorded thereon. [Brief description of the drawings]
[0087] Non-limiting examples will now be described with reference to the accompanying drawings. [Figure 1] FIG. 2 illustrates an example of a graphical user interface of the system. [Diagram 2] FIG. 1 illustrates an example of a system. [Diagram 3] FIG. 1 illustrates an example of the method. [Figure 4] FIG. 1 illustrates an example of the method. [Diagram 5] FIG. 1 illustrates an example of the method. [Figure 6] FIG. 1 illustrates an example of the method. [Figure 7] FIG. 1 illustrates an example of the method. [Figure 8] FIG. 1 illustrates an example of the method. [Figure 9] FIG. 1 illustrates an example of the method. [Figure 10] FIG. 1 illustrates an example of the method. [Figure 11] FIG. 1 illustrates an example of the method. [Figure 12]FIG. 1 illustrates an example of the method. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
[0088] A computer-implemented method for CAD volumetric draft operator detection in a discrete 3D model is proposed. The discrete 3D model represents a mechanical part. The method includes obtaining a segmentation of the discrete 3D model. The discrete 3D model includes a skin. The skin represents an exterior surface of the mechanical part. The segmentation includes segments. Each segment represents a skin portion. The method further includes iteratively grouping the segments. In the grouping, the two segments of a pair of segments are grouped if each segment of the pair is a drafted face, both segments have the same respective draft axis, and both segments have the same respective draft angle relative to the respective draft axis. As an alternative, in the grouping, the two segments of a pair of segments are grouped if each segment of the pair is a drafted face, both segments have the same respective draft axis, and at least one segment has a zero angle relative to the respective draft axis. As a further alternative, in the grouping, the two segments of a pair of segments are grouped if one segment of the pair is a drafted face and the other segment is a closed plane. In the grouping, at least one iteration groups pairs of segments with at least one segment having a non-zero draft angle relative to a respective draft axis. The method further includes determining one or more CAD volume draft operators, each CAD volume draft operator corresponding to a respective group.
[0089] The method forms an improved solution for CAD 3D model processing.
[0090] In particular, the method enables CAD volume draft operator detection in a discrete CAD 3D model. That is, the method detects one or more CAD volume draft operators in a provided (i.e., obtained) discrete 3D model. The detection of CAD volume draft operators allows the contour of the volume to which the draft volume is applied to be detected / calculated. This provides more meaningful characteristics about the mechanical part. For example, the detection of these operators allows to distinguish CAD pocket features and / or CAD pad features. The overall detection of CAD volume draft operators allows an improved understanding of the material distribution of the mechanical part and the operators that construct this distribution. The detection of CAD volume draft operators is particularly relevant for mechanical CAD / manufacturing CAD, as will be further explained below.
[0091] Moreover, the method does not only find CAD volume draft operators, but does so in an improved manner. Indeed, the method starts from an obtained segmentation of a discrete 3D model, then iteratively groups segments of the segmentation, i.e., the method iteratively searches for segments and groups the searched segments. Two segments of a segment pair are grouped in three cases. The first case is when they are both drafted faces (i.e. faces created by application of a draft operator) and both segments have the same respective draft axis and the same respective draft angle relative to the respective draft axis. In such a case, the union of the two segments is a drafted face with the same draft angle of the two segments relative to the draft axis. In other words, when the two segments are part of the same draft volume (also called draft volume) and have the same draft angle relative to the same draft axis. A union (e.g. of two segments) is to be understood mathematically as a mathematical union of two sets. The second case is when they are both drafted faces, both segments have the same respective draft axis, and at least one segment has a zero angle with respect to the respective draft axis. As is known, a draft operator with a zero draft angle is equivalent to an extrusion operator when the extrusion has the draft axis as its extrusion axis, respectively. Thus, in the second case, two segments are grouped if they are two drafted faces with different draft angles with respect to the same draft axis, and at least one angle is zero. The third case is when one of them is a drafted face, and one of them is a closed plane with respect to the other, i.e. the other is part of a drafted volume closed by a closed plane.
[0092] Thereby, by the step of iteratively grouping the segments based on such considerations, the method finally (i.e. after all iterations have been performed) obtains groups of segments, each group corresponding to a respective draft volume, i.e. the segments of each group together form a respective draft volume. Then, for each group, a CAD volume draft operator corresponding to that group, i.e. corresponding to the volume draft formed by that group, is determined. By grouping the segments in this way, the method then determines one or more CAD volume draft operators, each adapted to a respective group. This allows the determination of the CAD volume draft operator with efficiency and generality, since the method relies on draft axis similarity detection and closing plane detection to obtain the groups. Moreover, this determination is computationally efficient.
[0093] The method is thereby not limited to detecting a particular type of drafted volume, but detects any CAD volume draft operator, regardless of its type or its cross-section. In other words, the grouping performed by the method allows the detection of any CAD volume draft operator of a CAD 3D model. In yet another way, the method determines any CAD volume draft operator with an arbitrary cross-section. The method may in fact detect CAD volume draft operators with a reference cross-section (e.g., a conical surface) as well as CAD volume draft operators with a free-form cross-section. By reference cross-section, it is meant that the cross-section is a concatenation of one or more straight line segments and / or circular arcs. By free-form cross-section, it is meant that the cross-section includes at least one curved portion that is not a straight line segment or a circular arc.
[0094] As explained above, the detection of CAD volume draft operators is particularly relevant for manufacturing CAD / mechanical CAD. Manufacturing CAD specifies software solutions for supporting design and manufacturing processes, whereby the objective is to create a physical product corresponding to a designed CAD 3D model. "Designing a manufacturing product / mechanical part / mechanical product" specifies any action or sequence of actions that is at least part of the process of finishing a modeled object (3D or 2D) of a manufacturing product / mechanical part / mechanical product. The method may form such a process, or form at least part of this process. Within this context, the CAD model represents a manufacturing product (which is a mechanical part), which may be manufactured downstream of its design (e.g. by a design process that includes the method). The method may therefore be included in such a manufacturing CAD process, including a design process (i.e. a process of designing a mechanical part represented by a CAD 3D model) and / or a manufacturing process (i.e. a process of manufacturing a mechanical part upon completion of its design by editing a CAD 3D model). The CAD volumetric draft operator enables and facilitates editing of the corresponding volumetric portion of the CAD model, for example, by modifying a parameter associated with the operator (e.g., the angle of the draft). A manufacturing CAD process including the present method may further include editing the CAD 3D model based on the detected CAD volumetric draft operator. Moreover, such operators further facilitate manipulating and storing 3D modeled objects in the design and fabrication process as parameterized CAD models, which require much less memory to be stored or loaded during execution of the respective design software compared to discrete models (e.g., meshes or point clouds).
[0095] The method may for example form or be part of a step of CAD feature acquisition in a design process, which may be a step of feature tree construction, which is a step of construction of a tree of CAD features underlying the CAD model. The concept of feature trees is well known in manufacturing CAD. Among these steps, based on the segments of the segmentation (some of which are draft faces, each associated with a draft axis), the method groups the segments into draft volumes and determines a respective CAD volume draft operator for each draft volume. In other words, the method takes as input the draft faces (i.e. some of the segments) and outputs CAD draft features (i.e. the determined CAD volume draft operators). These CAD features acquired by the method may for example be integrated into a feature tree together with other CAD features acquired by other methods (for example performed in the CAD feature acquisition step before, after or during the execution of the method). Thus, the CAD feature acquisition step may result in a list of CAD features arranged for example in a feature tree, including the CAD volume draft operators determined by the method.
[0096] In the method, each determined CAD volume draft operator corresponds (e.g. adapts, constructs) to a respective group of segments, the latter being a draft volume. Each such draft volume has a uniform geometry (i.e. of a drafted volume, such as a pad, pocket or split) and is a uniform volume from a manufacturing point of view. In other words, the part of the machine part corresponding to the draft volume has a geometry / shape that requires and / or is adapted to a respective manufacturing process (e.g. molding). The detection of the CAD volume draft corresponding to this part, which the method enables, makes it possible to carry out an editing of the corresponding part of the CAD 3D model (i.e. the corresponding group of segments) downstream of the method, for example within the aforementioned design process, taking into account this manufacturing process. In the example of the method, where the machine part is to be manufactured by a molding process, the method may form or be part of a design and manufacturing process for setting the draft angle of the mold to be used in the molding process. In such an example, upon detection of one or more draft operators of the input discrete model, the design of the mechanical part and, in particular, the draft angles of the detected draft operators may be updated to improve demolding of the mechanical part. The method and / or design and manufacturing process may further include, in particular, editing one or more (e.g., all) of the detected CAD volume draft operators to set, for each edited operator, a respective draft angle that facilitates demolding of the part, as known per se from mold manufacturing. Because the method provides draft operators that facilitate editing of the model, draft angles can be set or modified more efficiently and reliably.
[0097] Among other things, such methods assist designers and engineers in the process of design. In the engineering field, it is very common to carry out a design process based on a provided discrete 3D model, for example a mesh (e.g. polygon mesh) or a point cloud, without access to the respective CAD file of the provided discrete 3D model. Such a discrete 3D model may be retrieved from an in-house database or downloaded from an online library. Alternatively or additionally, such a discrete 3D model may be obtained from a topology optimization method. As is known, a topology optimization method may provide a (e.g. voxel) mesh of the final design based on the values of a material density function. Further alternatively or additionally, such a discrete 3D model stored in the database may be a discrete 3D model generated / output by a software package that is no longer available to the designer. Further alternatively or additionally, the discrete 3D model that may be stored in the database may be a discrete 3D model generated / output by a scanning process as output.
[0098] In an example, the method may obtain a discrete 3D model by a 3D scanning process. In other words, the method may include a scanning process for a real-world sample of a mechanical product before obtaining the discrete 3D model. The scanning process may output a point cloud or a mesh representing the mechanical part. The method may convert the point cloud into a mesh. In such an example, the method may form part of or be part of a process for obtaining a CAD model of a physical object by a scanning process. In such an application, the method may detect a volume (or a part of a volume) corresponding to a draft operator. Such an application may for example be relevant for detecting a draft angle (or multiple draft angles) from a 3D scanning process in order to obtain respective parameters of a suitable mold with the detected draft angle. Such a mold may be particularly relevant for making replicas from measured prototypes or for preparing a mass production stage. Such an application is particularly relevant for reverse engineering, where the manufacturing details of the object are not accessible, but a sample of the physical object is used. For example, the method may be used to make a mock-up of an existing manufactured product.
[0099] Next, the method is further discussed.
[0100] The method is for CAD draft operator detection in a discrete 3D model representing a mechanical part. In other words, the method detects one or more CAD volume draft operators in the discrete 3D model based on the discrete 3D model. A CAD volume draft operator, which may also be referred to as a "CAD volume draft feature" or simply a "CAD draft feature", is a CAD operator that corresponds to bending of one or more faces of a part relative to a midplane. A CAD draft operator is a CAD operator that is associated with a midplane relative to ... eA draft operator is defined by a draft angle (relative to the draft extrusion) and a midplane. The draft angle sets the angle of the draft bend. The draft axis corresponds to the midplane, for example the draft axis may be perpendicular to the midplane. The draft axis is defined by its direction and the midplane defines the height from which the surface must be bent. The draft axis may be perpendicular to the midplane. Such operators define a drafted volume, i.e. a volume defined as a result of the application of a CAD draft operator. In other words, a CAD volume draft operator defines a drafted volume as a result of the application of one or more parameters (e.g. cross-section curve, draft axis, height limit and type of pad or pocket etc.) that define the operator. A drafted volume is a 3D volumetric portion of a CAD model that is shaped as a drafted extrusion and corresponds to the distribution of material of a machine part arranged as a drafted extrusion. This volume is formed in part by a collection of drafted surfaces that have the same draft axis and possibly a closing plane. In addition to the draft axis and angle, the CAD volume draft operator also defines the (planar) cross section curve γ, the height limit h min , h max , and type (pad or pocket).
[0101] The method includes obtaining a segmentation of the discrete 3D model.
[0102] Obtaining the segmentation may include providing an existing segmentation of the 3D model, for example by retrieving this existing segmentation from a (e.g., remote) memory or database in which it is further stored for its acquisition. The segmentation may be a segmentation obtained from a method for segmenting a 3D modeled object described in U.S. Pat. No. 6,399,433, filed Feb. 16, 2021 by Dassault Systèmes, which is incorporated herein by reference. In other words, the provided segmentation of the discrete 3D model may be a segmentation (i.e., a set of first and second segments) obtained from a method for segmenting a 3D modeled object described in U.S. Pat. No. 6,399,433, filed Mar. 10, 2021 by Dassault Systèmes, which is incorporated herein by reference, when applied to a 3D modeled object that is a discrete 3D model. Alternatively, the segmentation may be a segmentation obtained from performing a segmentation according to a method of use described in U.S. Pat. No. 6,399,433, filed Mar. 10, 2021 by Dassault Systèmes, which is incorporated herein by reference. In other words, the provided segmentation of the discrete 3D model may be a segmentation resulting from performing a segmentation according to the method of use described in US Patent No. 5,999,942 when applied to a 3D modeled object that is a discrete 3D model. As a further alternative, the segmentation may be any other segmentation of the CAD 3D model resulting from another segmentation method.
[0103] Alternatively, obtaining a segmentation of the discrete 3D model may include providing a model (e.g., by retrieving it from a memory or a database) and then performing a segmentation of the discrete 3D model. Performing a segmentation of the discrete 3D model may include applying a method for segmenting a 3D modeled object described in the above-cited U.S. Patent No. 6,239,963 to the CAD 3D model (i.e., the discrete 3D model plays the role of the 3D modeled object in the method described in the above-cited U.S. Patent No. 6,239,963). Alternatively, performing a segmentation of the discrete 3D model may include applying a method of use described in the above-cited U.S. Patent No. 6,239,963 to the discrete 3D model (i.e., the CAD 3D model plays the role of the 3D modeled object in the method of use described in the above-cited U.S. Patent No. 6,239,963). In this case, the segmentation is the result of the step of performing a segmentation by the method of use described in the above-cited U.S. Patent No. 6,239,963 when applied to the discrete 3D model. As a further alternative, performing a segmentation of the CAD 3D model may include applying any other method of segmentation.
[0104] In either case, the segmentation includes segments, the segments together forming the segmentation. Each segment represents (e.g. is) a skin portion, i.e. a part of the skin. In other words, each segment corresponds to (e.g. is) a part of the exterior surface of the discrete 3D model. Being a segment of the segmentation, each segment is a geometrically uniform surface portion (e.g. a draft surface) of the 3D modeled object and has maximum interior uniformity.
[0105] In addition to providing a segmentation of the CAD 3D model, the method then comprises a step of iteratively grouping the segments. In other words, the method iteratively visits / searches / browses the segments and groups them. The searching can consist in browsing the list of segments. The grouping is based on the criterion of grouping two segments of a segment pair (a segment pair always consists of two segments) if: Each segment of the pair is a drafted face, and both segments have the same respective draft axis, and ■ Both segments have the same respective draft angles about their respective draft axes, or ■ At least one of the segments has a zero angle with respect to the respective draft axis, or o One segment of the pair is a draft face and the other segment is a closed plane.
[0106] The method may iteratively evaluate whether pairs of segments verify a criterion and group the paired segments when they verify the criterion. The criterion is based, among other things, on the segments being draft faces. The machine component has at least one draft face with a non-zero draft angle. At least one iteration thereby groups pairs of segments that include at least one segment with a non-zero draft angle relative to a respective draft axis.
[0107] In an example, the method may include determining all segments that are drafted faces. In such an example, the determining step may include:
[0108]
number
[0109] where S is a segment and n pis the normal vector to the segment S at point p. The method then determines that each surface that satisfies the test is a draft surface. A draft surface thus determined is defined by a draft angle θ with respect to a draft axis u. Such determination may be made prior to the repetitive grouping. In other words, prior to the repetitive grouping, the method may detect which segments are draft surfaces. The results of this detection may be stored in a memory; for example, the method may label the segments detected as being draft surfaces and store the labels together with the associated segments.
[0110] In the step of iteratively grouping segments, the method may iteratively search for pairs of segments whereby the segments have been detected (e.g., labeled) as being draft faces. A closing plane of a volume draft is a plane that is a portion (i.e., a segment) of the drafted volume and is perpendicular to the draft axis of the volume.
[0111] The step of grouping the two segments may include associating the two segments together and marking (e.g., labeling) them as being part of the same group. The step of grouping the two segments may further include, in some cases, fusing the two segments, thereby creating a new segment. In particular, the method may fusing the two segments when each segment of a pair is a drafted face, both segments have the same respective draft axis, and both segments have the same respective draft angle relative to the respective draft axis.
[0112] The method may use different techniques to perform the test to determine all segments that are drafted faces. In an example, the step of performing the test includes, for each segment S:
[0113]
number
[0114] and T S (u)≦ε wherein:
[0115]
number
[0116] and
[0117]
number
[0118] is defined by A s =∫ s DVL s , and vol. s is a criterion measure for S. ε>0 represents a sufficiently small (e.g., 0.001) threshold,
[0119]
number
[0120] teeth,
[0121]
number
[0122] is the mean normal of S defined as
[0123] In the example, the evaluation is of type
[0124]
number
[0125] where:
[0126]
number
[0127] is of type
[0128]
number
[0129] It is.
[0130] In our example, the steps to solve the optimization problem are:
[0131]
number
[0132] The smallest eigenvalue of and its associated eigenvector
[0133]
number
[0134] The step of testing includes the step of finding
[0135]
number
[0136] where:
[0137]
number
[0138] is the smallest eigenvalue.
[0139] In an example, the step of iteratively grouping the segments may include one or more iterations of an iterative process. The iterative process may search for pairs of segments. In other words, the method may search at least some (e.g., all) of the segments of the obtained segmentation in a pair-wise manner. The method may determine whether a first difference between a value of a draft detection objective function for a union of the searched pair of segments and a weighted sum of values of the draft detection objective function for the searched pair of segments is smaller than a first predefined threshold. The (weighted) sum may be weighted based on the area of the (pair of) segments. An example of the first difference is discussed below. The method may alternatively determine whether a second difference between a value of a draft closure objective function for the searched pair of segments and the weighted sum is smaller than a second predefined threshold. The draft closure objective function may reward orthogonality of an input segment to a draft axis of another input segment. An example of the second difference is discussed below. The method may then regroup the searched pair of segments if the first difference is smaller than a first predefined threshold. The method may alternatively regroup the found pair of segments if the second difference is less than a second predetermined threshold.
[0140] The first difference is between the value of the draft detection objective function for the combination of segments and the weighted sum of the values of the draft detection objective function for the two segments of the pair (i.e., the weighted sum of the two respective values of the draft detection objective function for the two segments of the pair). The first difference is any function that tends to vanish when the combination is a draft surface having as draft axis the same as that of the two segments, i.e., when the value of the draft detection objective function tends to be equal to the weighted sum. The difference can be, for example, the difference between the value of the draft detection objective function for the combination and the weighted sum of the values of the function for the two segments.
[0141] The draft detection objective function may be any function that allows for the detection of drafted surfaces, for example by vanishing (or tending to vanish) with respect to the input draft, in which case verifying that the value of the draft detection objective function for the input surface is small will result in verifying that the surface is a drafted surface. Such a function may, for example, be a function that rewards a certain angle between the candidate draft axis of the input surface and the normal vector to the input surface. In an example, such a function may reward orthogonality between the candidate draft axis of the input surface and the difference between the normal vector to the input surface and the average normal vector across the surface. In such an example, when such orthogonality is present, the objective function may tend to vanish. Verifying that this function has a value less than a predefined draft detection threshold corresponds to verifying that the candidate draft axis is in fact the draft axis of the input surface, which in this case is a drafted surface.
[0142] The second difference is between the value of the draft closure objective function for the searched pair of segments and the weighted sum (i.e., the weighted sum of the values of the draft closure objective function for the searched pair of segments). The second difference is any function that tends to vanish when one of the segments is a closing plane of the other segment, i.e., when the value of the draft closure objective function tends to be equal to the weighted sum. The difference can be, for example, the difference between the value of the draft closure function for the searched pair and the weighted sum.
[0143] The draft closure objective function is any function that makes it possible to detect that an input draft face is a closed planar face with respect to another input draft face, e.g., by vanishing (or tending to vanish) with respect to these inputs, in which case verifying that the value of the draft closure objective function is small with respect to these inputs amounts to verifying that one of the inputs is a closed planar face with respect to the other input. To that end, the draft closure objective function is a function that rewards orthogonality of an input segment to the draft axis of another input segment, e.g., by tending to vanish when such orthogonality is present, whereby verifying that this function has a value less than a predefined draft closure threshold corresponds to verifying that the input draft face is in fact a closed planar face with respect to the other input draft face.
[0144] Both the first and second thresholds are predetermined, i.e., predefined, for example, at an early stage of the method. The first threshold may be equal to the second threshold. The first and / or second thresholds may be user defined.
[0145] The value of the draft detection objective function for an input segment may be the minimum eigenvalue of the normal matrix of the input segment. Alternatively, or in addition, the value of the draft closure objective function may be the minimum eigenvalue of a matrix that is a weighted sum of the normal matrices of the other input segments and an identity minus the normal matrix of the input segment. The (weighted) sum may be weighted based on the area of the input segment.
[0146] In an example, the first difference may be of the following type:
[0147]
number
[0148] where S1 and S2 are the two segments of the searched pair,
[0149]
number
[0150] is the normal matrix of the combination of S1 and S2
[0151]
number
[0152] is the smallest eigenvalue of
[0153]
number
[0154] is the normal matrix of S1
[0155]
number
[0156] is the smallest eigenvalue of .
[0157] moreover,
[0158]
number
[0159] is the normal matrix of S2 if S2 has a nonzero draft angle.
[0160]
number
[0161] In the example where segment S2 has a zero draft angle (i.e., the segment is an extrusion),
[0162]
number
[0163] is the normal matrix of S2
[0164]
number
[0165] is the smallest eigenvalue of the matrix
[0166]
number
[0167] teeth,
[0168]
number
[0169] where |S2| is the surface area of S2.
[0170] Furthermore, the matrix
[0171]
number
[0172] is defined as follows:
[0173]
number
[0174] Then, S1 and S2 have non-zero draft angles,
[0175]
number
[0176] is the area of S1,
[0177]
number
[0178] is the area of S2, and
[0179]
number
[0180] where S1 has a non-zero draft angle and S2 has a zero draft angle;
[0181]
number
[0182] is the area of S1,
[0183]
number
[0184] is the area of S2.
[0185] In the example, the second difference may be of the following type:
[0186]
number
[0187] Where:
[0188]
number
[0189] is a matrix
[0190]
number
[0191] where S1 is the other input segment and S2 is the input segment.
[0192]
number
[0193] is the normal matrix of S1
[0194]
number
[0195] is the smallest eigenvalue of
[0196]
number
[0197] is the normal matrix of S2
[0198]
number
[0199] is the smallest eigenvalue of .
[0200] Determining a CAD volume draft operator corresponding to each respective group may include constructing a cross-section curve for each respective group. Constructing the cross-section curve may be based on the cross-section curves of the segments in each respective group. For example, constructing the cross-section curve may include providing, for each segment of each respective group, a respective cross-section curve for the segment. In this case, constructing the cross-section curve may further include iteratively connecting the respective cross-section curves, and a pair of respective cross-section curves is connected if a difference between the respective cross-section curves of the pair is less than a third predetermined threshold.
[0201] The step of providing the respective cross-sectional curves of each segment of the group may include retrieving these cross-sectional curves from a (e.g., remote) memory in which they are further stored for their calculation. These cross-sectional curves may, for example, each be a cross-sectional curve obtainable (e.g., obtained) by the method of parameterization described in US Pat. No. 6,399,433 filed on May 21, 2021 by Dassault Systèmes. Alternatively, the step of providing the respective cross-sectional curves of each segment of the group may include applying the obtaining of these cross-sectional curves. For example, this may include applying the method of parameterization described in US Pat. No. 6,399,433 cited above. In other words, for each segment of the group, the step of providing the respective cross-sectional curves of the segment may include applying the method of parameterization described in US Pat. No. 6,399,433 cited above, including the step of calculating the cross-section described in US Pat. No. 6,399,433, which application results in the cross-sectional curve of the segment.
[0202] When the cross-sectional curves are obtained or obtainable by the aforementioned method described in the above-cited U.S. Patent No. 6,239,963, the cross-sectional curves are parameterized with a natural parameterization that increases along the cross-sectional direction, as described in U.S. Patent No. 6,239,963. For example, such a cross-sectional curve parameterization may be an arc-length parameterization that increases along the cross-sectional direction. Concatenation builds the cross-sectional curve of the draft volume that is a group from the cross-sectional curves of its segments, and using the parameterization provided by U.S. Patent No. 6,239,963 makes it possible to obtain an orientation uniform parameterization of the cross-sectional curve of the draft volume.
[0203] The step of repeatedly connecting each cross-sectional curve includes repeatedly (i.e., one by one) connecting the cross-sectional curves to form a single cross-sectional curve of each group. The step of repeatedly connecting includes connecting the cross-sectional curves two by two, i.e., connecting pairs of cross-sectional curves, where for each pair of cross-sectional curves, the cross-sectional curves are connected if a third difference between each cross-sectional curve of the pair is smaller than a third predetermined threshold. The third difference may be any function, such as distance, that vanishes when the respective cross-sectional curves can be connected (e.g., when they can be connected using their extreme points).
[0204] The third predetermined threshold may be defined by a user, for example, in advance, at an early stage of the method. When the CAD 3D object is measured (e.g., scanned as discussed above), the third predetermined threshold may be defined relative to the noise associated with the measurement, for example, the third predetermined threshold may be proportional to the noise or substantially proportional to the noise. This provides robustness against noise. The method may use the implementation discussed in U.S. Patent Application Publication No. 2020 / 0133994, filed by Dassault Systèmes on August 31, 2021, which is incorporated by reference.
[0205] For each group, determining a CAD volume draft operator corresponding to the respective group may further include determining a draft type of the CAD volume draft operator based on the constructed cross-section curve. The type of the CAD volume draft operator may be a pad operator, which corresponds to adding material by sliding the cross-section curve outwardly along the draft axis. The type of the CAD volume draft operator may alternatively be a pocket operator, which corresponds to removing material by sliding the cross-section curve inwardly along the draft axis. The method obtains the type of the CAD volume draft operator by using the constructed cross-section curve for the corresponding group, for example, by evaluating the proximity or non-proximity of the cross-section curves and the curvature of the cross-section curves, and these characteristics of the curves determine the draft type.
[0206] Determining the draft type may include determining whether the cross-section curve is closed and calculating the total curvature of the cross-section curve. In this case, the CAD volume draft operator is a draft surface (e.g., a split operator) if the cross-section curve is open and the absolute value of the total curvature is strictly less than 2π. The CAD volume draft operator is a pad operator if the cross-section curve is closed and the total curvature is equal to β.2π. The CAD volume draft operator is a pocket operator if the cross-section curve is closed and the total curvature is equal to -β.2π, where β∈{-1,1}. The number β may be of the previously discussed implementation of constructing the cross-section curve. The total curvature may be of the following types:
[0207]
number
[0208] Here, K γ(t) is the algebraic curvature of curve γ at parameter t, where t is the arc length parameter of the arc length parameterization of curve γ in interval I. Using the total curvature allows for the orientation of the surface normal to be utilized to determine the type. For example, material addition corresponds to an outwardly directed normal and material removal corresponds to an inwardly directed normal. The step of determining the draft type depends on the implementation. The method may use the implementation discussed in US Pat. No. 6,399,434, filed Aug. 31, 2021 by Dassault Systèmes, which is incorporated by reference.
[0209] CAD concepts relevant to the present method and / or its context are discussed next.
[0210] The method generally operates on a modeled object, such as a finite CAD model output by the method. A modeled object is any object defined by data stored, for example, in a database. By extension, the expression "modeled object" designates the data itself. Depending on the type of system, the modeled object may be defined by different kinds of data. The system may in fact be any combination of a CAD system, a CAE system, a CAM system, a PDM system and / or a PLM system. In these different systems, the modeled object is defined by the corresponding data. Accordingly, one may speak of CAD objects, PLM objects, PDM objects, CAE objects, CAM objects, CAD data, PLM data, PDM data, CAM data, CAE data. However, these systems are not mutually exclusive, since a modeled object may be defined by data corresponding to any combination of these systems. Hence, a system may well be both a CAD, CAE, PLM and / or CAM system, as will become clear from the definition of such a system provided below.
[0211] By CAD solution (e.g. CAD system or CAD software) is additionally meant any system, software or hardware adapted to at least design a modeled object based on a graphical representation of the modeled object and / or its structured representation (e.g. feature tree), such as CATIA. In this case, the data defining the modeled object includes data enabling the representation of the modeled object. The CAD system may provide a representation of the CAD modeled object, for example, using edges or lines, and in certain cases faces or surfaces. The lines, edges or surfaces may be represented in various ways, for example with non-uniform rational B-splines (NURBS). In particular, a CAD file contains a specification, from which a geometry may be generated, which geometry allows a representation to be generated. The specification of the modeled object may be stored in a single CAD file or in multiple CAD files. A typical size of a file representing a modeled object in a CAD system is in the range of one megabyte per part. And the modeled object may usually be an assembly of several thousand parts.
[0212] In the context of CAD, a modeled object may typically be a 2D or 3D modeled object, representing, for example, a product, such as a part or an assembly of parts, or possibly an assembly of a product. The 2D or 3D modeled object may be a manufactured product, i.e. a product to be manufactured. By "3D modeled object" is meant any object that has been modeled by data that allows its 3D representation. The 3D representation allows the part to be viewed from any angle. For example, a 3D modeled object, when represented in 3D, can be addressed and rotated around any of its axes or around any axis within the screen on which the representation is displayed. This notably excludes 2D icons that are not 3D modeled. The display of 3D representations facilitates design (i.e. increases the speed at which designers statistically accomplish their tasks). This speeds up the manufacturing process in industry, since the design of products is part of the manufacturing process.
[0213] The 2D or 3D modeled object may represent the geometry of a product to be manufactured in the real world, such as a (e.g., mechanical) part or assembly of parts (or equivalently an assembly of parts, since an assembly of parts may be seen as a part itself from the point of view of the method, or the method may be applied independently to each part of the assembly), or more generally any rigid assembly (e.g., a mobile mechanism), for example after completion of a virtual design using a CAD / CAE software solution or CAD / CAE system. CAD / CAE software solutions enable the design of products for a diverse and limitless number of industry sectors, including aerospace, architecture, construction, consumer goods, high tech devices, industrial equipment, transportation, marine, and / or offshore oil / gas production or transportation. Thus, the 3D modeled object designed by the present method may represent an industrial product that may be any machine part, such as a part of a land vehicle (including, for example, automobiles and light truck equipment, racing cars, motorcycles, trucks and motor equipment, trucks and buses, trains), a part of an aircraft (including, for example, airframe equipment, aerospace equipment, propulsion equipment, defense products, air line equipment, space equipment), a part of a naval vessel (including, for example, naval equipment, commercial ships, marine equipment, yachts and work boats, marine equipment), a general machine part (including, for example, industrial manufacturing machinery, mobile heavy machinery or equipment, installation equipment, industrial equipment products, fabricated metal products, tire manufacturing products), an electric machine or electronic component (including, for example, consumer electronics products, security and / or control and / or instrumentation products, computing and communications equipment, semiconductors, medical devices and equipment), a consumer product (including, for example, furniture, home and garden products, leisure products, fashion products, durable consumer goods retailer products, non-durable consumer goods retailer products), packaging (including, for example, food and beverage and tobacco, beauty and personal care, household product packaging).
[0214] CAD systems may be history-based. In this case, the modeled object is further defined by data including the history of its geometric features. The modeled object may in fact be designed by a natural person (i.e., a designer / user) using standard modeling features (e.g., extrusion, revolve, cut, and / or round) and / or standard surface features (e.g., sweep, blend, loft, fill, deform, and / or smooth). Many CAD systems that support such modeling capabilities are history-based systems. This means that the creation history of the design features is usually preserved through aperiodic data flows that link the geometric features together via input and output links. The history-based modeling paradigm has been well known since the early 80s. The modeled object is described by two persistent data representations: the history and the B-rep (i.e., the boundary representation). The B-rep is the result of the calculations defined in the history. The shape of the part that is displayed on the computer screen when the modeled object is represented is the B-rep (e.g., a tessellation of). The history of that part is the design intent. Essentially, the history collects information about the actions that the modeled object has undergone. B-reps can be stored along with the history to make it easier to view complex parts. History can be stored along with the B-rep to allow design modifications of the part according to the design intent.
[0215] By PLM system we additionally mean any system adapted to the management of modeled objects that represent physical, manufactured products (or products to be manufactured). In a PLM system, the modeled objects are therefore defined by data that are suitable for the manufacture of the physical objects. These are usually dimensional and / or tolerance values. It is indeed better to have such values to manufacture the object correctly.
[0216] By CAE solution we mean any solution, hardware or software additionally, adapted to the analysis of the physical behavior of a modeled object. A well-known and widely used CAE technique is the Finite Element Model (FEM), hereafter equivalently called CAE model. FEM usually involves the division of the modeled object into elements, i.e. finite element meshes, whose physical behavior can be calculated and simulated by equations. Such CAE solutions are offered by Dassault Systèmes under the trademark SIMULIA®. Another growing CAE technique involves the modeling and analysis of complex systems consisting of multiple components from different physical disciplines, without CAD geometry data. CAE solutions allow the simulation of products for manufacturing, thus allowing optimization, improvement and validation. Such CAE solutions are offered by Dassault Systèmes under the trademark DYMOLA®. CAE can be used to ensure that various structural requirements (such as, but not limited to, mass, stiffness, strength, durability, etc.) are achieved by the new CAD model. Some of these requirements may also be called key performance indicators (KPIs). In many industrial products (e.g., automobiles, aircraft, consumer packaged goods, high tech), these KPIs are in conflict, e.g., less mass typically means less stiffness, and therefore optimization methods are often applied to find the best trade-off between the KPIs.
[0217] By CAM solution is meant any solution, hardware or software, adapted to manage the manufacturing data of a product. The manufacturing data generally includes data about the product to be manufactured, the manufacturing process, and the necessary resources. A CAM solution is used to plan and optimize the entire manufacturing process of a product. For example, it may provide the CAM user with information about the feasibility of the manufacturing process, the duration, or the number of resources, such as specific robots, that may be used in a particular step of the manufacturing process, allowing decisions about management or necessary investments. CAM is a process that follows a CAD process, and potentially a CAE process. For example, a CAM solution may provide information about machining parameters, or forming parameters that are consistent with the provided draft features in the CAD model. Such CAM solutions are offered by Dassault Systèmes, which is under the trademarks CATIA, Solidworks, or DELMIA®.
[0218] CAD and CAM solutions are therefore closely related. In fact, CAD solutions focus on the design of a product or part, while CAM solutions focus on how to make it. Designing a CAD model is the first step towards computer-aided manufacturing. In fact, CAD solutions offer key functionalities such as feature-based modeling and boundary representation (B-Rep) to reduce the risk of errors and loss of precision during the manufacturing process, which are addressed with CAM solutions. In fact, the CAD model is intended to be manufactured. It is therefore a virtual twin, also called digital twin, of the object to be manufactured, with two objectives: - checking the correct behavior of the object to be manufactured in a specific environment, and - Ensuring the manufacturability of the objects to be produced.
[0219] PDM stands for Product Data Management. A PDM solution means any solution, hardware or software, adapted to manage all types of data related to a particular product. A PDM solution can be used by all the stakeholders involved in the product's life cycle (mainly engineers, but also project managers, financers, salespeople, and buyers). A PDM solution is generally based on a product-oriented database. It allows the stakeholders to share certain data about the product, thus preventing them from using divergent data. Such a PDM solution is offered by Dassault Systèmes, under the trademark ENOVIA®.
[0220] The modeled object taken as input by the method is a (3D) discrete geometric representation of a manufacturing product / mechanical product / mechanical part. A discrete geometric representation is a data structure that includes several discrete sets of data. Each data may specify an element of the product / mechanical part and may be called a discrete element. A discrete geometric representation may be 3D or alternatively 2D. Further alternatively, a discrete geometric representation may be both 3D and 2D, i.e., may include 3D parts that are 3D discrete geometric representations and 2D parts that are discrete geometric representations, such as a hybrid 3D-2D mesh (e.g., for modeling a product with both thin parts modeled with 2D parts and thick parts modeled with 3D parts). A discrete geometric representation may include a large number of such data, for example more than 100, 1000, or 10000.
[0221] In the case of a 3D discrete geometric representation, the 3D discrete geometric representation may be a solid / volume 3D discrete geometric representation of the product / mechanical part, such as a solid 3D finite element model (FEM) or a 3D volume mesh (e.g., a 3D tetrahedral mesh). In such a case, each piece of data may represent a respective geometric entity arranged in 3D space such that the data form a solid representation of the mechanical part / product (i.e., a "solid 3D discrete geometric representation"). Each geometric entity may represent a respective position (i.e., a material point) of the 3D object (in other words, a respective portion of the material that constitutes the solid represented by the 3D object). The aggregation (i.e., union or juxtaposition) of the geometric entities represents the entire 3D object as a solid / volume. The 3D discrete geometric representation may alternatively be a skin 3D discrete geometric representation representing the skin of the product / mechanical part, such as a 3D surface mesh (e.g., a triangular surface mesh) or a tessellation. In such cases, each piece of data may represent a respective geometric entity arranged in 3D space such that the data form a representation of the skin of the mechanical product (i.e., a "skin 3D discrete geometric representation"). In such cases, each geometric entity represents a respective location (i.e., material point) of the exterior surface of the 3D object (in other words, a respective portion of the exterior surface of the volume occupied by the material that makes up the solid represented by the object). The aggregation (i.e., combination or juxtaposition) of the geometric entities, taken as a whole, represents at least a portion of the exterior surface of the object.
[0222] In the case of a 2D discrete geometric representation, each data may represent a respective geometric entity arranged in 2D space. The 2D discrete geometric representation may be a 2D finite element mesh or any 2D mesh. The discrete geometric representation may be associated with one or more thickness values (e.g., a distribution of thickness values across its finite elements). Such a two-dimensional discrete geometric representation may represent, for example, a generally planar product, such as a stamped part (e.g., having a constant thickness value) or a composite part (e.g., having different thickness values).
[0223] The modeled object output / designed by the method may be, for example, a CAD model comprising or residing in a feature tree and / or B-rep. Such a model may originate from a CAE model and may result from a CAE to CAD conversion process that the method may include, for example, at an early stage.
[0224] The CAD model may be feature-based (e.g., it may include a feature tree and, optionally, a corresponding B-rep obtained by executing the feature tree). The feature-based 3D model allows for detection and automatic resolution of geometric errors in the CAD model, such as collisions that affect the manufacturing process (e.g., during the determination of the manufacturing or CAM files discussed later). A collision is an interpenetration between two parts of the 3D model, e.g., due to their relative motion. Furthermore, this collision can sometimes only be detected by a finite element analysis based on the CAD feature-based model. Thus, the resolution of the collision can be performed with the CAD solution or automatically by the CAD solution by iteratively modifying the parameters of the features and performing a finite element analysis.
[0225] As another example, feature-based 3D models (e.g., during the determination of manufacturing or CAM files, discussed later) enable the automatic creation of tool paths for computer numerically controlled (CNC) machines. With CNC, each object to be manufactured gets a custom computer program that is stored and executed by the machine control unit (a microcomputer attached to the machine). The program contains the instructions and parameters that the machine tool follows. Mills, lathes, routers, grinders, and lasers are examples of common machine tools whose operations can be automated by CNC.
[0226] A key feature of a CAD model is that it can be precisely and unambiguously designed by chaining a small number of high-level parameterized design operations (e.g., including but not limited to, sketch, extrude, chamfer) and edited by modifying its high-level parameters. This is a key difference from polyhedral representations such as triangular surface meshes, which can represent arbitrary 3D shapes but do not offer the modification or parameterization capabilities required in an industrial design context.
[0227] Since a CAD model is a parameterized model of a part / product, it is lighter in terms of memory footprint than other models, such as CAE models. Indeed, instead of storing a collection of discrete geometric elements, such as finite elements, a CAD model allows storing a list of features and parameters, which is lighter in terms of storage and memory footprint. Thus, working with a CAD model, compared to, for example, a CAE model, reduces memory requirements for the underlying system in addition to facilitating the editability of the model. This, so to speak, results in the CAE-to-CAD conversion process actually compressing the CAE model into a CAD model that is lighter in terms of memory requirements (e.g., footprint) in addition to turning the CAE model into a more editable CAD model.
[0228] The generation of custom computer programs from CAD files can be automated. Such generation can therefore be error-proof, ensuring perfect reproduction of the CAD model into the manufactured product. CNC is believed to offer greater precision, complexity, and repeatability than is possible with manual machining. Other advantages include greater accuracy, speed, and flexibility, as well as capabilities such as contour machining, which allows for the milling of contour shapes, including those created in a 3D design.
[0229] A B-rep (i.e., boundary representation) is a 3D representation of a mechanical part. Specifically, a B-rep is a persistent data representation that describes a 3D modeled object that represents the mechanical part. A B-rep can be the result of a calculation and / or a series of operations that were performed during the design phase of the 3D modeled object that represents the mechanical part. The shape of the mechanical part that is displayed on a computer screen when the modeled object is represented is a B-rep (e.g., a tessellation of). In an example, a B-rep represents a portion of a model object.
[0230] B-rep includes topological and geometric entities. Topological entities are faces, edges, and vertices. Geometric entities are 3D objects, i.e. surfaces, planes, curves, lines, and points. By definition, faces are the boundary parts of a surface, named support surfaces. Edges are the boundary parts of a curve, named support curves. Vertices are points in 3D space. They are related to each other as follows: The boundary part of a curve is defined by two points (vertices) that lie on the curve. The boundary part of a surface is defined by its boundary, which is the set of edges that lie on the surface. The boundaries of edges of a face are connected by sharing a vertex. Faces are connected by sharing an edge. Two faces are adjacent if they share an edge. Similarly, two edges are adjacent if they share a vertex. In a CAD system, B-Rep collects the "is bounded by" relationship, the relationships between topological entities and the support geometry, and the mathematical description of the support geometry in an appropriate data structure. An interior edge of a B-Rep is an edge that is shared by exactly two faces. By definition, a boundary edge is not shared, it only borders one face. By definition, a boundary face is bounded by at least one boundary edge. A B-Rep is said to be closed if all its edges are interior edges. A B-Rep is said to be open if it contains at least one boundary edge. A closed B-Rep is used to model thick 3D volumes, since it defines the interior portion of the space that (virtually) surrounds the material. An open B-Rep is used to model 3D skins, which represent 3D objects that are small enough that their thickness can be ignored.
[0231] The main advantage of B-Rep over any other representation type used in CAD modeling is its ability to accurately represent any shape. All other representations in use, such as point clouds, distance fields, and meshes, perform an approximation of the shape to represent by discretization. B-Rep, on the other hand, encompasses the surface equations that represent the exact design and thus constitutes a true "master model" for further manufacturing, whether this is the generation of toolpaths for CNC or discretization to the correct sample density for a given 3D printer technology. In other words, by using B-Rep, the 3D model can be an accurate representation of the object to be manufactured. B-Rep is also advantageous for simulating the behavior of the 3D model. In terms of stress, thermal, electromagnetic, or other analyses, it supports local refinement of the simulation mesh to capture physical phenomena, and in terms of kinematics, it supports true contact modeling between curved surfaces. Finally, B-Rep allows for a small memory and / or file footprint, firstly because the representation encompasses surfaces based only on parameters. In other representations, such as meshes, the equivalent surface contains up to many thousands of triangles. Second, B-Reps do not contain any history-based information.
[0232] The method may be included in a production process, which may include, after carrying out the method, manufacturing a physical product corresponding to the modeled object designed / processed / output by the method. The production process may include the following steps: - applying the method (e.g. automatically) thereby obtaining a CAD model including one or more draft faces; - Using the obtained CAD model to manufacture the part / product.
[0233] Using a CAD model for manufacturing specifies any real-world action or sequence of actions that are involved / participate in the manufacturing of the product / part represented by the CAD model. Using a CAD model for manufacturing may include, for example, the following steps: - editing the obtained CAD model; - carrying out simulations based on the CAD model or the corresponding CAE model (e.g. the CAE model from which the CAD model originates, after a CAE to CAD conversion process), such as simulations for validation of mechanical, use and / or manufacturing properties and / or constraints (e.g. structural simulation, thermodynamic simulation, aerodynamic simulation), - editing the CAD model based on the results of the simulation; - optionally (i.e. depending on the manufacturing process used, the production of the mechanical product may or may not include this step), determining (for example automatically) a manufacturing file / CAM file for the production / manufacturing of the manufactured product based on the (for example edited) CAD model, - sending the CAD and / or manufacturing / CAM files to the factory; and / or - Producing / manufacturing (e.g. automatically) the machine product that was originally represented by the model output by the method based on the determined manufacturing / CAM files or CAD models. This may involve (e.g. automatically) feeding the manufacturing / CAM files and / or CAD files to a machine that performs the manufacturing process.
[0234] This final step of production / manufacturing may be called the manufacturing or production step. In this step, for example, the CAD model and / or CAD file are fed to one or more manufacturing machines or computer systems controlling the machines, which manufacture / create the part / product based on the CAD model and / or CAM file. The manufacturing step may include performing any known manufacturing process or sequence of manufacturing processes, for example, one or more additive manufacturing steps, one or more cutting steps (e.g., laser cutting or plasma cutting steps), one or more stamping steps, one or more forging steps, one or more bending steps, one or more deep drawing steps, one or more forming steps, one or more machining steps (e.g., milling steps), and / or one or more punching steps. As the design method improves the design (CAE or CAD) of the model representing the part / product, the manufacturing and its productivity are also improved.
[0235] Editing the CAD model may include performing one or more edits of the CAD model by a user (i.e., a designer), for example, using a CAD solution. The modification of the CAD model may include one or more modifications of each of the geometry and / or parameters of the CAD model. The modification may include any modification or set of modifications performed to the feature tree of the model (e.g., feature parameters and / or specification modifications) and / or modifications performed to the displayed representation (e.g., B-rep) of the CAD model. The modifications may be modifications that maintain the technical functionality of the part / product, i.e., the user performs modifications that may affect the geometry and / or parameters of the model only with the purpose of making the CAD model more technically compliant for downstream use and / or manufacturing of the part / product. Such modifications may include any modification or set of modifications that make the CAD model technically compliant for the specifications of the machine used in the downstream manufacturing process. Such modifications may additionally or alternatively include any modification or set of modifications that make the CAD model technically compliant for further use of the product / part once manufactured, such modification or set of modifications being based on the results of a simulation, for example.
[0236] The CAM file may include a manufacturing step-up model obtained from the CAD model. The manufacturing step-up may include all data necessary to manufacture the machined product such that the machined product has a geometry and / or distribution of materials corresponding to those captured by the CAD model, possibly up to manufacturing tolerance errors. Determining the production file may include applying any CAM (Computer Aided Manufacturing) solution or CAD-to-CAM solution (e.g. any automatic CAD-to-CAM conversion algorithm) for determining (e.g. automatically) the production file from the CAD model. Such a CAM solution or CAD-to-CAM solution may include one or more of the following software solutions, which allow for the automatic generation of manufacturing instructions and tool paths for a given manufacturing process based on a CAD model of the product to be manufactured: - Fusion360, - FreeCAD, - CATIA, - SOLIDWORKS, - NC Shop Floor Programmer from Dassault Systèmes, as shown at https: / / my.3dexperience.3ds.com / welcome / fr / compass-world / rootroles / nc-shop-floor-programmer - NC Mill-Turn Machine Programmer by Dassault Systèmes, as shown at https: / / my.3dexperience.3ds.com / welcome / fr / compass-world / rootroles / nc-mill-turn-machine-programmer, and / or - Powder Bed Machine Programmer from Dassault Systèmes, as shown at https: / / my.3dexperience.3ds.com / welcome / fr / compass-world / rootroles / powder-bed-machine-programmer.
[0237] The product / part may be a molded part, i.e. a part manufactured by molding (e.g. injection molding). In such a case, the production process may include a step of determining a CAM file. This step may be performed automatically by any suitable CAM solution for automatically obtaining the CAM file from a CAD model of the molded part. The step of determining the CAM file may include a step of (e.g. automatically) performing a series of molding inspections based on the CAD model to check that the geometry and / or distribution of the material captured by the CAD model is compatible with the molding, and a step of (e.g. automatically) performing appropriate corrections if the CAD model is not compatible with the molding. The step of inspecting and performing appropriate corrections (if any) may be performed automatically or, alternatively, by a user (e.g. a molding engineer), for example, using a CAD and / or CAM solution that allows the user to perform appropriate corrections to the CAD model, but constrains the user's corrections to make the CAD model comply with the specifications of the molding tool. The inspection may include verifying that the virtual product represented by the CAD model matches the dimensions of the mold and / or verifying that the CAD model is equipped with all the draft angles necessary to release the product as originally known from the mold. The step of determining the CAM file may then further include determining, based on the CAD model, the amount of liquid material to be used for molding and / or the time for curing / solidifying the liquid material in the mold, and outputting the CAM file containing these parameters. The production process then includes performing (e.g., automatically) molding based on the output file, where the mold shapes the liquid material during the determined curing time into a shape that corresponds to the geometry and / or distribution of the material captured by the CAD model, e.g., within a tolerance (e.g., to incorporate draft angles or to modify draft angles for demolding).
[0238] The method is computer-implemented. This means that the steps of the method (or substantially all steps) are performed by at least one computer, or any similar system. The steps of the method are thus performed by a computer, possibly fully automatically, or semi-automatically. In an example, triggering of at least some of the steps of the method may be performed through user-computer interaction. The level of user-computer interaction required depends on the level of automaticity foreseen and may be balanced against the need to implement the user's wishes. In an example, this level may be user-defined and / or predefined.
[0239] A typical example of a computer implementation of the method is to carry out the method using a system adapted for this purpose. The system may comprise a processor coupled to a memory and a graphical user interface (GUI), the memory having recorded thereon a computer program including instructions for carrying out the method. The memory may also store a database. The memory is any hardware adapted for such storage, possibly comprising several physically distinct parts (e.g. one for the program and possibly one for the database).
[0240] FIG. 1 shows an example of a GUI for a system, the system being a CAD system.
[0241] The GUI 2100 may be a typical CAD-like interface, with standard menu bars 2110, 2120, as well as bottom and side toolbars 2140 and 2150. Such menu bars and toolbars contain a set of user-selectable icons, each icon associated with one or more operations or functions known in the art. Some of these icons are associated with software tools adapted for editing and / or working with the 3D modeled object 2000 displayed in the GUI 2100. The software tools may be grouped into workbenches. Each workbench comprises a subset of software tools. In particular, one of the workbenches is an editing workbench that is suitable for editing geometric features of the modeled product 2000. In operation, the designer may, for example, pre-select a portion of the object 2000 and then initiate an operation (e.g., changing dimensions, colors, etc.) or edit geometric constraints by selecting the appropriate icon. For example, a typical CAD operation is modeling a punch or folding a 3D modeled object displayed on the screen. The GUI may, for example, display data 2500 related to the displayed product 2000. In the illustrated example, the data 2500 displayed as a "feature tree" and their 3D representation 2000 relate to a brake assembly including a brake caliper and disc. The GUI may further show various types of graphic tools 2130, 2070, 2080, for example to facilitate 3D orientation of objects, to trigger a simulation of the operation of the edited product, or to render 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.
[0242] FIG. 2 shows an example of a system, which is a client computer system (eg, a user's workstation).
[0243] The example client computer comprises a central processing unit (CPU) 1010 connected to an internal communication BUS 1000, a random access memory (RAM) 1070 also connected to the BUS. The client computer is further provided with a graphics processing unit (GPU) 1110 associated with a 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 memory devices such as a hard drive 1030. Mass memory devices suitable for tangibly embodying computer program instructions and data include, by way of example, semiconductor memory devices such as EPROM, EEPROM, and flash memory devices; magnetic disks such as internal hard disks and removable disks; and all forms of non-volatile memory including magneto-optical disks. Any of the above may be supplemented by or incorporated into specially designed ASICs (application specific integrated circuits). A network adapter 1050 manages access to a network 1060. The client computer may also include a haptic device 1090, such as a cursor control device, a keyboard, or the like. A cursor control device is used in the client computer to allow a user to selectively place a cursor at any desired location on the display 1080. In addition, the cursor control device allows the user to select various commands and input control signals. The cursor control device includes some signal generating devices for inputting control signals to the system. Typically, the cursor control device may be a mouse, and the buttons of the mouse are used to generate the signals. Alternatively or in addition, the client computer system may include a sensitive pad and / or a sensitive screen.
[0244] The computer program may include instructions executable by a computer, the instructions including means for causing the system to perform the method. The program may be recordable on any data storage medium, including the memory of the system. The program may be implemented, for example, in digital electronic circuitry, or in computer hardware, firmware, software, or a combination thereof. The program may be implemented as an apparatus, for example, as an article of manufacture tangibly embodied in a machine-readable storage device for execution by a programmable processor. The method steps may be performed by a programmable processor executing a program of instructions that perform the functions of the method by operating on input data and generating output. Thus, the processor may be programmable and coupled to receive data and instructions from and transmit data and instructions to a data storage system, at least one input device, and at least one output device. The application program may be implemented in a high-level procedural or object-oriented programming language, or, if desired, in assembly or machine language. In either case, the language may be a compiled or interpreted language. The program may be a full installation or update program. Applying the program to the system provides, in either case, the instructions for performing the method. The computer program may alternatively be stored and executed on a server in a cloud computing environment, the server being in communication with one or more clients across a network, in which case a processing unit executes the instructions contained in the program, whereby the method is performed in the cloud computing environment.
[0245] The implementation of the CAD volume draft operator is discussed next.
[0246] The implementation is relevant in the areas of geometry processing, 3D CAD analysis, modeling and editing, 3D reconstruction and recognition, simulation, and experimental design.
[0247] More specifically, the implementation finds some volumetric CAD features from a 3D surface mesh or point cloud that approximates the closed surface and constructs a 3D model from which this surface is derived. Even more specifically, the implementation detects the draft features that were used. The implementation provides a technique that works for any cross section.
[0248] The implementation employs segmentation techniques to divide the 3D data into sub-parts and proceeds to detect which of those sub-parts may be parts of a draft. The implementation then uses conditions to collect sub-parts that are likely to be the result of the same feature. The implementation then detects what kind of volumetric feature should be set (addition or removal of material) with the help of a cross-section orientation uniformity parameterization.
[0249] Such an implementation requires only a small amount of computation due to the efficient implementation of the transition from local to global computations. The number of computations in an efficient implementation is minimized by making the right choices while maximally using the geometric information available in the data. The implementation is very general and can handle any kind of draft, not limited to base shapes like cones or planes.
[0250] A draft operator in a 3D CAD model consists in bending one or more faces of a part relative to a midplane. This feature is used to facilitate the extraction of an object from a mold. The application of a draft operator requires the definition of the draft angle θ and the midplane.
[0251] 3 depicts an example of a draft feature where a draft process is applied to faces 320 and 325 of extrusion 310 to obtain model 315. The resulting drafted faces of faces 320 and 325 are faces 330 and 335, respectively.
[0252] An example of implementation of draft detection is discussed next.
[0253] Basic draft detection surface
[0254]
number
[0255] is a perfect draft surface if and only if it meets the following conditions:
[0256]
number
[0257] Notation
[0258]
number
[0259] is defined as the mean normal of S.
[0260]
number
[0261] Therefore, if S is a fully drafted face,
[0262]
number
[0263] Therefore, equivalently to equation (1), the surface
[0264]
number
[0265] is a full draft face if and only if the following conditions are met:
[0266]
number
[0267] The condition expressed in equation (2) may be relaxed to define what may be an approximately drafted surface.
[0268]
number
[0269] but
[0270]
number
[0271] It is assumed that it is defined as: Here, A S =∫ S dvol S , and vol. S is the standard measure for S, in other words
[0272]
number
[0273] is a measure induced by the Lebesgue measure for
[0274] Next, the relaxation of equation (2) is done for some ε>0, say ε=10 -3 can be expressed as follows:
[0275]
number
[0276] Equation (3) is
[0277]
number
[0278] is equivalent to
[0279]
number
[0280] That
[0281]
number
[0282] Together with noting that, an optimization problem must be solved to determine what the approximate draft angle of surface S can be.
[0283]
number
[0284] this is,
[0285]
number
[0286] The smallest eigenvalue of
[0287]
number
[0288] and its associated eigenvector
[0289]
number
[0290] is equivalent to finding
[0291]
number
[0292] is the minimum for this problem.
[0293] Next, (axis
[0294]
number
[0295] The condition for the surface to be approximated with respect to the draft angle is as follows:
[0296]
number
[0297] Here, the implementation can use (COND) as an approximate representation on a surface such as a mesh or a point cloud. The implementation can be applied to a point cloud, as long as the normal vectors corresponding to the points are also provided to the method.
[0298] For example, on a triangular mesh M(V,E,F), we correspond to a piecewise linear surface S such that:
[0299]
number
[0300] where F is the set of triangular faces of the mesh, |τ| is the area of a triangle τ ∈ F, and n τ is the normal vector of the triangle τ∈F.
[0301] Then in your implementation,
[0302]
number
[0303] so that the draft axis u e Select
[0304]
number
[0305] and the draft angle θ can be calculated as follows:
[0306]
number
[0307] The implementation when applied to an entire surface representing a complex 3D shape is discussed next.
[0308] S
[0309]
number
[0310] The implementation first proceeds to segment the surface, for example using the methods of European Patent Application EP23306186.0, filed July 11, 2023 by Dassault Systèmes, which is incorporated herein by reference. As a result of the segmentation, the implementation divides the surface into partitions of elementary independent sub-surfaces.
[0311]
number
[0312] Put it in.
[0313] Next, the implementation sets a sufficiently small constant tolerance ε>0 (for example, the tolerance value is 5×10 -3 Then, all
[0314]
number
[0315] For implementation, the following process is applied:
[0316] ■
[0317]
number
[0318] The center normal matrix
[0319]
number
[0320] For example, if S(V,E,T) is a triangular mesh,
[0321]
number
[0322] When is a sub-mesh, the implementation uses the discretized formula:
[0323]
number
[0324] ■
[0325]
number
[0326] Eigenvalues of
[0327]
number
[0328] Calculate the following:
[0329] ■
[0330]
number
[0331] If so, the implementation must:
[0332]
number
[0333] is labeled as the potential (basic) draft part and the calculated
[0334]
number
[0335] , centered normal matrix
[0336]
number
[0337] , as well as the average normal
[0338]
number
[0339] Remember.
[0340] ■
[0341]
number
[0342] and
[0343]
number
[0344] If so, the implementation
[0345]
number
[0346] We label as a potential plane part.
[0347] An example of aggregation of draft faces by implementation is discussed next.
[0348] Draft Face Aggregation To aggregate the base draft angles, the implementation uses a technique similar to that described in U.S. Patent Application Publication No. 202002336364, filed August 31, 2021 by Dassault Systèmes and incorporated by reference, with the difference being the aggregation of the central normal matrix.
[0349] For two independent sub-portions S1 and S2 of S detected as potential drafts, the implementation calculates their joint average normal and central normal matrix using the following formulas:
[0350]
number
[0351]
number
[0352] This makes it possible to avoid carrying out the calculations of these elements for all elements of the resulting surface (for example for all faces of the mesh).
[0353] Then in your implementation,
[0354]
number
[0355] The associated smallest eigenvalue of
[0356]
number
[0357] Next, the implementation calculates the draft energy of the collected parts, i.e.,
[0358]
number
[0359] is compared to the weighted sum of the draft energies of the segmented parts. The draft energy of surface S' is a non-negative value
[0360]
number
[0361] It is.
[0362] amount
[0363]
number
[0364] Introduce the following.
[0365] amount
[0366]
number
[0367] is always non-negative, but the closer it is to 0, the less energy (S1,S2) will add up when collected as a single draft part, which means that the implementation is more likely to collect them as a single draft.
[0368] In an implementation, the following criteria may be used to determine whether S1 and S2 should be aggregated.
[0369]
number
[0370] where η is sufficiently small, e.g., 10 -3 It is.
[0371] In some variations, the implementation:
[0372]
number
[0373] is compared with ε to see if S1 ∪ S2 is a potential draft section in the same sense as for the basic draft section.
[0374] The exemplary aggregation discussed is particularly well suited for drafts with similar draft angles, but implementations can be applied to aggregate drafts with extrusions / non-draft extrusions (which can be viewed as drafts with a draft angle value of 0) in order to build an extrusion before applying draft to only some sub-portions of the extrusion.
[0375] 5 shows an example surface with aggregation applied. In fact, the two hidden planes on the back surface perpendicular to the top plane 510 are not drafted, but they should be used to calculate the cross-section curves of the extrusion made before draft.
[0376] In such an example, for the S1 draft and S2 (no draft) extrusions, the average normal and central normal matrix of their joints are calculated using the following formulas:
[0377]
number
[0378] however,
[0379]
number
[0380] is the non-central normal matrix of S2 defined in the Background Art.
[0381]
number
[0382] Next, the amount
[0383]
number
[0384] teeth
[0385]
number
[0386] where
[0387]
number
[0388] teeth
[0389]
number
[0390] is the smallest eigenvalue of .
[0391] In such cases, the implementation maintains information about which sub-portions should be drafted.
[0392] Finally, to aggregate the two surfaces S1 and S2, both consisting of a drafted extrusion and a non-drafted extrusion, the implementation splits the surface into a drafted extrusion face and a non-drafted extrusion face. The implementation then aggregates the average normals and the central normal matrix of the drafted faces using a first formula, and then aggregates the central normal matrix of the non-drafted extrusion face using an aggregation from the already cited US Pat. No. 6,399,133. Finally, the implementation combines the obtained central normal matrices using a formula for combining the drafted and non-drafted central normal matrices:
[0393] An example of adding a closed plane through implementation is discussed next.
[0394] Adding a closed plane If S1 is labeled as a potential draft portion and S2 is labeled as a potential flat portion, the implementation will follow similar principles as in the previously cited US Pat. No. 6,399,633 to determine whether to blend them.
[0395] In the implementation, the matrix
[0396]
number
[0397] Construct the matrix
[0398]
number
[0399] The smallest eigenvalue of
[0400]
number
[0401] Calculate.
[0402] Then, in the implementation, the following quantities
[0403]
number
[0404] Based on δ ⊥ Decide to label S2 as a potentially closed plane of S1 if (S1,S2)≦μ, where μ is sufficiently small (e.g., 10 -3 ).
[0405] An example of constructing basic cross-sectional curves according to the implementation will now be discussed.
[0406] Basic section curve construction To obtain approximated cross-sectional curves for extruded parts with basic draft (and without draft) that are parameterized to be consistent with the surface orientation, the implementation uses parameterization and curve adaptation methods as described in U.S. Patent No. 5,399,433, filed by Dassault Systèmes on May 21, 2021, and incorporated by reference.
[0407] For non-draft extruded parts, the base cross section is calculated as in the already cited US Pat. No. 6,233,636, whereas for draft parts, the implementation calculates the parameterization using the already cited US Pat. No. 6,233,636 and defines the section plane as follows:
[0408]
number
[0409] and p max =argmax p∈S (u e ·p).
[0410] In the implementation, the cross-sectional plane is p max Including u e 5. Let us define the azimuth plane as a plane perpendicular to the azimuth plane (eg, plane 510 in FIG. 5).
[0411] point p i To project from the drafted face onto the section plane, the implementation does the following: -
[0412]
number
[0413] and u 2,i =u 3,i ×u e =(u e ×n i )×u e Let us assume that. - next,
[0414]
number
[0415] It is. -u e Projection of a point onto a plane perpendicular to
[0416]
number
[0417] Think about it. At this time,
[0418]
number
[0419] and
[0420]
number
[0421] are the eigenvectors of the central normal matrix associated with the higher eigenvalues. Furthermore, P=Pproj(S) is the set of points from which the implementation can calculate the sketch / section of the draft, where
[0422]
number
[0423] It is.
[0424] FIG. 4 shows a schematic example of a projection.
[0425] In this case, for p ∈ S, the parameterization u(p) is the vector field
[0426]
number
[0427] where: ■ h0 is the height of the section support plane; ■ r0(u(p)) is the radius of curvature at the height of the cross-section support plane; ○ r0(u(p)) is
[0428]
number
[0429] where Kmax(p) is the maximum curvature value at p, ■ e u(p) is the cross section
[0430]
number
[0431] is a unit vector aligned with ■ h(p) is the draft axis u e is the height of p relative to the e ·p.
[0432] Figure 6 shows a representation of the parameterization discussed above. Figure 7 shows the results obtained by the parameterization, where the grayscale color gradient shows the evolution of u(p), so that parts with the same color have the same parameter u(p) and parts with similar colors have close values of this parameter.
[0433] Examples of cross-section aggregation by implementation are discussed next.
[0434] Section Aggregation In the implementation, the basic cross-section curves are then aggregated to calculate the complete cross-section. In some cases, even if the aggregation of adjacent drafted faces is valid, the obtained cross-section curves may intersect or not connect with each other. Therefore, some known techniques, such as the technique used in the already cited US Pat. No. 6,233,639, cannot be used.
[0435] Figure 8 represents an example of such a case. In this example, plane 810 and plane 820 are drafted, while plane 830 corresponds to the section plane. Before the draft, the connection between these planes is not continuous. Therefore, the projected curves should follow Figure 9, which clearly intersects.
[0436] To combine such cross sections, an implementation may split or stretch the curves where they intersect before aggregating the curves. Thus, during aggregation, an implementation may consider, for example, the stretched base curve: - an infinite line to a segment, e.g. line 1010 to segment 1020 in FIG. 10; - a complete circle for an arc, e.g., circle 1110 for arc 1120 in FIG. 11, and - A stretched spline with an extreme tangent to the spline, for example stretched spline 1220 for spline 1220 in FIG.
[0437] For the combination of base curves, the implementation considers the resulting curve stretched at its extreme tangents, as in the case of the spline depicted in FIG.
[0438] Additionally, an implementation may only construct drafts that have closed cross-sectional curves.
[0439] An extrusion part S' with a drafted face is made up of several basic extrusion parts with and without draft.
[0440]
number
[0441] Each cross-sectional curve is a collection of
[0442]
number
[0443] If S′ is in the cross-sectional plane of S′, then the implementation constructs the aggregated cross-section, for example using the following algorithm:
[0444] Selected Start
[0445]
number
[0446] About ■
[0447]
number
[0448] and ■ While γ is not closed, 〇
[0449]
number
[0450] S tot adjacent to
[0451]
number
[0452] Choose If no such l exists, ■ Keep γ only if it is closed (or if it can be closed, for example, as described in U.S. Patent Application Publication No. 202002333324, filed March 22, 2022 by Dassault Systèmes, and incorporated by reference). ■ Interrupt γ and
[0453]
number
[0454] The tip of is extended or cut to form γ' and
[0455]
number
[0456] to obtain.
[0457] ■
[0458]
number
[0459] where C(γ1, γ2) are defined as in the already cited US Pat. No. 5,993,366. The algorithm is
[0460]
number
[0461] We can then run m on each of the m aggregated curves to construct m aggregated curves.
[0462] Examples of pad / pocket classifications by implementation are discussed next.
[0463] Pad / Pocket Classification Finally, to determine whether the removed extrusion is a pad or a pocket (before applying the draft angle), the implementation uses a procedure exactly like that of the already cited US Pat. No. 5,399,633.
Claims
1. 1. A computer-implemented method for CAD volumetric draft operator detection in a discrete 3D model representing a mechanical part, comprising: - obtaining a segmentation of said discrete 3D model, said discrete 3D model including a skin representing an outer surface of said mechanical part, said segmentation including segments each representing a skin portion; - a step of iteratively grouping segments, where the two segments of a segment pair are: each segment of said pair is a drafted surface, both segments having the same respective draft axis; Both segments have the same respective draft angles relative to said respective draft axes; or At least one segment has a zero angle relative to said respective draft axis; or One segment of the pair is a drafted face and the other segment is a closed planar face. Grouped in case At least one iteration groups pairs of segments with at least one segment having a non-zero draft angle relative to the respective draft axis; determining one or more CAD volume draft operators, each CAD volume draft operator corresponding to a respective group; A computer-implemented method comprising:
2. The method includes determining all segments that are drafted faces, [0010] performing a test as to whether where S is a segment and n p 2. The method of claim 1, wherein: p is the normal vector to segment S at point p, and the faces that satisfy the test are determined to be draft faces.
3. The step of performing the test comprises, for each segment S: [0025] and T S (u)≦ε, [0030] and [0045] is defined by A S = ∫ S Dvol S And vol. S is a reference measure for S, ε>0, [0050] teeth, [006] The method of claim 2, wherein the mean normal of S is defined as:
4. The evaluation is of type [0070] where: [0080] is of type [0090] The method according to claim 3, wherein
5. The step of solving the optimization problem comprises: ##EQU00011## The smallest eigenvalue of [0010] and its associated eigenvector ##EQU00012## wherein said step of testing includes the step of finding ##EQU00013## testing the ##EQU00014## The method of claim 4 , wherein: is the smallest eigenvalue.
6. The step of repeatedly grouping segments comprises: - searching for pairs of segments, - a determining step, whether a first difference between a value of the draft detection objective function for the union of the segments of the searched pair and a weighted sum of the values of the draft detection objective function for the segments of the searched pair, the weighted sum being based on the areas of the segments, is less than a first predetermined threshold (ε); or A second difference (δ) between the value of a draft closure objective function that rewards orthogonality of an input segment with respect to the draft axis of another input segment for the segment of the searched pair and the weighted sum. ⊥ (S 1 , S 2 ) is less than a second predetermined threshold determining - grouping the segments of the searched pair if the first difference is smaller than the first predetermined threshold or if the second difference is smaller than the second predetermined threshold. The method of claim 1 , comprising one or more repetitions of:
7. the value of the draft detection objective function for an input segment is the smallest eigenvalue of a normal matrix for the input segment; and / or 7. The method of claim 6, wherein the value of the draft closure objective function is the smallest eigenvalue of a matrix that is a weighted sum of a normal matrix of the other input segments and an identity minus the normal matrix of the input segment, the sum being weighted based on the area of the input segment.
8. The first difference is that the type ##EQU00015## where S 1 and S 2 are the two segments of the searched pair, ##EQU00016## , S 1 and S. 2 Normal matrix of the combination of ##EQU00017## is the smallest eigenvalue of [0018] , S 1 Normal matrix of [0019] is the smallest eigenvalue of [0020] , S 2 S when has a non-zero draft angle 2 Normal matrix of ##EQU00021## is the smallest eigenvalue of S 2 S when has zero draft angle 2 Normal matrix of [0022] is the smallest eigenvalue of [0023] At this time, S 1 and S 2 has a non-zero draft angle, [0024] Is S 1 is the area of [0025] Is S 2 is the area of, and [0026] At this time, S 1 has a non-zero draft angle, and S 2 has zero draft angle, [0027] Is S 1 is the area of [0028] Is S 2 and / or The second difference is that the type [0029] where [0030] is a matrix [0031] is the smallest eigenvalue of S 1 is the other input segment, S 2 is the input segment, [0032] , S 1 The normal matrix [Equation 33] is the smallest eigenvalue of [0034] , S 2 The normal matrix [Equation 35] is the smallest eigenvalue of however, [0036] teeth, [Equation 37] S defined as 2 is a non-central normal matrix of, which here represents a normal vector, |S 2 | is S 2 The method of claim 7, wherein the surface area is
9. The method of claim 1 , wherein for each group, determining the CAD volume draft operator corresponding to the respective group comprises constructing a cross-section curve for the respective group.
10. The step of constructing the cross-sectional curve comprises: - for each of said groups of segments, providing a respective cross-sectional curve of said segment; - iteratively connecting the respective cross-section curves, wherein pairs of respective cross-section curves are connected if a third difference between the respective cross-section curves of the pair is less than a third predetermined threshold.
11. 11. The method of claim 9 or 10, wherein for each group, determining the CAD volume draft operator corresponding to the respective group further comprises determining a draft type of the CAD volume draft operator based on the constructed cross-section curves.
12. The step of determining the draft type comprises: - determining whether the cross-sectional curve is closed; - calculating the total curvature of said cross-sectional curve; Including, the CAD volume draft operator is a draft face if the cross-section curve is open and the absolute value of the total curvature is strictly less than 2π, and the CAD volume draft operator is a pad operator if the cross-section curve is closed and the total curvature is equal to β2π; the CAD volume draft operator is a pocket operator if the cross-section curve is closed and the total curvature is equal to -β2π; where β∈{−1,1} and optionally the total curvature is of type [Equation 38] where K γ The method of claim 11 , wherein (t) is the algebraic curvature of the curve γ at the parameter t.
13. A computer program comprising instructions for carrying out the method according to any one of claims 1 to 12.
14. 14. A computer readable data storage medium having recorded thereon the computer program of claim 13.
15. 14. A computer system comprising a processor coupled to a memory, the memory having recorded thereon the computer program of claim 13.
Citation Information
Patent Citations
Segmenting a 3D modeled object representing a mechanical part
EP4044116A1
Machine-learning for 3D segmentation
EP4057222A1
Parameterization of CAD model
EP4092558A1
CAD volume extrusion operator detection
EP4141725A1
Sketch-processing
EP4250164A1