Modeling with Weak Type Definitions
By delegating data object and topological stability management, the problem of data structures not interoperable in 3D model design is solved, flexible modeling and automatic processing of design operations is realized, and design flexibility and control capabilities are improved.
Patent Information
- Application Number
- CN201911393877.0
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Priority Date
- 2018-12-30
- Filing Date
- 2019-12-30
- Publication Date
- 2025-01-17
- Estimated Expiration
- 2039-12-30
AI Technical Summary
The existing historical-based and historical-free methods have problems with data structures not interoperable in 3D model design, which leads to the inability to automatically obtain and apply design operations, limiting the reuse and flexibility of design intentions.
Taking the concept of delegated data objects, defining a 3D model through type-specific input parameters and output topology, and associated with a sequence of geometric design operations, allows users to perform design operations, determine topological stability, replace or maintain delegated data objects to store designs Operation to achieve flexible modeling and weak-type features.
It improves the flexibility and control capabilities of 3D model design, extends the life cycle of weak-type features, allows users to modify shapes more freely, and automatically handles the design operation sequence, enhancing the flexibility of the historical-free method.
Smart Images

Figure CN111383327B_ABST
Abstract
Description
Technical Field
[0001] The present invention generally relates to the field of computer programs and systems, and more particularly to data structures, methods, systems and programs for designing 3D models. Background Art
[0002] Many systems and programs for design, engineering and manufacturing of objects are available on the market. CAD is an abbreviation for computer-aided design, for example, it relates to software solutions for designing objects. CAE is an abbreviation for computer-aided engineering, for example, it relates to software solutions for simulating the physical behavior of future products. CAM is an abbreviation for computer-aided manufacturing, for example, it relates to software solutions for defining manufacturing processes and operations. In such computer-aided design systems, graphical user interfaces play an important role in technical efficiency. These technologies can be embedded in product lifecycle management (PLM) systems. PLM refers to a business strategy that can help companies share product data, apply common processes, and develop products from concept to end of life using corporate knowledge in the entire concept of an extended enterprise. The PLM solution provided by Dassault Systèmes (trademarks CATIA, ENOVIA and DELMIA) provides an engineering center for organizing product engineering knowledge, a manufacturing center for managing manufacturing engineering knowledge, and a business strategy that integrates and connects companies to engineering and manufacturing centers. Together, the system delivers 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] CAD software proposes methods for creating three-dimensional (3D) models called parts using a set of tools that can be divided into two categories: history-based methods (also called parametric modeling) and history-free methods (also called direct modeling).
[0004] The history-based approach is designed to capture design intent by storing each step of the creation process using features, constraints, etc. It is effectively like a part recipe; each step of creation exposes a set of parameters that the user can change. If one parameter does change, the entire 'recipe' is reproduced in the exact same order to regenerate the new part. The approach is often represented using a tree that allows the user to quickly understand the sequence of operations.
[0005] The history-free approach does not rely on a sequence of operations that are reproduced at each modification. Each modification is made to the current 3D model. That is, there are no intermediate steps, no "recipes", and when the user modifies his design, the modification is absorbed by the features and, therefore, the parameters that led to that modification are not preserved. Because the order of the operations performed is not preserved, this approach allows the user to create 3D models faster and more freely. The user can focus on the geometry he is creating without having to worry about the order in which he creates the features. Moreover, the user does not have to worry about the effects of the modifications.
[0006] The advantage of the history-based approach is also its disadvantage. Although the parametric approach makes it very convenient to change parameters at almost any time, it introduces rigidity into the design process. Once the "recipe" is created, each feature is strongly typed and you are limited to those parameters. Any additional changes can be very complicated because to get the changes the user wants, he must consider how it will affect the results when the part is regenerated. This is a major disadvantage in situations where the user wants to test different types of shapes and wants to iterate quickly.
[0007] The objects used in the history-based approach are strongly typed. In order to change the type of an object, a completely new object needs to be created and replaced with the new one in a tree representing the sequence of operations. The new object, which does not have any links to the replaced object, may not fit the current recipe due to the change in topology. This happens if an operation can no longer find the elements it needs to calculate its modification because the objects it depends on have changed. In this case, the user will have to explicitly tell the system what to do. This is a tedious task that becomes more tedious and time-consuming the more complex the history.
[0008] With the no-history approach, the user can quickly iterate over shapes because the features he is using have no type at all, the generic features he is using do not store any information about the creation process. Therefore, even though the user can quickly iterate over his shapes, he can only modify the current state of his 3D shape. He cannot access any parameters of any of his previous operations.
[0009] History-based and history-free approaches are not incompatible, since objects generated from a history-free context can be integrated in a history-based context. More precisely, users can create history-free models and manipulate them to generate new 3D models from them.
[0010] However, the data structures of the two approaches are not interoperable. In fact, the data structures of objects generated by history-based and history-free approaches are somewhat different; in particular, because the data structures of objects in history-based approaches are strongly typed, while those in history-free approaches are weakly typed. The type of a 3D model in the context of history-based approaches refers to its characteristics, which are defined by a set of parameters and at least one operation that takes a set of parameters as input and returns an object topology as output. For example, and with reference to Figure 1 , a 3D sphere is a type of 3D model, the "sphere" type has its parameters set, namely its center, radius and opening angle. This brings operations that take all these parameters as input and are able to return a sphere topology. In contrast, in a history-free context, the created shapes are by definition untyped, since the object does not have any parameters. Each operation applied to an object will be applied to the current definition of that object. Figure 3 In the example above, the user will only have access to the topology of the sphere (i.e., the wireframe consisting of all vertices and edges), and based on that information can make faces.
[0011] In summary, the data structure of a history-based method includes type-specific input parameters, at least one operation specific to the type, and the output topology generated by the previous operation. The data structure of a history-free method includes the current topology generated by the last external operation applied to the object.
[0012] Due to these fundamental differences between the two approaches, current history-free approaches do not allow for capturing the "recipe" of modifications that a user has performed on a 3D model (equivalently, on a mesh). In particular, it is not possible to automatically capture and apply the same or similar design operations performed on a first 3D model on a new mesh. For example, a designer who has modified the design of a door of a first car model cannot automatically apply the same modifications to the door of a second car model. This means that it is almost impossible to reuse design intent in a history-free CAD approach; the designer must intuitively make modifications to the mesh of the second car model in the hope of reproducing his / her original design intent.
[0013] In this case, a method for designing a three-dimensional model is still needed. Summary of the invention
[0014] Therefore, a computer-implemented method for designing a three-dimensional (3D) model is provided. The method comprises:
[0015] - providing a first 3D model, the first 3D model being defined by:
[0016] (i) a delegate data object comprising input parameters specific to the type of the delegate data object; and
[0017] (ii) output topology;
[0018] and is associated with a sequence of geometric design operations;
[0019] - a user performs a first geometric design operation on the first 3D model, thereby obtaining a second 3D model;
[0020] - determining whether the output topology of the second 3D model can be obtained from the output topology of the first 3D model;
[0021] -If the output topology of the second 3D model cannot be obtained from the output topology of the first 3D model, replacing the first delegate data object with a second delegate data object, or keeping the first delegate data object and storing the first geometric design operation and the sequence of geometric design operations associated with the first 3D model.
[0022] The method may include one or more of the following:
[0023] - determining whether the output topology of the second 3D model can be obtained from the output topology of the first 3D model is performed by determining the topological stability between the output topology of the first 3D model and the output topology of the second 3D model;
[0024] - each of said output topologies of said first 3D model and said second 3D model forms a base mesh, and wherein said determining topological stability is performed by comparing said base mesh of said first 3D model with said base mesh of said second 3D model;
[0025] -Replacing the first delegate data object with a second delegate data object comprises: comparing the second output topology with a list of output topologies, each output topology in the list being associated with a corresponding delegate data object; and automatically selecting a third delegate data object as a result of the comparison, the third delegate data object being a delegate data object in the list having an associated output topology similar to the second output topology.
[0026] - replacing the first delegate data object with the second delegate data object further comprises: clearing the geometric operation sequence;
[0027] - storing the first geometric design operation comprises: identifying at least one vertex of a geometric shape associated with the first delegate data object, the position of which is modified by the design operation; computing a transformation of the identified at least one vertex, the transformation being a result of the first design operation;
[0028] - providing the first 3D model comprises creating the first 3D model, the creating is a first geometric design operation, and the geometric design operation sequence of the created first 3D model is empty;
[0029] - said first geometrical design operation is a modification of at least one input parameter value of said first 3D model.
[0030] - said storing of said design operations and said sequence of geometric design operations is performed according to a continuous arrival order, the latest arriving design operation being stored at the end of said sequence of geometric design operations.
[0031] A computer program is also provided, the computer program comprising instructions for performing the method.
[0032] A computer-readable storage medium is also provided, on which the computer program is recorded.
[0033] A system is also provided, the system comprising a processor coupled to a memory having the computer program recorded thereon. The system may include a graphical user interface.
[0034] A data structure defining a three-dimensional (3D) model is also provided. The data structure includes a delegate data object. The delegate data object includes input parameters specific to the type of the delegate data object, and at least one operator specific to the type of the delegate data object to generate an output topology. The data structure also includes an output topology generated by the operator.
[0035] The data structure may also include an interface for adding or removing at least one operator. BRIEF DESCRIPTION OF THE DRAWINGS
[0036] Embodiments of the invention will now be described by way of non-limiting examples and with reference to the accompanying drawings, in which:
[0037] - Figure 1 An example of a strongly typed object is shown;
[0038] - Figures 2 to 4 An example of a data structure is shown;
[0039] - Figures 5 and 6 An example of a build phase with a data structure is shown;
[0040] - Figures 7a to 7d shows modifications performed on a 3D model defined by a data structure;
[0041] - Figure 8 An example of a method for designing a 3D model defined by a data structure is shown;
[0042] - Figures 9 to 11 A use case of a method for designing a 3D model is shown;
[0043] - Figures 12a to 12d An example of a base grid defined by a data structure is shown; and
[0044] - Fig.13 An example of a system is shown. DETAILED DESCRIPTION
[0045] Reference Figure 8 , a computer-implemented method for designing a three-dimensional (3D) model is proposed. The method includes providing a first 3D model. The first 3D model is defined by the following items: (i) a delegated data object, which includes input parameters specific to the type of the delegated data object; (ii) an output topology. The first 3D model is also associated with a sequence of geometric design operations. The method also includes: a user performs a first geometric design operation on the first 3D model to obtain a second 3D model. The method also includes: determining whether the output topology of the second 3D model can be obtained from the output topology of the first 3D model. In addition, the method also includes: if the output topology of the second 3D model cannot be obtained from the output topology of the first 3D model, replacing the first delegated data object with a second delegated data object, or maintaining the first delegated data object, and storing the first geometric design operation and the sequence of geometric design operations associated with the first 3D model.
[0046] This approach improves the design of 3D models in history-free computer-aided design systems.
[0047] It is worth noting that the 3D model is defined by a specific data structure, wherein the 3D model includes a delegate data object, which includes one or more input parameters of a type specific to the delegate data object and an output topology. The 3D model and its data structure can lift the limitations of the history-free method by introducing the concepts of "weak type" and "flexible modeling". Like the history-free method, the data structure that defines the 3D model is universal. Instead of taking the object that defines its type as input, the universal object delegates its type to another object. This other type of object is also called "weak type". Due to this delegated data object, the 3D model can be designed by using a data structure that is a universal feature: the universal feature has a type similar to that in the history-based method. However, the type does not have a strong link with the feature because the type has been delegated to the delegate data object. This allows the feature to change type according to context and operation throughout the life cycle. Therefore, the data structure is sufficiently universal that it can be maintained during the design operation and changed when necessary or required by the designer. Furthermore, this data structure offers the designer new possibilities in feature creation: in fact, delegated data objects are not necessarily linked to common features (e.g. plane, cylinder, sphere, torus...) and any shape (e.g. designed by the user) can be used to obtain a new type of delegated data object.
[0048] This method improves the design of 3D models in history-free computer-aided design systems. It is worth noting that the method relies on a data structure that allows the limitations of the history-free method to be lifted by introducing the concepts of "weak typing" and "flexible modeling". The method allows the retention or replacement of delegated data objects depending on whether a topological change occurs when designing the first 3D model. Despite the history-free method, consecutive operations on the 3D model can be stored, each operation being performed on the last state of the feature. If the design operation is not very destructive, the delegate object can be retained because, in fact, the operation is modifying one of the delegate object parameters. In addition, the method ensures that the objects visible in the feature tree will never change, only the underlying delegated data objects change. Therefore, when the delegated data object changes, the system still knows the previous type and the new type of the 3D model. Although the delegated data object is replaced by a new object, the knowledge about the replaced object can be retained. Therefore, the flexibility of the history-free method is improved. The 3D model (and its delegated data object) may be affected by any operation made to the feature to which it belongs. If the operation actually modifies only one of the weakly typed parameters, the weak type is retained, which means that the user can still modify the other parameters. On the contrary, if the operation modifies something that cannot be described by the modification of the weakly typed parameter, the current weak type will be lost and replaced by a more appropriate type. In order to maximize the use of the current weak type, the characteristics of the current weak type should be maintained for as long as possible. The longer the current weak type is maintained, the more the user can modify its parameters, giving him more control over the shape. The limitation here is that most operations do not allow the original weak type to be maintained. This method allows this limitation to be overcome by storing topologically stable modifications. The order in which these operations are performed is consistent with the current delegated data object, which means that each time the delegated data object is modified, the system can reproduce the entire sequence and apply the stored modifications. Therefore, the system can keep the current weak type for a longer time, thereby extending its life cycle.
[0049] Because the system is able to maintain weak typing for longer, the user has more control over its shape. Also, because the method works with no history context, the user does not have to worry about the order in which he makes modifications, the system takes care of it for him.
[0050] The method is computer-implemented. This means that the steps (or substantially all steps) of the method are performed by at least one computer or any similar system. Thus, the steps of the method may be performed by a computer, which may be fully automatic or semi-automatic. For example, the triggering of at least some steps of the method may be performed by user-computer interaction. The required level of user-computer interaction may depend on the level of automation foreseen and balanced with the need to implement the user's wishes. For example, the level may be user-defined and / or predefined.
[0051] For example, the step of modifying the first delegated data object is performed according to a user action, for example during a design operation.
[0052] A typical example of a computer implementation of a method is to perform the method using a system suitable for the purpose. The system may include a processor coupled to a memory and a graphical user interface (GUI), the memory having recorded thereon a computer program, the computer program including instructions for performing the method. The memory may also store a database. The memory is any hardware suitable for such storage, which may include several physically distinct parts (e.g., one for the program and possibly one for the database).
[0053] The data structure defines the 3D model, and the method generally manipulates the data structure and thus the 3D model. The 3D model is also referred to as a modeling object. A modeling object is any object defined by data stored, for example, in a database. By extension, the expression "modeling object" represents the data itself. Depending on the type of system, the modeling object 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 these different systems, the modeling object is 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 the modeling object can be defined by data corresponding to any combination of these systems. It will be apparent from the definitions of these systems provided below that the system can therefore be a CAD and PLM system very well.
[0054] In CAD systems, it also means any system that is at least suitable for designing modeled objects based on a graphical representation of the modeled objects (such as CATIA). In this case, the data defining the modeled objects include data that allow the modeled objects to be represented. For example, the CAD system can use edges or lines (in some cases, using faces or surfaces) to provide a representation of the CAD modeled objects. Lines, edges or surfaces can be represented in various ways, for example using non-uniform rational B-splines (NURBS). In particular, CAD files contain specifications from which geometry can be generated, allowing the generation of representations. The specifications of the modeled objects can be stored in a single CAD file or in multiple CAD files. The typical size of the files representing the modeled objects in the CAD system is in the range of 1M bytes per component. Modeled objects can typically be a combination of thousands of components.
[0055] In the context of CAD, a modeled object may generally be a 3D modeled object, for example representing a product such as a part or a combination of parts, or may be a combination of products. A "3D modeled object" refers to any object that is modeled by data that allows its 3D representation. The 3D representation allows the part to be viewed from all angles. For example, when represented in 3D, 3D modeled objects can be manipulated and rotated about any of their axes or about any axis in the screen on which their representation is displayed. It is worth noting that this does not include 2D icons that are not modeled in 3D. The display of a 3D representation facilitates design (i.e., increases the speed at which designers complete their tasks in a statistical sense). Since the design of a product is part of the manufacturing process, the industrial manufacturing process can be accelerated.
[0056] A 3D modeled object may represent the geometry of a product to be manufactured in the real world after virtual design of a product, such as a (e.g. mechanical) part or assembly of parts (or equivalently an assembly of parts, since from a methodological point of view an assembly of parts may be considered as a part itself, or the method may be applied independently to each part in the assembly), or more generally any rigid body part (e.g. a mobile device), has been completed using, for example, a CAD software solution or a CAD system. CAD software solutions allow the design of products in a wide variety of unlimited industrial fields, including: aerospace, architecture, construction, consumer goods, high-tech equipment, industrial equipment, transportation, ships and / or offshore oil and gas production or transportation. Therefore, the 3D modeled object designed by this method can represent an industrial product, which can be any mechanical part, such as a part of a land vehicle (which includes automobile and light truck equipment, racing cars, motorcycles, trucks and automobile equipment, trucks and buses, trains), a part of an air vehicle (for example, it includes fuselage equipment, aerospace equipment, propulsion equipment, defense products, aviation equipment, space equipment), a part of a naval vehicle (which includes naval equipment, commercial ships, offshore equipment, yachts and workboats, marine equipment), a general mechanical component (for example, it includes industrial manufacturing machinery, heavy mobile machinery or equipment, installed equipment, industrial equipment products, metal products, tire manufacturing products), electromechanical or electronic components (for example, it includes consumer electronics, safety and / or control and / or instrumentation products, computing and communication equipment, semiconductors, medical equipment or instruments), consumer products (for example, it includes furniture, home and garden products, leisure products, fashion products, products of hard goods retailers, products of soft goods retailers), packaging (for example, it includes food and beverages and tobacco, beauty and personal care, household product packaging).
[0057] A PLM system further refers to any system suitable for managing modeling objects that represent physical manufactured products (or products to be manufactured). Thus, in a PLM system, modeling objects are defined by data suitable for manufacturing physical objects. These data can typically be dimension values and / or tolerance values. Having such values is indeed better for the correct manufacturing of the object.
[0058] CAM solution also means 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. A CAM solution is 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 a manufacturing process or the number of resources (e.g. a specific robot) that can be used at a specific step of the manufacturing process; thus allowing a decision to be made on management or the required investment. CAM is a subsequent process after the CAD process and potentially the CAE process. Such CAM solutions are manufactured by Dassault Systèmes under the trademark CAM. To provide.
[0059] CAE solution also means any solution, hardware or software suitable for analyzing the physical behavior of a modeled object. The Finite Element Method (FEM) is a well-known and widely used CAE technique that generally involves decomposing the modeled object into elements whose physical behavior can be calculated and simulated by equations. This CAE solution is manufactured by Dassault Systèmes under the trademark Another evolving CAE technology involves modeling and analyzing complex systems consisting of multiple components from different physical domains, but for which no CAD geometry data is available. CAE solutions allow simulations to be performed, thus allowing the optimization, improvement and validation of the product to be manufactured. This CAE solution is manufactured by Dassault Systèmes under the trademark To provide.
[0060] PDM stands for Product Data Management. A PDM solution means any solution, hardware or software, suitable for managing all types of data related to a specific product. All participants in the product life cycle can use a PDM solution: mainly engineers, but also project managers, finance, sales and purchasing. PDM solutions are usually based on a product-oriented database. It allows participants to share consistent data on their products, thus preventing participants from using different data. This type of PDM solution is developed by Dassault Systèmes under the trademark To provide.
[0061] Fig.13 An example of a system is shown, where the system is a client computer system (eg, a user's workstation).
[0062] The client computer of this example includes a central processing unit (CPU) 1010 connected to an internal communication bus 1000, a random access memory (RAM) 1070 also connected to the bus. The client computer is 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 referred to in the art as a frame buffer. A mass storage device controller 1020 manages access to a mass storage device (e.g., a hard disk drive 1030). Mass storage devices suitable for tangibly embodying computer program instructions and data include all forms of non-volatile memory, for example, including: semiconductor memory devices, such as EPROM, EEPROM, and flash memory devices; magnetic disks, such as internal hard disks and removable disks; magneto-optical disks; and CD-ROM disks 1040. Any of the above may be supplemented by, or incorporated into, 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, and the like. The 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 also 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.
[0063] The computer program may include instructions executable by a computer, the instructions including units for causing the above-mentioned system to perform the method. The program may be recorded on any data storage medium (including the memory of the system). For example, the program may be implemented in digital electronic circuits 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 to be executed by a programmable processor. The method steps may be performed by executing an instruction program by a programmable processor to perform the functions 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 procedural 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, the application of the program on the system results in the execution of the instructions of the method.
[0064] The data structure is functional data for controlling the operation of a CAD system (or the like). Thus, the data structure is used to control the operation of designing a 3D model on, for example, a history-free CAD system. In particular, the data structure improves the design operation because the types and parameters of the created shapes are passed to the generic features, which are not strongly typed but rather weakly typed. Here, the data structure is functional data for the technical features of the design 3D model (e.g., representing a real-world object).
[0065] "Designing a 3D modeled object" specifies any action or series of actions that is at least part of a process of drafting a 3D modeled object. Thus, the method may include creating a 3D modeled object from scratch. Alternatively, the method may include providing a previously created 3D modeled object and then modifying the 3D modeled object. The method may be included in a manufacturing process, which, after executing the method, may include: producing a physical product corresponding to the modeled object. In any case, the modeled object designed by the method may represent a manufactured object. Thus, the modeled object may be a modeled entity (i.e., a modeled object representing an entity). The manufactured object may be a product, such as a part or a combination of components. Because the method improves the design of the modeled object, the method also improves the manufacture of the product, thereby increasing the productivity of the manufacturing process.
[0066] Figure 1 An example of a strongly typed data structure commonly used by known history-based CAD systems is shown. In this example, the data structure defines a feature 3D Sphere, where the 3D Sphere is a typed 3D model. The feature 3D Sphere defines a 3D Sphere type with a set of parameters, which are the center, radius, and splay angle of the sphere. The data structure comes with a single operation, which is a sphere operation. The output of this type of feature returns the topology of the sphere, such as Figure 1 as shown on the right.
[0067] Now, from the point of view of the history-free approach, only the mesh representing the sphere is available to the system. The paradigm of history-free is that the feature is generic: this means that the CAD system does not know that the mesh (the wireframe with all vertices, edges, and faces of the wireframe can be made from this information) represents a sphere, because the CAD system only has access to the mesh. Therefore, even if the designer can quickly iterate the shape, he can only modify the current state of the mesh; therefore, it is not possible to modify only the parameters of the sphere, for example, the designer cannot modify the radius of a mesh with the 3D shape of a 3D sphere.
[0068] Figure 2An example of a data structure of the present invention is shown. The data structure (or feature) is generic, meaning that the data structure is untyped and therefore not linked to a specific type of object (e.g., a spherical primitive). A feature is a component from which a shape can be obtained. Features are commonly used in 3D modeling to construct 3D modeled objects. As a non-limiting example, a "typical" feature can have the following types: parallelepiped (e.g., a cuboid), cylinder, sphere, pyramid, cone, quadratic surface, ruled surface, ring, etc. In general, a feature can represent any shape, even very complex shapes, such as a car or an airplane, and the feature has a set of parameters sufficient for a specific operator to generate the shape. A set of features can allow the description of an industrial product (e.g., an industrial product represented as a mesh in a historical CAD system).
[0069] The data structure is generic and can be used in history-free CAD systems. Generic features are independent of the type of feature. However, a generic feature can receive data, execute data and obtain results similar to those provided by a feature of a certain type. The data structure takes as input a delegate data object that defines the feature type. The delegate data object facilitates "weakly typed" generic features. This means that the data structure is generic and its genericity is constrained by the delegate data object. Since the data structure is generic, the data structure is not linked to a specific operation. The operation is provided with the delegate data object. Therefore, the (generic) data structure inherits a certain type and operators specific to the type of the delegate data object. The inheritance is performed by providing a delegate data object (which includes the type and the specific operator) as input to the generic feature. The output is the topology calculated by the generic feature based on the input. Therefore, the topology is specific to the type provided in the input.
[0070] This is Figure 3 This is described in Figure 3 In , the (generic) data structure accepts as input a delegate data object of type sphere, and the topology produced by the data structure is a sphere. The production of spheres is controlled by operators of that type, which are executed (or run) by the data structure. Thus, the data structure gets the operator of the delegate data object and then executes it.
[0071] The delegate data object includes input parameters of a type specific to the delegate data object. The delegate also includes one or more operators specific to the type of the delegate data object.
[0072] Figure 4An example of a delegate data object specific to the 'sphere' type is shown. When the delegate object is executed by a generic feature, that is, when the system asks the 'sphere' feature to build itself, the generic feature delegates it to the delegate data object for that specific type. In the above example, the delegate data object knows that the sphere should be built using 'center', 'radius' and 'opening angle' as parameters. In this way, the delegate object will use its input parameters to generate an operation. The generic feature will then use this operation to generate its topology. Therefore, if the delegate object is replaced with another object for any reason, it will be transparent from the perspective of the generic feature because it will still obtain and run the operation given by the delegate object.
[0073] The parameters of the delegate data object allow instantiation of operators that generate the output topology. For example, as known in the art:
[0074] -The input parameters specific to the "Sphere" type are center, radius and opening angle;
[0075] - Input parameters specific to the "Cylinder" type are the direction of the axis, the height of the cylinder, the center and radius of the circle;
[0076] - Input parameters specific to the "Cone" type are the axis direction, the height of the cone, the center of the cone base, and the radius;
[0077] -The input parameters specific to the Torus type are the direction vector, the center, the radius of the large circle, and the radius of the small circle.
[0078] The data structure also includes the output topology produced by the operator. The topology depends on the type of the delegate data object.
[0079] For example, an operation may be performed by an operator specific to the type of the delegate data object. In this case, the operation is also called an internal operation: it does not modify the topology of the output topology. Internal operations are typically operations that are performed as a result of modifying an input parameter of a delegate data object (e.g., a scale or shift of the output topology). A list of these operations may be associated with a delegate data object, so that the generic feature has knowledge of the modifications that the operations that have been "loaded" on the generic feature can perform.
[0080] For example, an operation can be performed by an operator that is not a specific operator of the delegated data object. In this case, the operation is also called an external operation: modifying the output topology. External operations are typically operations that cannot be performed by operators of delegated data objects when modifying the topology of the output (for example, performing a cut on a 3D representation of a 3D model defined by a data structure). In order to perform the operation, the data structure may include an interface suitable for adding or removing at least one operator. Operators can be "loaded" on the data structure and executed. Operators of delegated data objects can remain loaded on the common features or simply deleted. The data structure always contains at least one operator.
[0081] For example, the output topology may be presented so that a representation of the 3D model defined by the data structure may be accessed (e.g., displayed to a user). As is known in the art, the output topology may be represented by a mesh. The mesh may be a subdivision surface, which is a method of representing a smooth surface by specifying a coarser piecewise linear polygonal mesh. The subdivision surface may include a base mesh, which includes a definition of the surface (i.e., a set of vertices, edges, and faces from which the surface is calculated) and control points of the mesh (e.g., control points of Bezier curves, Nurbs).
[0082] Reference now Figure 5 and Figure 6 , we now discuss the construction phase of the 3D model defined by the data structure according to the present invention.
[0083] Figure 5 Represents the construction phase of a common feature in history-free systems known in the art. When the user requests a modification of a shape, the system goes through the construction phase of that shape. Typically, during this phase, an operator representing the current modification is called, the result of which is a new shape associated with the current shape. The construction phase has one output, the new shape.
[0084] Figure 6 The construction phase of the data structure of the present invention is different because it not only calculates the new shape according to the current modification, but also ensures that the delegate data object is still consistent, and if not, provides a new delegate data object to the data structure.
[0085] Reference now Figure 8 Let's talk more precisely about the construction phase. Figure 8 is an example of a computer-implemented method for designing a 3D model using the data structure of the present invention. In particular, Figure 8 The construction phase improves the lifecycle of data structures that define a 3D model, and more particularly, improves the delegate data objects that significantly define the type of the 3D model (e.g., type "sphere").
[0086] The method for designing a 3D model includes providing a first 3D model. The first 3D model may be defined by the data structure discussed previously. In each case, the first 3D model is defined by: (i) a delegate data object including input parameters specific to the type of the delegate data object; and (ii) an output topology. If the data structure defining the 3D model is similar to that described previously with reference to Figures 2 to 6 The data structure discussed further comprises at least one operator specific to the type of the delegate data object for generating an output topology generated by the operator.
[0087] The first 3D model is referred to as the “current generic feature geometry.” The term “generic feature” has already been defined. Here, the expression “generic feature geometry” means that a mesh has already been calculated to represent the 3D model, for example, to display the 3D model to a user.
[0088] The 3D model is associated with a sequence of geometric design operations. Design operations are modifications performed based on user operations on the 3D model. Typically, the user modifies the mesh of the 3D model. Modifying the mesh of the 3D model is a typical user operation performed on a history-free CAD system.
[0089] Sequence means that the design operations will be stored in a specific order. For example, the sequence of design operations can be the design operations sorted according to a continuous arrival order. Therefore, the arrival order can be obtained by a given sequence of design operations. The order can be that the latest design operation is stored at the end of the sequence of geometric design operations. Therefore, the first design operation is ranked first, the second design operation is ranked second, the third design operation is ranked third, ..., the nth design operation is ranked nth.
[0090] The sequence may consist of only one design operation. When creating a 3D model for the first time from its data structure, this may happen: in fact, a new instantiation of the generic feature is performed based on the parameter values, which the system considers as a design operation.
[0091] Then, the user (e.g., a designer) performs a first geometric design operation on the first 3D model, thereby obtaining a second 3D model. The first design operation may be a modification of at least one input parameter value of the first 3D model. The design operation may be a modification of a mesh (or a deformation of a mesh), such as the user moving vertices, edges, or faces of the mesh.
[0092] A mesh is a collection of vertices, edges, and faces that define the shape of a 3D model. Thus, a mesh defines a geometric shape from which a graphical representation of the output topology of a 3D model can be generated. A mesh may be a subdivision surface, which is typically used to model free-form surfaces of arbitrary topology. A subdivision surface is defined as the limit of a refinement process starting from a polygonal base mesh of control points. The control points of the base mesh transfer progressive changes to the subdivision surface. Thus, the mesh of the subdivision surface is refined as a result of iterations of the subdivision process, which is controlled by the control points of the base mesh. Thus, the subdivision surface will approximate or interpolate the base mesh. The Catmull-Clark algorithm is an example of such a subdivision scheme. Base meshes are widely used in CAD, and a simple definition may be: a base mesh includes the definition of a subdivision mesh and the control points of the subdivision mesh. It should be understood that some specialized algorithms may be used.
[0093] Thus, a design operation may be a modification of a mesh when a user operates one of the control points of the base mesh. Fig.12a , 12b Examples of design operations on the base grid are shown in Figures 12c and 12d. Fig.12a An example of a base mesh that is a cubic base mesh is shown. The cubic base mesh has 8 control points and the edges are of equal length. There are no vertex, edge, or face weights attached. Figure 12b , the user has replaced (or moved) Fig.12a The control points of the base mesh of , which control the subdivision of the original cube into spheres using, for example, the Catmull-Clark algorithm. Fig.12c Shown is a cubic base mesh (8 control points) Fig.12a The base mesh of the obtained subdivision surface has the same length of the edges and the two opposite faces have weights (100% sharpness). Thus, a cylinder is obtained. Fig.12d Shown is a cubic base mesh (8 control points) Fig.12a The subdivision surface is obtained from the base mesh of the same length of edges with weights on each edge (100% sharpness). A cube is obtained. In these examples, the control points modify the weights of the vertices or edges or faces, thus modifying the subdivision process. The weights form the attractiveness of the mesh.
[0094] Therefore, when a modification of the mesh is detected, the system knows that a design operation has been performed. As a result of the design operation, a second 3D model is obtained. The second 3D model is stored in a volatile memory, it being understood that the second 3D model may be stored in or also in a non-volatile memory.
[0095] After detecting the design operation, a calculation is performed to determine whether the output topology of the second 3D model can be obtained from the output topology of the first 3D model. Therefore, the operation is intended to verify whether the respective output topologies of the first 3D model and the second 3D model are the same. For ease of explanation only, it is reminded that the topology of a 3D model defines how the spatial properties of the 3D model are preserved under continuous deformation; in particular, how elements are bounded and connected. Topological relationships involve non-geometric relationships between entities (e.g., topological entities such as solid lines, faces, edges, vertices, etc.).
[0096] For example, the determination of a topological change after a design operation is performed on the first 3D model can be calculated based on an analysis of the topological stability between the first topological output and the second topological output of the first model and the second model. The operation is topologically stable when the topology is unchanged due to the design operation. The operation is topologically stable when a bijective relationship between topological elements of the output topology of the first 3D model and topological elements of the output topology of the second 3D model is preserved.
[0097] For example, the topological stability between the two output topologies may be verified (or not verified) by comparing the base mesh of the first 3D model with the base mesh of the second 3D model.For example, a change in the number of control points involves a change in the topology.
[0098] Depending on the result of the topology stability (more generally, depending on determining whether the output topology of the second 3D model can be derived from the output topology of the first 3D model), the first delegated data object is replaced or maintained.
[0099] If the output topology of the second 3D model cannot be derived from the output topology of the first 3D model, the first delegated data object is replaced; in other words, the modification made by the user is topologically unstable.
[0100] By way of example, the replacement of a first delegate data object by a second data object is performed by identifying an output topology that is similar to a new output topology obtained by the first design operation. This can be performed by comparing the second output topology (the new topology obtained as a result of the modification) with the output topologies of the output topology list. Each output topology of the list is associated with a delegate data object, so that when a correspondence between the new output topology and the output topology of the list is identified, the associated delegate data object is kept as new. Otherwise, a third delegate data object is selected as a result of the comparison, and the third delegate data object is a delegate data object in the list that has an associated output topology that is identical to the second output topology. The selection of the third delegate data object can be performed automatically (e.g., without user intervention).
[0101] On the contrary, if the output topology of the second 3D model can be obtained from the output topology of the first 3D model, the first delegated data object is maintained. Therefore, the type of the common feature remains unchanged. In addition, the first geometric design operation is stored together with the sequence of geometric design operations associated with the first 3D model. This means that the design operation is stored together with past design operations that do not change the output topology of the 3D model.
[0102] For example, storing the design operation and the sequence of geometric design operations is performed according to a sequential arrival order of previously stored geometric design operations. As already discussed, the sequential arrival order means that the geometric design operations are implicitly ordered.
[0103] For example, the storage of the geometric design operation may include storing information about the geometry of the mesh. For example, a complete data set for recalculating the mesh may be stored. In another example, the new position of one or more vertices obtained as a result of the geometric design operation is stored.
[0104] In another example, one or more vertices of a mesh whose positions are modified by a design operation are identified. Each vertex of the mesh can be uniquely identified. Then, a transformation is calculated for each identified vertex; at least each vertex has a modified position as a result of the geometric design operation. The transformation includes data that allows the new position of the vertex to be calculated based on its previous position. Interestingly, this reduces the amount of data to be stored. In particular, the position in 3D space is stored only once (when the mesh of the 3D model is first instantiated in the providing step). Then, for each geometric design operation, only one pair of (vertex identifier; transformation) is stored.
[0105] For example, when a delegate data object is replaced by another delegate data object, the geometric operation sequence associated with the replaced delegate data object is cleared. The geometric operation sequence is deleted. In fact, the delegate data object that replaces the delegate data object that has performed the last geometric design operation includes all geometric design operations performed on the replaced delegate data object. Therefore, it is no longer necessary to store the geometric operation sequence.
[0106] The invention relies in particular on the fact that the parameters of some geometric design operations are stored in order to be run later. Running means that the sequence of operations will be applied. However, not all design operations have to be stored: only topologically stable operations are stored, because unstable topological operations are too disruptive to the delegate data object and may cause stability problems when running the stored operations. Such stable operations can be divided into a sequence of transformations by definition. There is a list of transformations that, if applied to a set of points, are equivalent to the current modification. This is what the method stores.
[0107] The list of operations performed on the data structure defining the 3D model is stored so that the current delegate data object is kept as long as possible. Furthermore, these stored operations will be run on the geometry of the current delegate data object. In practice, when one of the parameters of the delegate data object is modified, the geometry of the current delegate data object is first modified and then the stored sequence of geometric design operations is applied.
[0108] This means two things. First, the current geometry of the delegate data object can be different from the data structure geometry; the geometry of the delegate data object must be stored. Second, for each modification, if a geometry design operation changes one of the parameters of the delegate data object, the sequence of geometry design operations is run and the result is then stored as the new geometry of the delegate data object.
[0109] If the geometry design operations cannot be stored, the delegate data object is changed and the generic delegate data object is set. In this case, the shapes built by the previous steps of the construction phase become the geometry of this generic delegate data object. Therefore, the list of stored operations is cleared because they are now contained in the geometry of the generic delegate data object.
[0110] refer to Figures 9 to 11 , examples of the method of the present invention are now discussed.
[0111] Fig. 9 The case where the user explicitly creates a sphere is shown. In this way, the system can use the delegate data object for type "sphere" to directly create the data structure. The system treats the creation of the sphere as a design operation ("weak type modified").
[0112] Performs a so-called "running weak type modification", i.e., instantiates a data structure of delegated data objects of type "sphere" using input parameter values. The input parameter values can be default parameter values or provided by the user. Then, the geometry of the data structure of delegated data objects of type "sphere" is calculated and displayed to the user. Reference Figure 7a , showing the user the base mesh of the sphere.
[0113] Next, since we have just started the creation of the sphere, no "stored operations" will be run. Therefore, the Geometry Design Operations sequence is empty.
[0114] After executing "Run Stored Operations" (no operation is performed at this step in this scenario), the user can obtain the geometry of the data structure with the delegate data object of type "Sphere".
[0115] Since no geometry design operation has been performed (the response at Is there a current operation? is No), the New Generic Feature Geometry is an instantiated sphere.
[0116] Fig.10 Shows the user Fig. 9 The output sphere's base mesh is deformed. Each operation that actually causes a displacement of mesh points (e.g., a displacement of the base mesh's control points) is considered a candidate for storage. The operation is stored as a set of points associated with the transformation. In the case where the user deforms a sphere using one of its edges, this is equivalent to deforming the same sphere using two vertices of the base mesh's edges, such as Figure 7b Each vertex can be identified by a specific ID, which will be stored together with the mathematical transformation.
[0117] The "current generic feature geometry" is the base mesh of the sphere. Since the delegate data object for the "sphere" type was not modified, the next step is to test "whether there is a current operation". The answer to the test is yes, because the user performed a geometry design operation (i.e., a sphere deformation). The "current modification operation" is run, which means that the user's sphere deformation is applied.
[0118] The next test is whether the operation preserves weak typing. In other words, whether the output topology of the deformed sphere can be obtained from the original sphere (without deformation). Fig.10 In the example above, the delegate data object of type "sphere" is maintained because the topological stability of the sphere is maintained despite the deformation.
[0119] If the answer to this test is "no", i.e. topological stability is not maintained, then a more appropriate delegate data object is used in place of the current delegate data object of type "sphere".
[0120] The next test is "can this operation be stored?". It is determined whether the previous geometry operation (deformation of the sphere) was simply an update of the input parameters of a delegate data object of type sphere. In the current case, this is not the case. As a result, the geometry operation is stored in the geometry operation sequence.
[0121] Fig.10 The output of is the deformed geometry of a delegate data object of type sphere. The delegate data object is still a sphere; the generic feature has type "sphere" and has not changed.
[0122] Fig.11 Shows the Fig.10 The output of the input parameters are modified. Fig.11 The input of the scene is Fig.10 Output.
[0123] The first test is "Has the weak type been modified?" The answer to the test is yes, because the user has modified at least one input parameter of the current delegate data object. "Run weak type modification" is executed, and the sphere is modified according to the new input parameters. Then, the geometry of the modified data structure is calculated. This geometry is not displayed to the user. Reference Figure 7c , after modifying the input parameter "opening angle" of the delegate data object, the representation of the base mesh of the sphere is expressed.
[0124] Since the user has modified the input parameter of the delegate data object (the opening angle of the sphere), this modification is not stored with the geometric design operation sequence. The modified parameter value is stored in the delegate object but not in the associated operation.
[0125] Next, on top of the new weak type (i.e. Figure 7b ), apply (or run) a sequence of geometric design operations. The result is a new geometry of the sphere, such as Figure 7d shown.
[0126] Because no geometry design operation has been performed (the response is No at Is there a current operation?), the New Generic Feature Geometry is as follows: Figure 7d The modified sphere shown.
[0127] So now, when deforming a sphere, the system can maintain a delegate data object of type "sphere", since the deformation does not modify the topology of the shape. The user can then subsequently modify the parameters of the sphere. Then, for example, modifying the opening angle of the original sphere will cause the deformation to be reproduced. The system will first modify the delegate type internally, that is, the user will not see the result, and then the system will apply the stored transformation and display the result.
[0128] Therefore, the parameters used to create the initial shape can still be modified after other operations have been performed on the shape, and the user can change the type of the initial shape at any time after its creation. Therefore, the flexibility of the history-free approach is improved because the system can keep the current delegate data object longer, thereby extending its life cycle.
[0129] Since the system is able to remain weakly typed longer, the user has more control over its shape. The user's interaction with the system is improved: the user does not have to worry about the order in which he makes modifications, the system takes care of it for him.
Claims
1. A computer-implemented method for designing a three-dimensional (3D) model, comprising: A first 3D model is provided, wherein the first 3D model is defined by a data structure and is associated with a sequence of geometric design operations, wherein the data structure forms a generic feature independent of feature type, and the data structure includes: (i) a first delegate data object defining a feature type and comprising input parameters and at least one operator specific to the type of said first delegate data object; and (ii) an output topology generated by the at least one operator; The user performs a first geometric design operation on the first 3D model, thereby obtaining a second 3D model; Determining whether the output topology of the second 3D model can be obtained from the output topology of the first 3D model; If the output topology of the second 3D model cannot be obtained from the output topology of the first 3D model, replace the first delegate data object with a different second delegate data object, or if the output topology of the second 3D model can be obtained from the output topology of the first 3D model, keep the first delegate data object and store the first geometric design operation together with the sequence of geometric design operations associated with the first 3D model.
2. The computer-implemented method of claim 1 , wherein: Determining whether the output topology of the second 3D model can be obtained from the output topology of the first 3D model is performed by determining a topological stability between the output topology of the first 3D model and the output topology of the second 3D model.
3. The computer-implemented method of claim 2, wherein: Each of the output topologies of the first 3D model and the second 3D model forms a base mesh, and wherein the determining topological stability is performed by comparing the base mesh of the first 3D model to the base mesh of the second 3D model.
4. The computer-implemented method according to one of claims 1 to 3, wherein: Replacing the first delegate data object with a second delegate data object comprises: comparing an output topology of the second 3D model with a list of output topologies, each output topology in the list being associated with a corresponding delegate data object; As a result of the comparison, a delegate data object in the list having an associated output topology that is identical to the output topology of the second 3D model is automatically selected as the second delegate data object.
5. The computer-implemented method according to one of claims 1 to 3, wherein: Replacing the first delegate data object with the second delegate data object further comprises: Clear the geometry design operation sequence.
6. The computer-implemented method according to one of claims 1 to 3, wherein: The storing of the first geometric design operation comprises: identifying at least one vertex of a geometric shape associated with the first delegate data object whose position is modified by the first geometric design operation; A transformation of the identified at least one vertex is calculated, the transformation being a result of the first geometric design operation.
7. The computer-implemented method of one of claims 1 to 3, wherein: Providing the first 3D model comprises creating the first 3D model, the creating being a first geometric design operation; as well as The geometric design operation sequence of the created first 3D model is empty.
8. The computer-implemented method of one of claims 1 to 3, wherein: The first geometric design operation is a modification of at least one input parameter value of the first 3D model.
9. The computer-implemented method of one of claims 1 to 3, wherein: Storing the first geometric design operation together with the sequence of geometric design operations is performed according to a sequential arrival order, with the most recently arrived design operation being stored at the end of the sequence of geometric design operations.
10. A computer program product comprising instructions for executing the method according to any one of claims 1-9.
11. A computer-readable storage medium having recorded thereon instructions for executing the method according to any one of claims 1 to 9.
12. A system comprising a processor coupled to a memory having recorded thereon instructions for executing the method according to any one of claims 1-9.
Citation Information
Patent Citations
Method for validating features in a direct modeling paradigm
US20110025688A1