Designing parts characterized by concavities and convexities
By using graphical user interaction and automatic recognition methods in CAD systems, the problem of low efficiency in recognizing concave and convex features in mechanical design has been solved, achieving efficient and ergonomic automatic recognition of concave and convex features, thus improving design efficiency and accuracy.
Patent Information
- Application Number
- CN202010632396.7
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Priority Date
- 2019-07-04
- Filing Date
- 2020-07-02
- Publication Date
- 2025-10-24
- Estimated Expiration
- 2040-07-02
AI Technical Summary
In mechanical design, existing methods are insufficient for efficiently identifying and selecting the concave and convex features that represent mechanical parts, resulting in insufficient design efficiency and ergonomics.
Using a CAD system, at least one face of a B-rep is selected via graphical user interaction. The system automatically identifies and outputs a set of faces representing concavity and convexity. This involves a two-step process: first, at least one face is selected; then, the set of faces is automatically identified. The set of faces is determined by the perimeter of the shortest boundary curve and its difference from the B-rep.
It achieves efficient and ergonomic recognition of concave and convex features. Users only need to select a portion of the surface to automatically identify the complete concave and convex features, improving design efficiency and accuracy.
Smart Images

Figure CN112182790B_ABST
Abstract
Description
TECHNICAL FIELD
[0001] The present invention relates to the field of computer programs and systems, and more specifically, to a method, system and program for designing a 3D modeling object representing a mechanical part with a CAD system. BACKGROUND
[0002] Many systems and programs for the design, engineering and manufacturing of objects are available on the market. CAD is the acronym for Computer Aided Design, for example it relates to software solutions for designing objects. CAE is the acronym for Computer Aided Engineering, for example it relates to software solutions for simulating the physical behavior of future products. CAM is the acronym for Computer Aided Manufacturing, for example it relates to software solutions for defining manufacturing processes and operations. In such computer aided design systems, the graphical user interface plays an important role for the efficiency of the technology. These technologies can be embedded within a Product Lifecycle Management (PLM) system. PLM refers to a business strategy that enables companies to share product data, apply common processes, and leverage corporate knowledge across extended enterprise boundaries, from concept to the cemetery. The PLM solution offered by Dassault Systemes (under the trademarks CATIA, ENOVIA and DELMIA) provides 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 connects to both the Engineering and Manufacturing hubs. Together these systems provide an open object model to connect products, processes, resources to enable dynamic, knowledge-based product creation and decision support that drives optimized product definition, manufacturing preparation, production and service.
[0003] In the context of mechanical design, a relief is a functional feature represented by faces of a B-rep representing at least a portion of a mechanical part. It can be difficult to identify and / or select all the faces representing the relief.
[0004] Existing methods for relief identification and / or selection suffer from lack of efficiency and / or ergonomics.
[0005] Within this context, there is still a need for improved methods for designing a mechanical part. SUMMARY
[0006] Thus, there is provided a computer-implemented method for designing a 3D modeling object representing a mechanical part with a CAD system. The method comprises displaying a B-rep representing at least a portion of the mechanical part. The B-rep has faces and edges. The method further comprises selecting, by a graphical user interaction, at least one face of the B-rep. The method further comprises automatically identifying, by the CAD system, a face set. The face set comprises the at least one selected face. The face set represents an undercut. Identifying the face set comprises determining a first face set and a second face set. Both the first face set and the second face set comprise the at least one face. The first face set represents a recess and the second face set represents a protrusion. Identifying the face set further comprises selecting, among the first face set and the second face set, the face set having the shortest boundary curve length and being different from both the at least one selected face and the B-rep.
[0007] This constitutes an improved method for designing a mechanical part.
[0008] Significantly, the method allows identifying a face set representing an undercut in a B-rep. In other words, the method allows determining information relevant for the mechanical design. Significantly, the face set representing the undercut, once identified, can be output to a user so that design operations can be performed on the face set. The method can further comprise automatically and in a uniform manner performing a single design operation on all faces and / or edges of the undercut.
[0009] Furthermore, the method automatically identifies the face set. In other words, the method does not involve user actions at said identifying. The method is thus ergonomic.
[0010] Furthermore, the method proceeds in two steps, first selecting at least one face, and then identifying a face set comprising the at least one selected face and representing an undercut. This two-step approach improves efficiency and ergonomics, as the user only has to select a portion of the undercut (i.e. at least one face) for the undercut to be automatically identified.
[0011] This two-step approach actually allows the user to select at least one face in a simple manner, as at least one face does not need to contain all faces representing the undercut. For example, at least one face can contain only one face (i.e. a single face). Then, the automatic identification of the face set can derive the face set (e.g. iteratively) from the at least one selected face. In other words, the automatic identification can iteratively expand the at least one face with adjacent faces until a face set representing the undercut is found. In other words, the user simply selects one face to then automatically identify an undercut of which the one face only represents a portion of. This makes the method particularly ergonomic and efficient.
[0012] Moreover, the identification of the face set itself also proceeds in a two-step approach, first determining a first face set and a second face set, and then selecting one of them. This makes the method efficient and robust. Indeed, the concavity / convexity including at least one face can be convex or concave, but the method identifies the concavity / convexity without knowing whether it is convex or concave. Remarkably, because at least one of the first face set and the second face set (e.g. only one) is the face set that truly represents the concavity / convexity, and the method determines both the face set representing the convexity and the face set representing the concavity (both face sets including at least one face) in any case by looking for both. This ensures that at least one set representing the concavity / convexity is determined. Then, selecting the set representing the concavity / convexity among the first face set and the second face set allows outputting to the user one of the two sets representing the concavity / convexity. Thus, when the user selects only a small portion of the concavity / convexity (i.e. at least one face), he / she gets the concavity / convexity he / she wanted to get.
[0013] The selection selects among the first face set and the second face set the face set having the shortest boundary curve perimeter and being different from both the selected at least one face and the B-rep. Now, when selecting at least one face, the user expects that the face set including at least one face is identified. This face set is used to represent the concavity / convexity. Thus, this face set should not include too many faces, but only the faces representing the concavity / convexity. Selecting among the first face set and the second face set the face set having the shortest boundary curve perimeter allows identifying a face set that does not include too many faces and that truly represents the concavity / convexity. This is an efficient way of selecting among the two determined face sets the face set that truly represents the concavity / convexity. Indeed, one can say that "the smallest concavity / convexity including at least one face is identified" or "at least one face is extended to the smallest concavity / convexity including it". In other words, when the user selects only a portion of the concavity / convexity he / she wants to select, an automatic "smallest concavity / convexity identification" is provided to the user.
[0014] Moreover, the ability to identify the concavity / convexity independently of any knowledge of whether it is convex or concave is particularly advantageous. The user indeed only has to select a small portion of the concavity / convexity he / she wants to select completely (i.e. at least one face), and then the concavity / convexity is automatically identified, whether it is convex or concave, of which the user can indeed not know. This is more advantageous when the B-rep is open, in which case, as further discussed below, the concepts of protrusion and indentation can be visually ambiguous for the user.
[0015] The method can comprise one or more of the following operations:
[0016] - the first set of faces comprises a first connection set of one or more faces that do not contain a convex internal edge and a rounded face, and the second set of faces comprises a second connection set of one or more faces that do not contain a concave internal edge and a filet face;
[0017] - the first connection set of one or more faces is bounded only with convex edges and / or rounded faces, and the second connection set of one or more faces is bounded only with concave edges and / or filet faces;
[0018] - the first set of faces contains a first connection set of one or more faces, and the second set of faces contains a second connection set of one or more faces;
[0019] - at least one face contains one face of the B-rep;
[0020] - a set of faces has the shortest bounding curve relative to another set of faces in the following cases:
[0021] • the bounding curve perimeter of the set of faces is strictly less than the bounding curve perimeter of the other set of faces; or
[0022] • the bounding curve perimeter of the set of faces is equal to the bounding curve perimeter of the other set of faces, and the length of the bounding box of the set of faces is less than the length of the bounding box of the other set of faces;
[0023] - selecting a set of faces comprises:
[0024] • determining:
[0025] ■ whether the first set of faces or the second set of faces is at least one face; and
[0026] ■ whether the first set of faces or the second set of faces is a B-rep; then
[0027] • if neither the first set of faces nor the second set of faces is a B-rep, and if neither the first set of faces nor the second set of faces is at least one face:
[0028] ■ determining whether the bounding curve perimeter of the first set of faces is equal to the bounding curve perimeter of the second set of faces; and
[0029] ■ if the bounding curve perimeter of the first set of faces is equal to the bounding curve perimeter of the second set of faces, comparing the length of the bounding box of the first set of faces and the length of the bounding box of the second set of faces;
[0030] - the B-rep is an open B-rep;
[0031] - the B-rep corresponds to a physical surface of a mechanical part;
[0032] - the mechanical part is:
[0033] • molded parts;
[0034] • machined parts;
[0035] • drilled parts;
[0036] • turned parts;
[0037] • forged parts;
[0038] • stamped parts; and / or
[0039] • folded parts; and / or
[0040] - concave / convex are:
[0041] • mass-reduction features;
[0042] • space-reserving features;
[0043] • fixer features;
[0044] • tightness features;
[0045] • adjustment features;
[0046] • positioning features;
[0047] • mechanical joint features;
[0048] • cooling features;
[0049] • outer-voluted or cylindrical mechanical joint features;
[0050] • assembly features;
[0051] • reinforcement features; and / or
[0052] • support for all machined and drilled protruding features.
[0053] There is further provided a computer program comprising instructions for carrying out the method.
[0054] There is further provided a computer-readable storage medium having recorded thereon the computer program.
[0055] There is further provided a system comprising a processor coupled to a memory having recorded thereon the computer program and a graphical user interface. BRIEF DESCRIPTION OF DRAWINGS
[0056] Embodiments of the application will now be described, by way of non-limiting examples only, and with reference to the accompanying drawings in which:
[0057] Figure 1 An example of a graphical user interface of the system is shown;
[0058] Figure 2 An example of a system is shown; and
[0059] Figures 3 to 32 The method is shown. DETAILED DESCRIPTION
[0060] The method is computer-implemented. This means that the steps (or substantially all the steps) of the method are performed by at least one computer or any similar system. Thus, the steps of the method are performed by a computer, possibly fully automatically or semi-automatically. In examples, at least some of the steps of triggering the method can be performed by user-computer interaction. The level of user-computer interaction required can depend on the level of automation foreseen and be balanced with the need to implement the user's wishes. In examples, this level can be user-defined and / or pre-defined.
[0061] A typical example of computer-implemented execution of a method is to execute the method with a system adapted for this purpose. The system can comprise a processor coupled to a memory, on which is recorded a computer program comprising instructions for executing the method. The memory can also store a database. The memory is any hardware adapted for such storage, possibly comprising several physically distinct parts (for example one for the program and possibly one for the database).
[0062] The method generally manipulates modeling objects. A modeling object is any object defined by data stored for example in a database. By extension, the expression "modeling object" designates the data itself. The system can be a CAD system and the modeling objects are defined by corresponding data. One can thus say CAD objects.
[0063] By CAD system, it is additionally meant any system adapted at least to design modeling objects based on a graphical representation of the modeling objects (for example CATIA). In this case, the data defining the modeling objects comprises data allowing to represent the modeling objects. The CAD system can provide a representation of the CAD modeling objects for example using edges or lines (in some cases with faces or surfaces). The lines, edges or surfaces can be represented in various ways, for example Non-Uniform Rational B-Splines (NURBS). In particular, a CAD file contains such specifications from which geometry can be generated, which in turn allows to generate a representation. The specifications of the modeling objects can be stored in a single or multiple CAD files. The typical size of a file representing a modeling object in a CAD system is in the range of 1 megabyte per part. And a modeling object can generally be an assembly of thousands of parts.
[0064] In the context of CAD, a modeled object can generally be a 3D modeled object, for example to represent a product (e.g. a part or an assembly of parts), or possibly an assembly of products. By "3D modeled object", it means any object that is modeled by data allowing its 3D representation. The 3D representation allows to view the part from all angles. For example, a 3D modeled object when 3D represented can be manipulated and turned around any of its axes or around any axis in the screen displaying the representation. This obviously excludes 2D icons, which are not 3D modeled. The display of the 3D representation facilitates the design (i.e. improves the speed of the designer to complete his task statistically). This accelerates the manufacturing process in industry, since the design of the product is part of the manufacturing process.
[0065] A 3D modeled object can represent the geometry of a product to be manufactured in the real world after completion of its virtual design, for example with a CAD software solution or CAD system, for example a (e.g. mechanical) part or an assembly of parts (or equivalently an assembly of parts, since from the point of view of the method, an assembly of parts can be considered as a part itself, or the method can be applied independently to each part of the assembly), or more generally any rigid assembly (e.g. a mobile mechanism). CAD software solutions allow to design products in a wide variety and unlimited range of industrial fields, including: aerospace, architecture, construction, consumer goods, high-tech equipment, industrial equipment, transportation, marine and / or offshore oil / natural gas production or transportation. A 3D modeled object designed by the method can thus represent an industrial product, which can be any mechanical part, for example a part of a land vehicle (including for example, automotive and light truck equipment, racing cars, motorcycles, truck and electrical equipment, trucks and buses, trains), a part of an aircraft (including for example, fuselage equipment, aerospace equipment, propulsion equipment, defense products, aviation equipment, space equipment), a part of a naval vessel (including for example, naval equipment, merchant ships, offshore equipment, yachts and workboats, marine equipment), a general mechanical part (including for example, industrial manufacturing machinery, heavy mobile machinery or equipment, installed equipment, industrial equipment products, metalworking products, tire manufacturing products), an electronic mechanical or electronic part (including for example, consumer electronics, security and / or control and / or instrumentation products, computing and communication equipment, semiconductors, medical devices and equipment), consumer goods (including for example, furniture, home and garden products, leisure products, fashion products, durable goods retailer products, textile retailer products), packaging (including for example, food and beverage and tobacco, beauty and personal care, home products packaging).
[0066] In examples, the mechanical part designed by the method is any one or any combination of a molded part (i.e., a part manufactured by a molding manufacturing process), a machined part (i.e., a part manufactured by a machining manufacturing process), a drilled part (i.e., a part manufactured by a drilling manufacturing process), a turned part (i.e., a part manufactured by a turning manufacturing process), a forged part (i.e., a part manufactured by a forging manufacturing process), a stamped part (i.e., a part manufactured by a stamping manufacturing process), and / or a folded part (i.e., a part manufactured by a folding manufacturing process). The method is particularly efficient for such examples of designing mechanical parts that often include undercuts. In particular examples of these examples, the mechanical part designed by the method is any one or any combination of a molded part, a turned part, a stamped part, and / or a folded part. The method is particularly efficient for such examples of designing mechanical parts that particularly often include undercuts.
[0067] Figure 1 An example of a GUI of a system is shown, wherein the system is a CAD system.
[0068] The GUI 2100 can be a typical CAD-like interface with standard menu bars 2110, 2120 and bottom and side toolbars 2140, 2150. Such menu bars and toolbars contain a set of user-selectable icons, each of which is associated with one or more operations or functions, as known in the art. Some of these icons are associated with software tools adapted to edit and / or act on the 3D modeled object 2000 displayed in the GUI 2100. The software tools can be grouped into workbenches. Each workbench comprises a subset of software tools. In particular, one of the workbenches is an editing workbench adapted to edit the geometric features of the modeled product 2000. In operation, a designer can for example pre-select a portion of the object 2000 and then initiate an operation (e.g., change dimensions, color, etc.) or edit a geometric constraint by selecting an appropriate icon. For example, a typical CAD operation is the stamping or folding of the 3D modeled object displayed on the screen. The GUI can for example display data 2500 related to the displayed product 2000. In the example of the figure, the data 2500, displayed as a "feature tree", and its 3D representation 2000 belong to a brake assembly comprising a brake caliper and a brake disc. The GUI can further illustrate various types of graphical tools 2130, 2070, 2080, for example to facilitate the 3D orientation of the object, to trigger a simulation of the operation on the edited product or to present various properties of the displayed product 2000. A cursor 2060 can be controlled by a haptic device to allow the user to interact with the graphical tools.
[0069] Figure 2 An example of a system is shown, wherein the system is a client computer system, for example a workstation of a user.
[0070] The client computer of this example includes 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 memory device controller 1020 manages access to a mass memory device (e.g., a hard disk drive 1030). Mass memory devices suitable for tangibly embodying computer program instructions and data include all forms of non-volatile memory, including by way of example semiconductor memory devices, e.g., EPROM, EEPROM, and flash memory devices; magnetic disks, e.g., internal hard disks and removable disks; magneto-optical disks; and CD-ROM disks 1040. Any of the foregoing can be supplemented by, or incorporated in, specially- designed ASICs (application-specific integrated circuits). A network adapter 1050 manages access to a network 1060. The client computer can also include haptic devices 1090, such as a cursor control device, keyboard, etc. A cursor control device is used in the client computer to allow the user to selectively position a cursor at any desired position on a display 1080. Furthermore, the cursor control device allows the user to select various commands and input control signals. The cursor control device includes a number of signal generating devices for inputting control signals to the system. Typically, the cursor control device can be a mouse, the mouse buttons being used to generate the signals. Alternatively or additionally, the client computer system can include a sensitive pad and / or a sensitive screen.
[0071] A computer program can include instructions executable by a computer, including units for causing the above-described system to perform the method. The program can be recordable on any data storage medium including the system's memory. The program can be implemented in, for example, digital electronic circuitry, or in computer hardware, firmware, software, or in combinations thereof. The program can be implemented as apparatus, such as a product stored on a storage device, tangibly embodied in a machine-readable storage medium for execution by a programmable processor. The method steps can be performed by a programmable processor executing a program of instructions to perform functions of the method by operating on input data and generating output. The processor can therefore be programmable and coupled to receive data and instructions from, and to transmit data and instructions to, a data storage system, at least one input device, and at least one output device. The application program can be implemented in a high level procedural or object oriented programming language to be executed by a general purpose computer or a digital signal processor, or in assembly or machine language. In any case, the language can be a compiled or interpreted language. The program can be a complete installation program or an update program. Application of the program on the system in any case results in instructions for performing the method.
[0072] "designing a 3D modeling object" specifies any action or series of actions that are at least part of the process of detailing a 3D modeling object. The method can therefore include creating a 3D modeling object from scratch. Alternatively, the method can include providing a previously created 3D modeling object and then modifying the 3D modeling object.
[0073] The method can be included in a manufacturing process, which can include producing a physical product corresponding to the modeling object after performing the method. In any case, the modeling object designed by the method can represent a manufactured object. The modeling object can therefore be a modeling solid (i.e., a modeling object representing a solid). The manufactured object can be a product, such as a part or an assembly of parts. Because the method improves the design of the modeling object, the method also improves the manufacturing of the product and therefore improves the productivity of the manufacturing process.
[0074] The display of a B-rep representing at least part of a mechanical part is now discussed. Prior to this discussion, reference is now made to Figures 3-25 The B-rep concept involved in the method is discussed.
[0075] B-Rep consists of topological entities and geometric entities. Topological entities are: faces, edges and vertices. Geometric entities are 3D objects: surfaces, planes, curves, straight lines, points. By definition, a face is a bounded part of a surface, called a bounding surface. An edge is a bounded part of a curve, called a bounding curve. A vertex is a point in 3D space. They are interrelated as follows. A bounded part of a curve is defined by two points (vertices) on the curve. A bounded part of a surface is defined by its boundary, which is a set of edges that lie on the surface. The edges of the boundary of a face are connected by sharing vertices. Faces are connected by sharing edges. Two faces are adjacent if they share an edge. Similarly, two edges are adjacent if they share a vertex. Figure 3 A B-rep of a cylindrical slot made of three faces: a top plane and two side cylindrical faces is shown. Figure 3 A perspective view of the slot is shown. The visible faces, edges and vertices are numbered. Figure 4 An exploded view of all faces is shown. Repeated numbers show edge and vertex sharing. Face 1 is a bounded part of a plane. The boundary of face 1 includes edges 4 and 5, each of which is bounded by vertices 10 and 11. Both of them have the same bounding circle. Face 2 is bounded by edges 6, 8, 5 and 13, all of which lie on the infinite cylindrical surface. Face 1 and face 2 are adjacent because they share edge 5. Face 2 and face 3 are adjacent because they share edge 8 and edge 13. Face 1 and face 3 are adjacent because they share edge 4. Figure 5 A diagram illustrating the "is bounded by" topological relations of a B-Rep of Figure 3 and Figure 4 A diagram illustrating the "is bounded by" topological relations of a B-Rep of Figure 6 A diagram illustrating the relations between topological entities (faces, edges, vertices) of a B-rep of Figure 4 A diagram illustrating the relations between topological entities (faces, edges, vertices) of a B-rep of Figure 7 Supporting geometry is shown. In a CAD system, a B-Rep collects the "is bounded by" relations, the relations between topological entities and supporting geometry, and the mathematical description of the supporting geometry in an appropriate data structure.
[0076] By definition, an internal edge of a B-Rep is shared by exactly two faces. By definition, a boundary edge is not shared, it forms the boundary of only one face. By definition, a boundary face is bounded by at least one boundary edge. A B-Rep is called closed if all its edges are internal edges. A B-Rep is called open if it includes at least one boundary edge. Figure 3 A B-Rep of the example shown in Figure 4 and Figure 8As shown, the closed B-Rep is obtained from the example of Fig. 1 by adding the discoidal face 14 bordered by edges 6 and 7. Figure 3 and Figure 4 As shown, the closed B-Rep is obtained from the example of Fig. 1 by adding the discoidal face 14 bordered by edges 6 and 7. Figure 8 As shown, the closed B-Rep is obtained from the example of Fig. 1 by adding the discoidal face 14 bordered by edges 6 and 7. Figure 9 As shown, the closed B-Rep is obtained from the example of Fig. 1 by adding the discoidal face 14 bordered by edges 6 and 7.
[0077] Each face of a B-Rep is equipped with a normal vector, which is defined with the help of the support surface. First, the normal vector is co-linear with the normal vector of the support surface. Moreover, the normal vector of a closed B-Rep representing a mechanical part is directed towards the outside of the material. Let F be a face of a B-Rep, and N be its outer normal vector. Let E be an edge of face F, X be a point on edge E, and T be the normalized tangent vector of edge E at point X. According to the definition, edge E is oriented counterclockwise if vector M = N x T points towards the inside region of the face, as shown in Figure 10 Note that vector M is normalized because vectors N and T are normalized and perpendicular. By convention, all edges of all faces of a B-Rep are oriented counterclockwise, as shown in Figure 11
[0078] Because there is no inside and outside, it is ambiguous to orient an open B-Rep, which is also called an "open skin". Therefore, as shown in Figure 12 and Figure 13 Any open skin can be equipped with two orientations. Figure 12 Fig. 1 shows an open skin oriented in a first direction, while Figure 13 Fig. 2 shows the same open skin oriented in a second direction.
[0079] In the case of an open B-rep, the orientation is arbitrary and chosen by the CAD system. This can not make sense to the user, especially because the user can not know whether the orientation is pointing towards the inside or outside of the material. In other words, the CAD system can arbitrarily orient an open B-rep independent of the location of the inside or outside of the material, whereas a closed B-rep has a normal vector pointing towards the outside of the material. For example, the user can not know whether a concave / convex on a B-rep is pointing towards the inside of the material (in which case the concave / convex can be a depression) or outside of the material (in which case the concave / convex can be a protrusion). In particular, the CAD system does not cause this ambiguity of orientation. The CAD system calculates the orientation based on the normal vector defined on the B-rep. It can happen that the normal vector is not correctly pointing (e.g. with respect to the outside / inside of the material, as it is in the real world) when it is edited. This happens especially often when editing an open B-rep, because the normal vector can not be immediately useful at the beginning of the design. In other words, the CAD system can calculate the orientation based on wrong data, which creates this ambiguity of direction.
[0080] Reference is now made to Figures 14 to 21 The concept of convexity of an edge of a B-rep of a 3D modeling object is discussed. In this discussion, the B-rep can be closed or open. In any case, the B-rep has an orientation (as explained earlier, defined by means of a normal vector).
[0081] Given a B-Rep of a 3D modeling object, let E be an edge shared by face Fl and face F2, and let X be a point on edge E. Let Nl and N2 be the respective outward normal vectors of faces Fl and F2. Let Pl and P2 be the planes passing through point X with respective normal vectors Nl and N2. The planes Pl and P2 locally define an outer 3D region and an inner 3D region in the neighborhood of point X. Essentially, the vector Nl+N2 points towards the outer 3D region. Let Ml and M2 be the respective material vectors of point X with respect to faces Fl and F2. Essentially, the vector Ml+M2 points towards the protruding 3D region. According to definition, edge E is protruding at point X if Nl+N2 and Ml+M2 have opposite directions, i.e. if <Ml+M2, Nl+N2><0, as shown in Figure 14 and Figure 15 Conversely, edge E is called concave at point X if Nl+N2 and Ml+M2 have the same direction, i.e. if <Ml+M2, Nl+N2>>0, as shown in Figure 16 and Figure 17The edge E is concave if it is concave at all points. Otherwise, <M1+M2, N1+N2> = 0 means that the edge is a smooth edge or a knife edge. A smooth edge makes M1+M2 = 0 and N1 = N2, as shown in Figure 18 and Figure 19 . It typically occurs in B-Reps of typical mechanical parts. A knife edge makes N1+N2 = 0 and M1 = M2, as shown in Figure 20 and Figure 21 . Knife edges are described for completeness, and they are typically not used to model mechanical parts.
[0082] It is clear that the convexity (convex vs. concave) of a sharp edge is closely related to the normal vector orientation. When dealing with open skins, this orientation is arbitrary, and this makes the convexity less visually meaningful to the user compared to the case of closed B-reps. For example, in the case of open B-reps, the user can see that a sharp edge has convexity (i.e., concave or convex), but the user can not know whether the convexity of the sharp edge is the same as the convexity of the part of the mechanical part that corresponds to the sharp edge as it was once manufactured in the real world.
[0083] From a geometric point of view, a rounded face replaces a convex sharp edge by a smooth transition. The transition face is the envelope of the rolling ball that connects the adjacent faces of the initial sharp edge. Similarly, a filleted face replaces a concave sharp edge with a smooth transition based on the same rolling ball geometry. Figure 22 and Figure 23 show the geometry of rounded and filleted faces. Figure 22 shows a convex edge 220 and a concave edge 222. Figure 23 shows the corresponding rounded face 230 and filleted face 232. Just like canonical surfaces (e.g., cylinder, plane, sphere, cone), rounded and filleted faces are typically equipped with a logical type in the B-Rep data structure. If this logical type is missing, they can be identified as follows. Parameterize S: where makes the curve a portion of a circle whose radius does not depend on u for all u e [a, b]. Or, for all v e [c, d], the curve is a portion of a circle whose radius does not depend on v. If the outward normal vector of the B-rep is oriented towards the concave side of the circle, then the face supported by the surface S is a rounded face. If the outward normal vector of the B-rep is oriented towards the convex side of the circle, then the face supported by the surface S is a filleted face. Figure 24The parameterization of the rounded face 240 and the filleted face 242 is shown. The rounded face and the filleted face appear as convex and concave edges, respectively. This is because, from a mechanical point of view, the rounded face is a smooth transition that replaces a convex sharp edge, and the filleted face is a smooth transition that replaces a concave sharp edge. This always happens when designing mechanical parts that are manufactured by molding and machining methods.
[0084] The concept of the dual graph of a B-rep is discussed next. The dual graph of a B-rep is a logical graph that captures only the adjacency of faces. It is defined as follows. The nodes of the dual graph are associated with the faces of the B-Rep, and the arcs of the dual graph are associated with the edges of the B-Rep. An arc of the dual graph connects two nodes of the dual graph if the B-Rep edges associated with the arc are shared by the B-Rep faces associated with the nodes, respectively. For example, Figure 8 The dual graph of the cylindrical B-Rep of Figure 25 is represented in
[0085] Re-entrant, protrusion, and depression are now discussed.
[0086] A mechanical part can be designed to implement a mechanical function that is performed by one or more re-entrant. A re-entrant is a layout (e.g., arrangement) of material that performs a mechanical function. A re-entrant can be a depression, which is a layout of material that has a depressed shape. Alternatively, a re-entrant can be a protrusion, which is a layout of material that has a protruding shape.
[0087] A re-entrant has a geometric structure that can correspond to and / or represent and / or form the layout of material that is the re-entrant. The geometric structure can include (e.g., involve, e.g., be a combination of) several basic geometric structures. A basic geometric structure can be a linear extrusion. A linear extrusion can be a pad (which adds material). A linear extrusion can be a pocket (which removes material). A basic geometric structure can be a revolute. A revolute can be a shaft (which adds material). A revolute can be a groove (which removes material). A basic geometric structure can be a swept profile. A swept profile can be a rib (which adds material) and / or a stiffener (which adds material). A revolute can be a slot (which removes material).
[0088] The concavities and convexities can be represented by a connected set of faces. In other words, the B-rep portion corresponding to the connected set of faces can model and / or represent the geometry of the concavities and convexities. When the connected set of faces has a substantially concave shape and when the boundary of the set of faces is fully convex, the concavities and convexities can be referred to as depressions. When the connected set of faces has a substantially convex shape and when the boundary of the set of faces is fully concave, the concavities and convexities can be referred to as protrusions. Thus, the concepts of protrusions and depressions can be defined without ambiguity when the normal vectors of the B-rep make sense to the user, i.e. in the case of a closed B-rep as discussed earlier. When dealing with an open skin, the concavities and convexities can be protrusions or depressions depending on the normal vector orientation. A concavity and convexity that is a depression according to a given normal vector orientation becomes a protrusion according to the opposite normal vector orientation, and vice versa.
[0089] Figure 26 and Figure 27 A visual ambiguity between protrusions and depressions is illustrated in the case of an open B-rep. By "visual ambiguity", it is meant that when displaying an open skin, a user can interpret the same geometry as a depression or a protrusion depending on the viewpoint. This misinterpretation is not possible in the case of a solid (represented by a closed B-rep) because the viewpoint is always outside the material. Figure 26 and Figure 27 This phenomenon is illustrated. Figure 26 An open skin is illustrated that features content that looks like a protrusion. Figure 27 An open skin is illustrated that features content that looks like a depression. However, both figures are the same open skin, but seen from different angles.
[0090] The display of the B-rep can be caused by an action of the user, e.g. an interaction between the user and the CAD system of the method. In an example, the 3D modeled object represented (e.g. partially) by the B-rep can have been designed by another user on another CAD system and optionally stored in a memory and / or transmitted (e.g. over a network) to the CAD system of the method. The display of the B-rep can then comprise retrieving the B-rep from the memory. Alternatively or additionally, the user can design the 3D modeled object from scratch or at least partially. The B-rep can be displayed on any display of the CAD system, e.g. a graphical user interface, e.g. the graphical user interface described with reference to Figure 1 the graphical user interface described.
[0091] The B-rep can be an open B-rep or a closed B-rep. In an example, the B-rep is an open B-rep. The B-rep represents at least a portion of a mechanical part. This means that the B-rep represents the entire mechanical part or only a strict portion of the mechanical part.
[0092] In an example, the open B-rep can significantly correspond to a physical surface of the mechanical part. This means that the B-rep can represent the geometry of the physical surface or can derive the geometry of the physical surface based on that geometry. For example, the B-rep can represent the geometry of an intermediate surface. An intermediate surface is a surface from which an upper surface and a lower surface can be respectively derived by two offsets, one offset in the direction of the normal vector of the intermediate surface and the other offset in the opposite direction of the normal vector.
[0093] The physical surface can be an exterior of the mechanical part, for example a top surface or a bottom surface. In this case, the B-rep can represent the geometry of the exterior or can derive the geometry of the exterior from the geometry of an intermediate surface.
[0094] Additionally or alternatively, the physical surface can be an interface between an exterior of the mechanical part shaped by an exterior of the manufacturing tool and the exterior of the manufacturing tool that shaped the mechanical part. In this case, the B-rep can represent the geometry of the exterior of the mechanical part. Alternatively, the B-rep can represent the geometry of the exterior of the manufacturing tool. Alternatively, the B-rep can represent the geometry of an intermediate surface from which the geometry of the exterior of the mechanical part and / or the geometry of the exterior of the manufacturing tool can be derived.
[0095] Additionally or alternatively, when the mechanical part is a molded part (e.g. a plastic thin part), the physical surface can represent an interface between a mold that manufactured the molded part and the exterior of the molded part shaped by the mold.
[0096] Additionally or alternatively, when the mechanical part is a turned part (e.g. a thin part), the physical surface can represent the part or at least a portion thereof.
[0097] Additionally or alternatively, when the mechanical part is a stamped part (e.g. a thin aluminum stamped part, a part of a car door or a car body), the physical surface can represent the part or at least a portion thereof.
[0098] The displayed B-rep includes one or more concavities and convexities, one of which is the concavity and convexity identified by the method. These concavities and convexities are now discussed.
[0099] In the context of this method, the concavities can be any one or any combination of: mass reduction features (i.e., performing a mass reduction function), space reservation features (i.e., performing a space reservation function), retainer features (i.e., performing a retainer function), tightness features (i.e., performing a tightness function), adjustment features (i.e., performing an adjustment function), positioning features (i.e., performing a positioning function), mechanical engagement features (i.e., performing a mechanical engagement function), cooling features (i.e., performing a cooling function), overvoluming or cylindrical mechanical engagement features (i.e., performing an overvoluming or cylindrical mechanical engagement function), assembly features (i.e., performing an assembly function), reinforcement features (i.e., performing a reinforcement function), and / or support for all machined bosses and drilled boss features (i.e., performing support for all machined bosses and drilled boss functions).
[0100] Now discussed are examples of functions performed by examples of concavities, which are depressions.
[0101] In examples, the mechanical part is manufactured through a molding manufacturing process. In these examples, any concavities of the B-rep that are depressions can be mass reduction features (i.e., performing a mass reduction function) and / or space reservation features (i.e., performing a space reservation function).
[0102] Additionally or alternatively, the mechanical part can be manufactured through a machining manufacturing process. In these examples, any concavities of the B-rep that are depressions can be mass reduction features (i.e., performing a mass reduction function), retainer features (i.e., performing a retainer function), tightness features (i.e., performing a tightness function), adjustment features (i.e., performing an adjustment function), positioning features (i.e., performing a positioning function), mechanical engagement features (i.e., performing a mechanical engagement function), cooling features (i.e., performing a cooling function), and / or space reservation features (i.e., performing a space reservation function).
[0103] Additionally or alternatively, the mechanical part can be manufactured through a drilling manufacturing process. In these examples, any concavities of the B-rep that are depressions can be retainer features (i.e., performing a retainer function), positioning features (i.e., performing a positioning function), overvoluming or cylindrical mechanical engagement features (i.e., performing an overvoluming or cylindrical mechanical engagement function), cooling features (i.e., performing a cooling function), and / or space reservation features (i.e., performing a space reservation function).
[0104] Additionally or alternatively, the mechanical part can be manufactured through a turning manufacturing process. In these examples, any concavities of the B-rep that are depressions can be overvoluming or cylindrical mechanical engagement features (i.e., performing an overvoluming or cylindrical mechanical engagement function).
[0105] Additionally or alternatively, the mechanical part can be manufactured through a forging manufacturing process. In these examples, any concave-convex of the B-rep that is concave can be a mass-reduction feature (i.e., performs a mass-reduction function).
[0106] Additionally or alternatively, the mechanical part can be manufactured through a stamping manufacturing process. In these examples, any concave-convex of the B-rep that is concave can be an assembly feature (i.e., performs an assembly function), a reinforcement feature (i.e., performs a reinforcement function), and / or a space-reserve feature (i.e., performs a space-reserve function).
[0107] Additionally or alternatively, the mechanical part can be manufactured through a folding manufacturing process. In these examples, any concave-convex of the B-rep that is concave can be an assembly feature (i.e., performs an assembly function), a reinforcement feature (i.e., performs a reinforcement function), and / or a space-reserve feature (i.e., performs a space-reserve function).
[0108] Examples of functions performed by examples of concave-convex that are convex are now discussed.
[0109] In examples, the mechanical part is manufactured through a molding manufacturing process. In these examples, any concave-convex of the B-rep that is convex can be a reinforcement feature (i.e., performs a reinforcement function).
[0110] Additionally or alternatively, the mechanical part can be manufactured through a machining manufacturing process. In these examples, any concave-convex of the B-rep that is convex can be a fixture feature (i.e., performs a fixture function) and / or a dowel feature (i.e., performs a dowel function).
[0111] Additionally or alternatively, the mechanical part can be manufactured through a turning manufacturing process. In these examples, any concave-convex of the B-rep that is convex can be an overvolumed or cylindrical mechanical engagement feature (i.e., performs an overvolumed or cylindrical mechanical engagement function) and / or a dowel feature (i.e., performs a dowel function).
[0112] Additionally or alternatively, the mechanical part can be manufactured through a forging manufacturing process. In these examples, any concave-convex of the B-rep that is convex can be a reinforcement feature (i.e., performs a reinforcement function) and / or a support for all machined and drilled convex features (i.e., performs a support for all machined and drilled convex functions).
[0113] Additionally or alternatively, the mechanical part can be manufactured through a stamping manufacturing process. In these examples, any concave-convex of the B-rep that is convex can be an assembly feature (i.e., performs an assembly function), a reinforcement feature (i.e., performs a reinforcement function), and / or a space-reserve feature (i.e., performs a space-reserve function).
[0114] Additionally or alternatively, the mechanical part can be manufactured through a folding manufacturing process. In these examples, any concavities and convexities of the B-rep that are convex can be assembly features (i.e., perform an assembly function), reinforcement features (i.e., perform a reinforcement function), and / or space reservation features (i.e., perform a space reservation function).
[0115] Reference is now made to Figure 28 and Figure 29 discussing examples of the geometry of the concavities and convexities on examples of mechanical parts. Figure 28 A stamped part is shown, which is a car door, and Figure 29 A molded part is shown, which is a thin plastic part. Figure 28 and Figure 29 Examples of parts of
[0116] Other examples of parts can have sub-parts that are configured as surfaces at some point in their design. In these examples, however, at some other point in the design process (e.g., at the end), the part can be represented by a closed B-rep as a volume. This approach also handles volumes, i.e., closed B-reps.
[0117] Selection of at least one face of the B-rep is now discussed.
[0118] The selection is performed through a graphical user interaction. In other words, in order to select the at least one face, the user graphically interacts with a display (e.g., a graphical user interface, such as the graphical user interface shown in Figure 1 ). For example, the user can select the at least one face by clicking on it (e.g., by clicking on a visible portion of the at least one face). Alternatively, the user can select the at least one face by touching it (e.g., by touching a visible portion of the at least one face). These ways of selecting the at least one face are particularly simple and ergonomic. Significantly, in examples in which the at least one face comprises only one face, the user only needs to touch or click on that one face to select it.
[0119] The at least one face is a face of a set of faces representing the concave-convex, and is identified by the method. In examples, the at least one face comprises one face of the B-rep, i.e. a single face of the B-rep. The one face can for example be a face of the concave-convex that is at least partially visible to the user (e.g. a face that is not completely hidden by another face of the B-rep). The one face can for example be one of the most apparent faces of the concave-convex. Alternatively or additionally, the one face can be a top face of the concave-convex or a side face of the concave-convex. In examples, if the concave-convex displayed by the method has a convex shape, the one face can be a top face of the concave-convex or a side face of the concave-convex. This can be the case for example if the displayed concave-convex has the shape of a cuboid. In other examples, if the concave-convex displayed by the method has a concave shape, the one face can be a side face of the concave-convex, e.g. an inner surface of a hole. This can be the case for example if the displayed concave-convex has the shape of a hole (e.g. a through hole or a non-through hole).
[0120] Selecting only one face of the B-rep that belongs to the concave-convex is a particularly simple and ergonomic way of selecting a portion of the concave-convex, and the CAD system then automatically identifies the concave-convex based on this portion. This makes the method user-friendly and ergonomic. This is especially the case when the one face is a face that is visible to the user (e.g. the most apparent face). This improves simplicity and ergonomics when selecting the at least one face.
[0121] In examples, the selected at least one face can comprise several faces, e.g. each face of the at least one face that belongs to the respective concave-convex. In this case, the identification can be performed iteratively for each face of the at least one face. In other words, for each face of the at least one face, a respective iteration of the identification is performed to identify a respective set of faces that includes the face and represents the respective concave-convex to which the face belongs.
[0122] The identification of the set of faces representing the concave-convex is now discussed.
[0123] The set of faces representing the concave-convex comprises the at least one face, and is automatically identified by the CAD system. In other words, when the user graphically selects a (e.g. small and visible) portion of the concave-convex (i.e. the at least one face), the computer automatically identifies all the faces representing this concave-convex, e.g. including faces that are hidden from the user (if any). This makes the method efficient and ergonomic.
[0124] The identification of the set of faces comprises determining a first set of faces and a second set of faces. This is now discussed.
[0125] The first set of faces includes at least one face and represents a recess. In other words, the determination takes as input at least one face. The determination then determines a first set of faces. This can be performed by any process or algorithm configured to take as input at least one face and output a set of faces that includes at least one face and represents a recess. Such an algorithm can notably comprise iteratively accessing the adjacent faces of the at least one face, and collecting or not collecting these adjacent faces based on the convexity of these adjacent faces and / or the convexity of the edges they share. The collected faces are such that, together with the at least one face, they form a set of faces having a convexity of a recess. The determination also determines a second set of faces. This can be performed by any process or algorithm configured to take as input at least one face and output a set of faces that includes at least one face and represents a protrusion. Such an algorithm can notably comprise iteratively accessing the adjacent faces of the at least one face, and collecting or not collecting these adjacent faces based on the convexity of these adjacent faces and / or the convexity of the edges they share. The collected faces are such that, together with the at least one face, they form a set of faces having a convexity of a protrusion. In any case, the determination outputs the first set of faces and the second set of faces.
[0126] It should be understood that, whether the B-rep is closed or open, the B-rep has an orientation. With respect to this orientation, which as previously discussed can be arbitrary and have no visual meaning for the user, the determination makes a determination of two sets of faces that include the at least one face, one set of faces representing a protrusion and one representing a recess. One of these sets of faces is the set of faces representing the concave-convex, which is either a recess or a protrusion. Thus, at least one of the determined sets of faces represents the concave-convex, whether the concave-convex is a protrusion or a recess. As discussed below, the set will then be chosen among the two determined sets. In other words, determining both the first set and the second set ensures that the concave-convex will be identified without knowing whether the concave-convex is a recess or a protrusion. This makes the method efficient.
[0127] The method is notably particularly efficient in the example where the B-rep is open, as previously discussed, the arbitrary orientation of such a B-rep makes the concepts of protrusion and recess ambiguous. Indeed, the method circumvents this ambiguity by searching both for a protrusion and a recess, and then selecting one of the protrusion and the recess by a selection as explained below. In other words, for the method for identifying the concave-convex, the user does not need to know whether the concave-convex is a protrusion or a recess.
[0128] In examples, the first set of faces includes a first connected set of one or more faces that do not contain convex inner edges and rounded faces. In these examples, the second set of faces includes a second connected set of one or more faces that do not contain concave inner edges and rounded corners.
[0129] The first set of faces thus comprises a first connected set of one or more faces having a concave convexity by not containing convex inner edges and rounded faces. Similarly, the second set of faces comprises a second connected set of one or more faces having a convex convexity by not containing concave inner edges and rounded corners.
[0130] Thus, upon selection of the at least one face, the method automatically determines the two sets of faces comprising it, one set of faces having substantially a convex shape (i.e. the first set of faces) and the other having substantially a concave shape.
[0131] In examples, the first connected set of one or more faces is bounded only by convex edges and / or rounded faces. In these examples, the second connected set of one or more faces is bounded only by concave edges and / or rounded corners.
[0132] Determining the first (or second) set of faces can involve iteratively accessing adjacent faces of the at least one face and collecting adjacent faces that are not rounded (or rounded corners) or that do not share a convex (or concave) edge with other collected adjacent faces. These collected faces can substantially form the first (or second) connected set of one or more faces together with the at least one face. The requirement that the first (or second) connected set of one or more faces be bounded by convex (or concave) edges and / or rounded (or rounded corners) faces can only be a stopping criterion for the iterative accessing and collecting. In this way, faces that do not represent a concave (or convex) convexity are not collected, not even accessed. This improves the efficiency and robustness of the method.
[0133] In examples, the first set of faces comprises a first connected set of one or more faces. In these examples, the second set of faces comprises a second connected set of one or more faces.
[0134] In these examples, the method thus determines for a given orientation of the B-rep, the depressions of the face connection set that do not contain convex inner edges and rounded faces and are bordered only by convex edges and / or rounded faces, and the protrusions of the face connection set that do not contain concave inner edges and rounded corners and are bordered only by concave edges and / or rounded corners. Searching for the depressions of the face connection set that do not contain convex inner edges and rounded faces and are bordered only by convex edges and / or rounded faces, and searching for the protrusions of the face connection set that do not contain concave inner edges and rounded corners and are bordered only by concave edges and / or rounded corners, is an efficient and simple method for extending the at least one face to the smallest depression (e.g., the depression with the smallest border) representing it or to the smallest protrusion (e.g., the protrusion with the smallest border) representing it. In other words, since one of the determined protrusions and the determined depressions is the one to be identified, searching for such a depression and such a protrusion is an efficient and simple method for extending the at least one face to the smallest relief (e.g., the relief with the smallest border) including it. In these examples, the method thus efficiently meets the user demand of automatically extending the at least one face to the smallest relief including it upon a simple selection of the at least one face.
[0135] In any case, the determination has two outputs, the first face set and the second face set. The first face set represents the depressions, and the second face set represents the protrusions. One of the first face set and the second face set represents the relief. The method automatically determines which face set by selecting the face set with the shortest border curve perimeter among the first face set and the second face set and different from both the selected at least one face and the B-rep.
[0136] This is now discussed.
[0137] “Selecting the face set among the first face set and the second face set” means selecting a face set that takes as input the first face set and the second face set and outputs one face set with the shortest border curve perimeter. The output face set is the face set representing the relief. In other words, and as previously explained, determining the first face set representing the protrusions and the second face set representing the depressions (without any knowledge about whether the relief is a protrusion or a depression) ensures that at least one of the two determined sets represents the relief. The selection then automatically selects one set representing the relief. This two-step identification is robust and efficient.
[0138] The selection chooses the set of faces among the first set of faces and the second set of faces that has the shortest perimeter of the boundary curves and that is different from both the selected at least one face and the B-rep. Now, when the at least one face is selected, the user expects that the set of faces including the at least one face is identified. This set of faces is used to represent the concave-convex. Therefore, the set of faces should not include too many faces and should include only the faces representing the concave-convex. The selection of the set of faces among the first set of faces and the second set of faces that has the shortest perimeter of the boundary curves allows to identify a set of faces that does not include too many faces and that really represents the concave-convex. It is an efficient way to select among two determined sets of faces the set of faces that really represents the concave-convex. Indeed, one can say "identify the smallest concave-convex including the at least one face" or "extend the at least one face to the smallest concave-convex including it".
[0139] In an example, the selection can include evaluating among the first set of faces and the second set of faces the one that has the shortest perimeter of the boundary curves. The evaluation can include calculating the perimeter of the boundary curves of the first set of faces, calculating the perimeter of the boundary curves of the second set of faces, and comparing the calculated perimeter of the boundary curves of the first set of faces and the calculated perimeter of the boundary curves of the second set of faces. The calculation can be followed by outputting the one set of faces that has the smallest perimeter of the boundary curves.
[0140] Before the evaluation, it is verified that the first set of faces and the second set of faces are different from the B-rep and include faces that are different from the selected at least one face. If one of the sets is equal to the B-rep or equal to the at least one face, this set does not represent the concave-convex and the other set is selected. In this case, the perimeter of the boundary curves of the two sets of faces is not calculated because the set that really represents the concave-convex has already been identified.
[0141] In fact, the set of faces representing the concave-convex should include at least another face (in addition to the selected at least one face) because in most examples, the at least one face alone (especially when the at least one face contains one face) does not represent the whole concave-convex. The at least one face is only a part of the concave-convex and the user can easily select this part for a subsequent identification of the whole concave-convex. In other words, the user sees the concave-convex, selects only a part of the concave-convex and expects that the whole concave-convex is identified. Therefore, the identified set of faces should include at least another face (in addition to the selected at least one face) because this is the functionality the user wants when he / she selects the at least one face.
[0142] Moreover, the set of faces representing the concave-convex should be different from the whole B-rep because in most examples, the concave-convex is only a part of the B-rep that performs a specific mechanical function. Moreover, the functionality the user wants is to automatically identify the concave-convex that is only a part of the B-rep when only a part of the concave-convex is selected.
[0143] The verification thus improves the efficiency and robustness of the selection, since it allows to discard in a very simple way and without calculating any boundary curve perimeter, face sets which do not represent a B-rep and which are not the face sets that the user expects to be identified when the user selects at least one face.
[0144] The boundary curve perimeter of a face set can be any quantity representing the size of the boundary curve of the face set. The boundary curve can be defined as the set of boundary edges of the face set, i.e. each having a set of edges with a single boundary face among the face set. For example, it can be any length of the boundary curve. In an example, the length of the boundary curve is the sum of the curve lengths of each edge of the boundary. The boundary curve perimeter of a face set can be computed by any known method for computing the perimeter of the boundary curve of a face set.
[0145] In an example, one face set has a shorter boundary curve with respect to another face set if:
[0146] - the boundary curve perimeter of the face set is strictly smaller than the boundary curve perimeter of the other face set; or
[0147] - the boundary curve perimeter of the face set is equal to the boundary curve perimeter of the other face set and the length of the bounding box of the face set is smaller than the length of the bounding box of the other face set.
[0148] The bounding box can be any bounding box, for example a bounding box of any shape. The bounding box can be any volume, for example a cuboid, a rectangle, a parallelepiped, a sphere or an ellipsoid shape. The length of the bounding box can be any length, for example the length of the longest line segment included in the volume (for example, the diameter of a sphere or the diagonal of a rectangle).
[0149] It has been explained how selecting a face set can comprise evaluating which one among the first face set and the second face set has the shortest boundary curve perimeter. The evaluation can also comprise, if the boundary curve perimeter of the first face set is equal to the boundary curve perimeter of the second face set, evaluating which one among the length of the bounding box of the first face set and the length of the bounding box of the second face set is the smallest. This can comprise computing and comparing the length of the bounding box of the first face set and the length of the bounding box of the second face set, and then outputting the one face set whose bounding box has the smallest length.
[0150] The method is thus able to handle the case in which the first face set and the second face set have the same boundary curve perimeter value. The method is thus efficient.
[0151] An example of selecting a face set is now discussed.
[0152] In these examples, the selection comprises determining whether the first set of faces or the second set of faces is at least one face, and determining whether the first set of faces or the second set of faces is a B-rep. If the first set of faces or the second set of faces is at least one face, or if the first set of faces or the second set of faces is a B-rep, the selection can then comprise outputting one set of faces that is neither at least one face nor a B-rep. The selection can then end after the output, in which case the outputted set of faces is the one that the user expects and that represents the concave- convexity. This allows to efficiently select a set of faces that represents the concave- convexity and that the user expects to be identified (for the reasons explained previously), since in such a case there is no need to compute the perimeter of the boundary curve.
[0153] Then, in these examples, if the first set of faces and the second set of faces are neither a B-rep, and if the first set of faces and the second set of faces are neither at least one face, the selection comprises:
[0154] - determining whether the perimeter of the boundary curve of the first set of faces is equal to the perimeter of the boundary curve of the second set of faces;
[0155] and
[0156] - if the perimeter of the boundary curve of the first set of faces is equal to the perimeter of the boundary curve of the second set of faces, comparing the length of the bounding box of the first set of faces and the length of the bounding box of the second set of faces.
[0157] This allows to select, in the case where the first set of faces and the second set of faces are neither a B-rep nor at least one face, the one set of faces that has the shortest perimeter of the boundary curve, which is thus the one that represents the concave- convexity and that satisfies the user expectations.
[0158] In other words, the examples discussed above improve the efficiency and the robustness of the method, since they perform an ordered sequence of tests that discard, in appropriate cases, sets of faces that do not represent the concave- convexity and that the user does not expect to be identified (for the reasons explained previously), without any useless computation of the perimeter of the boundary curve.
[0159] Other examples of selection are now discussed.
[0160] In these examples, the selection of the set of faces comprises determining whether the first set of faces or the second set of faces is at least one face. If the first set of faces or the second set of faces is at least one face, the selection can then comprise outputting one of the two sets of faces that is not at least one face. The selection can then end after the output, in which case the outputted set of faces is the one that represents the concave- convexity.
[0161] Then, in these examples, if neither the first set of faces nor the second set of faces is at least one face, the selection of the set of faces includes determining whether the first set of faces or the second set of faces is a B-rep. If the first set of faces or the second set of faces is a B-rep, the selection can then include outputting the one of the two sets of faces that is not equal to the B-rep. The selection can then end after the output, in which case the outputted set of faces is the set of faces that represents the concave-convex.
[0162] Then, in these examples, if neither the first set of faces nor the second set of faces is a B-rep, the selection of the set of faces includes determining whether the perimeter length of the boundary curve of the first set of faces is equal to the perimeter length of the boundary curve of the second set of faces. Then, if the perimeter length of the boundary curve of the first set of faces is equal to the perimeter length of the boundary curve of the second set of faces, the selection includes comparing the length of the bounding box of the first set of faces to the length of the bounding box of the second set of faces. The selection can then output the set of faces having the smallest bounding box length. Alternatively, if the perimeter length of the boundary curve of the first set of faces is not equal to the perimeter length of the boundary curve of the second set of faces, the selection can output the set of faces having the strictly smallest perimeter length of the boundary curve.
[0163] These examples further improve the efficiency of the method by further hierarchizing the ordered sequence of tests discussed above. Significantly, once the method determines that one of the determined sets of faces is at least one face, or once the method determines that one of the determined sets of faces is a B-rep, the set of faces that the user truly desires and that represents the concave-convex is automatically identified. Thus, in such cases, the ordered sequence of tests is shortened.
[0164] In examples, the identified set of faces can be processed. Processing the identified set of faces can include one or more of the following actions:
[0165] - extracting and / or displaying the identified set of faces from the B-rep (e.g., in a separate window of the display of the CAD system) and / or highlighting it within the display of the B-rep;
[0166] - automatically and in a uniform manner applying one or more design and / or editing operations (e.g., changing dimensions, changing size, translating, changing thickness, rotating, shearing, copying, duplicating, and / or pasting) to all faces in the identified set of faces (e.g., by the user graphically interacting with the CAD system); and / or
[0167] - automatically and in a uniform manner applying one or more design and / or editing operations (e.g., translating, changing size, changing dimensions, rounding, filleting, draft angle, and / or changing thickness) to all edges of one type (e.g., sharp, smooth, knife, convex, or concave) that form the boundary faces of the identified set of faces.
[0168] Applying operations to the set of faces and / or edges automatically and in a uniform manner comprises: specifying (e.g. selecting, e.g. at user operation) a set and an operation, initiating (e.g. by interacting with the CAD system, e.g. at user operation) the operation, and automatically (e.g. by the CAD system) applying the operation (e.g. substantially) identically and / or (e.g. substantially) simultaneously to all objects of the set.
[0169] Reference is now made to Figures 30-32 Embodiments of the method are discussed.
[0170] The embodiment performs the method in four steps. The first step performs the selection of at least one face, and the second, third and fourth steps perform the identification of a set of faces representing a concave-convex.
[0171] The embodiment comprises a first step of user selection of at least one face. The at least one face is denoted L0, and in this embodiment contains a single face belonging to the concave-convex to be identified.
[0172] The second step of the embodiment determines a first set of faces by running the function Depression(·) in order to identify the depressions according to the current orientation of the B-rep. The function Depression(·) takes as input the single face L0, and outputs a first set of faces L D , e.g. as a list of faces.
[0173] The method Depression(f) iteratively visits the adjacent faces of the initial face f until a convex edge or a circular face is reached. The propagation algorithm makes use of a last-in-first-out (LIFO) list denoted H and an output list denoted E. The LIFO list is an internal data structure used for propagation purposes. It is used by the standard instructions Push(·), Pop(·) and Size. The instruction Push(x) adds the object x to the top of the list and increments its size. The instruction Pop(x) yields the last object of the list (denoted x), removes it from the list and decrements its size. The output list E comprises a set of faces initialized with the input face f. The following pseudo code describes the function Depression.
[0174]
[0175]
[0176] The third step of the embodiment determines a second set of faces by running the function Protrusion(·) in order to identify the protrusions according to the current orientation of the B-rep. The function Protrusion(·) takes as input the single face L0, and outputs a second set of faces L P , e.g. as a list of faces.
[0177] The function Protrusion(·) is used to iteratively access the adjacent faces of an initial face f until a concave edge or a rounded face is reached. The propagation algorithm makes use of a last-in-first-out (LIFO) list denoted H and an output list denoted E. The LIFO list is an internal data structure used for propagation purposes. It is used through the standard instructions Push(·), Pop(·) and Size. The instruction Push(x) adds the object x to the top of the list and increments its size. The instruction Pop(x) produces the last object of the list (denoted x), removes it from the list and decrements its size. The output list E comprises a set of faces initialized with the input face f. The function Protrusion is described by the following pseudo-code.
[0178]
[0179]
[0180] It should be understood that the second step can be performed before or after the third step. Alternatively, the third step and the second step can be jointly performed.
[0181] The fourth and last step of the embodiment selects the set of faces representing the concavities and convexities among the determined sets L D or L P The last step performs a series of logical tests in order to select which output list L D or L P is appropriate, i.e. represents the concavities and convexities. The output list of faces is denoted L1. The length of the boundary curve of the list of faces L is denoted (L) and the length of the curve C is denoted (C) and the length of the bounding box of the list of faces L is denoted Size(L). The tests are numbered from 01 to 09.
[0182]
[0183]
[0184] The notation y := argmin x∈X (x) is a short hand for: find x e X such that (x) is the minimum and set x as the variable y. Lines 01 to 08 deal with special cases. The general case is managed by instruction 09. The motivation for the selection of the shortest boundary curve comes from the fact that the most relevant concavities and convexities are characterized by a small interface with the rest of the skin.
[0185] Figure 30Lines 01 and 02 are shown. The designer selects the top face of the shape, as shown in Figure 1. The shape appears to be shown as a convex shape, and the top face is the face that is particularly visible to the user and easy for him / her to select. Figures 2 and 3 show two possible orientations of the input skin. Figures 4 and 5 show the list L P and L D calculated by the propagation algorithm depending on the input skin orientation. Figure 6 shows the resulting list of faces L1 calculated by this embodiment. This embodiment produces the appropriate result due to the following principle. Obviously, there are two possible results, as shown in Figures 4 and 5. Figure 4 is exactly the face selected by the designer, while Figure 5 is a larger list of faces, including the user-selected face as well as the side faces. The principle is that if the user passed the concave-convex detection function, it is for identification purposes, not to get a single selected face. Therefore, this embodiment discards the result list of Figure 4, since it is equal to the user's selection and provides the list of Figure 5.
[0186] Figure 31 Lines 09 of the algorithm are shown. The designer selects the side face of the input skin, as shown in Figure 1. The input skin appears to be shown as a convex shape, and the side face is the face that is particularly visible to the user and easy for him / her to select. Figures 2 and 3 show two possible orientations of the input skin. Figures 4 and 5 show the list L P and L D calculated by the propagation algorithm depending on the input skin orientation. Figures 6 and 7 show the boundary curves of the list of faces of Figures 4 and 5, respectively. This embodiment produces the list of Figure 8, since it features the shortest boundary curve.
[0187] Figure 32 Lines 07 of the algorithm are shown. Here, the input B-rep is a solid, and therefore the normal vectors are directed towards the outside of the material. The designer selects the cylindrical face, as shown in Figure 1. The input B-rep appears to be shown as a concave shape, and the cylindrical face of the hole-shaped portion of the B-rep is particularly visible to the user and easy for him / her to select. Figures 2 and 3 show the list L P and L D calculated by the propagation algorithm. Figures 4 and 5 show the boundary curves of the list of faces of Figures 2 and 3, respectively. Obviously, they feature the same length. This embodiment produces the list of Figure 4, since it features the smallest bounding box.
Claims
1. A computer-implemented method for designing, with a CAD system, a 3D modeling object representing a mechanical part, the method comprising: - displaying a B-rep representing at least a portion of the mechanical part, the B-rep having faces and edges; - selecting, through a graphical user interaction, at least one face of the B-rep; and - automatically identifying, by the CAD system, a set of faces comprising the selected at least one face, the set of faces representing a concave-convex, the identifying the set of faces comprising: • determining a first set of faces and a second set of faces, both the first set of faces and the second set of faces comprising the at least one face, the first set of faces representing a concave and the second set of faces representing a convex, wherein the first set of faces comprises a first connected set of one or more faces not containing convex inside edges and rounded faces, the second set of faces comprising a second connected set of one or more faces not containing concave inside edges and rounded corners faces; and • selecting, among the first set of faces and the second set of faces, the set of faces having the shortest perimeter of bounding curves and being different from both the selected at least one face and the B-rep.
2. The method of claim 1, wherein: - the first connected set of one or more faces is bounded only by convex edges and / or rounded faces; and - the second connected set of one or more faces is bounded only by concave edges and / or rounded corners faces.
3. The method of claim 2, wherein: - the first set of faces contains the first connected set of one or more faces; and - the second set of faces contains the second connected set of one or more faces.
4. The method of any one of claims 1 to 3, wherein the at least one face contains one face of the B-rep.
5. The method of any one of claims 1 to 3, wherein a set of faces has the shortest perimeter of bounding curves with respect to another set of faces: - the perimeter of bounding curves of the set of faces is strictly smaller than the perimeter of bounding curves of the other set of faces; or - the perimeter of bounding curves of the set of faces is equal to the perimeter of bounding curves of the other set of faces and the length of the bounding box of the set of faces is smaller than the length of the bounding box of the other set of faces.
6. The method of claim 5, wherein selecting a set of faces comprises: - determining: o whether the first set of faces or the second set of faces is the at least one face; and o whether the first set of faces or the second set of faces is the B-rep; then - if neither the first set of faces nor the second set of faces is the B-rep, and if neither the first set of faces nor the second set of faces is the at least one face: o determining whether the perimeter of bounding curves of the first set of faces is equal to the perimeter of bounding curves of the second set of faces; and o if the perimeter of bounding curves of the first set of faces is equal to the perimeter of bounding curves of the second set of faces, comparing the length of the bounding box of the first set of faces and the length of the bounding box of the second set of faces.
7. The method of any one of claims 1 to 3, wherein the B-rep is an open B-rep.
8. The method of claim 7, wherein the B-rep corresponds to a physical surface of the mechanical part. 9. The method according to any one of claims 1 to 3, wherein the mechanical part is: - a molded part; - a machined part; - a drilled part; - a turned part; - a forged part; - a stamped part; and / or - a folded part.
10. The method according to any one of claims 1 to 3, wherein the relief is: - a mass reduction feature; - a space reservation feature; - a fixture feature; - a tightness feature; - an adjustment feature; - a positioning feature; - a mechanical joint feature; - a cooling feature; - an outer volute or cylindrical mechanical joint feature; - an assembly feature; - a reinforcement feature; and / or - a support for all machined and drilled raised features.
11. A computer program product comprising instructions for carrying out the method according to any one of claims 1 to 10.
12. A computer readable storage medium having recorded thereon the instructions of the computer program product according to claim 11.
13. A computer comprising a processor coupled to a memory and a graphical user interface, the memory having recorded thereon the instructions of the computer program product according to claim 11.
Citation Information
Patent Citations
Methods and systems for feature recognition
US20160063136A1