Sketch processing
By constructing a streaming sketch collection and combined combination shared straw blocks, the problem of poor sketching effect in the existing technology in the existing technology has been solved, and efficient and accurate sketching is realized. The sketch generated is detailed and suitable for shape generation.
Patent Information
- Application Number
- CN202310046532.8
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Priority Date
- 2022-03-24
- Filing Date
- 2023-01-31
- Publication Date
- 2025-01-28
AI Technical Summary
The prior art has limited effect in sketch processing and cannot effectively process non-manifold sketches, resulting in insufficient processing results.
Provide a sketching method for computer implementation. By constructing a streaming sketch collection, it is determined to be closed and fonded output sketches. This method includes recursively splitting non -current sketches to form current -shaped grass tabs, and combines shared straw pieces to generate closed and flowing sketches.
The output sketch of closed and flowing from non -current sketches is achieved, which improves the efficiency and accuracy of sketch processing. The generated output sketches are fully and intuitive, and are suitable for the generation of 2D and 3D shapes.
Smart Images

Figure CN119378034A_ABST
Abstract
Description
Technical Field
[0001] The present disclosure relates to the field of computer programs and systems, and more particularly, the present disclosure relates to methods, systems and programs for sketch processing. Background Art
[0002] A large number of systems and programs for the design, engineering and manufacturing of objects are available on the market. CAD is the abbreviation for computer-aided design and refers to software solutions for designing objects, for example. CAE is the abbreviation for computer-aided engineering and refers to software solutions for simulating the physical behavior of future products, for example. CAM is the abbreviation for computer-aided manufacturing and refers to software solutions for defining manufacturing processes and operations, for example. In these computer-aided design systems, graphical user interfaces play an important role in the efficiency of the technology. These technologies can be embedded in product lifecycle management (PLM) systems. PLM refers to a business strategy that helps companies share product data, apply common processes and exploit corporate knowledge to develop products from concept to end of life throughout the concept of an extended enterprise. The PLM solution provided by Dassault Systèmes (trademarks CATIA, ENOVIA, SIMULIA and DELMIA) provides an engineering center (which organizes product engineering knowledge), a manufacturing center (which manages manufacturing engineering knowledge) and an enterprise center (which allows the integration and connection of enterprises into engineering and manufacturing centers). Together, the system provides an open object model that links products, processes, resources together to enable dynamic, knowledge-based product creation and decision support that drives optimized product definition, manufacturing preparation, production, and service.
[0003] Existing solutions are only able to perform limited and / or inadequate processing of sketches. Specifically, some of these solutions are based on neural network approaches and are able to generate 2D splines or 3D shapes from sketches, drawings or pictures. However, none of them has brought sufficient results for sketch processing.
[0004] In this context, there remains a need for improved solutions for sketch processing. Summary of the invention
[0005] Therefore, a computer-implemented method for sketch processing is provided. This method for sketch processing is referred to as a "sketch processing method". The sketch processing method includes providing one or more input sketches. The one or more input sketches include at least one non-manifold sketch. Each non-manifold sketch is a sketch having at least one intra-sketch intersection. Alternatively or additionally, the one or more input sketches include at least one pair of sketches that share at least two inter-sketch intersections. The sketch processing method includes: determining one or more output sketches from the one or more input sketches. Each output sketch is closed and manifold. Determining the one or more output sketches includes: constructing a manifold sketch set including each manifold input sketch. The construction of the manifold sketch set includes: for each corresponding non-manifold input sketch, determining two or more corresponding manifold sketches based on at least one intra-sketch intersection of the corresponding non-manifold input sketch. The constructed set also includes each manifold sketch determined for each corresponding non-manifold input sketch. Determination of one or more output sketches includes combining each pair of manifold sketches in the constructed set that share at least two intersections to form one or more closed and manifold sketches. The one or more output sketches include each closed sketch in the constructed set and each closed and manifold sketch formed by the combination.
[0006] Sketch processing methods can include one or more of the following:
[0007] Each input sketch is oriented, and determining the two or more corresponding manifold sketches comprises: recursively splitting the corresponding non-manifold input sketches, the recursive splitting comprising:
[0008] ○ browsing the corresponding non-manifold input sketch;
[0009] ○ encountering a point of intersection within the sketch;
[0010] ○ Split the corresponding non-manifold input sketch at the meeting points of the intersection within the sketch, thereby forming
[0011] into two sketch blocks; and
[0012] ○For each sketch piece:
[0013] ■ if the sketch block does not have an intra-sketch intersection, determining that the sketch block is one of the two or more corresponding manifold sketches; or
[0014] ■ If the sketch block has at least one intra-sketch intersection, repeating the recursive splitting of the sketch block;
[0015] - the one or more input sketches include one or more closed non-manifold input sketches, and for each closed corresponding non-manifold input sketch, the splitting of the corresponding non-manifold input sketch includes:
[0016] ○ Navigating the non-manifold input sketch starting from the point of intersection in the sketch;
[0017] ○ encountering another point of intersection within said sketch;
[0018] ○ extracting the sketch block between the point of intersection and the other point in the sketch from the non-manifold input sketch, thereby defining one of the two sketch blocks and the remaining sketch block of the non-manifold input sketch; and
[0019] ○ defining the remaining sketch block as the other of the two sketch blocks; and / or
[0020] - the one or more input sketches include one or more open non-manifold input sketches, and for each open corresponding non-manifold input sketch, the splitting of the corresponding non-manifold input sketch includes:
[0021] ○ Navigating the non-manifold input sketch starting from the point of intersection in the sketch;
[0022] ○ encountering another point of intersection within said sketch;
[0023] ○ extracting the sketch block between the point of the intra-sketched intersection and the other point from the non-manifold input sketch, thereby defining one of the two sketch blocks and two remaining sketch blocks of the non-manifold input sketch, each of the two remaining sketch blocks being open; and
[0024] ○ connecting the remaining two sketch blocks to form another one of the two sketch blocks;
[0025] Each pair of manifold sketches includes a first manifold sketch and a second manifold sketch, and forming the one or more closed sketches includes:
[0026] ○ For each pair of links between the first manifold sketch and the second manifold sketch along the second manifold sketch
[0027] Sequel intersection:
[0028] ■ extracting the portion of the second manifold sketch bounded by these two consecutive intersections;
[0029] ■ splitting the first manifold sketch between the two consecutive intersections, thereby obtaining one or two segments of the first manifold sketch; and
[0030] ■ recombining each segment of the first manifold sketch with the extracted portion of the second manifold sketch, thereby obtaining one or two closed and manifold sketches;
[0031] -The constructed manifold sketch set consists of unique sketches;
[0032] - providing said one or more input sketches comprises:
[0033] ○Get a collection of sketch segments;
[0034] ○ generating one or more aggregations of connected sketch segments from the obtained set of sketch segments, thereby obtaining the one or more input sketches;
[0035] - Each segment has two ends, and when the distance between the end of one segment and the end of another segment is lower than a predetermined threshold, the two segments are connectable, and generating one or more aggregations of connected sketch segments comprises: for each sketch segment in the set, constructing one or more sketches containing the sketch segment in the following manner: for each constructed sketch, sequentially connecting the sketch segments until no other sketch segments in the set can be connected to the constructed sketch;
[0036] - the obtaining of the sketch segment is performed in response to user interaction and / or:
[0037] ○ By fitting one or more curves on the following and / or detecting one or more specific geometric curves on the following:
[0038] ■Drawing,
[0039] ■ Automatically detected edges on the image, and / or
[0040] ■ Manually traced edges on the image, and / or
[0041] ○ By fitting an orientation curve to a projection of a contour-based approximation of the surface detected in the 3D scan; and / or
[0042] -The constructed manifold sketch set consists of closed sketches.
[0043] A computer-implemented method for generating a 2D shape is also provided. The method for generating a 2D shape is referred to as a "2D generation method". The 2D generation method includes: performing a method for sketch processing, thereby outputting one or more closed and manifold sketches. The 2D generation method includes: generating one or more 2D surfaces based on the output one or more closed and manifold sketches. Each 2D surface is within one of the determined one or more closed and manifold sketches. The 2D generation method includes: forming a 2D shape based on the generated one or more 2D surfaces.
[0044] A computer-implemented method for generating a 3D shape is also provided. The method for generating a 3D shape is referred to as a "3D generation method". The 3D generation method includes: performing a method for sketch processing, thereby outputting one or more closed and manifold sketches. The 3D generation method includes: generating one or more 3D parts based on the output one or more closed and manifold sketches. Each 3D part is an extrusion or rotation of one of the output one or more closed and manifold sketches. The 3D generation method includes: forming a 3D shape based on the generated one or more 3D parts.
[0045] A computer-implemented method for fitting a contour-based volume to an approximating surface is also provided. The method for fitting a contour-based volume to an approximating surface may be referred to as a "fitting method". The fitting method includes: splitting the approximating surface into surface portions. The fitting method includes: detecting one or more directions for generating a 3D contour-based volume (each such direction is a direction that defines / specifies the generation of the 3D contour-based volume, such as an extrusion direction or a rotation direction), and for each direction, detecting one or more corresponding surface portions. The fitting method includes: for each of the one or more detected directions: generating a set of sketch segments by projecting each of the one or more corresponding surface portions onto a plane perpendicular to the direction. The fitting method includes: for each of the one or more detected directions: performing the sketch processing method on the generated set of sketch segments, thereby outputting one or more closed and manifold sketches. The fitting method includes: for each of the one or more detected directions: generating a 3D contour-based volume from the generated one or more closed and manifold sketches. Generating the 3D contour-based volume may include: extruding the generated one or more closed and manifold sketches according to the detected direction. In this case, the detected direction may be an extrusion direction and the 3D volume may be a 3D extruded volume. Alternatively, generating a 3D contour-based volume may include rotating the generated one or more closed and manifold sketches according to the detected direction. In this case, the detected direction may be a rotation direction and the 3D volume may be a 3D rotated volume.
[0046] A computer program is also provided, comprising instructions for executing the sketch processing method, the 2D generation method, the 3D generation method and / or the fitting method.
[0047] A computer-readable storage medium having the computer program recorded thereon is also provided. The data storage medium may be configured to be included in a device to form or be used as a non-transitory computer-readable medium, such as on a SaaS (Software as a Service) or other server, or on a cloud-based platform, etc.
[0048] A system is also provided, comprising a processor coupled to a memory, the memory having the computer program recorded thereon. The system may also comprise a graphical user interface coupled to the processor. BRIEF DESCRIPTION OF THE DRAWINGS
[0049] Non-limiting examples will now be described with reference to the accompanying drawings, in which:
[0050] - Figure 1 A flowchart showing an example of a sketch processing method;
[0051] - Figure 2 and Figure 3 Two examples of providing input sketches are shown;
[0052] - Figure 4 and Figure 5 An example of determining an output sketch is shown;
[0053] - Figure 6 shows that intersecting sketch segments are split before aggregation;
[0054] - Figure 7 and Figure 8 An example of closing an open sketch is shown;
[0055] - Fig. 9 Two examples of sketch processing by the sketch processing method are shown;
[0056] - Fig.10 An example of a collection of sketch segments is shown;
[0057] - Fig.11 Two examples of 2D and 3D generation methods are shown;
[0058] - Fig.12 An example of the fitting method is shown;
[0059] - Fig.13 An example of a 3D generation method is shown;
[0060] - Fig.14 An example of a graphical user interface of the system is shown; and
[0061] - Fig.15 An example of a system is shown. DETAILED DESCRIPTION
[0062] refer to Figure 1A computer-implemented method for sketch processing is presented in the flowchart of FIG. 1 . This method for sketch processing is referred to as a "sketch processing method". The sketch processing method includes providing S10 one or more input sketches. The one or more input sketches include at least one non-manifold sketch. Each non-manifold sketch is a sketch having at least one intra-sketch intersection. Alternatively or additionally, the one or more input sketches include at least one pair of sketches that share at least two inter-sketch intersections. The sketch processing method includes: determining S20 one or more output sketches from the one or more input sketches. Each output sketch is closed and manifold. Determining one or more output sketches includes: constructing S210 a manifold sketch set including each manifold input sketch. Each sketch in the constructed set is manifold. The construction of the manifold sketch set includes: for each corresponding non-manifold input sketch, determining S211 two or more corresponding manifold sketches based on at least one intra-sketch intersection of the corresponding non-manifold input sketch. The constructed set also includes each manifold sketch determined at S211. In other words, the set constructed at S210 is populated with each manifold input sketch and each manifold sketch determined at S211. Determination of one or more output sketches includes combining S220 each pair of manifold sketches in the constructed set that share at least two intersections to form one or more closed and manifold sketches. The one or more output sketches include each closed sketch in the constructed set and each closed and manifold sketch formed by the combination. This sketch processing method forms an improved scheme for sketch processing.
[0063] It is noteworthy that the sketch processing method allows one or more closed and manifold sketches to be generated from one or more input sketches. In fact, the sketch processing method determines one or more output sketches, each of which is closed and manifold based on the following: first, constructing a set of manifold sketches, and second, combining manifold sketch pairs from the constructed set. This determination of one or more output sketches is particularly efficient and allows the determined set of one or more closed and manifold sketches to be relatively exhaustive (i.e., including every meaningful closed and manifold sketch that can be generated from one or more input sketches or parts thereof). First constructing a set of manifold sketches and then combining sketch pairs that share at least an intersection in the set improves the efficiency of achieving this result.
[0064] Specifically, the construction of a set of manifold sketches allows reaching a result in a faster and more deterministic way than a brute-force solution consisting of cutting each input sketch into sketch segments and constructing all possible combinations of the sketch segments. Furthermore, the sketch processing method combines pairs of sketches that are manifold and share at least two intersections, which allows to obtain a relevant and exhaustive set quickly and with a reduced number of combinations (cuts in brute-force solutions lead to high combinatorial complexity). Thus, the sketch processing method allows making a relevant trade-off between the exhaustiveness of the result and the computational time to reach the result.
[0065] Furthermore, the sketch processing method does not suffer from the drawbacks of prior art methods based on neural network methods. In fact, firstly, the sketch processing method efficiently and accurately exploits the local geometric properties of the sketch (e.g., linearity or circularity). The sketch processing method allows the generation of a sketch that fits perfectly to the input sketch. Furthermore, the determined output sketch is more efficient in terms of storage and more intuitive for the user to operate when editing. Secondly, unlike deep learning methods, the sketch processing method does not rely on training data. This avoids the need to collect large data sets for training. It can also avoid poor performance when the input to the unknown output is too different from the input when it was trained (e.g., the sketch processing method may perform as well on a sketch representing a chair as on a sketch representing a car).
[0066] Furthermore, the sketch processing method can be used to reconstruct the original shape from one or more input sketches according to ergonomics. In fact, each of the one or more output sketches generated is closed and manifold, and thus allows to obtain a valid 2D shape or 3D shape. Therefore, the sketch processing method allows to reconstruct the original shape by providing a method to automatically obtain a 2D surface or 3D part that is valid for forming the original shape.
[0067] "Designing a manufactured product / mechanical component / mechanical product" refers to any action or series of actions that is at least part of an elaboration process of a (3D or 2D) modeled object of a manufactured product / mechanical component / mechanical product. Sketching methods, 2D generation methods, 3D generation methods and / or fitting methods may form such a design process or may form at least part of these design processes. The process may comprise the following steps:
[0068] - Obtaining one or more sketches. Obtaining the one or more sketches may include, for each sketch, defining the sketch based on user interaction (e.g., by drawing the sketch on a touch screen) and / or automatically determining the one or more sketches from a scan and / or image. Obtaining the one or more sketches is discussed in more detail below.
[0069] -Executing a sketch processing method to output one or more closed and manifold sketches, wherein the obtained one or more sketches are the provided one or more input sketches.
[0070] -Generate a 2D / 3D shape based on the output one or more closed and manifold sketches according to a 2D / 3D generation method.
[0071] - Optionally, editing the generated 2D / 3D shape. Editing may include: performing simulations based on the generated 2D / 3D shape, analyzing the results of the simulations and modifying the generated 2D / 3D shape accordingly.
[0072] - After the design process, the product / mechanical part / mechanical product can be manufactured (e.g. automatically) based on the generated 2D / 3D shape (optionally edited).
[0073] 2D generation methods, 3D generation methods and / or fitting methods generally manipulate modeling objects, such as formed 2D shapes, formed 3D shapes and / or generated 3D extruded volumes. Modeling objects are any objects defined by data stored, for example, in a database. By extension, the expression "modeling object" indicates the data itself. Depending on the type of system, modeling objects can be defined by different kinds of data. The system can indeed be any combination of a CAD system, a CAE system, a CAM system, a PDM system and / or a PLM system. In those different systems, modeling objects are defined by corresponding data. Therefore, CAD objects, PLM objects, PDM objects, CAE objects, CAM objects, CAD data, PLM data, PDM data, CAM data, CAE data can be mentioned. However, these systems are not mutually exclusive, because modeling objects can be defined by data corresponding to any combination of these systems. Therefore, the system may very well be a CAD, CAE, PLM and / or CAM system, which will be apparent from the definition of such systems provided below.
[0074] By CAD solution (e.g. CAD system or CAD software), it also means any system, software or hardware, at least suitable for designing modeled objects 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 include data allowing the representation of the modeled object. The CAD system can, for example, use edges or lines (in some cases using faces or surfaces) to provide a representation of the CAD modeled object. Lines, edges or surfaces can be represented in various ways, such as non-uniform rational B-splines (NURBS). In particular, a CAD file contains specifications from which geometric shapes can be generated, which in turn can allow the generation of a representation. The specifications of the modeled object can be stored in a single CAD file or in multiple CAD files. The typical size of a file representing a modeled object in a CAD system is in the range of 1 megabyte per component. And a modeled object can typically be a combination of thousands of components.
[0075] In the context of CAD, a modeled object may generally be a 2D or 3D modeled object, for example, representing a product such as a component or an assembly of components, or perhaps a component of a product. A 2D or 3D modeled object may be a manufactured product, i.e. a product to be manufactured. "3D modeled object" means any object modeled by data that allows its 3D representation. The 3D representation allows the component to be viewed from various angles. For example, when represented in 3D, the 3D modeled object can be manipulated and rotated about any of its axes or about any axis in the screen on which the representation is displayed. In particular, this excludes 2D icons that are not modeled in 3D. The display of a 3D representation facilitates design (i.e., increases the speed at which a designer statistically completes a task). Since the design of a product is part of the manufacturing process, this can speed up the industrial manufacturing process.
[0076] The 2D or 3D modeled object may represent the geometry of a product to be manufactured in the real world after virtual design has been completed using, for example, a CAD / CAE software solution or a CAD / CAE system, such as a (e.g. mechanical) component or assembly of components (or equivalently, an assembly of components, since an assembly of components may be considered as a component itself from the perspective of the method, or the method may be applied independently to each component in the assembly), or more generally, any rigid body assembly (e.g. a mobile machine). CAD / CAE software solutions allow the design of products in a wide and unlimited range of industrial sectors, including: aerospace, architecture, construction, consumer products, high-tech equipment, industrial equipment, transportation, marine and / or offshore oil / gas production or transportation. Therefore, the 3D modeled object designed by the method can represent an industrial product, which can be any mechanical part, such as parts of land vehicles (including, for example, automobile and light truck equipment, racing cars, motorcycles, truck and motor equipment, trucks and buses, trains), parts of aircraft (including, for example, fuselage equipment, aerospace equipment, propulsion equipment, defense products, aviation equipment, aerospace equipment), parts of marine transportation vehicles (including, for example, naval equipment, commercial vessels, offshore equipment, yachts and work vessels, ship equipment), general mechanical parts (including, for example, industrial manufacturing machinery, heavy mobile machinery or equipment, installed equipment, industrial equipment products, manufactured metal products, tire manufacturing products), electromechanical or electronic components (including, for example, consumer electronics products, safety and / or control and / or instrument products, computing and communication equipment, semiconductor products, medical devices and equipment), consumer products (including, for example, furniture, home and garden products, leisure goods, fashion products, products of hard goods retailers, products of soft goods retailers), packaging (including, for example, food, beverage and tobacco, beauty and personal care, household product packaging).
[0077] CAD systems can be history-based. In this case, the modeled object can be further defined by data including the history of geometric features. The modeled object can indeed be designed by a natural person (i.e., a designer / user) using standard modeling features (e.g., extrusion, rotation, cutting and / or rounding) and / or standard surface design features (e.g., sweeping, blending, lofting, filling, deformation and / or smoothing). Many CAD systems that support such modeling functions are history-based systems. This means that the creation history of the design features is usually saved through a non-cyclic data flow that links the geometric features together through input and output links. The history-based modeling paradigm has been widely known since the early 1980s. Modeled objects can be described by two persistent data representations: history and B-rep (i.e., boundary representation). B-rep is the result of the calculations defined in the history. When representing a modeled object, the shape of the part displayed on the computer screen is B-rep (e.g., a subdivision of B-rep). The history of the part is the design intent. Basically, the history collects information about the operations that the modeled object has undergone. B-rep can be saved with the history to make it easier to display complex parts. History can be saved with the B-rep to allow design changes to be made to the part based on design intent.
[0078] A PLM system also means any system suitable for managing modeled objects that represent physical manufactured products (or products to be manufactured). Thus, in a PLM system, modeled objects are defined by data suitable for the manufacture of physical objects. These can typically be dimensional values and / or tolerance values. In order to manufacture the object correctly, it is indeed better to have such values.
[0079] CAE solution also means any solution, hardware or software suitable for analyzing the physical behavior of a modeled object. A well-known and widely used CAE technology is the finite element model (FEM), which is equivalently referred to as a CAE model in the following. FEM generally involves dividing the modeled object into elements, i.e., a finite element mesh, whose physical behavior can be calculated and simulated by equations. Such CAE solutions are provided by Dassault Systèmes under the trademark Another growing CAE technology involves modeling and analyzing complex systems consisting of multiple components from different physical domains without CAD geometry data. CAE solutions allow simulations to be performed to optimize, improve and validate the products to be manufactured. Such CAE solutions are provided by Dassault Systèmes under the trademark Provided below.
[0080] CAM solution refers to any solution, hardware or software, suitable for managing the manufacturing data of a product. Manufacturing data generally includes data about the product to be manufactured, the manufacturing process and the resources required. CAM solutions are used to plan and optimize the entire manufacturing process of a product. For example, it can provide the CAM user with information about the feasibility, the duration of the manufacturing process or the number of resources (for example, a specific robot to be used at a specific step of the manufacturing process); thus allowing a decision to be made on the management or the required investment. CAM is a subsequent process after the CAD process and potentially the CAE process. For example, a CAM solution can provide information about machining parameters, or modeling parameters consistent with an extruded feature provided in the CAD model. Such CAM solutions are provided by Dassault Systèmes under the trademarks CATIA, Solidworks or the trademark CAD. Provided below.
[0081] Therefore, CAD and CAM solutions are closely related. In fact, CAD solutions focus on the design of a product or part, while CAM solutions focus on how it is manufactured. Designing a CAD model is the first step towards computer-aided manufacturing. In fact, CAD solutions provide key functionalities such as feature-based modeling and boundary representation (B-Rep) to reduce the risk of errors and loss of precision in the manufacturing process handled with CAM solutions. In fact, the CAD model is intended for manufacturing. Therefore, it is a virtual twin, also known as a digital twin, used to manufacture an object with the following two goals:
[0082] - Check the correct behavior of the object to be manufactured in a specific environment; and
[0083] - Ensure the manufacturability of the object to be manufactured.
[0084] PDM stands for Product Data Management. A PDM solution is any solution, hardware or software, suitable for managing all types of data related to a specific product. PDM solutions can be used by all actors involved in the product lifecycle: mainly engineers, but also project managers, finance personnel, sales personnel and buyers. PDM solutions are usually based on a product-oriented database. It allows actors to share consistent data about their products, thus preventing actors from using different data. This type of PDM solution is sold by Dassault Systèmes under the trademark Provided below.
[0085] The modeling object can be a 2D / 3D discrete geometric representation of a manufactured product / mechanical product / mechanical component. A discrete geometric representation is a data structure that includes a discrete set of data entries. Each piece of data can specify an element of a product / mechanical component and is called a discrete element. The discrete geometric representation can be 3D or optionally 2D. Alternatively, the discrete geometric representation can be 3D and 2D, that is, it can include a 3D part as a 3D discrete geometric representation and a 2D part as a discrete geometric representation, such as a hybrid 3D-2D meshing (for example, for modeling a product including thin parts (modeled using 2D parts) and thick parts (modeled using 3D parts)). In an example, the discrete geometric representation may include more than 100, 1000 or 10000 pieces of such data.
[0086] In the case of a 3D discrete geometric representation, the 3D discrete geometric representation may be a solid / volume 3D discrete geometric representation of a product / mechanical component, such as a solid 3D finite element model (FEM) or a 3D volume mesh (e.g., a 3D tetrahedral mesh). In this case, each piece of data may represent a corresponding geometric entity located in a 3D space, such that one or more pieces of data form a solid representation of the mechanical component / product (i.e., a "solid 3D discrete geometric representation"). Each geometric entity may represent a corresponding position (i.e., a material point) of a 3D object (in other words, a corresponding portion of the material constituting the entity represented by the 3D object). The aggregation (i.e., union or juxtaposition) of the geometric entities together represents the 3D object as a solid / volume. The 3D discrete geometric representation may alternatively be a skin 3D discrete geometric representation that represents the skin of the product / mechanical component, such as a 3D surface mesh (e.g., a triangular surface mesh) or a subdivision. In this case, each piece of data may represent a corresponding geometric entity located in a 3D space, such that one or more pieces of data form a representation of the skin of the mechanical product (i.e., a "skin 3D discrete geometric representation"). In this case, each geometric entity represents a corresponding location (i.e., material point) on the outer surface of the 3D object (in other words, a corresponding portion of the outer surface of the volume occupied by the constituent material of the entity represented by the object). The aggregation (i.e., union or juxtaposition) of geometric entities together represents at least a portion of the outer surface of the object.
[0087] In the case of a 2D discrete geometric representation, each piece of data may represent a corresponding geometric entity located in a 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, such as a distribution of thickness values on its finite elements. Such a 2D discrete geometric representation may, for example, represent a substantially planar product, such as a stamped part (e.g., with a constant thickness value) or a composite part (e.g., with different thickness values).
[0088] The discrete geometric representation may be, or may further be converted into, a CAE model, also referred to as a "finite element model (FEM)". The CAE model may be derived from a CAD model representing a mechanical component / product, for example, the method comprising obtaining the CAE model from the CAD model in an initial stage, for example, using a meshing (e.g., triangulation) process. Conversely, the CAE model may be converted into a CAD model. The method may design / output a CAE model, which may then be converted into a corresponding CAD model. The method may include or may be included in a broader process, which includes or may form a solution to (e.g., automatically) convert a CAE model designed / output by the method into a CAD model by using any known (e.g., automatic) CAE to CAD conversion process that converts a CAE model into a CAD model.
[0089] The modeled object may alternatively be a CAD model, for example comprising or consisting of a feature tree and / or a B-rep. Such a model may originate from a CAE model and may come from a CAE to CAD conversion process, which the method may for example include in an initial stage.
[0090] The CAD model can be feature-based (e.g., it can include a feature tree and, optionally, a corresponding B-rep obtained by executing the feature tree). The feature-based 3D model allows (e.g., during determination of a manufacturing file or CAM file, as described below) the detection and automatic resolution of geometric errors in the CAD model, such as collisions that will affect the manufacturing process. A collision is an interpenetration between two parts of a 3D model, for example due to their relative motion. Furthermore, such collisions can sometimes only be detected by finite element analysis based on the CAD feature model. Therefore, an automatic resolution of the collision can be performed using or by a CAD solution by iteratively modifying the parameters of the features and performing a finite element analysis.
[0091] As another example, a feature-based 3D model allows for the automatic creation of tool paths for a machine via computer numerical control (CNC) (e.g., during determination of a manufacturing file or CAM file, as discussed below). With CNC, each object to be manufactured has a customized computer program that is stored in and executed by a machine control unit, which is a microcomputer connected to the machine. The program contains the instructions and parameters that the machine tool will follow. Milling machines, lathes, routers, grinders, and lasers are examples of common machine tools whose operations can be automated via CNC.
[0092] The generation of custom computer programs from CAD files can be automated. As such, such generation can be error-prone and can ensure that the CAD model is perfectly replicated on the manufactured product. CNC is considered to offer greater precision, complexity, and repeatability than manual machining. Other advantages include greater accuracy, speed, and flexibility, as well as features such as contour machining, which allows for the milling of contoured shapes, including those produced in 3D designs.
[0093] A B-rep (i.e., boundary representation) is a 3D representation of a mechanical component. Specifically, a B-rep is a persistent data representation that describes a 3D modeled object that represents a mechanical component. A B-rep may be the result of a calculation and / or a series of operations performed during the design phase of a 3D modeled object that represents a mechanical component. When representing a modeled object, the shape of the mechanical component displayed on a computer screen is represented as a B-rep (e.g., a subdivision of the B-rep). In an example, a B-rep represents a portion of a modeled object.
[0094] B-Rep consists of topological entities and geometric entities. Topological entities are: faces, edges and vertices. Geometric entities are 3D objects: surfaces, planes, curves, lines, points. By definition, a face is a bounded part of a surface, called the supporting surface. An edge is a bounded part of a curve, called the supporting curve. A vertex is a point in 3D space. The relationship between them is as follows. The bounded part of a curve is defined by two points (vertices) that lie on the curve. The bounded part of a surface is defined by its boundary, which is the set of edges that lie on the surface. The boundaries of the edges of a face are connected by sharing vertices. Faces are connected by sharing edges. If two faces share an edge, then the two faces are adjacent. Similarly, if two edges share a vertex, then the two edges are adjacent. In a CAD system, B-Rep collects the "bounded by" relationship, the relationship between the topological entities and the supporting geometry, and the mathematical description of the supporting geometry in appropriate data structures. The internal edges of a B-Rep are the edges shared by exactly two faces. By definition, a boundary edge is not shared, it only bounds one face. By definition, a boundary surface is bounded by at least one boundary edge. A B-Rep is said to be closed if all of its edges are interior edges. A B-Rep is considered open if it includes at least one boundary edge. A closed B-Rep is used to model thick 3D volumes, as it defines an interior portion of a spatially (virtually) closed material. An open B-Rep is used to model 3D skins, which represent 3D objects with negligible thickness.
[0095] A key advantage of B-Rep over any other type of representation used in CAD modeling is its ability to accurately represent arbitrary shapes. All other representations used, such as point clouds, distance fields and meshes, perform an approximation of the shape by discretizing the representation. B-Rep, on the other hand, contains the surface equations that represent the exact design and therefore constitutes a true "master model" for further manufacturing, whether for CNC tool path generation 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 manufactured object. B-Rep is also beneficial for simulating the behavior of 3D models. In terms of stress, thermal, electromagnetic or other analysis, it supports local refinement of the simulation mesh to capture physical phenomena, and for kinematics, it supports the modeling of realistic contacts between curved surfaces. Finally, B-Rep allows for a smaller memory and / or file footprint. First, because the representation contains surfaces based only on parameters. In other representations such as meshes, the equivalent surface includes up to thousands of triangles. Second, because B-Rep does not contain any history-based information.
[0096] The method may be included in a manufacturing process, which may include: producing a physical product corresponding to the modeled object designed / processed / output by the method. The production process may include the following steps:
[0097] - applying (e.g. automatically) a 2D generation method, a 3D generation method and / or a fitting method, thereby obtaining a CAD model or a CAE model (i.e. a 2D shape, a 3D shape and / or a generated 3D extruded volume) output by the method;
[0098] - optionally, (e.g. automatically) converting the obtained CAE model into a CAD model, as described above, using a (e.g. automatic) CAE to CAD conversion process;
[0099] -Use the obtained CAD model for manufacturing the part / product.
[0100] Converting the CAE model to a CAD model may include performing the following (e.g., fully automatic) conversion process that takes the CAE as input and converts it into a CAD model including a feature tree representing the product / component. The conversion process includes the following steps (wherein there are known fully automatic algorithms to implement each of these steps):
[0101] - segmenting the CAE model or its outer surface / skin, thereby splitting the CAE model into segments, for example each segment forming a surface portion of the model;
[0102] - detecting the geometry of the CAD feature by processing the segments, e.g. comprising detecting segments or groups of segments, each of which forms a given CAD feature geometry (e.g. extrusion, rotation or any canonical primitive), and optionally geometric features (e.g. extrusion axis, rotation axis or contour);
[0103] - parameterizing the detected geometric shape, e.g. based on the geometric shape and / or said geometric features thereof;
[0104] - fitting each CAD operator to a corresponding part of the CAE model based on the geometry of the part, for example by aggregating adjacent segments detected as being part of the same feature geometry;
[0105] - Encode the geometry and corresponding CAD operators as a feature tree;
[0106] - Optionally, execute the feature tree to obtain a B-rep representation of the product;
[0107] - Output feature tree and optional B-rep, which form the CAD model.
[0108] Manufacturing using a CAD model specifies any real-world action or series of actions that involves / participates in the manufacturing of a product / component represented by a CAD model. Manufacturing using a CAD model may, for example, include the following steps:
[0109] -Edit the obtained CAD model;
[0110] - performing simulations based on the CAD model or a corresponding CAD model (e.g. a CAE model from which the CAD model is derived after a CAE to CAD conversion process), such as simulations for verifying mechanical, usage and / or manufacturing properties and / or constraints (e.g. structural simulations, thermodynamic simulations, aerodynamic simulations);
[0111] -Edit CAD models based on simulation results;
[0112] - (i.e. depending on the manufacturing process used, the production of the mechanical product may or may not include this step) determining (e.g. automatically) a manufacturing file / CAM file based on the (e.g. edited) CAD model for use in the production of the manufactured product
[0113] / manufacture;
[0114] - Send CAD files and / or manufacturing files / CAM files to the factory; and / or
[0115] - producing / manufacturing a mechanical product represented by the model initially output by the method, based on the determined manufacturing file / CAM file or CAD model (e.g. automatically). This may include feeding the manufacturing file / CAM file and / or CAD file (e.g. automatically) to a machine that performs the manufacturing process.
[0116] The last step of production / manufacturing can be called a manufacturing step or a production step. This step manufactures / produces the part / product based on the CAD model and / or CAM file, for example when the CAD model and / or CAD file is fed to one or more manufacturing machines or a computer system that controls the machine. The manufacturing step can include performing any known manufacturing process or a series of manufacturing processes, such as one or more additive manufacturing steps, one or more cutting steps (such as laser cutting or plasma cutting steps), one or more stamping steps, one or more forging steps, one or more modeling steps, one or more machining steps (such as milling steps) and / or one or more stamping steps. Since the design method improves the design of the model (CAE or CAD) representing the part / product, manufacturing and its productivity are also improved.
[0117] Editing a CAD model may include: performing one or more CAD models by a user (i.e., a designer), for example, by using a CAD solution. Modifications to a CAD model may include one or more modifications to each item of the geometry and / or parameters of the CAD model. Modifications may include any modification or a series of modifications performed on the feature tree of the model (e.g., modifications of feature parameters and / or specifications) and / or modifications performed on the displayed representation of the CAD model (e.g., B-rep). A modification is a modification that maintains the technical functionality of the component / product, i.e., a user performs a modification that may affect the geometry and / or parameters of the model, but only to make the CAD model more technically compatible with the downstream use and / or manufacture of the component / product. Such modifications may include any modification or a series of modifications that make the CAD model technically compatible with the machine specifications used in the downstream manufacturing process. Such modifications may additionally or alternatively include any modification or a series of modifications that make the CAD model technically compatible with further use after the product / component is manufactured, such as such modifications or a series of modifications based on simulation results.
[0118] The CAM file may include a manufacturing upgrade model obtained from a CAD model. The manufacturing step may include all data required to manufacture the mechanical product so that it has a geometry and / or material distribution corresponding to what is captured by the CAD model, possibly up to manufacturing tolerance errors. Determining the production file may include applying any CAM (Computer Aided Manufacturing) solution (e.g. automatically) for determining the production file from the CAD model (e.g. any automatic CAD to CAM conversion algorithm).
[0119] The product / part may be an additively manufactured part, i.e. a part manufactured by additive manufacturing (i.e. 3D printing). In this case, the production process does not include a step of determining a CAM file, but directly enters the production / manufacturing step by directly (e.g. automatically) feeding the CAD model to the 3D printer. The 3D printer is configured to 3D print the mechanical product directly and automatically according to the CAD model when fed with a CAD model representing the mechanical product (e.g. when 3D printing is initiated by a 3D printer operator). In other words, the 3D printer receives the CAD model (which is fed (e.g. automatically) to the 3D printer), reads the CAD model (e.g. automatically), and prints the part (e.g. automatically) by adding materials together, e.g. layer by layer, to reproduce the geometry and / or distribution of the material captured by the CAD model. The 3D printer adds material so as to accurately reproduce in reality the geometry and / or distribution of the material captured by the CAD model, up to the resolution of the 3D printer, and optionally with or without tolerance errors and / or manufacturing corrections. Manufacturing may include, for example, determining such manufacturing corrections and / or tolerance errors by a user (e.g., an operator of a 3D printer) or automatically (by the 3D printer or a computer system controlling it), for example by modifying a CAD file to match the specifications of the 3D printer. The production process may additionally or alternatively include determining (e.g., automatically by the 3D printer or a computer system controlling it) a printing direction from the CAD model, for example to minimize overhang volume (as described in European Patent No. 3327593, which is incorporated herein by reference), layer slicing (i.e., determining the thickness of each layer, and the layer-by-layer path / trajectory), and other characteristics of the 3D printer head (e.g., for a laser beam, such as path, speed, intensity / temperature and other parameters).
[0120] The product / component may alternatively be a machined component (i.e. a component manufactured by machining), such as a milled component (i.e. a component manufactured by milling). In this case, the production process may include a step of determining a CAM file. This step may be automatically performed by any suitable CAM solution to automatically obtain a CAM file from a CAD model of the machined component. The determination of the CAM file may include (e.g. automatically) checking whether the CAD model has any geometrical characteristics (e.g. errors or artifacts) that may affect the production process and (e.g. automatically) correcting such characteristics. For example, if the CAD model still contains sharp edges (because the machining or milling tool cannot produce sharp edges), machining or milling based on the CAD model may not be performed, and in this case, the determination of the CAM file may include (e.g. automatically) rounding or filleting such sharp edges (e.g., having such a rounding or fillet radius that corresponds to, for example, substantially equal to the tolerance error, the radius of the cutting head of the machining tool) so that machining or milling can be performed according to the CAD model. More generally, the determination of the CAM file may automatically include fillet or rounded geometry within the CAD model that is incompatible with the radius of the machining or milling tool to enable machining / milling. This check and possible correction (e.g., fillet or rounded geometry) may be performed automatically as previously described, but may also be performed manually by a user (e.g., a machining engineer) who manually performs corrections to the CAD and / or CAM solution (e.g., a solution that constrains the user to perform corrections to bring the CAD model into compliance with the specifications of the tool used in the machining process).
[0121] In addition to the inspection, the determination of the CAM file may include: (e.g., automatically) determining a machining or milling path, i.e., a path taken by a machining tool to machine the product. The path may include a set of coordinates and / or a parameterized trajectory followed by a machining tool for machining, and determining the path may include: (e.g., automatically) calculating these coordinates and / or trajectories based on a CAD model. The calculation may be based on the calculation of the Minkowski subtraction boundary of a CAD model represented by a CAD model of the machining tool, such as discussed in European patent application EP21306754.9 filed by Dassault Systèmes on December 13, 2021, and the application is incorporated herein by reference. It should be understood that the path may be a single path, for example, the tool follows the path continuously without interrupting contact with the material to be cut. Alternatively, the path may be a series of sequential sub-paths followed by the tool in a specific order, for example, the tool follows each sub-path continuously without interrupting contact with the material to be cut. Optionally, the determination of the CAM file may then include (e.g. automatically) setting machine parameters, including cutting speed, cutting / piercing height and / or die opening stroke, for example based on the determined path and the specifications of the machine. Optionally, the determination of the CAM file may then include (e.g. automatically) configuring nesting, wherein the CAM solution determines the optimal orientation of the part to maximize machining efficiency.
[0122] In the case of machining or milling a component, the determination of a CAM file thus results in and outputs a CAM file comprising a machining path and optionally set machine parameters and / or configuration nesting specifications. This output CAM file can then be fed (e.g. directly and automatically) to a machining tool and / or the machining tool can then be programmed (e.g. directly and automatically) by reading this file, the production process based on which comprises a production / manufacturing step, wherein the machine performs the machining of the product according to the production file, e.g. by directly and automatically executing the production file. The machining process comprises: the machining tool cuts a real-world block of material to reproduce the geometry and / or distribution of the material captured by the CAD model, e.g., up to a tolerance error (e.g., tens of microns for milling).
[0123] The product / component may alternatively be a modeled component, i.e. a component manufactured by modeling (e.g. injection molding modeling). In this case, the production process may include a step of determining a CAM file. This step may be automatically performed by any suitable CAM solution to automatically obtain a CAM file from a CAD model of the modeled component. The determination of the CAM file may include: (e.g. automatically) performing a series of modeling checks based on the CAD model to check whether the geometry and / or distribution of the material captured by the CAD model is suitable for modeling, and if the CAD model is not suitable for modeling, then (e.g. automatically) performing appropriate corrections. The execution of the checks and appropriate corrections (if any) may be performed automatically, or alternatively by a user (e.g. a modeling engineer), for example, using a CAD and / or CAM solution that allows the user to perform appropriate corrections to the CAD model but limits his / her corrections to the specifications of the CAD model that conform to the modeling tool. These checks may include: verifying that the virtual product represented by the CAD model is consistent with the dimensions of the mold and / or verifying that the CAD model includes all draft angles required for product demoulding, as known from the modeling itself. The determination of the CAM file may then further include: determining the amount of liquid material used for modeling and / or the time for the liquid material to harden / solidify in the mold based on the CAD model, and outputting a CAM file including these parameters. The production process then includes: (e.g., automatically) performing modeling based on the output file, wherein the mold models the liquid material into a shape corresponding to the geometry and / or distribution of the material captured by the CAD model within the determined hardening time, for example, up to a tolerance error (e.g., adding a draft angle or modifying a draft angle for demolding).
[0124] The product / component may alternatively be a stamped component, which may also be referred to as a "stamped component", i.e. a component manufactured in a stamping process. In this case, the production process may include (e.g. automatically) determining a CAM file based on the CAD model. The CAD model represents the stamped component, for example, if the component is to include some flanges, one or more flanges may be used, and in the latter case additional material may need to be removed in order to form the unfolded state of one or more flanges of the component, which is itself known from stamping. The CAD model therefore includes a portion (in some cases the entire component) representing the component without flanges and an external additional patch portion that may represent the flanges (if any), and possibly additional material (if any). This additional patch portion may present g2 continuity over a certain length and then g1 continuity over a certain length.
[0125] In such a stamping situation, the determination of the CAM file may include: determining (e.g., automatically) the parameters of the stamping machine, such as the size and / or punching force of the stamping die or punch, based on the geometry and / or material distribution of the virtual product captured by the CAD model. If the CAD model also includes a representation of the additional material to be removed to form the unfolded state of one or more flanges of the component, the additional material to be removed can be cut, for example, by machining, and determining the CAM file may also include: determining the corresponding machining CAM file, for example as described above. If there are one or more flanges, determining the CAM file may include: determining the geometric specifications of the g2 continuity and g1 continuity parts, which allow the flange to be folded toward the inner surface of the stamped component and along the g2 continuous length during the folding process after the stamping itself and the removal of the additional material. The CAM file thus determined may therefore include: the parameters of the stamping tool, optionally the specifications for folding the flange (if any), and optionally the machining production file for removing the additional material (if any).
[0126] The stamping production process can then output, for example, a CAM file, and execute the stamping process (e.g., automatically) based on the file. The stamping process can include stamping (e.g., punching) a portion of the material to form a product as shown in the CAD file, which may have an unfolded flange and additional material (if any). Where appropriate, the stamping process can then include: cutting excess material based on the machining production file, and folding the flange based on the specifications for folding the flange, thereby folding the flange over its g2 continuous length and providing a smooth appearance to the outer boundary of the part. In the latter case, the shape of the manufactured part differs from the virtual counterpart represented by the CAD model because the excess material is removed and the flange is folded, while the CAD model represents the part with additional material and the flange in an unfolded state.
[0127] The sketch processing method, 2D generation method, 3D generation method and fitting method are implemented by a computer. This means that the steps (or substantially all steps) of each method are performed by at least one computer or any similar system. Therefore, the steps of each method may be performed fully automatically or semi-automatically by a computer. In an example, the triggering of at least some steps of the method may be performed by user-computer interaction. The required user-computer interaction level may depend on the foreseen automatic level and be balanced with the need to implement the user's wishes. In an example, the level may be user-defined and / or predefined.
[0128] For each method, a typical example of a computer implementation of the method is to perform the method using a system suitable for this purpose. The system may include a processor coupled to a memory and a graphical user interface (GUI), and the memory has recorded thereon a computer program including instructions for performing the method. The memory may also store a database. The memory is any hardware suitable for such storage, and may include several physically different parts (e.g., one for the program and one for the database).
[0129] A sketch is a computer object that represents a continuous line defined in 2D space. A sketch may include one or more sketch segments, each of which has a specific geometric shape (e.g., straight, curved, or circular) and represents a corresponding portion of the line represented by the sketch. The ends of the sketch segments may be connected together to form a sketch. A sketch may consist of a set of successive points that together form a continuous line represented by the sketch. Each point may be a topological object located at a given position in 2D space.
[0130] The set of successive points may represent a series of pixels. Sketch processing may include displaying the series of pixels on a screen (e.g., via a graphical interface). The display may include determining the position of each pixel in the series on the screen based on the position of corresponding points in the set of successive points that together form a line represented by the sketch. Alternatively, the set of successive points may represent one or more parametric curves. The set may include one or more subsets of points, each subset of points representing a corresponding parametric curve. In this case, the display of the sketch may include deriving a corresponding series of pixels (i.e., a series of pixels to be displayed on the screen) from each parametric curve. The parametric curve may be a spline defined for successive points in the subset representing the parametric curve. For example, the spline may be defined by a piecewise function in 2D space, the function consisting of a polynomial on each interval between each successive point in the subset. Each parametric curve may represent a corresponding sketch segment of the sketch.
[0131] Sketches can be non-manifold or manifold.
[0132] A non-manifold sketch is a sketch that includes at least one intra-sketch intersection, i.e., a sketch that includes two different parts that intersect, the intersection dividing at least one of the two different parts into two different sub-parts. An intra-sketch intersection can include two points of the sketch that are located at the same position in 2D space. A line of the sketch intersects itself at the same position in 2D space, which is the location of the intra-sketch intersection. A manifold sketch is a sketch that has no sketch interior intersection.
[0133] Sketches can be closed or open (i.e., not closed). A closed sketch is one where the start and end points of the sketch are at the same location in 2D space. The start point can be the first point in a set of consecutive points that together form the line represented by the sketch, and the end point can be the last point in the set. An open sketch is one where the start point is at a different location in 2D space than the end point.
[0134] Now discuss the provision S10 of one or more input sketches. For each input sketch, the provision S10 of the input sketch may also be based on one of the following supply types. The provision S10 of the input sketch may be manual. For example, for each input sketch, the provision S10 may include: entering each input sketch by a user, for example, by entering the coordinates of each point in the input sketch via a graphical user interface (for example, by selecting the coordinates of each point on the screen). Alternatively, the provision S10 of the input sketch may be semi-automatic. For example, the provision S10 may include: detecting a drawing drawn by a user (for example, on a tactile surface), and then forming one or more input sketches based on the drawing drawn by the user. For example, the drawing may include: performing one or more user interactions, each user interaction defining a corresponding substantially continuous line (for example, via a continuous slide on the screen), and the forming may include: detecting these substantially continuous lines of the drawing and fitting one or more input sketches to these substantially continuous lines (for example, one corresponding input sketch for each substantially continuous line). Alternatively again, the provision S10 of the input sketch may be fully automatic. For example, providing S10 may include: providing an image (e.g., automatically capturing a product image or importing an image), and automatically forming one or more input sketches based on the provided image. Thus, the image may be a natural image or a photograph. The forming may include: detecting one or more edges of the image, and the forming may include: fitting a corresponding input sketch on each detected edge. Detecting edges in an image may include: detecting significant color and / or contrast changes in the image (e.g., above a threshold). In an example, one or more input sketches may be provided directly. For example, the sketch processing method may include: selecting one or more input sketches (e.g., by a user in a database) and retrieving the selected one or more input sketches.
[0135] The one or more input sketches may include at least one pair of sketches that share at least two inter-sketch intersections. An inter-sketch intersection is an intersection between a pair of sketches (i.e., a pair of two sketches). Each of the two sketches in the pair includes a point located at the same position in 2D space, which is the inter-sketch intersection point.
[0136] The determination of one or more output sketches S20 is now discussed.
[0137] Determining S20 includes: constructing S210 a manifold sketch set. The construction S210 of the manifold sketch set may include: processing each input sketch in one or more input sketches. After each processing, the construction S210 may include: adding one or more manifold sketches to a temporary set (the temporary set initially has no sketches, and the construction S210 includes filling the temporary set with manifold sketches in sequence). After processing each input sketch, the construction S210 may include: defining the temporary set as a constructed set. The construction S210 of the manifold sketch set may include: processing each input sketch in one or more input sketches sequentially (one input sketch at a time) or in parallel (multiple input sketches at the same time). The processing of the input sketch may include: detecting whether the input sketch is a manifold, and determining one or more manifold sketches to be added to the temporary set depending on whether the input sketch is a manifold, and adding these determined one or more manifold sketches to the temporary set.
[0138] Processing of the input sketch may include automatically detecting whether the input sketch is manifold. For example, the detection may include detecting whether the input sketch includes at least one intra-sketch intersection. Then, the detection may include determining that the input sketch is non-manifold when the input sketch is detected to include at least one intra-sketch intersection, otherwise the input sketch is manifold.
[0139] After each processing, one or more manifold sketches to be added to the temporary set may depend on the input sketch, as discussed below.
[0140] When the input sketch is a manifold, the construction may directly add the input sketch to the temporary collection. In that case, the manifold sketch added to the temporary collection is therefore an input sketch (an input sketch detected as a manifold sketch). The temporary collection may therefore include each of the one or more input sketches that are manifolds. Alternatively or additionally, the sketch processing method may copy or transfer the input sketch to a memory space associated with the constructed manifold sketch collection.
[0141] When the input sketch is non-manifold, constructing S210 may include: determining S211 two or more corresponding manifold sketches based on at least one intra-sketch intersection of the corresponding non-manifold input sketches. For example, determining S211 may include: splitting the non-manifold input sketch to obtain two or more corresponding manifold sketches, each manifold sketch corresponding to a corresponding portion of the input sketch (the portion is manifold, i.e., does not have an intra-sketch intersection). Then, the construction may include: adding the two or more corresponding manifold sketches to a collection. For example, the construction may include: adding an identifier of each of the two or more corresponding manifold sketches in the list previously discussed. Alternatively or additionally, the construction may include: copying or transferring the two or more corresponding manifold sketches to the storage space previously discussed.
[0142] The one or more output sketches include each closed sketch in the constructed set. For example, after each processing, determining S20 may also include: for each manifold sketch added to the set, detecting whether the sketch is closed, and when the sketch is detected to be closed, defining the sketch as one of the one or more output sketches. In this case, determining S20 may include: identifying the sketch as an output sketch (for example, using a marker), so that determining S20 may include: retrieving the identified sketch at the end of processing of the sketch. Alternatively, the sketch detected as closed can be copied or transferred to a storage space associated with one or more output sketches.
[0143] After the construction S210 of the manifold sketch set, the determination S20 includes: combining S220 each pair of manifold sketches in the constructed set that share at least two intersections to form one or more closed and manifold sketches. Each of the at least two intersections may be an inter-sketch intersection or an intra-sketch intersection. For example, when one or more input sketches include a non-manifold sketch having two intra-sketch intersections, the at least two intersections may be at least two intra-sketch intersections of the non-manifold sketches. Alternatively or additionally, when one or more input sketches include a pair of input sketches that share at least two inter-sketch intersections, the at least two intersections may be at least two inter-sketch intersections shared by the pair of input sketches. Alternatively, the at least two intersections may also be a combination of at least one inter-sketch intersection and at least one intra-sketch intersection (i.e., at least one inter-sketch intersection shared by a pair of input sketches and at least one intra-sketch intersection of a non-manifold input sketch). Determining S20 may include defining each of the one or more closed sketches and manifold sketches as one of the one or more output sketches. In this case, determining S20 may include identifying each closed and manifold sketch as an output sketch (e.g., using a marker), so that determining S20 may include retrieving each of the one or more closed and manifold sketches at the end of processing of the sketch. Alternatively, the sketch processing method may copy the one or more closed and manifold sketches or transfer them to a storage space associated with the one or more output sketches.
[0144] For each combined pair, each of the at least two intersections may be an inter-sketch intersection (i.e., originally shared by a pair of input sketches) or may be an intra-sketch intersection of a non-manifold input sketch. In an example, one or more input sketches may include at least one pair of sketches that share at least two inter-sketch intersections. In that case, for each of these at least one pair of sketches, the at least two intersections correspond to the at least two inter-sketch intersections shared by the pair of sketches. Alternatively or additionally, one or more input sketches may include at least one non-manifold sketch. In this case, for each of at least one non-manifold sketch having at least two intra-sketch intersections, when the combined pair is a pair of two or more corresponding manifold sketches determined based on the non-manifold sketch, the at least two intersections may correspond to the at least two intra-sketch intersections of the at least one non-manifold sketch.
[0145] The step of determining S211 two or more corresponding manifold sketches for a non-manifold input sketch may include: recursively splitting the non-manifold input sketch. Each input sketch may be directional. The recursive splitting may include: browsing the non-manifold input sketch. Browsing the sketch may include: reading each point in a set of successive points forming a sketch line sequentially (i.e., one by one) by a computer. The orientation of the sketch may give a direction for browsing (i.e., browsing may be based on / following the orientation of the sketch).
[0146] During browsing, recursive splitting may include: encountering an intra-sketch intersection. For example, the reading of a point may include: determining that the point belongs to an intra-sketch intersection. At this time, the recursive splitting may include: splitting the corresponding non-manifold input sketch at the meeting point of the intra-sketch intersection, thereby forming two sketch blocks. Each of the two sketch blocks formed may correspond to a corresponding portion (or several corresponding portions) of the corresponding non-manifold input sketch defined by the meeting point. For example, the splitting may include: identifying a portion of the corresponding non-manifold input sketch including points of the corresponding non-manifold input sketch that have been read as a first sketch block, and identifying the remaining portion of the corresponding non-manifold input sketch (i.e., a portion containing other points that have not yet been read) as a second sketch block. After splitting the two sketch blocks, the sketch processing method may include processing each sketch block independently (e.g., sequentially or in parallel). The processing of the sketch block may include: determining whether the sketch block does not have an intra-sketch intersection. For example, the processing may include browsing a sketch block to determine whether one of the points is read as an intra-sketch intersection, and determining that the sketch block is non-manifold when one of the points is read as an intra-sketch intersection. Then, the processing may include determining that the sketch block is one of two or more corresponding manifold sketches if the sketch block does not have an intra-sketch intersection. Otherwise, if the sketch block has at least one intra-sketch intersection, the processing may include repeating the recursive splitting of the sketch block. The repetition of the recursive splitting may include splitting the sketch block, thereby forming two new sketch blocks from the sketch block, and independently processing each of the two new sketch blocks as described above (i.e., determining whether the new sketch block is manifold, and splitting each new sketch that is non-manifold).
[0147] Therefore, recursive splitting allows to efficiently obtain two or more manifold sketches from corresponding non-manifold sketches. Specifically, recursive slicing improves splitting efficiency by allowing to simplify the assignment of sketch blocks from each split, since each performed split only splits into two sketch blocks, so it is straightforward to determine to which new sketch block each sliced sketch block belongs.
[0148] In an example, one or more input sketches include one or more closed non-manifold input sketches. In this case, for each closed non-manifold input sketch, splitting of the closed non-manifold input sketch may include: browsing the closed non-manifold input sketch starting from an intra-sketch intersection (a point encountered during browsing of the non-manifold input sketch). For example, browsing may continue to read points connected after the encountered point in the intra-sketch intersection. Then, splitting may include encountering another point in the intra-sketch intersection. The other point belongs to the same intra-sketch intersection as the previously encountered point. The intra-sketch intersection includes at least two points, and the previously encountered point is the first point of the at least two points, and the other encountered point is the second point of the at least two points. After encountering the other point, splitting may include: extracting a sketch block from the closed non-manifold input sketch between the point and the other point of the intra-sketch intersection. Extraction may include: splitting a closed non-manifold input sketch at another point encountered, thereby forming a new closed sketch block between the first encountered point and another point encountered after the first encountered point (the new closed sketch block formed is the extracted sketch block), and the remaining sketch blocks of the closed non-manifold input sketch (i.e., the closed non-manifold input sketch without forming a new closed sketch block). Splitting may include: defining the extracted sketch block as one of the two sketch blocks into which the non-manifold input sketch is split, and defining the remaining sketch block as the other of the two sketch blocks. Because the non-manifold is closed, the sketch processing method can define the extracted sketch block and the remaining sketch block as closed, for example, by connecting a point of intersection within the sketch to another point of intersection within the sketch for each sketch block.
[0149] In an example, one or more input sketches may include one or more open non-manifold input sketches. In this case, for each open corresponding non-manifold input sketch, splitting of the corresponding non-manifold input sketch may include: starting to browse the non-manifold input sketch from a point of an intra-sketch intersection (a point encountered during browsing the non-manifold input sketch). For example, browsing may continue to read points connected after the encountered point of the intra-sketch intersection. Then, splitting may include encountering another point in the intra-sketch intersection. The intra-sketch intersection to which the other point belongs is the same as the intra-sketch intersection of the first encountered point (the point belongs to the same intra-sketch intersection as the other point). After encountering the other point, splitting may include: extracting a sketch block from the non-manifold input sketch between the point and another point of the intra-sketch intersection. The sketch block is extracted between two points of the same intra-sketch intersection. The extracted sketch block is therefore closed, and may therefore be defined by the sketch processing method as one of the two sketch blocks into which the non-manifold input sketch is split. Because the non-manifold input sketch is open, the remaining portion of the sketch (i.e., the sketch without the extracted portion) consists of two remaining sketch blocks, and each of the two remaining sketch blocks is open. After the extraction, the splitting may include: connecting the remaining two sketch blocks to form the other of the two sketch blocks. The connection may include: connecting an end of one of the two sketch blocks to an end of the other of the two sketch blocks. For each of the two sketch blocks, the end is an end close to the point of intersection.
[0150] In an example, each pair of manifold sketches combined in the combining step S220 may include a first manifold sketch and a second manifold sketch. The formation of one or more closed sketches may take into account each pair of successive intersections between the first manifold sketch and the second manifold sketch along the second manifold sketch. For each pair of successive intersections, the formation may include: extracting a portion of the second manifold sketch bounded by the two successive intersections. After the extraction, the formation may include: splitting the first manifold sketch between the two successive intersections, thereby obtaining one or two fragments of the first manifold sketch. After the splitting, the formation may include: recombining each fragment of the first manifold sketch with the extracted portion of the second manifold sketch, thereby obtaining one or two closed and manifold sketches. Considering each pair of successive intersections along the second manifold sketch ensures that the obtained one or more closed sketches are manifolds.
[0151] In an example, the set obtained by constructing S210 consists of unique sketches. For example, constructing S210 may include: before defining the temporary set as the constructed set, detecting at least one pair of sketches that are equal in the temporary set, and removing one of the sketches in the pair of sketches in the temporary set.
[0152] In an example, the providing S10 of one or more input sketches may include obtaining a set of sketch segments. The obtaining of the set of sketch segments may be manual. For example, each sketch segment may be typed by a user (e.g., by typing the coordinates of two ends of the sketch segment). Alternatively, the obtaining of the set of sketch segments may be semi-automatic. For example, the obtaining may include: detecting a drawing drawn by a user (e.g., on a tactile surface), and then forming one or more sketch segments based on the drawing drawn by the user. For example, the drawing may include: performing one or more user interactions, each user interaction defining a corresponding substantially continuous straight line (e.g., via a continuous and straight slide on a screen), and the forming may include: detecting these substantially continuous straight lines of the drawing and fitting one or more sketch segments to these substantially continuous straight lines (e.g., a corresponding sketch segment for each substantially continuous straight line). Alternatively again, the obtaining of the set of sketch segments may be fully automatic. For example, the obtaining may include: providing an image (e.g., automatically capturing a product image or importing an image), and automatically forming one or more sketch segments based on the provided image. Thus, the image may be a natural image or a photograph. The formation of one or more grass segments may include detecting one or more straight edges of the image and fitting a corresponding grass segment on each detected edge. The detection of straight edges in the image may include detecting significant color and / or contrast changes (e.g., above a threshold) occurring in a substantially straight portion of the image. The acquisition of the grass segment set may be based on a combination of one or more of these provision types (manual, semi-automatic, and / or fully automatic).
[0153] After obtaining a set of sketch segments, providing S10 includes: generating one or more sets of connected sketch segments from the obtained set of sketch segments. Each of the one or more aggregations may be one of the one or more input sketches. The generation of one or more aggregations of connected sketch segments may include: for each sketch segment in the set, constructing one or more sketches containing the sketch segment. For each constructed sketch, the construction of the sketch may include: sequentially connecting the sketch segments to the initially considered sketch segment until no other sketch segments from the set can be connected to the constructed sketch. For example, each sketch segment may have two ends, and when the distance between the end of one sketch segment and the end of another sketch segment is below a predetermined threshold, the two sketch segments may be connectable. When no end of the sketch in the set is far away from one of the ends of the constructed sketch (i.e., below a predetermined threshold), no other sketch segments in the set can be connected to the constructed sketch.
[0154] In an example, the set obtained by constructing S210 may consist of closed sketches. For example, constructing S210 may include: before defining the temporary set as the constructed set, detecting at least one open sketch in the temporary set, and for each detected open sketch, closing or removing the detected open sketch in the temporary set. Closing of an open sketch may include: connecting two ends of the open sketch.
[0155] An example of an implementation of the sketch processing method is now discussed in more detail.
[0156] The sketch processing method takes as input a set of basic sketch segments (e.g., geometric lines, arcs, and / or splines) and outputs a closed and manifold set of sketches, wherein each closed and manifold sketch is a connected combination of basic sketch segments or sub-segments of these sketch segments in the set as input. In order to construct the closed and manifold output sketch set, the sketch processing method includes: first generating a set of maximum combinations of connected sketch segments (i.e., aggregations of connected sketch segments, each aggregation is a sketch). Secondly, the sketch processing method includes: for each of those generated sketches, searching for intersections with other sketches or with itself. When appropriate, the sketch processing method may include: splitting and combining each intersecting sketch with the intersecting sketch to generate a closed sketch. The generation of the closed manifold sketch may include: using the generated sketch as a support (e.g., pad or rotation) to derive a 2D shape and / or a 3D contour-based volume defined by the generated sketch.
[0157] Therefore, sketch processing methods can be used to automatically and efficiently generate 2D or 3D shapes associated with a collection of basic sketch segments, which is very useful in tasks such as shape reconstruction or detection from images or drawings.
[0158] The sketch processing method allows the generation of all possible closed and manifold sketches constructed by the combination and decomposition of basic sketch segments. Thus, the sketch processing method allows efficient construction of 2D shapes and 3D contour-based volumes (e.g., extruded volumes) from user-provided sketches or sketches automatically inferred from drawings or pictures.
[0159] Notably, the sketch processing method provides an efficient way to generate all relevant closed and manifold sketches from any support that allows the extraction of sketches (e.g., a drawing or an image), which allows the immediate generation of 2D shapes bounded by these sketches, or 3D contour-based volumes (e.g., extrusions or rotations) that they support.
[0160] In contrast to deep learning based methods, no data is required. This also means that sketch processing methods do not suffer from a lack of robustness to unseen data types. In fact, sketch processing methods allow the sketch to be generated as a combination of any primitive types (e.g. line segments, arcs or splines) given in the input. This means that sketch processing methods are not limited to a specific class of generated sketches. Sketch processing methods also allow for accurate sketches (i.e. fitting the input accurately) and can be easily and intuitively edited.
[0161] Furthermore, the set of closed and manifold sketches generated is exhaustive. In fact, the sketch processing method is not limited to generating a unique sketch, but generates all relevant closed and manifold sketches. Furthermore, the sketch processing method is able to handle the generation of overlapping (even intersecting) sketches. Furthermore, the sketch processing method is based on only one hyperparameter, namely the distance tolerance (predetermined threshold) for the connections of sketch segments. This unique hyperparameter can be easily derived from the input analysis and does not strictly define the generated output. The sketch processing method also allows the generation of both 2D and 3D shapes at once.
[0162] Another advantage is that the sketch processing method preserves the orientation of the sketch segments. Preservation of the orientation improves the inference of additive or subtractive property inference of the resulting volume.
[0163] The input of the sketch processing method is now discussed. The sketch processing method takes a set of basic sketch segments as input. Each sketch segment may be oriented. Sketch segments (or parts thereof) form building blocks of the generated closed and manifold sketch. Sketch segments may be line segments, arcs, or open or closed curves (e.g., splines). Sketch segments may be obtained in different ways. In an example, the sketch segments may be provided directly by a user (e.g., as a result of using 2D drawing software). In other examples, sketch segments may be provided by fitting curves and / or by detecting specific geometric curves (e.g., lines or circles) on a drawing, edges automatically detected on an image (e.g., using a Canny edge detector), and / or edges on a manually traced image. In other examples, sketch segments may be provided by fitting an oriented curve to a projection of a contour-based approximate surface (e.g., a mesh representing an extruded surface), e.g., a surface detected in a 3D scan).
[0164] refer to Figure 2 and Figure 3, we now discuss providing S10 input sketches. Given an input set of sketch segments, the sketch processing method generates all maximal combinations of connected segments. Maximal means that no other sketch segments can be connected to this combination. For each sketch segment, the sketch processing method constructs a sketch containing every connection of the sketch segment by exploring and combining all connectable segments in turn until no connectable segments can be added or the current sketch is closed. Therefore, the generated sketch can be open or closed, and ultimately non-manifold (see Figure 1 and Figure 2 ). In addition, when the sketch segments provided as input are not oriented, the sketch processing method may include: orienting the generated combination, for example by selecting an orientation for one of its sketch segments and propagating the orientation when connecting with other sketch segments.
[0165] The sketch processing method may also include relaxing the connection condition. For example, two sketch segments may be combined when the distance between the ends of the two sketch segments to be connected is less than a given tolerance. Relaxing the connection condition allows adding robustness to the resulting noise in the input sketch segments. For example, the tolerance may be defined based on the noise level and the scale of the sketch, or by analyzing the distribution of distances between the sketch ends.
[0166] Figure 2 A first example of providing S10 one or more input sketches is shown. Providing S10 includes: obtaining a set of sketch segments 200, 201, 202, 203 and 204 (the sketch segments are distinguished by different types of dashed lines in the figure). Providing S10 also includes: generating one or more aggregations of the sketch segments connected by S110 from the obtained set of sketch segments, thereby obtaining one or more input sketches 210, 211. Generating S110 includes: generating a first aggregation based on the sketch segments 200 and 201. The first aggregation is generated by connecting the ends of the sketch segments 200 and 201. The first aggregation provides a sketch 210, which is open and manifold. Generating S110 also includes: generating a second aggregation based on the sketch segments 202, 203 and 204 by connecting the ends of the sketch segments 202, 203 and 204. The second aggregation provides a sketch 211, which is also open and manifold.
[0167] Figure 3A second example of providing S10 one or more input sketches is shown. Providing S10 includes obtaining a set of sketch segments 300, 301, 302, 303, 304, 305, 306 and 307. Providing S10 also includes generating S110 one or more aggregations of the sketch segments connected from the obtained set of sketch segments, thereby obtaining one or more input sketches 310, 311, 312. Generating S110 includes generating a first aggregation based on the sketch segments 300, 301, 302, 303, 304 and 307. The first aggregation provides a sketch 310, which is closed and non-manifold. Generating S110 includes generating a second aggregation 311 (respectively a third aggregation 312) based on the sketch segment 305 (respectively the sketch segment 306).
[0168] refer to Figure 4 With reference to 5, we now discuss determining one or more closed and manifold output sketches. The aggregated set of connected sketch segments (i.e., the input sketch set) includes closed sketches and open sketches. Given the input sketch set, the sketch processing method includes generating all relevant closed and manifold sketches. In practice, not only can one of the input sketches be non-manifold, but the input sketch set is also restricted in that it does not include combinations of the input sketch segments. To address these limitations, the sketch processing method provides an efficient two-step sketch splitting process, which includes two main steps, which will be referenced in the following paragraphs. Figure 4 and Figure 5 Have a discussion.
[0169] exist Figure 4In the first major step shown, the sketch processing method processes each input sketch 400 and constructs a set of manifold sketches 431, 432, 433 and 434 from the input sketch 400 (which is non-manifold). The construction starts with a set of potential non-manifold aggregate sketches. First, the construction splits all non-manifold sketches into manifold (open or closed) sub-sketches. The splitting includes: for each aggregate sketch, the first step is to search for automatic intersections 401 (between one or more of its fragments). In the second step, if the aggregated sketches automatically intersect at least once, the sketch processing method indiscriminately selects one of the intersections. If the sketch is closed, the sketch processing method splits (e.g., split S413 of sketch 411) the aggregated sketch at the intersection of two closed sub-sketches. The splitting includes: browsing the sketch and starting from the intersection of any of the two fragments containing the intersection, following the sketch until the intersection is reached again and a closed sub-sketch is extracted. Then, splitting includes defining the remaining sub-sketch as a second closed sub-sketch. If the sketch is open, the sketch processing method splits the aggregated sketch at the intersection (e.g., splitting S410 of sketch 400 or splitting S420 of sketch 410) into a closed sub-sketch and an open sub-sketch. Splitting includes browsing the aggregated sketch and starting from the intersection of the first of the two fragments containing the intersection, following the sketch until the intersection is reached again and extracting a closed sub-sketch. In this case, two open sub-sketches still exist, which end and start at the intersection, respectively. The sketch processing method can connect the two remaining sub-sketches to form a second open sub-sketch. Then, if automatic intersection is detected for the two generated sketches, the sketch processing method can recursively apply the search for automatic intersection (e.g., S420 and S421) and splitting (e.g., S420 and S421 after S410).
[0170] exist Figure 5In the second main step shown, the sketch processing method generates all possible closed (and still manifold) combinations of sketches from the manifold sketch set. The generation includes: for each ordered sketch pair "A" 501 and "B" 502 (A is different from B), searching for intersections 503, 503', 503". between A and B. If there are at least two intersections (in this example there are three intersections 503, 503' and 503"), then for each consecutive (for the orientation of B) intersection pair, the sketch processing method includes: extracting the sub-sketch of B between these two points (that is, the first sub-sketch is between 503 and 503', and the second sub-sketch is between 503' and 503"). In this example, the sketch processing method first considers the pair 503, 503', and then the pair 503', 503". In the case that A is open (which is not the case in this example), the sketch processing method extracts its sub-sketch between the two intersection points, creates an open sub-sketch starting from either point, and follows the sketch until it reaches the other point or its end point. If the other point is reached, the sketch processing method determines the required sub-sketch. Otherwise, the sketch processing method repeats the process starting from the other point. In the case that A is closed (such as Figure 5 ), the sketch processing method splits B (S510 and S520) at two intersection points (503 and 503' for S510, and 503' and 503'" for S520), thereby generating two open sub-sketches (a larger sub-sketch and a smaller sub-sketch). The splitting includes starting from any one of the two points, following the sketch until the other point is reached and an open sub-sketch is generated. The remaining sub-sketch is another open sub-sketch connecting the two points. Then, the sketch processing method combines the sub-sketch of A with the sub-sketch of B, and generates a sketch of one or two closed manifolds. When the orientation of the sub-sketch of B is inconsistent with that of the sub-sketch of A, the sketch processing method can reverse the sub-sketch of B (i.e., the sub-sketch of B and the sub-sketch of A). Figure 2 Both start and end at the same point rather than opposite points). Since the two intersection points are consecutive, the sub-sketch of B does not intersect the sub-sketch of A. In this example, for the first pair of intersections 503 and 503', the combination of the larger sub-sketch of A with the sub-sketch of B between 503 and 503' provides sketch 511, and the combination of the smaller sub-sketch of A with the sub-sketch of B between 503 and 503' provides sketch 512. For the second pair of intersections 503' and 503", the combination of the larger sub-sketch of A with the sub-sketch of B between 503' and 503" provides sketch 513, and the combination of the smaller sub-sketch of A with the sub-sketch of B between 503' and 503" provides sketch 514.
[0171] In an example, the sketch processing method can also ensure the generation of unique sketches. The sketch processing method can include a post-processing step to detect and remove duplicate sketches. The sketch processing method can uniquely define split sketch segments by their original sketch segments and their ends.
[0172] The sketch processing method allows the generation of multiple closed manifold sketches for a single aggregated sketch, ensuring that all possible closures of the sketch are generated. Splitting already aggregated sketches instead of initial base sketch segments allows for an overall more efficient process. In particular, aggregating sketch segments before splitting intersecting sketch segments allows for a reduction in the number of segments to be aggregated, and thereby allows for a reduction in the complexity of the aggregation step (particularly with respect to performing the splitting of intersecting sketch segments before aggregating them).
[0173] Figure 6 An example of the complexity when intersecting sketch segments are split before being aggregated is shown. The sketch processing method splits the sketch independently for each sketch considered, which ensures that the number of sketch segment splits is minimized for each generated sketch. In fact, splitting intersecting sketch segments means that the same segment may be split multiple times. Figure 6 In the example of , the sketch segment 520 is split into two sketch segments 521, 522, which increases the complexity of the intersecting sketch segments when they are split S610 before being aggregated S620. Multiple splits of each segment not only mean that the resulting sketch is more complex (e.g., a sketch with a large number of smaller segments, some of which can be grouped), but also that the aggregation step is less efficient because more sketch segments need to be considered (e.g., Figure 6 The sketch processing method reduces complexity and improves efficiency by aggregating sketch segments before splitting them.
[0174] Figure 7 An example of closing an open sketch at S700 is shown. The sketch processing method may include closing the generated open sketch to increase robustness. Closing of the generated open sketch may use carefully selected imaginary sketch segments (e.g., a single segment 530, such as Figure 7 ). For example, the sketch processing method may imaginarily close sketches that cannot be closed by sketch disassembly. This ensures that all input sketch segments are represented in the resulting closed manifold sketch. Alternatively or additionally, the sketch processing method may imaginarily close all open aggregate sketches, even if they have resulted in closed manifold sketches by sketch disassembly. This ensures that the resulting sketch is more exhaustive. More examples of imaginary sketch closure are in Figure 8 It is shown in Figure 8 Three examples 531 of extruded contour imaginary closure and two examples 532 of rotated contour imaginary closure are shown.
[0175] Fig. 9 Two examples of sketch processing of the sketch processing method are shown. In the first example, the sketch processing method includes: providing S10 three input sketches (input sketches 602). Providing S10 includes: obtaining a set of sketch segments 601, and generating S110 three aggregations of connected sketch segments from the obtained set of sketch segments (which are three input sketches 602). Then, the sketch processing method includes: determining S20 two output sketches 603 from the three input sketches 602. Each output sketch 603 is closed and manifold. In the second example, the sketch processing method includes: providing S10 three input sketches (input sketches 612). Providing S10 includes: obtaining a set of sketch segments 611, and generating S110 three aggregations of connected sketch segments from the obtained set of sketch segments (which are three input sketches 611). Then, the sketch processing method includes: determining S20 three output sketches 613 from the three input sketches 612. Each output sketch 613 is closed and manifold. In an example, the output sketch may further include sketch 614. Determining S20 includes constructing S210 a set of manifold sketches from the input sketches, and combining S220 each pair of manifold sketches.
[0176] Fig.10 An example of a sketch segment including a merged sketch portion between sketch segment 620 and sketch segment 621 is shown. In this case, the combination S220 of the sketch pair may include treating the merged sketch portions as intersecting at their ends (from the smaller sketch 621 in this example). The merged sketch portions may also be similarly considered after the aggregation step, which may provide a set of sketches that share segments and therefore have the same size. Then, when reassembling a new sketch, the sketch processing method may detect and exclude reassembled sketches with messy sketch segments. This allows the generation of related sketches, such as sketch 622 (which is also in Fig.10 , and bypassed in this example), without generating a degenerate sketch (e.g., sketch 621, which is an obfuscated portion of sketch 620, which is non-manifold).
[0177] Fig.11 Two examples of 2D and 3D generation methods are shown. In the first example, a drawing of a house is taken as input. In the second example, a drawing of a camera is taken as input. In both examples, the 2D and 3D generation methods include generating S100 sketch segments from the drawing. Generating S100 may include fitting line segments, arcs, and splines to the drawing to generate the input sketch segments. In other examples, when a picture is provided, generating S100 may include detecting edges in the picture (e.g., using a Canny edge detector).
[0178] Now discuss the 2D generation method. The 2D generation method includes: once a set of closed and manifold sketches are generated, S31 2D surfaces (defined by these sketches) that fit to the input sketch segments are automatically generated. Each of these 2D surfaces can be defined by a respective sketch. This means that in the 2D plane, the sketch can delimit the boundaries of the 2D surface. The generation of the 2D surface may include: selecting one or more sketches in the output sketch, and generating a corresponding 2D surface for each selected sketch. In the figure, only the selected sketches in the output sketch are shown. This means that the output sketch may include other sketches not represented in the figure (for example, Fig. 9 614). The 2D generation method then includes: forming a 2D shape based on the generated 2D surface. For example, the formation of the 2D shape may include connecting the 2D surfaces together. Thus, the 2D generation method allows the 2D shape to be fitted to the provided drawing (or picture in other examples). In other examples, using a similar pipeline, the 2D generation method can be applied to the detection of specific 2D shapes (e.g., squares, circles, etc.) in drawings and pictures by using specific detection criteria (e.g., 4 orthogonal equal-sized line segments, a closed circle, etc.) on the generated sketch.
[0179] Now discuss the 3D generation method. The 3D generation method allows immediate generation S32 of a relevant 3D shape fitted to an input sketch segment (a drawing in this example or a picture provided in other examples). Fitting the input sketch segment may include: generating an extruded or revolved volume using a closed sketch and a manifold sketch as support. Generating S32 may also include performing manual user input or another specific detection pipeline to clarify the limits of the contour-based volume.
[0180] Fig.12 An example of a sketch processing method for fitting a contour-based volume to an approximate surface (referred to as a fitting method) is shown. The fitting method can be applied for robust fitting of a contour-based volume (e.g., an extruded volume) to an approximate surface (e.g., a swept mesh). After splitting the approximate surface into relevant surface parts, the fitting method includes: detecting an extrusion direction and a corresponding surface part by successive merging of compatible surface parts. The fitting method also includes: generating sketch segments by projecting those surface parts onto a plane perpendicular to the extrusion direction. The sketch aggregation and disassembly pipeline of the fitting method allows for the generation of sketches of all relevant closed manifolds to each extrusion direction and the subsequent generation of 3D extruded volumes. In fact, sketch disassembly improves the recovery of the sketches of all relevant closed manifolds (and therefore the corresponding 3D extruded volumes). It is worth noting that if multiple extruded volumes in the same direction are adjacent, it is possible that some sketch segments required to generate the sketches of the closed manifolds are strictly contained in other sketches (such as Fig.12). Furthermore, because determination of the one or more output sketches preserves the sketch orientation, the fitting method can include inferring additive or subtractive (eg, pad or bag) properties of the corresponding volumes.
[0181] Fig.13 An example of a 3D generation method is shown. The 3D generation method comprises: obtaining S100 sketch segments from an image. In this example, the image is an orthogonal 3D view of the object along one of its main axes. The 3D generation method also comprises: generating S110 an aggregation of connected sketch segments from the obtained set of sketch segments (the aggregation of connected sketch segments is the input sketch). The 3D generation method also comprises: determining S20 output sketches 612 from the input sketches, each output sketch being closed and manifold. The determination S20 of the output sketch comprises: constructing a set of manifold sketches 612 from the input sketch. The determination S20 also comprises: combining S220 each pair of manifold sketches in the constructed set that share at least two intersections so as to form a closed and manifold sketch 702. Then, the generation method further includes: generating 3D parts based on the output closed and manifold sketch 702 (each 3D part is an extrusion or rotation of one of the output one or more closed and manifold sketches), and forming a 3D shape 703 based on the generated 3D parts.
[0182] Fig.14 An example of a GUI of a system is shown, where the system is a CAD system.
[0183] GUI 2100 can be a typical CAD-like interface, with standard menu bars 2110, 2120 and bottom and side toolbars 2140, 2150. As known in the art, such menus and toolbars contain a user-selectable set of icons, each associated with one or more operations or functions. Some of these icons are associated with software tools, suitable for editing and / or operating the 3D modeling object 2000 displayed in GUI 2100. Software tools can be grouped into workbenches. Each workbench includes a subset of software tools. Specifically, one of the workbenches is an editing workbench, which is suitable for editing the geometric features of the modeling product 2000. In operation, the designer can, for example, pre-select a part of the object 2000, and then initiate an operation (e.g., change size, color, etc.) or edit geometric constraints by selecting an appropriate icon. For example, a typical CAD operation is to model the punching or folding of the 3D modeling object displayed on the screen. GUI can, for example, display data 2500 related to the displayed product 2000. In the example of the figure, data 2500 and its 3D representation 2000 displayed as a "feature tree" relate to a brake assembly including a brake caliper and a disc. The GUI may also show various types of graphical tools 2130, 2070, 2080, such as for facilitating 3D orientation of an object, for triggering simulation of an operation of an edited product, or for rendering various properties of the displayed product 2000. A cursor 2060 may be controlled by a haptic device to allow the user to interact with the graphical tools.
[0184] Fig.15 An example of a system is shown, where the system is a client computer system, such as a user's workstation.
[0185] The client computer of this example includes a central processing unit (CPU) 1010 connected to an internal communication bus 1000, and a random access memory (RAM) 1070 also connected to the bus. The client computer is also provided with a graphics processing unit (GPU) 1110, which is 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 a mass storage device, such as a hard disk drive 1030. Mass storage 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, such as EPROM, EEPROM, and flash memory devices; magnetic disks, such as internal hard disks and removable disks; magneto-optical disks. Any of the foregoing may be supplemented or incorporated by a specially designed ASIC (application specific integrated circuit). A network adapter 1050 manages access to a network 1060. The client computer may also include a tactile device 1090, such as a cursor control device, a keyboard, etc. A cursor control device is used in the client computer to allow the user to selectively position the 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 a plurality of signal generating devices for inputting control signals to the system. Typically, the cursor control device may be a mouse, the buttons of which are used to generate signals. Alternatively or additionally, the client computer system may include a sensitive pad and / or a sensitive screen.
[0186] The computer program may include instructions executable by a computer, including units for causing the above-mentioned system to perform a sketch processing method, a 2D generation method, a 3D generation method, and / or a fitting method. The program may be recorded on any data storage medium, including the memory of the system. The program may be implemented, for example, in a digital electronic circuit or computer hardware, firmware, software, or a combination thereof. The program may be implemented as a device, for example, a product tangibly embodied in a machine-readable storage device for execution by a programmable processor. The steps of each method may be performed by a programmable processor that executes an instruction program to perform the function of the method by operating on input data and generating output. Therefore, the processor may be programmable and coupled to receive data and instructions from a data storage system, at least one input device, and at least one output device, and to send data and instructions to a data storage system, at least one input device, and at least one output device. If necessary, the application may be implemented in a high-level process or object-oriented programming language or in an assembly or machine language. In any case, the language may be a compiled language or an interpreted language. The program may be a complete installer or updater. In any case, application of the program on the system generates instructions for executing the sketch processing method, 2D generation method, 3D generation method and / or fitting method. The computer program may alternatively be stored and executed on a server in a cloud computing environment, which communicates with one or more clients via a network. In this case, the processing unit executes the instructions included in the program, thereby causing the sketch processing method, 2D generation method, 3D generation method and / or fitting method to be executed on the cloud computing environment.
Claims
1. A computer-implemented method for sketch processing, the method comprising: ● providing (S10) one or more input sketches, the one or more input sketches comprising: ■ at least one non-manifold sketch, each non-manifold sketch being a sketch with at least one intra-sketchet intersection, and / or ■ at least one pair of sketches that share at least two inter-sketches intersections; and ● determining (S20) one or more output sketches from the one or more input sketches, each output sketch being closed and manifold, the determining the one or more output sketches comprising: - constructing (S210) a manifold sketch set including each manifold input sketch, constructing (S210) the manifold sketch set including: for each corresponding non-manifold input sketch, determining (S211) two or more corresponding manifold sketches based on at least one intra-sketch intersection of the corresponding non-manifold input sketch, the constructed set also including each manifold sketch determined for each corresponding non-manifold input sketch; and - combining (S220) each pair of manifold sketches in the constructed set that share at least two intersections, so as to form one or more closed and manifold sketches; The one or more output sketches include each closed sketch in the constructed set and each closed and manifold sketch formed by the combining (S220).
2. The method according to claim 1, wherein: Each input sketch is directional, and determining (S211) the two or more corresponding manifold sketches comprises: recursively splitting the corresponding non-manifold input sketches, the recursive splitting comprising: - browsing the corresponding non-manifold input sketch; - a point where an intersection within said sketch is encountered; - splitting the corresponding non-manifold input sketch at the meeting point of the intersection within the sketch to form two sketch blocks; and -For each sketch block: ● if the sketch block does not have an intra-sketch intersection, determining the sketch block to be one of the two or more corresponding manifold sketches; or ●If the sketch block has at least one intra-sketch intersection, repeat the recursive splitting of the sketch block.
3. The method according to claim 2, wherein: The one or more input sketches include one or more closed non-manifold input sketches, and for each closed corresponding non-manifold input sketch, the splitting of the corresponding non-manifold input sketch includes: ● Navigating the non-manifold input sketch starting from the point of intersection within the sketch; ● encountering another point of intersection within the sketch; ● extracting a sketch block between the point of intersection and the other point in the sketch from the non-manifold input sketch, thereby defining one of the two sketch blocks and the remaining sketch block of the non-manifold input sketch; and ● defining the remaining sketch block as the other of the two sketch blocks; and / or The one or more input sketches include one or more open non-manifold input sketches, and for each open corresponding non-manifold input sketch, the splitting of the corresponding non-manifold input sketch includes: ● Navigating the non-manifold input sketch starting from the point of intersection within the sketch; ● encountering another point of intersection within the sketch; extracting from the non-manifold input sketch a sketch block between the point of the intersection within the sketch and the other point, thereby defining one of the two sketch blocks and two remaining sketch blocks of the non-manifold input sketch, Each of the two remaining sketch blocks is open; and ●Connect the remaining two sketch blocks to form another sketch block of the two sketch blocks.
4. The method according to any one of claims 1 to 3, wherein: Each pair of manifold sketches includes a first manifold sketch and a second manifold sketch, and one or more closed sketches are formed including: For each pair of consecutive intersections between the first manifold sketch and the second manifold sketch along the second manifold sketch: - extracting the portion of the second manifold sketch bounded by these two consecutive intersections; - splitting the first manifold sketch between the two consecutive intersections, thereby obtaining one or two segments of the first manifold sketch; and - Recombining each segment of the first manifold sketch with the extracted portion of the second manifold sketch, thereby obtaining one or two closed and manifold sketches.
5. The method according to any one of claims 1 to 4, wherein: The constructed manifold sketch set consists of unique sketches.
6. The method according to any one of claims 1 to 5, wherein: Providing the one or more input sketches comprises: ●Get a collection of sketch segments; ●Generate one or more aggregations of connected sketch segments from the obtained set of sketch segments, thereby obtaining the one or more input sketches.
7. The method according to claim 6, wherein: Each fragment has two ends, and when the distance between the end of one fragment and the end of another fragment is lower than a predetermined threshold, the two fragments can be connected. Generating one or more aggregations of connected sketch fragments includes: for each sketch segment in the collection, constructing one or more sketches containing the sketch segments in the following manner: for each constructed sketch, connecting the sketch segments in turn until no other sketch segments in the collection can be connected to the constructed sketch.
8. The method according to claim 6 or 7, wherein: Obtaining the sketch segment is performed based on user interaction and / or by: ●By fitting one or more curves on the following and / or detecting one or more specific geometric curves on the following: - Drawing, - automatically detected edges on the image, and / or - manually traced edges on the image, and / or ● By fitting an orientation curve to the projection of a contour-based approximation surface detected in the 3D scan.
9. The method according to any one of claims 1 to 8, wherein: The constructed manifold sketch set consists of closed sketches.
10. A computer-implemented method for generating a 2D shape, the method comprising: ● performing a method according to any one of claims 1 to 9, thereby outputting one or more closed and manifold sketches; ● generating one or more 2D surfaces based on the output one or more closed and manifold sketches, each 2D surface being interior to one of the determined one or more closed and manifold sketches; as well as - Forming the 2D shape based on the generated one or more 2D surfaces.
11. A computer-implemented method for generating a 3D shape, the method comprising: ● performing a method according to any one of claims 1 to 9, thereby outputting one or more closed and manifold sketches; ● generating one or more 3D parts based on the output one or more closed and manifold sketches, each 3D part being an extrusion or rotation of one of the output one or more closed and manifold sketches; as well as - Forming the 3D shape based on the generated one or more 3D parts.
12. A computer-implemented method for fitting a contour-based volume to an approximate surface, the method comprising: ● splitting the approximation surface into surface parts; ● detecting one or more directions for generating a 3D contour-based volume, and for each direction, detecting one or more corresponding surface portions; as well as ●For each of the one or more detected directions: - generating a set of grass segments by projecting each of the one or more corresponding surface portions onto a plane perpendicular to the extrusion direction; - performing the method according to any one of claims 6 to 8 based on the generated set of sketch segments, thereby outputting one or more closed and manifold sketches; -Generate a 3D contour-based volume from one or more generated closed and manifold sketches.
13. A computer program comprising instructions for executing the method according to any one of claims 1 to 9, the method according to claim 10, the method according to claim 11 and / or the method according to claim 12.
14. A computer-readable storage medium having recorded thereon the computer program according to claim 13.
15. A system comprising a processor coupled to a memory, the memory having recorded thereon the computer program according to claim 13, the system optionally further comprising a graphical user interface coupled to the processor.
Citation Information
Patent Citations
Orientation of a real object for 3D printing
EP3327593A1
3D axis machining design
EP4195088A1