Method for designing a three-dimensional mesh in a three-dimensional scene
By providing global orientation and automatic manipulator switching in CAD software, the problem of low productivity and operation errors caused by frequent tool switching by users is solved, thereby improving the efficiency and ergonomics of 3D mesh design.
Patent Information
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- DASSAULT SYSTEMES SA
- Filing Date
- 2021-07-15
- Publication Date
- 2026-04-21
AI Technical Summary
In existing CAD software, users need to frequently switch between different tools when manipulating 3D meshes, resulting in low productivity and easy operation errors, especially when switching between 'robot' and 'UV' manipulator modes, where ergonomic issues are serious.
A computer-implemented method is provided that displays a 3D mesh in a 3D scene and provides a global orientation, selects vertices to form a set using a pointing device, calculates the selected area, and provides a first manipulator to control vertex shifting along the NUV direction. The first and second manipulators are automatically switched according to the position of the pointing device, reducing the number of user interactions and improving ergonomics.
It improves user productivity in manipulating 3D meshes, reduces manipulation errors, improves ergonomics, reduces muscle pain and tension caused by switching tools, and improves design efficiency.
Smart Images

Figure CN113947667B_ABST
Abstract
Description
Technical Field
[0001] This invention relates to the field of computer programs and systems, and more particularly to methods, systems and programs for designing 3D meshes in three-dimensional (3D) scenes. Background Technology
[0002] There are numerous systems and programs available on the market for the design, engineering, and manufacturing of objects. CAD stands for Computer-Aided Design, which, for example, involves software solutions for designing objects. CAE stands for Computer-Aided Engineering, which, for example, involves software solutions for simulating the physical behavior of future products. CAM stands for Computer-Aided Manufacturing, which, for example, involves software solutions for defining manufacturing processes and operations. In such computer-aided design systems, the graphical user interface plays a crucial role in the efficiency of the technology. These technologies can be embedded within Product Lifecycle Management (PLM) systems. PLM refers to a business strategy that helps companies share product data, apply common processes, and leverage collaborative knowledge to extend the enterprise's concept across product development from concept to end-of-life. PLM solutions offered by Dassault Systèmes (registered trademarks CATIA, ENOVIA, and DELMIA) provide an engineering center to organize product engineering knowledge, a manufacturing center to manage manufacturing engineering knowledge, and an enterprise center that enables integration and connection between the enterprise and both the engineering and manufacturing centers. Simultaneously, the system delivers dynamic, knowledge-based product creation and decision support that links products, processes, and resources to drive optimal product definition, manufacturing preparation, production, and service.
[0003] This invention relates to CAD software. More specifically, it relates to any CAD software that allows users to manipulate 3D objects represented by a set of geometric elements such as vertices, edges, and faces in a 3D scene. This set of geometric elements forms a 3D mesh of the 3D object.
[0004] Users can modify the shape of 3D objects by manipulating the 3D mesh that represents them. Figure 4 The example illustrates a 3D mesh of a 3D object. In this example, the 3D object is a sphere 310, and the 3D mesh 314 representing the sphere is a cube 314. Figure 7 Another example of a 3D mesh is illustrated, where the 3D mesh includes vertices 402 connected to edges 404 that form the shape of a 3D object 400. By modifying the positions of the vertices of the 3D mesh, the user is able to modify the shape of the object represented by the 3D mesh.
[0005] It provides users with tools to manipulate the vertices, edges, and faces of a 3D mesh representing a 3D object. One of the most commonly used tools allows the manipulation of a 3D object or part of it along a specific axis using a manipulator, often referred to as a "robot". Figures 3 to 6 An example of a "robot" manipulator is illustrated. This "robot" manipulator 300 represents a manipulator with an axis system 302 having three axes (X, Y, Z), and the user can use any of its three axes to manipulate objects along directions defined by the axis system. The robot's axis system typically defaults to using the global axis system 312 of the 3D scene, such as the global axis system of a 3D object or a modified product that includes 3D objects. The "robot" manipulator can be remotely controlled to manipulate object 310, as in... Figure 4 As described in the text. Optionally, the "robot" controller can be provided to selected vertices, as in... Figure 5 As explained in the description, by selecting vertex 322 of mesh 314, the user can interact with one of the three axes of the "robot" 320 to move vertex 322 along the direction of the selected axis, thereby modifying the shape of the 3D object 310. Figure 5 In the example, a "robot" manipulator 320 is provided to vertex 322, and the user interacts with the robot's Z-axis 330 to shift the selected vertex 322 along the direction of the Z-axis 330, as after the shift. Figure 6 As explained in the text.
[0006] Vertices can also be shifted along the direction of their incident grid line (referred to as the "UV direction") using manipulators commonly known as "UV" manipulators. Figure 8 An example of a UV manipulator is illustrated, in which a user can move a selected vertex 410 along its incident grid line 412. The incident grid line is the incident edge of a given selected vertex. The direction defined by the incident edge is called the vertex's UV direction. The user can interact with one of the vertex's UV directions to move the selected vertex along the UV direction. The manipulator 414 is thus embodied by the direction of each incident edge of the vertex (i.e., each UV direction). Figure 9 Another example of such a manipulator is illustrated in the text, used for Figures 4 to 6 Selected vertices 322 of the 3D mesh 314. In this example, the manipulator 420 includes three UV directions defined by each incident edge.
[0007] The main drawback of these solutions for designing 3D meshes is productivity. In practice, users constantly need to switch between different tools used to design objects. This is typically addressed by creating a model for each tool, each capable of being turned on or off to activate or deactivate itself, for example, using pointing devices or keyboard shortcuts. Consequently, users frequently need to manually switch between available tools, which is ergonomically inefficient. For example, it triggers numerous movements of pointing devices to turn modes on and off before and / or after each manipulation of the object, or numerous uses of such keyboard shortcuts when they are defined. Furthermore, switching between different modes tends to cause operational errors, as users are distracted by the switching and thus incorrectly use one mode instead of another when the desired mode is not activated.
[0008] Furthermore, if several modes are activated simultaneously, it can be difficult for the user to correctly perform mesh manipulation. For example, if the "Robot" controller and the UV control mode controller are activated together, it will be difficult for the user to select a direction of manipulation because the "Robot" axis system and the UV direction will be displayed in the same position, making it difficult to select one of the axes provided by the "Robot" and "UV" controllers. Figure 10 This problem situation is explained in the document. If the axis of the first "robot" controller 500 overlaps or is very close to the UV direction of the second controller 502, it is difficult for the user to select the axis or NUV direction he / she wants to control.
[0009] Furthermore, constantly switching between "Robot" and "UV" modes is a real productivity issue, as users need these tools during the creation process. Switching between "Robot" and "UV" modes also causes ergonomic problems, as the frequent repetitive movements of the hand used to select the other mode can lead to muscle pain and / or tension.
[0010] Within this context, there is still a need to improve the user interaction for switching back and forth between the first and second controllers. Summary of the Invention
[0011] Therefore, a computer-implemented method for designing a 3D mesh in a three-dimensional (3D) scene is provided. The method includes displaying the 3D mesh in the 3D scene. The method includes providing a global orientation. The method includes selecting one or more vertices of the 3D mesh using a pointing device, thereby forming a set of one or more vertices. The method includes calculating at least one selection region around each vertex of the set. The method includes providing a first manipulator for controlling the displacement of each vertex of the set along one or more NUV directions. The method includes determining whether the pointing setting is manipulated within the selection region. If not, the method includes providing a second manipulator for controlling the displacement of one or more vertices of the set along one or more directions defined by the global orientation.
[0012] The method may include one or more of the following:
[0013] - After providing the second controller, determine that the pointing device is again located within the at least one selection area and provide the first controller;
[0014] - Providing the first controller may further include retracting the second controller;
[0015] - Providing the second controller may further include retracting the first controller;
[0016] Providing the first manipulator may further include determining the vertex of the set closest to the pointing device and providing the first manipulator to the determined vertex;
[0017] - Repeat the calculation of the at least one selected region during or after each shift of the one or more vertices of the set;
[0018] - Selecting one or more vertices of the 3D mesh using a pointing device can be performed by: interacting with the pointing device on at least one vertex of the mesh to select at least one vertex of the mesh; and / or interacting with the pointing device on at least one edge of the mesh to select two vertices of the at least one edge; and / or interacting with the pointing device on at least one face of the mesh to select vertices belonging to the at least one face.
[0019] - The first manipulator may include at least one graphical element representing one of the NUV directions. The at least one graphical element may control the displacement of at least one vertex of the set along the NUV direction represented by the at least one graphical element. The method may include, after providing the first manipulator, performing user interaction with the at least one graphical element of the first manipulator, and, in response to movement of the pointing device, displacing the at least one vertex of the set along the NUV direction. At least one calculated selection region may be deactivated during the displacement. The method may further include, for each vertex in the set that does not have the same NUV direction as the NUV direction represented by the at least one graphical element, displacing the vertex along one of its NUV directions, the one of which is closest to the NUV direction represented by the at least one graphical element;
[0020] - The position of the first manipulator is updated based on the new position of at least one vertex of the set along the NUV direction that shifts in response to the movement of the pointing device;
[0021] - For each vertex in the set that does not have the same NUV direction as the NUV direction represented by the at least one graphical element, display a graphical element representing the vertex with the NUV direction that is closest to the NUV direction represented by the at least one graphical element of the first manipulator.
[0022] - The second manipulator may be a robot; and / or
[0023] Calculating the at least one selected region may include calculating a selected region for each vertex of the set, and / or wherein, when the pointing device is a two-dimensional (2D) pointing device, the calculated at least one selected region may be a defining surface such as a circle, or when the pointing device is a 3D pointing device, it may be a volume such as a sphere.
[0024] A computer program including instructions for performing the method is further provided.
[0025] A computer-readable storage medium having a computer program recorded thereon is further provided.
[0026] A system is further provided that includes a processor coupled to a memory and a display and pointing device, the memory having a computer program recorded thereon. Attached Figure Description
[0027] Embodiments of the invention will now be described by way of non-limiting example and with reference to the accompanying drawings, in which:
[0028] Figure 1 A flowchart illustrating an example of the method is shown;
[0029] Figure 2 An example of the graphical user interface of the system is shown;
[0030] Figures 3 to 6 An example of a "robot" controller is shown;
[0031] Figure 7 An example of vertex selection is shown;
[0032] Figure 8 An example of a first manipulator for controlling the displacement of each vertex of the set along the NUV direction is shown;
[0033] Figure 9 It shows the provision to Figure 5 and Figure 6 Vertices of the same 3D mesh Figure 8 An example of the first manipulator;
[0034] Figure 10 Showing the items provided together Figure 8 The first controller and Figure 3 An example of a "robot" controller;
[0035] Figure 11 and Figure 12 Examples of selecting a region are shown when the pointing device is a 2D or 3D pointing device;
[0036] Figures 13 to 16 An example is shown where a vertex is shifted along the NUV direction in response to movement of the pointing device;
[0037] Figure 17 and Figure 18 An example is shown where a second controller is provided and the first controller is withdrawn if the pointing device is not maintained within the selection area;
[0038] Figure 19 An example is shown where the first controller is provided and the second controller is withdrawn after the second controller has been provided, when the pointing device is once again within the selection area.
[0039] Figure 20 An example of selecting the first and second vertices of a 3D mesh using a pointing device is shown;
[0040] Figure 21 An example is shown where the second vertex is shifted along one of its NUV directions, which is closest to the first vertex and is shifted along its shifted NUV direction.
[0041] Figure 22 and Figure 23This shows what happens if the pointing device is not maintained for the target device. Figure 20 An example of providing a second manipulator and retracting the first manipulator within the selected region calculated by the selected vertex;
[0042] Figures 24 to 27 An example illustrating a method for designing a 3D mesh representing the body of a car is given; and
[0043] Figure 28 An example of the system is shown. Detailed Implementation
[0044] Reference Figure 1 The flowchart presents a computer-implemented method for designing 3D meshes in a three-dimensional (3D) scene. The 3D mesh can represent a 3D object that a user wishes to modify. The 3D mesh can be of any type, such as a polygonal mesh or a basic mesh. The method includes displaying the 3D mesh (S10). The 3D mesh can be displayed, for example, on a graphical user interface. The method also includes providing a global orientation (S10). The global orientation can be any type of axis system that orients the 3D mesh. For example, the global orientation can be the global orientation of the 3D mesh, the global orientation of the 3D object represented by the mesh, or the global orientation of a 3D scene including the 3D objects represented by the 3D mesh. The global orientation can also be user-defined; for example, the user can select each axis of the global orientation. The global orientation can also be displayed on a graphical user interface. The steps of displaying the 3D mesh and providing the global orientation can be performed simultaneously, or the display can be performed before or after the provision.
[0045] This method involves using a pointing device to select one or more vertices of an S20 3D mesh, thereby forming a set of one or more vertices. The selection of one or more vertices can be performed based on user interaction, such as by positioning the pointing device on each vertex or by selecting several vertices using a drag-and-drop selection method. The pointing device is an input interface (especially a human interface device) that allows a user to input spatial (i.e., continuous and multidimensional) data to a computer. Graphical user interfaces (GUIs), such as those in CAD systems, allow users to control a computer and provide data to it using physical gestures by moving a handheld mouse or similar device on a physical desktop surface and activating a switch on the mouse. Alternatively, a GUI allows users to control a computer or provide data to it using physical gestures by moving one or more fingers or similar devices (e.g., probes) on a touch-sensitive screen surface and performing gestures on the touch-sensitive screen. Alternatively, a GUI in virtual reality (VR) allows users to control a computer and provide data to it using physical gestures by moving input devices such as a 3D mouse, wired gloves, motion controllers, or optical tracking sensors in the VR environment and performing gestures in the VR environment. Movement of the pointing device can be displayed on the screen through pointer (or cursor) movement and other visual changes. Common gestures include clicking and dragging. While the most common pointing device is currently the mouse, many devices have been developed for touch-sensitive screens (so-called gestures) and VR environments. However, the term "mouse" is often used metaphorically as a device for moving the cursor. For example, a pointing device can be any 2D pointing device (mouse, touch, or probe) or any 3D pointing device (e.g., a virtual reality controller). Any other method for selecting one or more vertices can be used; independent of the method used, the system performing the method is aware that, as a result of the selection, a vertex shift will be performed at a subsequent level. The method may include selecting any number of vertices, such as one vertex, two vertices, or any integer number of vertices n>2, thereby forming sets with one, two, or n vertices respectively. The set of one or two vertices may, for example, be registered in a database. For example, forming a set of one or more vertices may include mapping data representing the set in the database using each of the selected one or more vertices.
[0046] The method includes calculating at least one selected region S30 around each vertex of the set. The selected region is an area where a user can locate a graphical user interface on the device for performing a specific action.
[0047] The selection region can be of any size and shape. In the example, the selection region can define any area on the graphical user interface. The region can be an area or a volume. This can depend on the graphical user interface (GUI) with which the user interacts. For example, if the GUI is a two-dimensional (2D) GUI, the selection region can define an area. As another example, if the GUI is a 3D GUI (e.g., in virtual reality), the selection region can define a volume.
[0048] In the examples, each calculated selection region has the same size and / or space. In other words, each selection region can have the same geometry in the GUI. This will be referenced below. Figure 11 and Figure 12 Let's discuss an example.
[0049] The selected area in the graphical user interface may be invisible to the user (i.e., not displayed) or may optionally be displayed.
[0050] The size of the selection area can be selected, for example, by placing the pointing device within the selection area after the vertices of the selected set. In this case, the pointing device can be, for example, within a calculated selection area surrounding the selected vertices. Optionally or additionally, the pointing device can remain stationary until the selection area corresponding to the selected vertices is calculated. If the screen is touch-sensitive, the pointing device can be, for example, held at the touch position when a selection is performed until the selection area corresponding to the selected vertices is calculated.
[0051] In the example, a selection region can be calculated for each vertex of the set. In this case, the method may include calculating the number of selection regions equal to the number of vertices in the set (i.e., the same number of selection regions as the selected vertices).
[0052] In the example, a selection region can be calculated for more than one vertex in the set, such as two vertices in the set or any number of vertices (e.g., all vertices in the set). In this case, the method may include calculating the number of selection regions less than the number of vertices in the set. For example, a single selection region may surround two or more vertices that are close together, for example, the distance between the two or more vertices is less than a predetermined distance. This distance may be, but is not limited to, Euclidean distance or 3D distance. The method may therefore further include first identifying groups of vertices that are close together and then calculating the selection region for each group of vertices; it can be understood that if a vertex does not have any close vertices, a group of vertices may include only one vertex.
[0053] The method includes providing S40 a first manipulator for controlling the displacement of each vertex of the set along one or more NUV directions. The NUV direction includes the UV direction of the vertex (defined by the incident edge of the vertex) and the normal N direction from the surface of the object at the vertex. Therefore, the first manipulator (for controlling displacement along the NUV direction) is an enhanced UV manipulation mode. In this enhanced UV manipulation mode (referred to as the NUV manipulation mode), the first manipulator allows control of the displacement of vertices of the 3D mesh along each NUV direction (i.e., along the UV direction and the normal N direction). In this NUV manipulation mode, the user can thus move a selected vertex along the UV direction of the vertex and along the normal N direction at the vertex, for example, by user interaction with a pointing device in one of the NUV directions. For example, the user can interact in one of the NUV directions by positioning the pointing device in or near one of the NUV directions and performing a click on a button on the pointing device (or a touch in one or more NUV directions if the screen is touch-sensitive). User interaction in a NUV direction can trigger a displacement function along that direction. A shift function can, for example, move one or more vertices along a direction by a distance proportional to the movement of the pointing device. The shift function can shift one or more vertices along two orientations of this direction. A user can thus use the shift function to control the shift of one or more vertices by moving the pointing device after user interaction with one of the NUV directions. For example, a user can click in or near a NUV direction and move the pointing device along that direction to shift one or more vertices along that NUV direction. One or more vertices can be shifted by a distance proportional to the movement of the pointing device. For example, the distance of the pointing device can be the projected distance of the movement of the pointing device in the direction in which one or more vertices are shifted.
[0054] In the example, one or more NUV directions may include all UV directions defined by each incident edge of the vertices of the set, as well as the normal N direction at that vertex. The normal N direction to the surface of a point is the direction perpendicular to the tangent of the surface at that point. The normal N direction at a vertex may be the normal N direction to the surface of the object represented by the 3D mesh at the point on the screen corresponding to the vertex. The normal N direction can be represented by a normal N vector. For example, the normal N direction can be calculated by summing the normal vectors of each incident surface of the vertex, thereby calculating the average normal vector of the mesh at that vertex.
[0055] In the example, one or more NUV directions can be selected from the UV directions of one or more selected (S20) vertices of the set and the normal N direction at one or more selected (S20) vertices. In the example, one or more NUV directions can be selected from the UV direction of the vertex of the set that is closest to the device at the time the selection step is completed and the normal N direction at that vertex.
[0056] The method includes determining whether the pointing device is maintained within at least one selected region. "The pointing device is maintained within at least one selected region" means that the pointing device remains within at least one selected region surrounding one or more selected vertices of the set, or within the selected region of the vertex closest to the pointing device when the selection of one or more vertices ends since the moment the selected region was created.
[0057] The method determines whether a pointing device is included and / or surrounds the selected area. For example, each selected area may define the region on the graphical user interface where the presence or absence of a cursor is detected, such as when the pointing device is a mouse. Optionally or additionally, when the graphical user interface is displayed on a touch-sensitive screen, the selected area may define the region where the presence or absence of a user's finger is detected.
[0058] In the example, the method can determine whether the pointing device is still contained within and / or surrounded by at least one selection area. In practice, when using the pointing device to select one or more vertices of a 3D mesh, the pointing device is located inside at least one calculated selection area because at least one selection area surrounds each vertex of the set, and the selection can include user interaction with one or more vertices (i.e., positioning the pointing device near one or more vertices).
[0059] If the method determines that the pointing device is not held within at least one selection area, the method includes providing a second manipulator in S70 for controlling in S80 the displacement of one or more vertices of the set along one or more directions defined by a provided global orientation. "The pointing device is not held within at least one selection area" means that the pointing device is no longer within the selection area, for example, the user has moved the pointing device. For example, the user moves the mouse cursor on a graphical user interface or moves his / her finger on the screen.
[0060] In the example, the second manipulator could enable control over the displacement of one or more vertices of the set along each direction of the global orientation, for example, when user interaction occurs on the second manipulator. In the example, the second manipulator could be a robot, such as as referenced... Figures 3 to 6 Discussed.
[0061] In the example, the method can provide a second controller anywhere in the graphical user interface. For instance, when the pointing device is located outside at least one selected area, the method can provide a second controller at or near the first position. In this case, the user can interact along one of the directions of the second controller by positioning the pointing device in or near that direction, thereby triggering a shift function along that direction. For the first controller, the shift function can, for example, shift one or more vertices along that direction by a distance proportional to the movement of the pointing device.
[0062] In the examples, the method can provide a second manipulator at the current position of the pointing device. In these examples, the second manipulator can follow the pointing device; for example, the method can include updating the position of the second manipulator for each new position of the pointing device. For example, if the screen is touch-sensitive, the pointing device can follow the movement of a user's finger or probe. In this case, the second manipulator can be "pose-based," as disclosed in European patent application EP 3 340023A1. "Pose-based" means that each direction of the second manipulator is activated according to a specific gesture of the user (i.e., selected for controlling the displacement of a vertex along this direction). For example, the method can include using the pointing device to detect a dragging operation performed by the user (the dragging operation includes translation of the pointing device) and selecting the axis of the second manipulator based on the translation of the pointing device. The method then includes performing a displacement of one or more vertices, the displacement depending on the selected axis and the displacement being the length of translation of the pointing device along the selected axis.
[0063] The method improves user interaction for switching back and forth between the first and second controllers. Notably, the method includes providing the first controller when the pointing device is held within at least one calculated selection area and providing the second controller when the method determines that the pointing device is not held within at least one selection area. Therefore, the first and second controllers are provided with respect to one or more selected vertices depending on the position of the pointing device, which improves user ergonomics. In effect, the user can thus use both the first and second controllers to control one or more selected vertices. For example, the user can first use the first controller and then move the pointing device further away from the selected vertex to use the second controller. Specifically, the method reduces the number of user interactions because the user no longer needs to perform pointing device movements to turn the mode of providing the first and second controllers on or off, and only performs local pointing device movements (i.e., around the location where the 3D mesh is displayed) to use both the first and second controllers. This greatly improves user productivity.
[0064] Furthermore, switching between the two modes depending on the pointing device's location improves ergonomics because the first manipulator becomes more relevant when the pointing device is near one or more selected vertices, and because the second manipulator does not need to be in such a proximity. In fact, the first manipulator allows control of one or more vertices along NUV directions defined based on the incident edge (i.e., locally defined). Because NUV control axes are calculated using mesh lines and normalized at the selected vertex, they can be located in any direction. As a result, the best way to avoid conflicting choices between the two directions is to select the direction of control directly around the selected one or more vertices (i.e., locally), rather than remotely. Displaying the first manipulator when the pointing device is near a selected element improves ergonomics because the user can more easily understand that one or more selected elements will move along one or more NUV directions. On the other hand, the second manipulator does not require such local knowledge of the vertex's incident edge because it uses a globally oriented direction. The second manipulator is meaningful anywhere on the screen because its definition does not depend on the selected one or more vertices. Moreover, by providing the first and second manipulators depending on the pointing device's location, potential control errors that would otherwise be introduced are avoided. In practice, the most relevant controller is provided depending on the location of the device (the first controller is local and the second controller is in another mode). This saves the user from having to constantly check which mode is active, which can lead to many operational errors.
[0065] Furthermore, during the creation process, the user needs both a primary and a secondary controller, and therefore frequently switches between the two modes. Therefore, this method is particularly effective for user interaction because it allows for automatic switching between the two modes depending on the location of the pointing device. By automatically providing the most relevant controller based on the location of the pointing device, the method thus significantly improves the user's ergonomics.
[0066] The method is implemented by a computer. This means that the steps (or essentially all steps) of the method are executed by at least one computer or similar arbitrary system. Therefore, the execution of the steps by a computer may be fully automatic or semi-automatic. In the example, at least some of the steps of the method may be triggered via user-computer interaction. The required level of user-computer interaction may depend on the anticipated level of automation and be balanced with the need to fulfill the user's wishes. In the example, this level may be user-defined and / or predefined.
[0067] A typical example of a computer implementation of this method is to use a system suitable for this purpose to execute the method. The system may include a processor coupled to memory and a graphical user interface (GUI), on which a computer program containing instructions for performing the method is recorded. The memory may also store a database. The memory is any hardware suitable for such storage and may include several physically separate components (e.g., one for the program and possibly one for the database).
[0068] The method described typically manipulates 3D objects, also known as "modeling objects." A modeling object is any object defined by data, for example, stored in a database. As an extension, the term "modeling object" refers to the data itself. Depending on the type of system, modeling objects can be defined by different kinds of data. A system can be, in effect, any combination of CAD, CAE, CAM, PDM, and / or PLM systems. In those different systems, modeling objects are defined by corresponding data. One can therefore say CAD objects, PLM objects, PDM objects, CAE objects, CAM objects, CAD data, PLM data, PDM data, CAM data, and CAE data. However, these systems are not mutually exclusive, as modeling objects can be defined by data corresponding to any combination of these systems. A system can therefore be both CAD and PLM systems, as will become apparent from the definition of such a system provided below.
[0069] A CAD system further implies at least any system suitable for designing modeling objects based on their graphical representations, such as CATIA. In this case, the data defining the modeling object includes the data that allows the modeling object to be represented. A CAD system can provide a representation of a CAD modeling object, for example, using edges or lines, and in some cases, faces or surfaces. Lines, edges, or surfaces can be represented in various ways, such as non-uniform rational B-splines (NURBS) or subdivided surfaces. Specifically, a CAD file contains a specification of the geometry that can be generated from it, which in turn allows for the generation of a representation. The specification of the modeling object can be stored in a single CAD file or multiple files. The typical size of a file representing a modeling object in a CAD system is in the range of one megabyte per part. And the modeling object can typically be an assembly of thousands of parts.
[0070] In the context of CAD, modeling objects can typically be 3D modeling objects, such as products representing parts or assemblies of parts, or possibly assemblies of products. "3D modeling object" means any object modeled from data that allows for its 3D representation. 3D representation allows parts to be viewed from all angles. For example, when performing a 3D representation, a 3D modeling object can be manipulated or rotated around any axis, or around any axis in the screen on which the representation is displayed. This significantly eliminates the possibility of 2D icons that are not 3D modeled. The display of 3D representations facilitates design (i.e., increases the statistical speed at which designers complete their tasks). This accelerates the manufacturing process in industry, as product design is part of the manufacturing process.
[0071] 3D modeling objects can represent the geometry of a product to be manufactured in the real world after its virtual design is completed using, for example, CAD software solutions or CAD systems. Examples include (e.g., mechanical) parts or assemblies of parts (or equivalent assemblies of parts, since assemblies of parts can be viewed as the parts themselves from a methodological perspective, or the method can be applied independently to each part of the assembly), or more generally, any rigid body assembly (e.g., a movement mechanism). CAD software solutions allow for the design of products in a wide variety of industrial sectors, including: aerospace, architecture, construction, consumer products, high-tech equipment, industrial facilities, transportation, marine and / or offshore oil / gas production or transportation. The 3D modeling objects designed using this method can therefore represent industrial products that can be any mechanical component, such as components of ground vehicles (e.g., including automobile and light truck equipment, racing cars, motorcycles, truck and motorbike equipment, trucks and buses, trains), components of aircraft (e.g., including fuselage equipment, aviation equipment, propulsion equipment, defense products, airline equipment, space equipment), components of maritime vehicles (e.g., including naval equipment, commercial vessels, offshore equipment, yachts and workboats, marine equipment), general mechanical components (e.g., including industrial manufacturing machines, heavy mobile machines or equipment, installation equipment, industrial equipment products, manufactured metal products, tire manufacturing products), electromechanical or electronic components (e.g., including consumer electronics, safety and / or control and / or instrumentation products, computing and communication equipment, semiconductors, medical devices and equipment), consumer goods (e.g., including furniture, home and garden products, leisure products, fashion products, hard goods retailer products, soft goods retailer products), and packaging (e.g., including food and beverages and cigarettes, beauty and personal care, household product packaging).
[0072] CAD systems can be history-based. In this case, the modeling object is further defined by a history of data including geometric features. The modeling object can actually be designed by the person (i.e., the designer / user) using standard modeling features (e.g., convex, revolve, cut, and / or fillet) and / or standard surface features (e.g., sweep, bend, lift, fill, deform, and / or smooth). Many CAD systems that support such modeling capabilities are history-based systems. This means that the creation history of design features is typically preserved through an acyclic data flow that links the geometric features together via input and output links. The history-based modeling paradigm has been well-known since the 1980s. The modeling object is described by two persistent data representations: history and B-rep (i.e., boundary representation). The B-rep is the result of calculations defined in the history. When the modeling object is represented, the shape of the part displayed on the computer screen is the B-rep (e.g., its checkerboard pattern). The history of the part is the design intent. Essentially, the history collects information about the operations the modeling object has undergone. B-rep can be saved along with the history to make complex parts easier to display. The history can be saved together with the B-rep to allow parts to be redesigned according to the design intent.
[0073] A PLM system also means any system suitable for managing modeled objects that represent physically manufactured products (or products to be manufactured). In a PLM system, the modeled objects are thus defined by data suitable for manufacturing the physical objects. These can typically be dimensional values and / or tolerance values. For the correct manufacture of the object, it is actually better to have such values.
[0074] CAM solutions also refer to any solution, software, or hardware suitable for managing product manufacturing data. Manufacturing data typically includes data related to the product to be manufactured, the manufacturing process, and required resources. CAM solutions are used to plan and optimize the entire manufacturing process of a product. For example, it can provide CAM users with information on feasibility, the duration of the manufacturing process, or the amount of resources that can be used at specific steps in the manufacturing process, such as a particular robot; and thus allows for decisions regarding management or required investments. CAM is a subsequent process following CAD and potential CAE processes. Such CAM solutions are registered trademarks of... Provided by Dassault Systèmes.
[0075] CAE solutions also refer to any solution, software, or hardware suitable for analyzing the physical behavior of the modeled object. A well-known and widely used CAE technique is the Finite Element Method (FEM), which typically involves modeling the object into components capable of being calculated and simulated through equations. Such CAE solutions are manufactured by companies with registered trademarks... Dassault Systèmes provides this. Another emerging CAE technology involves modeling and analyzing complex systems composed of multiple components from different physical domains without the need for CAD geometry data. CAE solutions allow for the simulation of products to be manufactured and thus allow for their optimization, improvement, and verification. Such CAE solutions are provided by companies registered under the trademark [Brand Name - likely a company name]. Provided by Dassault Systèmes.
[0076] PDM stands for Product Data Management. A PDM solution means any solution, software, or hardware suitable for managing all types of data related to a specific product. PDM solutions can be used by all roles involved in the product lifecycle: primarily engineers, but also project managers, finance personnel, sales staff, and buyers. PDM solutions are typically based on a product-oriented database. It allows roles to share consistent data about their products and thus prevents roles from using conflicting data. Such PDM solutions are registered trademarks of [Company Name - likely a company name or organization]. Provided by Dassault Systèmes.
[0077] Figure 2 An example of the system's GUI is shown, where the system is a CAD system.
[0078] The GUI 2100 may be a typical CAD-like interface, featuring standard menu bars 2110, 2120 and bottom and side toolbars 2140, 2150. Such menus and toolbars contain a set of user-selectable icons, each associated with one or more operations or functions, as is well known in the art. Some of these icons are associated with software tools suitable for editing and / or working with the 3D modeled object 2000 displayed in the GUI 2100. The software tools may be grouped into workbenches. Each workbench includes a subset of the software tools. Specifically, one workbench is an editing workbench suitable for editing the geometry of the modeled product 2000. In operation, the designer may, for example, pre-select parts of the object 2000 and then initialize operations (e.g., change dimensions, colors, etc.) or edit geometric constraints by selecting appropriate icons. For example, a typical CAD operation is modeling the drilling or folding of a 3D modeled object displayed on the screen. The GUI may, for example, display data 2500 related to the displayed product 2000. In the example diagram, the data 2500, displayed as a "feature tree," and its 3D representation 2000 relate to a brake assembly including clamps and discs. The GUI can further display various types of graphical tools 2130, 2070, and 2080 for purposes such as facilitating 3D orientation of objects, triggering simulations of operations on the edited product, or rendering various properties of the displayed product 2000. The cursor 2060 can be controlled by a haptic device to allow the user to interact with the graphical tools.
[0079] "Designing a 3D modeling object" refers to any action or series of actions that is at least part of the process of refining a 3D modeling object. Therefore, this method may include creating a 3D modeling object from scratch. Alternatively, this method may include providing a previously created 3D modeling object and then modifying it.
[0080] This method can be incorporated into the manufacturing process, which may include generating a physical product corresponding to the modeled object after the method is executed. In any case, the modeled object designed by this method can represent the manufactured object. The modeled object can therefore be a modeled entity (i.e., a modeled object representing an entity). The manufactured object can be a product, such as a part or an assembly of parts. Because this method improves the design of the modeled object, it also improves the manufacturing of the product and thus increases the productivity of the manufacturing process.
[0081] In the example, the method may further include: after providing the second manipulator S70, determining that the pointing device is again within at least one selected region and providing the first manipulator S60. In other words, determining that the pointing device has returned to at least one selected region. Providing the first manipulator S60 here means that the first manipulator is provided again: in fact, the first manipulator S40 has already been provided once, and if the pointing device returns within at least one selected region after leaving it, the method provides the first manipulator again (i.e., a second time). In the example, if the pointing device is within a first selected region surrounding a given vertex of the set and leaves this first selected region, the second manipulator is thus provided. At this time, if the pointing device returns within this first selected region, the method provides the first manipulator again (i.e., a second time). If the pointing device returns within another selected region of the calculated at least one selected region, for example, a second selected region surrounding another vertex of the set or another set of vertices, the method may also provide the first manipulator again. In these examples, providing the functionality involving the first manipulator again makes it available to the user again; for example, the user can perform NUV shifts on the selected at least one vertex again.
[0082] The method may further include repeatedly providing a first controller or providing a second controller depending on whether the pointing device is within at least one selected area each time it enters and leaves the selected area of at least one selected area.
[0083] The method of designing 3D meshes improves ergonomics by providing the first manipulator again when the pointing device returns to at least one selected area. In fact, switching between a first control mode utilizing the first manipulator and a second control mode utilizing the second manipulator follows the movement of the pointing device. Therefore, the user can optionally use both the first and second manipulators for designing 3D meshes.
[0084] In the example, providing the S60 first manipulator may further include withdrawing the second manipulator. Withdrawing the second manipulator means that one or more functions of the second manipulator are no longer available to the user (no longer available), for example, the user may again not control the displacement of one or more vertices of the set along one or more directions defined by the global orientation.
[0085] In the example, providing a second S70 controller may further include withdrawing the first controller. Withdrawing the first controller means that one or more functions of the first controller are no longer available to the user (no longer available), for example, the user is no longer able to control the displacement of each vertex of the set along one or more NUV directions.
[0086] In the example, providing a first controller may include displaying the first controller on a graphical user interface.
[0087] In the example, providing a second controller may include displaying the second controller on a graphical user interface.
[0088] Revoking the first or second controller may include removing the first or second controller from the graphical user interface.
[0089] Retracting the first or second controller improves user ergonomics. In fact, when the user is using the first controller (or correspondingly the second controller), the user no longer uses the second controller (or correspondingly the first controller). Therefore, by providing only one controller at a time, retracting the first controller (or the second controller) avoids operational errors. Furthermore, retracting the first controller (or the second controller) offloads the screen display, which also improves ergonomics, as only relevant information is displayed on the graphical user interface.
[0090] In the example, providing the S60 first manipulator may further include determining the vertices of the set closest to the pointing device and providing the first manipulator to the determined vertices. Providing the first manipulator to the determined vertices means that the NUV direction of the first manipulator is the NUV direction of the determined vertex. Thus, the NUV direction is the UV direction of the determined vertex and the normal N direction at the determined vertex. For determining the vertices of the set closest to the pointing device, the method may, for example, calculate the distance between the pointing device and each vertex of the set. This distance may be calculated based on a projection plane. The projection plane may be a screen on which a 3D mesh is displayed when the pointing device is a 2D pointing device. Alternatively, when the pointing device is a 3D pointing device, the distance may be the spatial distance (e.g., Euclidean distance) between the pointing device and each vertex of the set. More generally, the expression "vertices of the set closest to the pointing device" refers to selecting vertices based on the distance between the vertex and the pointing device, and any type of distance may be used.
[0091] Providing a first manipulator to the vertex closest to the pointing device improves user interaction for switching between the first and second manipulators. In effect, the user can select the vertex to which the first manipulator will be provided. For example, the user can move the pointing device to a vertex in the set, and the first manipulator is provided to (or associated with) that vertex. This allows the user to use the first manipulator associated with different vertices of one or more vertices. The user can, for example, move the first vertex in the set, and the method will thus provide the first manipulator associated with that first vertex. Using the first manipulator associated with the first vertex, the user can perform a first shift of one or more vertices. Next, the user can move the pointing device to a second vertex in the set, and the method will thus provide the first manipulator associated with that second vertex. Using this second manipulator associated with the first vertex, the user can perform a second shift of one or more vertices. The user can therefore iteratively perform shifts of the first or more vertices of the set using the first manipulators of different vertices in the set.
[0092] In the example, the method may further include repeatedly calculating at least one selected region during or after each shift of one or more vertices in the set. "Repeatedly calculating" means that the method recalculates at least one selected region based on the current position of one or more vertices in the set. For example, the calculation of at least one selected region may be repeated after each shift of one or more vertices in the set by the user, such as after the user uses one of the manipulators to control the shift of one or more vertices or after the user moves the orientation and / or position of the 3D mesh display on the screen. Alternatively, the calculation of at least one selected region may be performed continuously, i.e., the selected region is recalculated "on the fly" for each shift of the vertices in the set.
[0093] When a second manipulator is provided, repeatedly calculating at least one selected region improves the selection of the first manipulator, and vice versa. In fact, after each shift of one or more vertices in the set, the calculated at least one selected region may no longer surround every vertex of the set. For example, one or more vertices may be shifted out of at least one selected region. Therefore, repeatedly calculating at least one selected region allows for correction of the position of at least one selected region, which improves the user's ergonomics because the method thus takes into account the actual situation displayed on the screen (i.e., the true current position of one or more vertices of the mesh after the shift).
[0094] In the example, selecting one or more vertices of a 3D mesh using a pointing device can be done as follows:
[0095] – To select at least one vertex of the grid by interacting with a pointing device at at least one vertex of the grid; and / or
[0096] – User interaction with a pointing device on at least one edge of the grid to select two vertices of at least one edge; and / or
[0097] – User interaction with a pointing device on at least one face of the mesh to select vertices belonging to at least one face.
[0098] Therefore, in order to make a selection, any combination of one or more of these user interactions can be used.
[0099] For example, selection can be performed through user interaction with a pointing device at at least one vertex. The user can move the pointing device, for example, on or near a first vertex that the user wishes to select. The user can confirm the selection of the first vertex by clicking a button on the pointing device (or by touching if the screen is touch-sensitive). At this point, the set includes only a single vertex (the first vertex). The user can then select a second vertex to complete the set. Selecting the second vertex can be performed in the same way as selecting the first vertex. By repeating the selection of each vertex, the user can complete the set of selected vertices. The user can also select several vertices simultaneously using drag-and-drop operations on the pointing device.
[0100] Selection can also be performed by user interaction with a pointing device on at least one edge of the grid, thereby selecting two vertices of at least one edge. Selecting at least one edge of the grid can be performed as vertex selection, as previously explained in detail. When the user selects at least one edge, the method adds each vertex of that edge to the set of selected vertices. For example, if the user selects a first edge, the method automatically adds two vertices of that first edge (i.e., the two vertices at the ends of the first edge) to the set of selected vertices. The user can iteratively select edges to add the vertices of the edges to the set of selected vertices, or can select several edges simultaneously using drag-and-drop operations on the pointing device.
[0101] Selection can also be performed by user interaction with a pointing device on at least one face of the mesh, thereby selecting vertices belonging to that face. Selecting at least one face of the mesh can be performed in the same way as selecting vertices or edges, as previously explained in detail. When the user selects at least one face, the method adds each vertex of that face to the set of selected vertices. For example, if the user selects a first face, the method automatically adds the vertices of that first face (i.e., the vertices belonging to each edge of that face) to the set of selected vertices. The user can iteratively select faces to add vertices of edges to the set of selected vertices, or can select several faces simultaneously using drag-and-drop operations with the pointing device.
[0102] The selection of one or more vertices is thus improved. In fact, the user only needs to select geometric elements (e.g., edges or faces), and the vertices of those elements are automatically selected. Therefore, the number of user interactions required to select one or more vertices is reduced, which improves the efficiency of the method.
[0103] In the example, the first manipulator may include at least one graphical element representing one of the NUV directions. Each of the at least one graphical element may be any graphical representation indicating a NUV direction. For example, each of the at least one graphical element may be any form of pointing with respect to the NUV direction, such as a line or arrow pointing in the NUV direction. The at least one graphical element can control the displacement of at least one vertex of the set along the NUV direction represented by the at least one graphical element. This means that a user can interact with a pointing device using one of the at least one graphical element, and in response, a displacement function can be executed. For example, a user can interact with a graphical element by positioning the pointing device on or near it and performing a click on a button on the pointing device (or a touch in one of the NUV directions if the screen is touch-sensitive). User interaction on the graphical element can trigger a displacement function along the direction represented by the graphical element. This displacement function may, for example, shift one or more vertices along the direction represented by the graphical element by a distance proportional to the movement of the pointing device. The user can thus use the displacement function to control the displacement of one or more vertices by performing a movement of the pointing device after user interaction with the graphical element. For example, a user can maintain a click (or touch on the screen) on or near a graphical element and move a pointing device (or slide a finger on the screen) in a direction that shifts one or more vertices along the direction represented by the graphical element. One or more vertices can be shifted by a distance proportional to the distance the pointing device moves. For example, the distance to the pointing device could be the projected distance of the pointing device's movement along the direction of its shift at one or more vertices. The shifting functionality can be deactivated after one or more vertices have been shifted. For example, the shifting functionality can be deactivated when the user releases a button click (or releases a finger from the screen).
[0104] In the example, after providing the first manipulator, the method may further include user interaction with at least one graphical element of the first manipulator; for example, the user can interact with at least one graphical element. Next, the method may include shifting at least one vertex of a set along a NUV direction in response to movement of the pointing device; for example, the shift function is triggered when the user interacts with the graphical element. At least one selected region can be deactivated during the shift. This means that at least one selected region can be deactivated when the shift function is triggered.
[0105] The method may further include, for each vertex of a set that does not have the same NUV direction as the NUV direction represented by at least one graphical element, shifting the vertex along one of its NUV directions that is closest to the NUV direction represented by at least one graphical element.
[0106] Shifting the set of vertices along the NUV direction closest to the NUV direction represented by at least one graphical element improves the design of a 3D mesh. In effect, it allows modification of several vertices of the mesh together, which is especially useful when the 3D mesh includes flux lines. Flux lines of a 3D mesh are groups of vertices and edges that form relatively linear portions of the mesh. Flux lines of a 3D mesh are lines that follow the design of the represented 3D object. For example, the flux lines of a car body are lines parallel to the direction of the car as it moves (examples of such flux lines are in...). Figure 24 (See explanation below). Meshes are typically regular along these flux lines, and therefore it is important to modify the mesh without breaking these flux lines. In this context, shifting the set of vertices together along the nearest NUV direction allows modification of the flux line vertices without breaking the regularity of the mesh, and thus modification of the design based on the flux lines of the 3D object. This greatly improves design modification.
[0107] The method may further include updating the position of the first manipulator based on the new position of at least one vertex of the set, which shifts along a NUV direction in response to movement of the pointing device. For example, the position of the first manipulator may be updated after each shift of one or more vertices during user interaction with the first manipulator. The position of the first manipulator may also be updated after each change of viewpoint on the screen (e.g., when the user changes the relative position of the 3D mesh using the screen). The position of the first manipulator may also be updated continuously; for example, the first manipulator may follow the position of at least one vertex as its position changes.
[0108] The method may further include, for each vertex of a set that does not have the same NUV direction as the NUV direction represented by at least one graphical element, displaying a graphical element representing the NUV direction of the vertex closest to the NUV direction represented by the at least one graphical element of the first manipulator. The graphical element may be a line or an arrow indicating the NUV direction. The graphical element may be positioned such that one end of the graphical element is on or near the vertex and the other end points towards the NUV direction.
[0109] The second manipulator can be a robot. A "robot" is a manipulator represented by a global orientation and has three axes (X, Y, Z). The user can use any of these three axes to manipulate one or more vertices along directions defined by the axis system. The robot's axis system can be, for example, the global axis system 312 of a 3D scene, such as the global axis system of a 3D object or a product including modified 3D objects. The user can also interact with the "robot" to rotate and / or scale one or more vertices of the set. This other type of user interaction with the "robot" allows for the execution of rotations or affinities of the mesh's vertices. Therefore, the claimed invention allows for different kinds of deformation work using one or more vertices of the set, such as translation along the NUV direction using the first manipulator and rotation or affinities using the second manipulator, which further improves the user's ergonomics.
[0110] The calculation of at least one selected region may include calculating a selected region for each vertex of the set. Optionally or additionally, the calculated at least one selected region may be a defined surface, such as a circle when the pointing device is a two-dimensional (2D) pointing device, or a volume such as a sphere when the pointing device is a 3D pointing device.
[0111] Figure 11 and Figure 12 This shows an example of selecting a region when the pointing device is a 2D or 3D pointing device.
[0112] Figure 11 Examples of selecting region 602 when the pointing device is a 2D pointing device are shown. In these examples, the graphical user interface is 2D; for example, the graphical user interface is displayed on a 2D screen 600. Three selection regions 602, labeled Region 1, Region 2, and Region 3, are shown. The selection region can define any area of the 2D screen 600. Figure 11 In the example, each selected region 602 can define an area of the 2D graphical user interface and can be of any shape and size. For example, region 1 is defined by a circle, region 2 by a quadrilateral, or region 3 is shown as any polygon on screen 600.
[0113] In the example, if the selected area is defined by a circle, the center of the circle can be a projection onto the screen of the vertices around which the selected area is surrounded. The radius of the circle can be fixed in pixels (e.g., 60 pixels), for example, by the user and / or the system.
[0114] In the examples, the selected region can be a combination of two or more selected regions. For instance, when at least one selected region surrounds geometry overlaid on a 2D GUI, the method may only consider the combination of the overlaid regions. For example, if the method computes two selected regions that are both circles and partially overlap, the method may consider the region defined by the combination of the two circles.
[0115] Figure 12 An example of selecting region 612 when the pointing device is a 3D pointing device is shown. In these examples, the graphical user interface is 3D space 610. Three selection regions 602 are shown, labeled Region 1, Region 2, and Region 3. Each of at least one selection region can define any volume of 3D space 610. As illustrated in this figure, each of at least one selection region 612 can define, for example, a sphere, a prism, or any particular volume of 3D space 610. If a selection region is defined by a sphere, the center of the sphere can be the vertex around which the sphere is surrounded. The radius of the sphere can be a 3D equivalent of multiple pixels (e.g., a 60-pixel equivalent in the case of a 2D pointing device). For the previous example when the pointing device is a 2D pointing device, the method can consider the combined volume of each of the at least one selection region.
[0116] Figures 13 to 16 An example is shown where the vertex shifts along the NUV direction in response to movement of the pointing device.
[0117] As in Figure 13 As explained, the vertices 704 of the mesh are selected using pointing device 702. As a result of the selection of vertex 704, a selection region 700 is calculated around the selected vertex 704. In this example, the calculated selection region 700 is a circle on the screen. Figures 13 to 16 In this context, the selected area is represented for illustrative purposes only. The selected area may be invisible to the user (i.e., not displayed), or conversely, the selected area may be displayed to the user.
[0118] After calculating the selection area 700, the pointing device remains within the selection area 700 because the pointing device was moved close to vertex 704 during selection. The first manipulator 710 is displayed, as shown in... Figure 14 As explained in [the document / article]. Figure 14In the example, the first manipulator includes graphical elements (seven in this example) representing each of the seven NUV directions of vertex 704. Each graphical element controls the displacement of vertex 704 along the NUV direction represented by the graphical element. Each graphical element can be represented as an arrow starting from the vertex 704 to which it belongs and pointing to the NUV direction it represents. The arrow directly indicates the orientation of the direction represented by the graphical element. When the user interacts with an arrow, the displacement function can shift one or more selected vertices along the direction represented by the graphical element in the orientation indicated by the arrow. The displacement function can also shift one or more selected vertices along the direction opposite to the orientation indicated by the arrow.
[0119] After the first controller is displayed, the user interacts with the graphical elements 720 of the first controller, such as in... Figure 15 As explained in [the document / article]. Figure 15 In this graphical user interface, the user interacts with the graphical element 720 by placing the pointing device 720 close to it. For example, the distance between the pointing device 702 and the graphical element 720 may be less than a distance limit. The distance limit may be, for example, a number of pixels on the graphical user interface. When the user interacts with the graphical element, this graphical element 720 may, for example, be highlighted; thus, the user realizes that a user action will be performed on the graphical element 702.
[0120] The user can shift vertex 704 along the NUV direction 730 represented by the graphics element 720 in response to movement of the pointing device, as in Figure 16 As described in the example, when the pointing device is a mouse, the user can interact with the graphical element 720 by clicking the mouse button. The user can then control the displacement of vertex 704 by moving the mouse, and vertex 704 can be moved along the NUV direction 703 by a distance proportional to the mouse movement distance; for example, a scaling factor can be applied between the two distances. In the example, at least one selected region 700 can be deactivated during movement. This means that the method may not provide the second manipulator even if the pointing device is not kept within the selected region 700. This allows for free modification of the position of vertex 704 using the first manipulator by avoiding restrictions on the user's movement of the pointing device 702 inside the selected region 704 during modification.
[0121] Figure 17 and Figure 18 An example is shown where a second controller is provided and the first controller is withdrawn if the pointing device is not kept within the selected area.
[0122] according to Figures 13 to 16 To describe the situation as explained in the text Figure 17For example, after selecting a vertex 800, a selection region 802 has been calculated and a first manipulator has been provided. At this point, the user moves the pointing device outside the selection region 802, as shown in the image. Figure 17 As explained in the text. It should be understood that the user has not yet performed any user interaction on the first displayed controller. Therefore, it is determined that the pointing device is no longer within the selection area; that is, the pointing device has not yet been maintained within the selection area. For example, in... Figure 17 As described in the text, the method therefore withdraws the first controller (i.e., removes the display of the first controller).
[0123] In the example, the appearance 804 of the pointing device can be modified to indicate that the pointing device is outside the selection area. The appearance 804 of the cursor can also be temporarily modified. Figure 18 Together Figure 17 As explained, the cursor's appearance 804 can be modified after the pointing device leaves the selection area 802, and can be modified again after a predefined time 812 (e.g., in...). Figure 18 As explained in the description, the appearance of the device being pointed to changes again to cursor 812).
[0124] As a result of termination, a second manipulator 810 is provided for controlling the displacement of vertex 800 along three directions defined by the global orientation. Figure 18 In the middle, the second manipulator 810 is displayed on the graphical user interface at the position of vertex 800. Figure 18 In this example, the second manipulator 810 is the robot. The user can interact with one of three directions defined by a global orientation to move vertex 800 along one of these directions. In this example, only this direction can be displayed on the graphical user interface, such as at the location pointing to the device or at the location of vertex 800. This improves ergonomics because only relevant information is displayed on the graphical user interface.
[0125] Now refer to Figure 19 The text discusses an example where, when the pointing device is again within the selection area, the first controller is provided after the second controller is provided, and the second controller is withdrawn. For example, in... Figure 18 After the second controller is provided as described, the user moves the pointing device 820 within the selected area 802. The method then provides the first controller 822 again and withdraws the second controller 810. (As in...) Figure 19 As explained in and referenced Figure 18 The method displays the first controller 822 and removes the display of the second controller 810. In this example, the method highlights the NUV direction 824 closest to the first controller pointing at the device.
[0126] Figure 20An example of selecting the first and second vertices of a 3D mesh using a pointing device is shown.
[0127] According to Figure 13 To describe the situation as explained in the text Figure 20 For example, after selecting a vertex 900 (referred to as the first vertex 900), the user now selects the second vertex 902 of the mesh using a pointing device, as shown in... Figure 20 As explained in the text, a set of one or more vertices therefore comprises two vertices (selected first 900 and second 902). Two selection regions 906 are calculated, meaning there is one selection region for each vertex. The two selection regions surround the two vertices 900 and 902 of the set.
[0128] The nearest vertex (in the set) to the pointing device is determined. Since the second vertex 902 was selected after the first vertex 900, the nearest vertex to the pointing device is the second vertex 902. Therefore, the method then provides a first manipulator 902 to the second vertex 902. The first manipulator 902 includes a graphical element (i.e., four graphical elements in this example) representing each NUV direction of the second vertex 902. Each graphical element controls the displacement of the second vertex 902 along the NUV direction represented by at least one graphical element (here, an arrow). The method then includes a user interacting with a graphical element 910 of the first manipulator, as in Figure 21 As explained in the example, in this instance, the user interacts with graphical element 910 by pointing the device close to it.
[0129] Now we discuss examples where at least one vertex of the set does not have the same NUV direction as the NUV direction 910 selected during the user action. In these examples, each vertex of the set that does not have the same NUV direction as the NUV direction represented by at least one graphical element is shifted along its NUV direction that is closest to the NUV direction represented by at least one graphical element. For example, the similarity between two NUV directions can be calculated by computing the scalar product of the two vectors representing each direction. The method can, for example, consider two NUV directions as “same” if the scalar product is 1 (i.e., when the directions are equal) or if the scalar product is close to 1 (i.e., the directions are almost equal). The closest NUV direction can be determined by computing the scalar product of each NUV direction and by selecting the NUV direction with the highest scalar product, the NUV direction being represented by at least one graphical element.
[0130] Return to reference Figure 20The first vertex 900 does not have the same NUV direction as the NUV direction 910. Therefore, the NUV direction closest to the NUV direction 910 is determined. For example, the method can determine the NUV direction closest to the NUV direction 910 by calculating the scalar product of each NUV direction of the first vertex 900 with the NUV direction 910. The NUV direction closest to the NUV direction 910 can be, for example, a NUV direction with a larger scalar product with the NUV direction 910. In this example, the NUV direction 912 of the first vertex 900 is the direction closest to the NUV direction 910. The first vertex 900 is therefore shifted along the determined direction 912. For each vertex in the set that does not have the same NUV direction as the NUV direction represented by at least one graphical element, a graphical element representing the NUV direction closest to the NUV direction selected on the graphical element of the first manipulator can be displayed. In this example, a graphical element representing the NUV direction 912 can therefore be displayed. The method thus shifts the second vertex 902 and the first vertex 900 along their respective NUV directions (910 for the second vertex and 912 for the first vertex). Each of the two graphical elements 910 and 912 representing the two NUV directions (910 and 912) is highlighted on the graphical user interface (e.g., by making the other NUV direction being displayed semi-transparent).
[0131] Figure 22 and Figure 23 This shows what happens if the pointing device is not maintained for the target device. Figure 20 An example of providing a second manipulator and retracting the first manipulator within the selected region calculated by the selected vertex.
[0132] according to Figures 20 to 21 To describe the situation as explained in the text Figure 22 For example, after selecting the first and second vertices 900 and 902, the selection area 906 has been calculated and the first manipulator 904 has been provided to the second vertex 902. At this point, the user moves the pointing device 920 outside the two selection areas 906, as shown in... Figure 22 As explained in [the document]. Please refer to [the document / reference]. Figure 22 The user moves the pointing device outside the selection area calculated for the second vertex 904 (the pointing device was originally located inside this selection area). It is determined that the pointing device is not maintained within the selection area. The appearance of the pointing device 920 can be modified to indicate that the pointing device is outside both selection areas 906. As a result, a second manipulator 930 is provided to control the displacement of the first and second vertices 900, 902 along three directions defined by the global orientation. The second manipulator 810 is displayed on the graphical user interface at a position corresponding to the centroid of the positions of the vertices 900, 902 in the set, as shown in... Figure 23As explained in the documentation. Now, the user can interact with one of the three directions defined by the global orientation, along which vertices 900 and 902 of the set are shifted.
[0133] Now, if the pointing device returns to the selected area of the first vertex 900, the method again provides the first manipulator to the first vertex 900 and withdraws the second manipulator 930. It should be understood that the user did not perform any user interaction on the displayed second manipulator.
[0134] The first control can be repeated after each movement of the device in different selected areas. For example, if the user is in different vertices (e.g., in...) Figure 20-23 In the example, if the pointing device is continuously moved in different selected regions (900 and 902), the method continuously provides a first manipulator to different vertices, and after each continuous movement in different selected regions, after each new first manipulator is provided, the provided first manipulator is withdrawn.
[0135] Figures 24 to 27 An example of a method for designing a 3D mesh 1008 representing a vehicle body 1000 is illustrated. The vehicle body 1000 includes an axis of symmetry 1002. [The following is a description of the method:] Indicates... Figure 1 The flowchart is labeled. A 3D mesh 1008 representing the vehicle body 1000 is displayed S10 and a global orientation 1014 is provided S10.
[0136] Using a pointing device, the vertices of the flux line 1010 of the grid are selected (S20), thus forming a set of vertices. At this point, a selection region surrounding each vertex of the set is calculated. In this example, the method calculates the selection region for each vertex. A second manipulator 1012 (S70) is shown because the pointing device is not located inside the calculated selection region.
[0137] Turn now Figure 26 The method determines (S50) that the pointing device is again located inside the selected area. The first manipulator is thus provided again (S60). The method determines that vertex 1012 of the set is closest to the pointing device, and thus provides the first manipulator to this vertex 1012. The first manipulator includes a graphic element representing each NUV direction of this vertex 1012 (i.e., four graphic elements representing the four incident edges of vertex 1012 and a graphic element representing the normal N direction). Each graphic element of the first manipulator controls the displacement of vertex 1012 along the NUV direction represented by at least one graphic element.
[0138] Next, the method includes a user interacting with a graphical element 1016 of the first manipulator S80. For each vertex in the set that does not have the same NUV direction as the NUV direction represented by graphical element 1016, the vertex is shifted along one of its NUV directions that is closest to the NUV direction represented by at least one graphical element. In this example, the other vertices of the flux line do not have the same NUV direction as the NUV direction represented by graphical element 1016. Therefore, the method determines the NUV direction 1014 closest to the NUV direction represented by graphical element 1016 for each other vertex of the flux line, for example by calculating the scalar product of each NUV direction and NUV direction 1014 for each other vertex of the flux line and selecting the NUV direction with the larger scalar product for each other vertex of the flux line. Figure 26 As explained, the specific NUV direction 1014 of each other vertex of the flux line is highlighted, for example by displaying a graphical element representing each specific NUV direction 1014.
[0139] As in Figure 27 As explained, vertex 1012 of the set is shifted along the NUV direction represented by graphical element 1016 in response to the movement of the pointing device via a shift function. The other vertices of flux line 1018 are shifted by the shift function along their respective NUV directions 1014 closest to the NUV direction represented by graphical element 1016. After the shift, the position of the first manipulator is updated based on the new position of vertex 1020. The positions of the other graphical elements 1018 displayed for highlighting each other vertex of flux line 1010, with their defined NUV directions 1014, are also updated based on the new positions of the other vertices of flux line 1010.
[0140] Providing the first manipulator can be repeated. For example, if a user moves a pointing device in a different selected area belonging to a vertex other than vertex 1012, the method provides a first manipulator to this other vertex. The first manipulator may include a graphical element representing each NUV direction of this other vertex. At this point, the method may withdraw the first manipulator provided to vertex 1012 (or "deactivate" the first manipulator of vertex 1012). Since vertex 1012 now belongs to another vertex of flux line 1010, the method may display the first manipulator of vertex 1012 in a "degraded" version. For example, the "degraded" version of the first manipulator of vertex 1012 may include a single graphical element representing the NUV direction closest to the graphical element represented by the newly provided first manipulator (if the user interacts with this graphical element) (as with other vertices of flux line 1010).
[0141] Therefore, the display of the first manipulator 1016 pointing to a vertex located within its selected area, and the display of image elements for other vertices of the set 1014, can be continuously updated after each movement of the pointing device into a new selected area belonging to a new vertex of the set. After each movement, the method can provide the first manipulator 1016 to the new vertex and display image elements 1014 for vertices whose pointing devices have left the selected area.
[0142] exist Figure 26 In one example, the defined NUV direction 1014 of each other vertex of flux line 1010 is highlighted by displaying image elements representing each defined NUV direction 1014. In other examples, the defined NUV direction 1014 of each other vertex of flux line may not be highlighted; for example, the method may not display image elements for vertices other than vertex 1012 (i.e., only for the first manipulator provided to vertex 1012). In other examples, each NUV direction of each other vertex of flux line may be highlighted; for example, the method may display image elements for each NUV direction of each other vertex of flux line 1010.
[0143] Figure 28 An example of a system is shown, wherein the system is a client computer system, such as a user's workstation.
[0144] The client computer of the example includes a central processing unit 1010 connected to an internal communication bus 1000 and random access memory (RAM) 1070 also connected to the bus. The client computer further provides a graphics processing unit (GPU) 1110 associated with a video random access memory 1100 connected to the bus. The video RAM 1110 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 representing 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; and CD-ROM disks 1040. Any of the foregoing is 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 haptic device 1090 such as a cursor control device, a keyboard, etc. A cursor control device is used on the client computer to allow the user to selectively position the cursor at any desired location on the monitor 1080. Furthermore, the cursor control device allows the user to select various commands and input control signals. The cursor control device includes multiple signal generating devices for inputting control signals to the system. Typically, the cursor control device can be a mouse, with mouse buttons used to generate signals. Optionally or additionally, the client computer system may include a sensitive pad and / or a sensitive screen.
[0145] A computer program may include computer-executable instructions, including units for causing the system to perform the method. The program may be recorded on any data storage medium, including the system's memory. The program may be implemented, for example, in digital electronic circuits, or in computer hardware, firmware, software, or a combination thereof. The program may be implemented as an apparatus, such as a product tangibly embodied in a machine-readable storage device for execution by a programmable processor. The method steps may be executed by a programmable processor that performs the function of the method by executing instructions to manipulate input data and generate output. The processor may therefore be programmable and coupled to receive and transmit data and instructions from and to a data storage system, at least one input device, and at least one output device. The application program may be implemented in a high-level procedural or object-oriented programming language, or in assembly language or machine language (if desired). In any case, the language may be a compiled or interpreted language. The program may be a complete installation program or update program. The application of the program on the system in any case generates instructions for performing the method.
Claims
1. A computer-implemented method for designing 3D meshes in a three-dimensional (3D) scene, the method comprising: Display a 3D mesh in a 3D scene and provide a global orientation, wherein the global orientation is an axis system that orients the 3D mesh; One or more vertices of the 3D mesh are selected using a pointing device, thereby forming a set of one or more vertices; Calculate at least one selected region around each vertex of the set; A first manipulator is provided for controlling the displacement of each vertex of the set along one or more NUV directions, wherein the NUV directions include a UV direction defined by the incident edge of the vertex and a normal N direction from the surface of the object at the vertex. Determine whether the pointing device is maintained within the at least one selected area; and If not, a second manipulator is provided for controlling the displacement of one or more vertices of the set along one or more directions defined by the global orientation. Specifically, when shifting one or more vertices of the set, the at least one selected region is repeatedly calculated.
2. The computer-implemented method of claim 1, further comprising, after providing the second controller: It is determined that the pointing device is again located within the at least one selected area; and Provide the first controller.
3. The computer-implemented method of claim 2, wherein, Providing the first controller further includes: The second controller is withdrawn.
4. The computer-implemented method of any one of claims 1 to 3, wherein, Providing the second controller further includes: Retract the first controller.
5. The computer-implemented method of any one of claims 1 to 3, wherein, Providing the first controller further includes: Determine the vertex of the set that is closest to the pointing device; and The first manipulator is provided to the determined vertex.
6. The computer-implemented method of any one of claims 1 to 3, wherein, Selecting one or more vertices of the 3D mesh using a pointing device is performed as follows: User interaction with the pointing device at at least one vertex of the grid to select the at least one vertex of the grid; and / or The user interacts with the pointing device on at least one edge of the grid to select two vertices of the at least one edge; and / or The user interacts with the pointing device on at least one face of the grid to select a vertex belonging to the at least one face.
7. The computer-implemented method of any one of claims 1 to 3, wherein, The first manipulator includes at least one graphical element representing one of the NUV directions, the at least one graphical element controlling the displacement of at least one vertex of the set along the NUV direction represented by the at least one graphical element; and After providing the first controller: User interaction with at least one graphical element of the first controller; In response to the movement of the pointing device, at least one vertex of the set is shifted along the NUV direction, and at least one selected region is deactivated during the movement; and For each vertex in the set that does not have the same NUV direction as the NUV direction represented by the at least one graphical element, the vertex is shifted along one of its NUV directions that is closest to the NUV direction represented by the at least one graphical element.
8. The computer-implemented method of claim 7, further comprising: updating the position of the first manipulator based on the new position of the at least one vertex of the set along the NUV direction shifted in response to the movement of the pointing device.
9. The computer-implemented method of claim 7, further comprising, for each vertex of the set that does not have the same NUV direction as the NUV direction represented by the at least one graphical element: displaying a graphical element representing the NUV direction of the vertex that is closest to the NUV direction represented by the at least one graphical element of the first manipulator.
10. The computer-implemented method of any one of claims 1 to 3, wherein, the second manipulator is the manipulator represented by the global orientation.
11. The computer-implemented method of any one of claims 1 to 3, wherein, computing the at least one selection region comprises computing one selection region for each vertex of the set, and / or wherein, the at least one selection region computed is a bounded surface when the pointing device is a two-dimensional (2D) pointing device or a volume when the pointing device is a 3D pointing device.
12. A computer program product comprising instructions for performing the computer- implemented method of any one of claims 1 to 11.
13. A computer-readable storage medium having instructions thereon that, when executed by a processor, cause the processor to perform the method of any one of claims 1 to 11.
14. A system comprising a processor coupled to a memory having instructions recorded thereon for performing the computer-implemented method of any one of claims 1 to 11, a display, and a pointing device.
Citation Information
Patent Citations
Fast manipulation of objects in a three-dimensional scene
EP3340023A1
Fast manipulation of objects in a three-dimensional scene
CN108228026A
Image tool acquisition method and device, image equipment and storage medium
CN109739597A
Manipulating graphic objects in 3D scenes
US6426745B1