Method for generating a motion comprising at least a rotation
By using 3D manipulator in 3D scenes, the rotation and shift movement of 3D parts based on the current distance to the maximum distance is to solve the complex and time -consuming problems of creating rotation and migration combination animation in existing technologies, and it is easier to use. Method and efficient animation creation method.
Patent Information
- Application Number
- CN201910862252.8
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Priority Date
- 2018-09-12
- Filing Date
- 2019-09-12
- Publication Date
- 2025-01-28
- Estimated Expiration
- 2039-09-12
AI Technical Summary
When creating a combined animation involving rotation and translation in 3D scenes, especially when tightening or loosening, the user's operation is complicated and inconvenient. Especially for users without CAD experience, the operation is difficult and consumed. hour.
By using a 3D manipulator that includes three axes in 3D scenes, users can drag the manipulator along a shaft to calculate the current distance to the maximum distance, and then generate the rotation and movement of 3D parts to achieve tightening or twisting The animation effect.
This method simplifies user operations, reduces the complexity and time consumption of creating rotary and peaceful migration combination animation. It is particularly suitable for generating tightening or loose motion, and improving the efficiency and ease of use of animation creation.
Smart Images

Figure CN110895834B_ABST
Abstract
Description
Technical Field
[0001] The present invention relates to the field of computer programs, and more particularly to a method for generating the motion of 3D parts of a 3D assembly in a 3D scene, a computer program product, a non-volatile computer-readable data storage medium, a computer-aided design system, and a three-dimensional diagram creation system. The present invention belongs to the field of computer graphics, and more particularly to the field of creation systems. Background Art
[0002] Authoring systems (e.g., those offered by Dassault Systèmes under the trademark CATIA Composer) enable users to create 2D or 3D documentation, technical diagrams, and animations starting from 3D assemblies composed of existing 3D parts. Users create clear and understandable technical diagrams associated with 3D parts using detailed images and animations. For example, users can create interactive bills of materials (or parts catalogs) for 3D parts or exploded views of 3D assemblies. Thanks to the authoring system, animations related to maintenance and training operations, as well as assembly instructions, can also be generated. The present invention relates more specifically to these types of applications.
[0003] The users of the authoring system are not only design engineers, manufacturing engineers, technical illustrators, but also users with little or even no CAD experience. Therefore, the authoring system must be easy to use.
[0004] Animations involving translation, rotation, or a combination of translation and rotation are often created by users of authoring systems (e.g., but not exclusively, in the manufacturing or crafting fields) to illustrate assembly or disassembly processes. One example of a combination of translation and rotation is a tightening or loosening operation. For example, a 3D part can be a screw or bolt, and a 3D assembly is a 3D object that includes at least the 3D part.
[0005] In existing authoring systems (e.g., in CATIA Composer), one method of creating animations that involve translating 3D parts is to use a manipulator called a "compass." The compass is disclosed in document US 2003 / 0187532 A1. In existing authoring systems, a user clicks on the compass with a cursor (presses the cursor and releases it) to activate the compass and drags the compass to the 3D part to be translated. The user then releases the compass on the 3D part, which anchors the compass to the 3D part. The user selects one of the axes of the compass and drags the cursor to cause the 3D part to translate in the direction of the selected axis. While the cursor is being dragged, the avatar of the 3D part is translated; then, when the user releases the button, the 3D part, not the avatar, is positioned. The authoring system ultimately creates a key (time stamp) for the translation animation, which is then interpolated by the authoring system to create the animation.
[0006] Similarly, to create a rotation animation, the user clicks the compass rose with the cursor and drags it to the 3D part to be rotated. Then, the user releases the compass rose on the 3D part, anchoring it to the part. The user selects one of the compass rose's arcs and drags the cursor to rotate the 3D part around an axis perpendicular to the plane of the selected arc. While dragging the cursor, the 3D part's avatar rotates; when the user releases the button, the 3D part, not the avatar, is positioned. Another option is to select an axis of rotation and enter the number of degrees in a dialog box. Similar to a translation animation, the authoring system ultimately creates the key for the rotation animation.
[0007] Using the manipulators described above, users can create exclusive movements—translations or rotations. However, using the manipulators described is not straightforward for users without CAD experience. Furthermore, if a user wants to animate a tightening or loosening operation in a 3D scene, they first create a rotation animation that rotates the 3D part into position. The authoring system creates a key representing the rotation. The user then creates a translation animation that translates the rotated 3D part for the final key of the rotation animation. Thus, starting with the rotation, the animation does not involve simultaneous rotation and translation.
[0008] A way to circumvent this problem is to create a rotation animation of the 3D part, then create an assembly and place the rotating 3D part into the assembly. Finally, the user animates the assembly with a translation movement, thereby creating an animation that translates the rotating 3D part. This solution is cumbersome because the user has to move the cursor outside the 3D scene, navigate through a menu outside the 3D scene to create an assembly, drag the 3D part (from the feature tree) into the assembly in the menu, and name the assembly.
[0009] Therefore, this solution is not easy to use and users with little or even no CAD experience often do not know how to create assemblies and give up on creating animations that combine rotations and translations.
[0010] Even for users familiar with the authoring system, this process can be time-consuming if they have to create repetitive animations of tightening or loosening. Summary of the Invention
[0011] The object of the present invention is then to provide a computer-implemented method for generating at least rotational movements of a 3D part in a 3D scene, which implementation is easy to use and time-saving, in particular for generating tightening / loosening movements.
[0012] According to one aspect of the present invention, a computer-implemented method for generating motion of a 3D part of a 3D assembly in a 3D scene is provided, wherein the motion of the 3D part comprises at least a rotation up to a predetermined angle, the method comprising the following steps:
[0013] a) Displaying a 3D assembly composed of 3D parts in a 3D scene;
[0014] b) Selecting 3D parts of the 3D assembly;
[0015] c) displaying a 3D manipulator comprising three axes in the 3D scene, wherein the 3D manipulator is anchored to the 3D part in an anchor point;
[0016] d) dragging the 3D manipulator along one axis by a current distance from an anchor point on the one axis, the predetermined angle corresponding to a maximum distance from the anchor point;
[0017] e) while dragging the 3D manipulator, calculate the ratio of the current distance to the maximum distance, and
[0018] f) Generate motion of the 3D part in proportion to the ratio.
[0019] According to a specific embodiment of the invention:
[0020] The rotation is combined with the translation along the axis and the rotation about the axis, thereby representing tightening or loosening according to a predetermined thread pitch.
[0021] In the predefined methods:
[0022] - step b) comprises identifying a bounding box surrounding the 3D part; and
[0023] - Step c) consists in positioning the anchor point at the center of the bounding box.
[0024] In the predefined methods:
[0025] - step b) comprises identifying the three secant edges of the bounding box, and
[0026] - Step c) consists in aligning the axes of the 3D manipulator with the three secant edges of the bounding box.
[0027] The movement also includes translating along the axis by a predetermined length without rotation, the method comprising the steps of:
[0028] - in step d), dividing the maximum distance into two partial maximum distances, the predetermined angle corresponding to the first partial maximum distance and the predetermined length corresponding to the second partial maximum distance;
[0029] - in step e), calculating a first ratio of the current distance to the maximum distance of the first part, determining an intermediate point located on the axis, away from the anchor point by the maximum distance of the first part, resetting the value of the current distance, recalculating the current distance starting from the intermediate point, and calculating a second ratio of the recalculated current distance to the maximum distance of the second part;
[0030] - In step f), a rotation of the 3D part is generated in proportion to the first ratio, and a translation of the 3D part is generated in proportion to the second ratio.
[0031] The method comprises at least the step of setting parameters of the movement, said step comprising the following sub-steps:
[0032] - detecting a first user interaction on the 3D manipulator;
[0033] - in response to detecting the first user interaction, displaying at least one value of a parameter of the movement;
[0034] - Detecting user updates to values, thereby setting parameters for the movement.
[0035] The method comprises the step of selecting a motion from a plurality of motions, including the following sub-steps:
[0036] - detecting a second user interaction on the 3D manipulator;
[0037] - in response to detecting a second user interaction, performing the sub-step of displaying a set of icons representing respective movements of the plurality of movements;
[0038] - Detecting a third user interaction on one of the set of icons, thereby selecting the corresponding motion.
[0039] The method includes the steps of creating a video animation of the motion.
[0040] The present invention also relates to a computer program product stored on a non-volatile computer-readable data storage medium, the computer program product comprising computer-executable instructions for causing a computer system to perform a predefined computer-implemented method.
[0041] The present invention also relates to a non-volatile computer-readable data storage medium containing computer-executable instructions for causing a computer system to perform a predefined computer-implemented method.
[0042] The present invention also relates to a computer-aided design system comprising a processor coupled to a memory and a graphical user interface, the memory storing computer-executable instructions for causing the computer-aided design system to perform a predefined computer-implemented method.
[0043] The present invention also relates to a three-dimensional diagram authoring system comprising a processor coupled to a memory and a graphical user interface, the memory storing computer-executable instructions for causing the three-dimensional diagram authoring system to perform a predefined computer-implemented method. BRIEF DESCRIPTION OF THE DRAWINGS
[0044] The invention will be better understood through a study of some embodiments described by way of non-limiting examples and illustrated by the accompanying drawings, in which:
[0045] - Figures 1 to 8 The embodiment of the method according to the present invention is shown;
[0046] - Figure 9 A flow chart showing a method according to the present invention is shown;
[0047] - Figure 10 and Figure 11 A computing environment is shown in which the present invention may be implemented. DETAILED DESCRIPTION
[0048] Figure 1 Steps a) and b) of the method according to the present invention are shown. In the first step a), a 3D assembly ASM composed of 3D parts is displayed in a 3D scene. Figure 1 In this example, the 3D assembly ASM consists of two 3D parts: a connecting rod and a screw. Thanks to the present invention, users of the authoring system can create an animation of loosening the screw on the outside of the connecting rod. A 3D assembly can include other parts and can also be integrated into assemblies that include other 3D parts. For simplicity, in this application, the 3D assembly consists of only two 3D parts.
[0049] The 3D assembly ASM is presented on the screen according to a specific viewpoint of the 3D scene; the viewpoint can be modified according to known techniques.
[0050] In a second step b), the user selects one 3D part PAR of the 3D assembly ASM among all the 3D parts that make up the 3D assembly. There are several ways to select one of the 3D parts. The first way is to navigate in the 3D scene and select one of the 3D parts in the 3D scene. In touch mode (using a finger or a stylus), the user long presses one of the 3D parts; in case of using a mouse, the user clicks one of the 3D parts. "Click" refers to pressing and releasing. Alternatively, the 3D assembly can be displayed as a "feature tree" in a menu located outside the 3D scene. Therefore, the user scrolls down the feature tree and selects one of the 3D parts in the feature tree. Alternatively, the 3D part can be selected by calling a search engine in the authoring system. For example, the user queries the name of the 3D part or some of its properties. Once selected, the 3D part will be highlighted. In Figure 1 , the selected 3D part (screw) is obscured by the connecting rod; therefore, highlighting the selected 3D part or its outline improves the visibility of the selected 3D part.
[0051] Hereinafter, 3D part refers only to the selected 3D part for which the user of the 3D assembly wants to generate motion.
[0052] The motion of the 3D part PAR is generated by using a 3D manipulator. The 3D manipulator is a graphical artifact that can be controlled by a mouse or with a stylus or finger on a touch screen. The 3D manipulator can be called by a dedicated command. For example, once the user has selected the 3D part PAR, the user clicks a dedicated icon that can be located in a ribbon provided in the 3D scene or outside the 3D scene (e.g., Figure 1 ). Activation of the 3D manipulator can also be presented to the user in a context menu that can be located near the 3D part PAR and provides relevant commands for the 3D part. The context menu can be permanently displayed in the 3D scene or can be displayed in response to user interaction (e.g., right-clicking with a mouse in the 3D scene, or tapping in the 3D scene in touch mode). Alternatively, the 3D manipulator can be invoked using a keyboard shortcut or by voice command.
[0053] Figure 2Step c) of the method according to the present invention is shown. The invoked 3D manipulator MAN includes three axes (AX1, AX2, AX3). The three axes form a spatial system (preferably an orthogonal spatial system) having three orthogonal axes and an origin. An icon schematically representing movement can be located at the origin of the orthogonal spatial system. The orthogonal axes are represented by three arrows, thereby providing different manipulation directions. The 3D manipulator MAN can be positioned by default anywhere in the 3D scene. In particular, the 3D manipulator MAN can be positioned by default near or on the 3D part PAR. Thus, the user manipulates the 3D manipulator MAN and observes the movement of the 3D part in the same field of view. In a preferred embodiment, the 3D manipulator MAN is positioned by default at the center of a bounding box BB enclosing the 3D part PAR. The bounding box BB is a rectangular cube of the minimum size that contains the 3D part PAR. The center of the bounding box BB is calculated and corresponds to the center of the bounding box BB. In any case, the user can modify the default position of the 3D manipulator, for example, by dragging the 3D manipulator MAN while holding down a dedicated keyboard key (e.g., the "CTRL" key).
[0054] The location of the origin of the spatial system is stored as the anchor point ANP of the 3D manipulator MAN. The anchor point ANP is a fixed point that corresponds to the default or modified location of the origin of the spatial system. The user then drags the 3D manipulator MAN, and one of the principles of the present invention is to generate the motion of the 3D part based on the distance between the anchor point ANP and the 3D manipulator MAN.
[0055] Next, the maximum distance MD is calculated. In a preferred embodiment, the maximum distance MD is a distance in pixels that corresponds to a fraction of the monitor's smallest dimension (typically the vertical length). For example, the maximum distance MD corresponds to half of the monitor's smallest dimension. In practice, users tend to position their viewpoint so that the 3D part is centered on the monitor. The maximum distance MD can also be equal to a fraction of the monitor's smallest dimension minus a predefined margin.
[0056] Alternatively, the maximum distance MD may refer to the distance between the anchor point ANP and the window edge in the direction of the axis of motion. Alternatively, the maximum distance MD may be a fraction (e.g., half) of the distance between the anchor point ANP and the window edge. Thus, the user does not need to drag the 3D manipulator MAN over a long distance. In any case, the user can set the maximum distance MD by selecting one of the aforementioned methods.
[0057] Once the maximum distance MD has been calculated, it is associated with a predetermined angle. Therefore, even if the user drags the 3D manipulator MAN beyond the maximum distance MD, the generation of the motion stops.
[0058] In step d), the user drags the 3D manipulator along one of its axes (AX1, AX2, AX3). Figure 3 As shown, the user drags the 3D manipulator MAN along the axis AX3. In touch mode, "dragging" refers to maintaining contact between the appendage (stylus or finger) and the touch screen. When using a mouse, "dragging" refers to pressing a click (e.g., left-click) without releasing it. During dragging, the 3D manipulator MAN follows the movement of the cursor according to the command of the mouse or appendage.
[0059] The motion to be generated includes at least a rotation of a predetermined angle. Without any limitation, the motion to be generated may be:
[0060] - Rotate the 3D part PAR by a predetermined angle; the user drags the 3D manipulator along the axis of rotation;
[0061] - A combination of a rotation of a predetermined angle around an axis of rotation and a translation of a predetermined length along the same axis. The user drags the 3D manipulator along the aforementioned axis. A tightening or loosening movement represents such a combination. The movement representing the combination of rotation and translation is performed according to a predetermined pitch. The pitch is the distance between the threads of the screw along the axis of rotation and translation. The pitch is usually expressed in millimeters. For example, a pitch of 1.5 means that the distance between one thread and the next is 1.5 mm. The combination can also be characterized by a rotation of a predetermined angle and a translation of a predetermined length (for example, 720° and 10 mm);
[0062] -Rotate the 3D part by a predetermined angle, and then translate the 3D part by a predetermined length (or vice versa);
[0063] - Tighten or loosen according to a predetermined pitch, and then translate a predetermined length or rotate a predetermined angle (or vice versa).
[0064] As soon as the user starts dragging the 3D manipulator MAN, the distance between the anchor point ANP and the 3D manipulator MAN is permanently calculated. More precisely, the distance, called the "current distance" CD, extends from the anchor point ANP to the origin of the space system. The user drags the 3D manipulator MAN along the axis of movement. Thus, the user "pulls" the arrow of the axis in order to generate the movement. Figure 3 In the example, the axis of motion is axis AX3. The user does not necessarily have to position the cursor exactly on the axis of motion. If the cursor is outside the axis of motion, the 3D manipulator MAN moves according to the projection of the cursor on the axis.
[0065] In step e), while the 3D manipulator MAN is dragged, the ratio of the current distance CD to the maximum distance MD is calculated.
[0066] In step f), the movement of the 3D part is generated in proportion to the ratio. According to an embodiment of the invention, the calculated ratio is displayed, for example, close to the 3D manipulator MAN or close to the cursor. For example, Figure 3 The authoring system ultimately creates a key (time marker) for the motion, which is then interpolated by the authoring system to create the animation of the motion.
[0067] If the motion includes at least two different sequences (e.g., first, rotating or tightening by a predetermined angle, then translating by a predetermined length), then in step d), the maximum distance MD is divided into as many partial maximum distances as possible. The amplitude of each sequence corresponds to a partial maximum distance. For example, if the motion first involves rotating or tightening by a predetermined angle, then translating by a predetermined length, the predetermined angle corresponds to the first partial maximum distance MD1, and the predetermined length corresponds to the second partial maximum distance MD2.
[0068] The division of the maximum distance MD may be equal for all different sequences. Alternatively, the division of the maximum distance MD is performed proportionally to a predetermined angle and / or a predetermined length of the different sequences.
[0069] Then, in step e), a first ratio of the current distance CD to the first partial maximum distance MD1 is calculated.An intermediate point IP is determined which is located on the axis and is away from the anchor point ANP by the first partial maximum distance MD1. Figure 4 The segmentation of the maximum distance MD is schematically shown. When the 3D manipulator MAN moves away from the anchor point ANP by the first partial maximum distance MD1, the value of the current distance CD is reset and recalculated starting from the intermediate point IP; then a second ratio of the recalculated current distance CD to the second partial maximum distance MD2 is calculated.
[0070] Finally, in step f), a rotation of the 3D part is generated in proportion to the first ratio, and a translation of the 3D part is generated in proportion to the second ratio.
[0071] It will be understood that the same applies to a movement comprising first a translation and secondly a tightening or rotation. In this case, the predetermined length corresponds to the first partial maximum distance MD1 and the predetermined angle corresponds to the second partial maximum distance MD2.
[0072] Furthermore, for a motion including more than two sequences, several intermediate points IP are calculated, and the current distance CD is reset and recalculated starting from each intermediate point IP.
[0073] Figure 3The illustrated motion consists of several sequences: first, unscrewing the 3D part PAR along axis AX3; then, translating along axis AX3. At the start of the motion, the 3D manipulator MAN is positioned by default at the center of the bounding box BB of the 3D part PAR. However, as the motion progresses, the 3D manipulator MAN can be dragged faster along the axis of motion than the 3D part itself. For example, if the motion is a rotation, the 3D part PAR rotates around the axis of motion while the 3D manipulator is dragged along the axis of motion. The same applies if the motion is unscrewing a predetermined length that is smaller than the maximum distance.
[0074] According to a preferred embodiment, the orientation of the 3D manipulator MAN matches the orientation of the 3D part PAR, such as Figure 5 As shown. To this end, in step b), the three secant edges (ED1, ED2, ED3) of the rectangular cube constituting the bounding box BB are identified. Then, in step c), the axes (AX1, AX2, AX3) of the 3D manipulator MAN are aligned with the three secant edges of the bounding box BB. Therefore, if the 3D part PAR appears tilted in the 3D scene, the 3D manipulator MAN also appears tilted when called. Furthermore, if the 3D part PAR appears at a preset rotation angle in the 3D scene, the axes of the 3D manipulator are aligned with the secant edges of the bounding box BB so that the rotational movement takes into account the preset rotation angle. Optionally, if the movement is rotation or tightening / loosening, the 3D manipulator MAN can be rotated around the axis of the movement in order to keep the axes of the 3D manipulator MAN aligned with the secant edges of the bounding box BB.
[0075] Before or after dragging the 3D manipulator MAN, the user can interact with it in order to set some parameters of the movement. Therefore, the method comprises at least the step of setting the parameters of the movement.
[0076] In a first sub-step, a first user interaction is detected on the 3D manipulator MAN. The detection can be performed during step c) (i.e. before generating the movement), after step f) (i.e. after generating the movement), and even during the generation of the movement if the user stops dragging the 3D manipulator MAN. For example, the first user interaction can be a double-click on the icon MI located at the origin of the space system, as in Figure 6 In touch mode, the first user interaction may be a double tap.
[0077] In a second sub-step, in response to detecting the first user interaction, at least one value of a parameter of the motion is displayed. Figure 7As shown, a custom panel CPA can be displayed. Due to the edit button EB of the custom panel CPA, the user can modify the predetermined rotation angle or the predetermined translation length. Each basic movement (rotation or translation) can be edited separately. Combinations of basic movements are displayed via link LNKs, for example, tightening / loosening. The user can activate or deactivate a link LNK by clicking on it. The user can freely deactivate any link LNK. However, in order to activate a link LNK between two basic movements, it is detected that the two basic movements are different and that neither basic movement is bound to an existing link. The user can also add basic movements or change the order of the basic movements.
[0078] In a third sub-step, an update of the values by the user, for example by clicking on a dedicated button in the customization panel CPA, is detected, thereby setting the parameters of the movement.
[0079] The user can also select another motion for the 3D part PAR. For this purpose, a drop-down menu DM in the customization panel CPA allows the user to select the motion he edited.
[0080] In other ways, the user can select another motion among the multiple motions for the 3D part PAR without starting the custom panel CPA. The user can interact with the 3D manipulator MAN before, after and even during the generation of the motion (see Figure 6 ). refer to Figure 8 Through a second user interaction different from the first user interaction, a set of icons (MI, SI) representing corresponding movements among the plurality of movements can be displayed. The second user interaction is, for example, a single click at the origin of the spatial system or a tap in touch mode. The main icon MI located at the origin of the spatial system represents a schematic diagram of the movement. The secondary icon SI located near the origin of the spatial system represents a corresponding schematic diagram of another movement among the plurality of movements. Incidentally, when the cursor is over one of the icons, or through a dedicated command in touch mode, a video showing the movement is displayed. Then, if a third interaction is detected on one of the icons (e.g., a single click or a tap in touch mode), another movement is selected for the 3D part PAR.
[0081] Figure 9 A flow chart of the method according to the invention, in particular steps a) to f) of the method according to the invention, is shown.
[0082] The present invention provides users with efficient tools for performing rotations and translations, as well as combinations of rotations and translations. Animations are easier to create, especially for assembly or disassembly processes (especially those involving screws or bolts). Furthermore, by using the aforementioned customization panel, the settings for these movements can be coordinated.
[0083] The method of the present invention may be performed by a suitably programmed general purpose computer or computer system, which may include a computer network, storing a suitable program in non-volatile form on a computer readable medium such as a hard disk, solid state disk or CD-ROM, and executing the program using its microprocessor(s) and memory.
[0084] refer to Figure 10 A computer - more precisely a computer-aided design or diagram creation system or station - suitable for carrying out the method according to the exemplary embodiments of the present invention is described. Figure 10 In the example, the computer includes a central processing unit (CPU) P that executes the process described above. The process can be stored as an executable program, i.e., a set of computer-readable instructions in a memory (e.g., RAM M1 or ROM M2), or on a hard disk drive (HDD) M3, DVD / CD drive M4, or stored remotely. In addition, one or more computer files defining the three-dimensional scene in which the motion of the 3D part PAR must be generated (e.g., an exploded view of an object assembly) can also be stored on one or more of the memory devices M1 to M4, or stored remotely.
[0085] The claimed invention is not limited by the form of the computer-readable medium on which the computer-readable instructions and / or digital files of the inventive process are stored. For example, the instructions and files may be stored on a CD, DVD, in flash memory, RAM, ROM, PROM, EPROM, EEPROM, a hard disk, or any other information processing device (e.g., a server or computer) with which the computer-aided design or diagram creation station communicates. The program and files may be stored on the same memory device or on different memory devices.
[0086] Furthermore, computer programs suitable for performing the inventive methods may be provided as a utility application, a background daemon, or a component of an operating system, or a combination thereof, that is executed in conjunction with a CPU 800 and an operating system such as Microsoft VISTA, Microsoft Windows 8, UNIX, Solaris, LINUX, Apple MAC-OS, and other systems known to those skilled in the art.
[0087] The CPU P may be a Xenon processor from Intel (USA) or an Opteron processor from AMD (USA), or may be another processor type, such as a Freescale ColdFire, IMX, or ARM processor from Freescale (USA). Alternatively, as will be appreciated by those skilled in the art, the CPU may be a processor such as a Core2 Duo from Intel (USA), or may be implemented on an FPGA, ASIC, PLD, or using discrete logic circuits. Furthermore, the CPU may be implemented as multiple processors that work in concert to execute the computer-readable instructions of the inventive process described above.
[0088] Compared to the prior art, by reducing the number of user manipulations, CPU calculation time is significantly reduced. In fact, in prior art solutions, the combined rotation and translation motion is split. Therefore, a first matrix is calculated for the translation of the 3D part, and a second matrix is calculated for the rotation. Then, the matrix product of the first matrix and the second matrix is calculated for the combined translation and rotation. Thus, two matrix calculations are performed. In the method according to the present invention, only one matrix calculation is performed.
[0089] Furthermore, in prior art solutions, the user first performs a translation, creating a translated key; then, the user performs a rotation, creating a rotated key (or vice versa). According to the present invention, the user performs a combined rotation / translation and creates a key. This also reduces CPU computation time.
[0090] Figure 10 The computer-aided design or diagram creation station also includes a network interface NI, such as an Intel Ethernet PRO network interface card from Intel Corporation in the United States, for connecting to a network such as a local area network (LAN), a wide area network (WAN), the Internet, etc. The computer-aided design or diagram creation station also includes a display controller DC, such as an NVIDIA GeForce GTX graphics adapter from NVIDIA Corporation in the United States, for connecting to a display DY (e.g., a Hewlett-Packard HPL2445w LCD monitor). The general I / O interface IF is connected to the keyboard KB and the pointing device PD (e.g., a roller ball, a mouse, a touchpad, etc.). The display, keyboard, and pointing device, together with the display controller and the I / O interface, form a graphical user interface, which is used by the user to provide input commands - for example, to move a pointer tool, select a point or plane, etc. - and to display a three-dimensional scene, graphic tools (plane selector, pointer tool), and polylines through the computer-aided design or diagram creation station.
[0091] The disk controller DKC connects the HDD M3 and DVD / CD M4 to a communication bus CBS, which may be ISA, EISA, VESA, PCI or the like for interconnecting all components of a computer-aided design or diagram creation station.
[0092] For the sake of brevity, descriptions of the general features and functions of the display, keyboard, pointing device, and display controller, disk controller, network interface, and I / O interface are omitted herein because these features are known.
[0093] Figure 11 is a block diagram of a computer system suitable for executing methods according to various exemplary embodiments of the present invention.
[0094] exist Figure 11 In the example, the executable program EXP and the computer files defining the three-dimensional scene are stored on a storage device connected to the server SC. The overall architecture of the storage device and the server can be the same as that of the above reference. Figure 10 Same as discussed, except that the display controller, display, keyboard, and / or pointing device may be missing from the server.
[0095] The server SC is then connected to the administrator system ADS and the end-user computers EUC via the network NW.
[0096] The overall architecture of the administrator system and end-user computers can be compared with the above reference Figure 10 The same as discussed above, except that the storage devices of the administrator system and the end-user computer do not store the executable program EXP and / or the computer files defining the three-dimensional scene. However, the end-user computer does store a client program designed to cooperate with the server's executable program, as will be discussed below.
[0097] As can be appreciated, the network NW can be a public network (e.g., the Internet) or a private network (e.g., a LAN or WAN network), or any combination thereof, and can also include a PSTN or ISDN subnetwork. The network NW can also be wired (e.g., Ethernet) or wireless (e.g., a cellular network including EDGE, 3G, and 4G wireless cellular systems). The wireless network can also be Wi-Fi, Bluetooth, or any other known form of wireless communication. Therefore, the network NW is merely exemplary and does not limit the scope of the present improvements in any way.
[0098] A client program stored in the memory device of the end-user computer and executed by the latter's CPU accesses, via the network NW, a database DB stored by the server SC. This database DB contains files defining the three-dimensional scene in which the motion of the 3D part PAR must be generated. This allows the end-user to open and possibly modify such files in order to parameterize the graphical representation of the scene and generate the motion of the 3D part as described above. The server performs the processing described above and, again using the network NW, sends an image file corresponding to the desired representation of the scene, including the polyline, to the end-user computer.
[0099] Although only one administrator system ADS and one end-user system EUX are shown, the system can support any number of administrator systems and / or end-user systems without limitation. Similarly, multiple servers can also be implemented in the system without departing from the scope of the present invention.
[0100] Any process described herein should be understood to represent a module, segment, or portion of code comprising one or more executable instructions for implementing specific logical functions or steps in the process, and alternative implementations are included within the scope of the exemplary embodiments of the present invention.
Claims
1. A computer-implemented method for generating a motion of a 3D part (PAR) of a 3D assembly (ASM) in a 3D scene, the motion of the 3D part comprising at least a rotation up to a predetermined angle, the method comprising the following steps: a) displaying a 3D assembly (ASM) composed of 3D parts in the 3D scene; b) selecting a 3D part (PAR) of the 3D assembly (ASM); c) displaying a 3D manipulator (MAN) including three axes (AX1, AX2, AX3) in the 3D scene, the 3D manipulator (MAN) being anchored to the 3D part (PAR) in an anchor point (ANP); d) dragging the 3D manipulator (MAN) along one axis (AX1, AX2, AX3) by a current distance (CD) from the anchor point (ANP) on the one axis (AX1, AX2, AX3), the predetermined angle corresponding to a maximum distance (MD) from the anchor point (ANP); e) calculating a ratio of the current distance (CD) to the maximum distance (MD) while dragging the 3D manipulator (MAN), and f) generating a motion of the 3D part proportional to the ratio, Therein, the rotation is combined with a translation along the axis and a rotation about the axis, thereby representing a tightening or loosening according to a predetermined thread pitch.
2. The computer-implemented method of claim 1 , wherein: - step b) comprises identifying a bounding box (BB) enclosing said 3D part (PAR); - step c) comprises positioning said anchor point (ANP) at the center of said bounding box (BB).
3. The computer-implemented method of claim 2, wherein: - step b) comprises identifying three secant edges (ED1, ED2, ED3) of said bounding box (BB), - step c) comprises aligning axes (AX1, AX2, AX3) of said 3D manipulator (MAN) with the three secant edges (ED1, ED2, ED3) of said bounding box (BB).
4. The computer-implemented method of claim 1 , wherein: The movement also includes a translation of a predetermined length along the axis without rotation, and the method includes the following steps: - in step d), the maximum distance (MD) is divided into two partial maximum distances (MD1, MD2), the predetermined angle corresponds to the first partial maximum distance (MD1), and the predetermined length corresponds to the second partial maximum distance (MD2); - in step e), a first ratio of the current distance (CD) to the first partial maximum distance (MD1) is calculated, an intermediate point located on the axis, away from the anchor point (ANP) by the first partial maximum distance (MD1), the value of the current distance (CD) is reset, the current distance is recalculated starting from the intermediate point, and a second ratio of the recalculated current distance (CD) to the second partial maximum distance (MD2) is calculated; - in step f), a rotation of the 3D part is generated proportionally to the first ratio, and a translation of the 3D part is generated proportionally to the second ratio.
5. Computer-implemented method according to claim 1, comprising a step of setting at least parameters of said movement, said step comprising the following sub-steps: - detecting a first user interaction on said 3D manipulator (MAN); - in response to detecting the first user interaction, displaying at least one value of a parameter of the movement; - Detecting a user update of said value, thereby setting parameters of said movement.
6. The computer-implemented method according to claim 1, comprising a step of selecting a movement among a plurality of movements, comprising the following sub-steps: - detecting a second user interaction on the 3D manipulator (MAN); - in response to detecting the second user interaction, performing a sub-step of displaying a set of icons (MI, SI) representing corresponding movements among the plurality of movements; - detecting a third user interaction on one of the sets of icons (MI, SI), thereby selecting the corresponding movement.
7. The computer-implemented method of claim 1, comprising the step of creating a video animation of the motion.
8. A computer program product stored on a non-volatile computer-readable data storage medium, the computer program product comprising computer-executable instructions for causing a computer system to perform the computer-implemented method according to any one of claims 1 to 7.
9. A non-volatile computer-readable data storage medium comprising computer-executable instructions for causing a computer system to perform the computer-implemented method according to any one of claims 1 to 7.
10. A three-dimensional diagram creation system, comprising a processor (P) coupled to a memory (M1-M4) and a graphical user interface, wherein the memory (M1-M4) stores computer executable instructions for causing the three-dimensional diagram creation system to perform a computer-implemented method according to any one of claims 1 to 7.
11. The three-dimensional diagram creation system according to claim 10, wherein: The three-dimensional diagram creation system is a computer-aided design system.
Citation Information
Patent Citations
Knowledge-based polymorph undockable toolbar
US20030187532A1
Fast manipulation of objects in a three-dimensional scene
CN108228026A
Computer system and method for providing exploded views of an assembly
US8452435B1