Method and system for automatic slot propagation
Through the characteristics of automatic propagation slot in CAD and CAE systems, the time and tedious problems of manual creation of multiple convex parts slot slots are solved, and the efficiency of work is improved and reduced the user burden.
Patent Information
- Application Number
- CN202410995622.6
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Priority Date
- 2023-10-31
- Filing Date
- 2024-07-24
- Publication Date
- 2025-01-28
AI Technical Summary
In computer-based CAD and CAE systems, manually creating slots on multiple instances of parts with tab features is a time-consuming, cumbersome and inefficient task.
By automatically disseminating the slot characteristics on the module in a single operation, the needs of manual creation of slots are reduced. If the instance of the convex component does not have a corresponding slot, it will automatically detect the surface of the component and spread the slot on the detection surface.
Achieve the dissemination of automated slots in CAD and CAE systems, reduce the user's ergonomic burden, improve work efficiency, and reduce the time and cost of manual operation.
Smart Images

Figure CN119378035A_ABST
Abstract
Description
Background Art
[0001] Many existing products and simulation systems for designing and simulating objects (e.g., components, parts, and assemblies of components or parts, among other examples) are provided on the market. Such systems typically employ computer-aided design (CAD) and / or computer-aided engineering (CAE) programs. These systems allow users to build, manipulate, and simulate complex three-dimensional (3D) models of objects or assemblies of objects (e.g., real-world objects). Therefore, CAD systems and CAE systems provide representations of modeled objects using edges, lines, faces, polygons, or closed volumes. Lines, edges, faces, polygons, and closed volumes can be represented in various ways, such as non-uniform rational basis splines (NURBS).
[0002] CAD systems manage parts or assemblies of parts of modeled objects, which are primarily specifications of geometric shapes. In particular, CAD files contain specifications from which geometric shapes are generated. Representations are generated from geometric shapes. Specifications, geometry, and representations can be stored in a single CAD file or in multiple CAD files. CAD systems include graphical tools for representing modeled objects to designers; these tools are specialized for the display of complex objects. For example, an assembly can contain thousands of parts. CAD systems can be used to manage object models stored in electronic files.
[0003] CAD and CAE systems use computer-based models to represent objects. Computer-based models can be programmed in a way that causes the model to have the properties of one or more underlying real-world objects (e.g., physical, material, or other physics-based) represented by the model. In addition, computer-based models can be used to perform simulations of the real-world objects / environments represented by the model. Summary of the invention
[0004] For example, in CAD and CAE systems, common computer-based modeling tasks involve components and parts with tabs and slots.
[0005] In a computer-based model, such as a CAD model, an assembly may include parts that may need to interlock with adjacent components. This interlocking is usually accomplished using a lug and a slot, wherein the lug is configured to physically engage, i.e., mate, with the slot. With some existing methods, when a computer-based model includes a part with a lug feature, such as multiple instances of an assembly, the corresponding slot for each instance of the part must be manually drawn and cut out. In other current methods, a corresponding slot is automatically created for the first instance of a part with a lug feature. However, the corresponding slots for all other instances of the part must be manually created. Such a manual process is time-consuming, cumbersome, and inefficient.
[0006] Embodiments address the shortcomings of current approaches by providing the ability to automatically propagate components, such as slots on adjacent components, from one or more instances of a tab component in a single operation. If an instance of a tab component does not have a corresponding slot, the embodiments can automatically detect the face of the component and propagate the slot on the detected face. Embodiments thus relieve or reduce the ergonomic burden on users of CAD and other computer-based modeling systems by freeing the user from the laborious and repetitive task of manually creating a slot for each tab for which slot propagation is desired / required.
[0007] Another example embodiment relates to a computer-implemented method for automatic slot propagation in a CAD model. First, the method identifies a first instance of a tab feature. The first instance of the tab feature is associated with a corresponding first instance of a slot feature. Next, the method identifies a second instance of the tab feature. Then, the method automatically propagates the slot feature by creating a second instance of the slot feature in a component of the CAD model. The created second instance of the slot feature corresponds to the identified second instance of the tab feature.
[0008] In an embodiment, identifying the second instance of the tab feature includes identifying a given instance of the tab feature in the CAD model that is not associated with a corresponding instance of the slot feature. In such embodiments, the identified given instance is the identified second instance of the tab feature. According to one such embodiment, identifying the given instance of the tab feature includes determining that the given instance of the tab feature interfaces with a component of the CAD model.
[0009] In another embodiment, creating a second instance of the socket feature in the component of the CAD model includes applying a socket transform operation to the component of the CAD model based on a tab transform operation associated with the tab feature.
[0010] In yet another embodiment, the method further comprises storing a reference to the created second instance of the slot feature in a data structure associated with the tab feature. According to an example embodiment, the method further comprises storing a reference to the tab feature in a data structure associated with the created second instance of the slot feature. In one such embodiment, the reference to the tab feature comprises a transformation matrix.
[0011] In an embodiment, the second instance of the tab feature is identified in response to user interaction with an interface of the CAD system. According to one such embodiment, the method further includes presenting the interface of the CAD system in response to identifying the second instance of the tab feature.
[0012] In another embodiment, the method further includes determining a position update for a given instance of a tab feature, and based on the determined position update, modifying a position of a given instance of a slot feature corresponding to the given instance of the tab feature. In one such embodiment, determining a position update for a given instance of a tab feature includes identifying a mismatch between a position of the given instance of the tab feature in the CAD model and a stored position indication of the given instance of the tab feature. According to an embodiment, the position indication is stored in a slot data structure associated with the given instance of the slot feature. In an example embodiment, the stored position indication includes a spatial transformation matrix.
[0013] Another example embodiment relates to a computer-based system for automatic slot propagation in a CAD model. The system includes: a processor; and a memory having computer code instructions stored thereon. In such embodiments, the processor and the memory having the computer code instructions are configured to cause the system to implement any embodiment or combination of embodiments described herein.
[0014] Yet another example embodiment relates to a non-transitory computer program product for automatic slot propagation in a CAD model. The computer program product comprises a computer readable medium having computer code instructions stored thereon. The computer code instructions are configured to, when executed by a processor, cause a device associated with the processor to implement any embodiment or combination of embodiments described herein.
[0015] It should be noted that the method, system and computer program product embodiments may be configured to implement any embodiment or combination of embodiments described herein. BRIEF DESCRIPTION OF THE DRAWINGS
[0016] The foregoing will be apparent from the following more particular description of example embodiments, as illustrated in the accompanying drawings, in which like reference numerals refer to the same parts throughout the different views. The drawings are not necessarily to scale, emphasis instead being placed upon illustrating the embodiments.
[0017] Figure 1 Problems in existing tools that are solved by embodiments are shown.
[0018] Figure 2A -B shows an example interface in which the embodiments may be implemented, such as a software interface, a CAD interface, etc.
[0019] Figure 3-5 An example of automatic slot propagation in a CAD model is shown according to an embodiment.
[0020] Figure 6 is a flow chart of an example method for automatic slot propagation in a CAD model, according to an embodiment.
[0021] Fig. 7A and 7B An example assembly is shown before and after slot propagation, respectively, according to an embodiment.
[0022] Figure 8 is a schematic diagram of an exemplary CAD model and data structures for use in conjunction with the CAD model.
[0023] Fig. 9 is a flow chart of a method for automatic slot propagation in a CAD model, according to an embodiment.
[0024] Fig.10 is a schematic diagram of a computer network in which embodiments may be implemented.
[0025] Fig.11 It is shown Fig.10 A block diagram of an example embodiment of a computer node in a computer network of FIG. DETAILED DESCRIPTION
[0026] The following is a description of example embodiments.
[0027] In real-world objects, such as bridges, automobiles, buildings, and the like, parts such as bridge trusses, sheet metal members of vehicle bodies, structural components, and the like, are often physically interlocked. Such interlocking is often achieved using tabs and slots, where a tab on one part is configured to physically engage, i.e., mate, with a slot on another part, such as an adjacent part. One of the many benefits is that the physical interlocking achieved by tabs and slots makes it easier to weld the parts together and minimizes the need to build complex fixtures. The design, development, manufacture, and any subsequent improvements of real-world objects utilizing tabs and slots often rely on computer-based design and simulation tools / environments, where the real-world objects of the present invention are represented by computer-based models, such as CAD models.
[0028] With many existing methods, creating a computer-based model representing a real-world object with tabs and slots requires the user to manually create a slot for each tab. Some improvements to this completely manual approach have been made, for example, in a method provided by Applicant-Assignee Dassault Systèmes SolidWorks Corporation (Waltham, MA). Made in. Specifically, when a user creates a tab feature on a part, such as an assembly, a slot feature is automatically created on an adjacent assembly to accommodate the tab. However, in an assembly having multiple instances of the part, a slot corresponding to the tab on each of the other instances is not automatically created. In this way, when a user creates a tab on a part, a slot is created only in the location of the first instance of the part. The slot is not propagated to other instances of the same part. The existing solution in is to manually create cutouts to supply the missing slots. This is time consuming and very tedious.
[0029] Figure 1 An example software interface 120 is shown that depicts the problem solved by the embodiment. Figure 1 As shown, interface 120 includes CAD model 121. CAD model 121 includes part instances 122a, 122b, and 122c adjacent to parts 123, 124, and 125, respectively.
[0030] refer to Figure 1 , consider the problem of manual slot creation discussed above. In the environment, the user can create tab 126a on part instance 122a, and slot 127 is automatically created on part 123. Functionally, when tab instance 126a is created, the tab is propagated across the other part instances, namely instances 122b and 122c, as tab 126b and tab 126c, respectively. However, the problem is that the slot is not automatically created on parts 124 or 125. The embodiment solves this problem.
[0031] Figure 2A 1 shows an example software interface 110 in which embodiments may be implemented. Figure 2A As shown, interface 110 includes CAD model 111. CAD model 111 includes assembly 115 and subassembly 116, which contain tab assembly instances 112a-f and 113a-b, respectively. CAD model 111 also includes component 114.
[0032] Figure 2B Another example software interface 220 in which embodiments may be implemented is shown. Interface 220 includes a CAD model 221 and a menu 222. Menu 222 includes methods 600 ( Figure 6 ) or 900( Fig. 9 ) for automatic slot propagation in the CAD model 221. Figure 2BAs shown, CAD model 221 includes assembly 226, which contains tab assembly instances 224a-e. Assembly 226 also includes subassembly 227, which contains tab assembly instances 225a-b. In an embodiment, tab assembly instance 224a can be displayed in interface 220 as having shading and / or coloring to indicate that tab assembly instance 224a is selected and / or designated as an object for automatic slot propagation by a user (e.g., according to command 223). Similarly, in an embodiment, tab assembly instances 225a-b can be displayed in interface 220 as having shading and / or coloring to indicate that, for example, instances 225a-b belong to a subassembly, such as subassembly 227.
[0033] According to an embodiment, novel functionality for automatic slot propagation is provided when an assembly has a component containing a tab feature, such as a tab component instance 224a, such as methods 600, 900, etc. described herein. Automatic slot propagation can be provided regardless of how the component is inserted into the assembly, such as by inserting the component, by Ctrl (control) + dragging the component, by copying and pasting the component, or by any other known technique for inserting a component into an assembly. In addition, the automatic slot propagation functionality of an embodiment can be provided via a "propagate slot" command, such as a menu, such as menu command 223 in menu 222, presented or displayed, such as in response to clicking the right mouse button (RMB) on a component, such as a component instance 224a of a CAD model 221, or by any other suitable technique known to those skilled in the art.
[0034] In an embodiment, when the automatic slot propagation command is invoked, for example via a RMB click as described above, three options may be provided as follows.
[0035] 1. Selected instance of component
[0036] Figure 3 Depicted is an interface 330 showing example options for automatic slot propagation in a CAD model 331 , according to an embodiment. Figure 3 The example options depicted in FIG. 1 are automatic slot propagation for selected component instances, where the selected component instances have instances of tab features. Figure 3 As shown, CAD model 331 includes a selected tab component instance 337b belonging to assembly 340. Assembly 340 also includes tab component instances 337a and 337c-f, and sub-assembly 341. Sub-assembly 341 in turn includes tab component instances 338a-b. Interface 330 also includes menu 332 having text area 333 and radio buttons 334a-334c. Figure 3In the example embodiment shown, text area 333 lists an identifier 335 corresponding to a selected tab component instance 337b for which a slot may be propagated. Menu 332 further includes icons or buttons 336a and 336b. In an embodiment, menu 332 may be responsive to a user selecting, for example, menu command 223 ( Figure 2B ) is displayed or presented when a slot propagation command is selected or activated.
[0037] In an embodiment of automatic slot propagation shown by interface 330, radio button 334a is selected, indicating that a slot will be propagated for a selected tab component instance 337b. An identifier 335 corresponding to the tab component instance 337b is also displayed in text area 333 for which the slot may be propagated. Optionally, a selected or identified tab component instance, such as 337b, may be highlighted in a CAD interface, such as a graphics area of interface 330, for example, by coloring and / or shading or by any other known highlighting technique. To continue, the user selects or activates button 336a or 336b to indicate, respectively, whether automatic slot propagation for tab component instance 337b should continue. If the user chooses to continue with slot propagation, a slot is automatically created in component 339 that interfaces with the tab on part instance 337b. It should be noted that because Figure 3 Slot propagation for the selected tab component instance is shown, so slots are propagated for the selected tab instance 337b, and slots are not propagated for the remaining tab instances 337a and 337c-f and 338a-b. It should also be noted that in an embodiment, slots can be automatically propagated for the selected tab instance 337b based on pre-existing slots corresponding to the first part instance that share common tab features with instance 337b, where the pre-existing slots are created using the current automatic slot creation techniques described above.
[0038] 2. Instances of components in the parent assembly
[0039] Figure 4 Depicted is an interface 440 showing example options for automatic slot propagation in a CAD model 441 , according to an embodiment. Figure 4 The example option depicted in is automatic slot propagation for all tab component instances in a given parent assembly. Figure 4 In the example shown in FIG. 4 , the parent assembly 450 includes the CAD model 441 and the tab component instances 447a-f. The parent assembly 450 also includes the subassembly 451, which in turn contains the tab component instances 448a-b. Figure 4 As shown, interface 440 also includes a menu 442 having a text area 443 and radio buttons 444a-444c. Figure 4In the example embodiment shown, text area 443 lists identifiers 445a-f corresponding to component instances 447a-f (belonging to the same parent assembly 450) for which the slot can be propagated. Menu 442 further includes small icons or buttons 446a and 446b. In an embodiment, menu 442 can be responsive to a user, for example, by selecting menu command 223 ( Figure 2B ) is displayed or presented when a slot propagation command is selected or activated.
[0040] In the embodiment of automatic slot propagation shown by interface 440, for example, radio button 444b is selected by the user, indicating that automatic slot propagation will be evaluated for other component instances (e.g., 447b-447f) belonging to the same parent assembly as the selected component instance (e.g., 447a). In operation, radio button 444b and component instance 447a are selected. In response, other component instances 447b-f belonging to the same parent assembly as the selected component 447a are identified, and associated identifiers 445a-f corresponding to the selected component 447a and the identified components 447b-f are listed in text area 443. Optionally, the selected or identified tab component instances, such as 447a-447f, can be highlighted in a CAD interface, such as a graphics area of interface 440, for example, by coloring and / or shading or by any other known highlighting technique. In order to continue, the user selects or activates button 446a or 446b to indicate whether automatic slot propagation for components 447a-f should continue, respectively. If the user chooses to proceed with slot propagation, slots are automatically created in the components that interface with the tabs according to the selected propagation method, such as the method selected using radio buttons 445a-c. Figure 4 447a-d, slots are created in component 449 that interfaces with tabs on part instances 447a-d. Note also that corresponding slots are not created for tab instances 447e and 447f because they do not interface with component 449 or any other component. Additionally, the identifiers for tab instances 448a and 448b are not listed in text area 443, and slot propagation is likewise not performed for those instances because tab instances 448a and 448b do not belong to assembly 450 of selected component 447a.
[0041] 3. Examples of components in CAD models
[0042] Figure 5 An interface 550 is depicted that illustrates an example embodiment for automatic slot propagation in a CAD model 551 containing an assembly 560 and a sub-assembly 561 . Figure 5The example option depicted in is automatic slot propagation for all component instances in a given CAD model, such as CAD model 551, where each component instance in the given CAD model has a corresponding instance of a tab feature. Figure 5 As shown, CAD model 551 includes tab component instances 557a-f belonging to assembly 560, and tab component instances 558a-b belonging to subassembly 561. Interface 550 includes menu 552 having text area 553 and radio buttons 554a-c. Figure 5 In the example embodiment shown in , text area 553 includes identifiers 555a-f and 555g-h corresponding to tab assembly instances 557a-f and 558a-b, respectively, for which slots can be propagated. Menu 552 further includes small icons or buttons 556a and 556b. In an embodiment, menu 552 can be responsive to a user, for example, by selecting menu command 223 ( Figure 2B ) is displayed or presented when a slot propagation command is selected or activated.
[0043] In an embodiment of automatic slot propagation illustrated by interface 550, radio button 554c is selected, for example, by a user, indicating that automatic slot propagation will be evaluated for all component instances belonging to the same CAD model 551 as the selected instance 557a, regardless of whether such instances belong to a particular assembly, such as 560 or 561. In operation, radio button 554c and component 557a are selected. In response, other component instances 557b-f and 558a-b belonging to the same CAD model 551 are identified and optionally highlighted in interface 550. To proceed, identifiers 555a-f and 555g-h that may correspond to, for example, tab instances 557a-f and 558a-b, respectively, are listed in text area 553. Optionally, the selected or identified component instances, such as 557a-f and 558a-b, may be further highlighted in a graphics area of a CAD interface, such as interface 550, such as by coloring and / or shading or by any other known highlighting technique. Additionally, it should be noted that in this example, if, for example, radio button 554b were selected, then instances 558a-b would not be highlighted because instances 558a-b are in assembly 561 - outside of assembly 560 to which the selected component 557a belongs. To proceed, the user selects or activates button 556a or 556b to indicate whether automatic slot propagation for components 557a-f and 558a-b (which have corresponding identifiers 555a-f and 555g-h displayed in text area 553) should proceed. If the user elects to proceed with slot propagation, slots are automatically created in the components to which the slots are interfaced according to the selected propagation method, such as the method selected using radio buttons 554a-c. Figure 5In the example of , a slot is created in component 559 that interfaces with the tabs on part instances 557a-d and 558a-b. It should be noted that corresponding slots are not created for instances 557e and 557f because they do not interface with component 559 or any other component.
[0044] Figure 6 According to an embodiment, a CAD model, such as CAD model 111 ( Figure 2A )、221( Figure 2B )、331( Figure 3 )、441( Figure 4 ) or 551( Figure 5 ) is a flowchart of an example method 600 for automatic slot propagation in an assembly. The method 600 is a computer-implemented method and can therefore be implemented using any computing device or combination of computing devices known to those skilled in the art. At step 601, the method 600 detects a call for a component in an assembly due to, for example, a user RMB or other click or GUI interaction with a component, adding an instance of a component to a CAD model, or any other suitable action or interaction known to those skilled in the art. Next, at step 602, the method 600 determines a component, such as the tab component instance 112a ( Figure 2A ) has a tab feature. If not (no at step 602), the method 600 moves to step 603, where the method 600 avoids showing or displaying an automatic slot propagation command, such as menu command 223 of menu 222 ( Figure 2B ). However, if it is determined at step 602 that the component has a tab feature, then method 600 moves to step 604 .
[0045] In an embodiment, a tab feature may have an associated data structure, such as a list or array, containing information, such as a reference or pointer, about an instance of a corresponding slot feature that corresponds to the tab feature. Similarly, according to an embodiment, an instance of a slot feature may have an associated data structure containing information, such as a reference or pointer, about a tab feature that corresponds to the slot feature. In this way, a tab feature may be paired with an instance of a corresponding slot feature, and likewise, an instance of a slot feature may be paired with a corresponding tab feature. Figure 8 Additional details are described regarding tab and slot data structures that may be used in embodiments.
[0046] continue Figure 6At step 604, in an embodiment, method 600 may use the aforementioned data structure to determine whether there is a slot feature for the tab feature of the component called at step 601. According to an embodiment, determining whether there is a slot corresponding to the tab feature at step 604 includes checking the tab data structure to see if there is a reference between the tab data structure (corresponding to the tab feature on the component instance called at step 601) and the slot instance of the slot data structure. In one such embodiment of method 600, this check at step 604 is performed by analyzing the data structure, such as described below with respect to Figure 8 The described data structures 884, 886a and / or 886b are implemented.
[0047] See again Figure 6 If method 600 determines at step 604 that a corresponding slot feature already exists for the tab feature, then method 600 then proceeds to step 603 and does not present a slot propagation command, such as menu command 223 of menu 222. Otherwise, if it is determined at step 604 that a corresponding slot feature does not exist for the tab feature, then method 600 moves to step 605. However, it should be noted that in some embodiments, method 600 may proceed to step 605 even if it is determined at step 604 that a corresponding slot feature exists. For elaboration, method 600 (e.g., Figure 6 ) performs the function of propagating the slot for the selected / called tab component. Figure 3 However, method 600 may also be configured to implement the above Figure 4-5 The functions described, i.e., for the selected tab assembly ( Figure 4 ) all tab component instances or CAD models in the same assembly ( Figure 5 ). In such a modified embodiment of method 600, the logic at step 604 may consider the call, such as whether the selected tab component has a slot, and whether other tab component instances (e.g., in the same parent assembly or CAD model) already have a slot. Simply, step 604 may consider whether there are any tab component instances for which slot propagation should be evaluated (according to the selected propagation type). In this modified example, if there are tab instances for which slot propagation should be considered, such as tabs without slots, then method 600 moves to step 605.
[0048] To continue Figure 6, at step 605, method 600 displays or presents a slot propagation command, such as menu command 223 of menu 222. Next, at step 606, method 600 determines whether a slot propagation command is initiated, such as by a user clicking, selecting, or otherwise activating a command. If a propagation command is not initiated at step 606, method 600 moves to step 607, where method 600 performs no action. Otherwise, if a slot propagation command is initiated (as determined at step 606), then method 600 determines at step 608 whether an instance of a tab feature, such as tab component instance 112a, is interfaced with other components of the assembly. It should be noted that although Figure 6 Step 608 in refers to checking whether the instance of the tab is interfaced with other components in the assembly, but Figure 6 The embodiments of are not limited to checking whether an instance in a single assembly is interfaced with a component. In fact, similar to the above description of Figure 5
[0066] In the described embodiments, embodiments of method 600 may operate across multiple assemblies and CAD models.
[0049] According to an embodiment, an interference check is performed at step 608 of method 600 to determine instances of tab features, such as tab component instance 112a ( Figure 2A ) interfaces with a component. In one such embodiment, performing an interference check may include applying a transformation to determine if two bodies, parts, or components are so close to each other that one body may cut into the other body. For example, according to an embodiment, an interference check may be used to determine if an instance of a tab feature, such as tab component instance 112a, contacts or cuts into another component or part. Thus, in an embodiment, an interference check may be used to determine if two geometric shapes contact or otherwise impact, collide, or interfere with each other.
[0050] In an example embodiment, performing the interference check may include calculating a transformation operation and / or applying a transformation operation to a CAD model, such as CAD model 111 ( Figure 2A ) in a common or shared coordinate system. According to one such embodiment, the transformation operation may be calculated and / or applied via a mathematical computation library or application programming interface (API) or any other suitable library or API known to those skilled in the art. In another embodiment, the position of each component is given by its own individual coordinate system. In such an embodiment, performing the interface check at step 608 of method 600 includes determining the position of the component in a common or shared coordinate system. For example, according to one such embodiment, the position of the tab feature relative to the coordinate system of its own component (e.g., tab component instance 112a) may be at (5.0, 5.0, 5.0), but when the component is placed in an assembly, such as assembly 115 ( Figure 2A), its position relative to the coordinate system of the assembly may be at (10.0, 10.0, 10.0). Thus, according to an embodiment, the interface check at step 608 of method 600 may include determining the position of the potential joining components in the assembly coordinate system. Similarly, performing the interface check at step 608 may include determining the position of one component in the coordinate system of another component. In this way, such embodiments evaluate possible interfaces between components in a common or shared coordinate system.
[0051] Such functionality may include utilizing a transformation operation to calculate the position of a tab feature in the coordinate system of the assembly by identifying the position of the tab feature in the coordinate system of its own component (e.g., 112a) and then multiplying the identified position by a transformation matrix. According to an embodiment, another calculation may be performed to determine whether the transformation indicates that there is an interface, such as interference, between two components. In one such embodiment, the presence of an interface may be determined based on the position of the tab feature and / or the slot feature in the assembly coordinate system. Specifically, a transformation operation may be performed on the position of the tab and the position of the component on which the slot will be created in order to determine the position of the tab and the potential slot in the same coordinate system (e.g., the assembly coordinate system). In this way, such embodiments may determine whether the tab will interface with the component on which the slot will be created.
[0052] According to another embodiment, a component in a CAD model, such as the tab component instance 112a, may include an indication that the component is in the CAD model, such as the CAD model 111 ( Figure 2A ). Furthermore, in example embodiments, a component, such as an edge or face of tab component instance 112a, may include multiple points. According to one such example embodiment, a transformation may be calculated to determine whether any of the multiple points interferes with, such as intersects, other components in the CAD model. In another embodiment, such calculations may be performed via a mathematical library or API, or any other suitable library or API known to those skilled in the art. Furthermore, in yet another embodiment, when a CAD model, such as CAD model 111, includes a complex hierarchy of assemblies each having its own components, performing interference checking may include calculating multiple transformations.
[0053] Continue further Figure 6 If, at step 608, it is determined that the instance of the tab feature, such as the tab component instance 112a, does not interface with other components of the assembly, the method 600 proceeds to step 607 and no action is taken. Otherwise, if it is determined at step 608 that the instance of the tab does interface with other components, the method 600 moves to step 609 and propagates the instance of the corresponding slot feature.
[0054] In an embodiment, at step 609, the method 600 may identify a tab transformation operation associated with the tab feature. The method 600 may further identify a slot body associated with the tab feature. According to an embodiment, the slot body may also be referred to as an interference body and may refer to a location where the slot will be propagated. In another embodiment, the method 600 may determine or calculate the transformation required for cutting the instance of the corresponding slot feature based on the tab transformation operation. In addition, in yet another embodiment, the method 600 may also perform automatic slot propagation by creating a new instance of the corresponding slot feature in the component of the assembly, wherein the instance of the tab feature, such as the tab component instance 112a, is determined at step 608 to interface with the component.
[0055] As mentioned, method 600 is computer-implemented, and therefore, the functions and effective operations, such as steps 601-609, are automatically performed by one or more digital processors. In addition, method 600 can be implemented using any computer device or combination of computing devices known in the art. In other examples, method 600 can be implemented using the following description of the method 600. Fig.10 and 11 Furthermore, it should be noted that although the method 600 is described as being performed for one tab instance, the method 600 may be performed for multiple tab instances simultaneously, and thus multiple slots may be created simultaneously.
[0056] In an embodiment, the automatic slot propagation function of method 600 is also implemented when a component in an assembly, such as tab component instance 112a, is patterned, mirrored, or otherwise repeated, copied, or replicated. Furthermore, it should be noted that embodiments of method 600 are not limited to operating in a single assembly, and the slot propagation function may be implemented in multiple different assemblies containing parts.
[0057] Additionally, in yet another embodiment, if there are multiple configurations of a part or assembly, some of which have tab features and some of which do not, the method 600 can ensure that an automatic slot propagation command, such as menu command 223 ( Figure 2B ) is only available for configurations with tab features.
[0058] Tab and slot association
[0059] Fig. 7A and 7B An example assembly before 770a and after slot propagation 770b are shown, respectively, according to an embodiment. Fig. 7A, before slot propagation, assembly 770a includes component 771, instances 772a-772c of tab features, and corresponding instance 773a of slot features of tab instance 772a. In assembly 770a, instance 773a of slot features corresponds to instance 772a of tab features, while instances 772b and 772c of tab features lack such corresponding instances of slot features. However, according to embodiments, automatic slot propagation can be used to propagate the slots of instances 772b and 772c of tab features.
[0060] like Figure 7B As shown, in slot propagation (for example, by using the respective Figure 6 and 9 After the described methods 600 and 900), the assembly 770b further includes instances 773b and 773c of corresponding slot features. In an embodiment, the instances 773b and 773c correspond to the instances 772b and 772c of the tab features, respectively.
[0061] Geometry Update Mechanism
[0062] Figure 8 8 is a schematic diagram of an exemplary CAD model 880 and data structures 884 and 886a-b used in conjunction with the CAD model 880. Figure 8As shown, CAD model 880 includes component 881, instances 882a and 882b of lug features, and slot features 883a and 883b in component 881. In CAD model 880, slots 883a and 883b correspond to lugs 882a and 882b, respectively. According to an embodiment, the definitions (e.g., geometric definitions) of lugs 882a and 882b in CAD model 880 also each include a reference (e.g., pointers 888a and 888b, respectively) linking lugs 882a-b to lug feature data structures 884 in memory. Lug feature data structures 884 indicate the characteristics of lug features and include indicators 885a and 885b of slots (883a-b, respectively) associated with lug features. Each slot indicator 885a-b includes corresponding references, pointers 889a-b, linking slot indicators 885a-b to corresponding slot data structures 886a and 886b. Each slot indicator 885a-b also includes a pointer 890a-b that links the slot indicator 885a-b to the appropriate slot instance 883a-b in the CAD model 880. In addition, each slot data structure 886a and 886b includes a corresponding indicator of an associated tab transformation matrix 887a-b. In one such embodiment, each matrix 887a and 887b is a spatial transformation matrix or any other known transformation matrix that can define the position of a corresponding tab instance, such as 882a and 882b. According to another embodiment, the transformation matrix can be used to create a slot instance corresponding to the tab instance defined by the transformation matrix.
[0063] In an embodiment, when an instance of a slot feature, such as 773a, 773b or 773c ( Figure 7B ) For example, via method 600 ( Figure 6 ) or 900( Fig. 9 ) is propagated to assembly components, such as component 771 ( Fig. 7A ), a tab data structure, such as tab data structure 884, may be associated with a slot data structure, such as slot data structure 886a or 886b.
[0064] According to another embodiment, a tab data structure, such as tab data structure 884, may be configured to store a list of references to propagated slot data structures, such as references 889a or 889b.
[0065] In yet another embodiment, when updating the tabs, such as those having examples 772a-772c ( Fig. 7A), a notification may be sent to the propagated slots, such as instances 773a, 773b, and / or 773c. Thus, according to one such embodiment, slot geometry updates may be driven by corresponding changes in the tab geometry. Propagating changes in the tab geometry to the slot geometry in this manner may be referred to as "parametric connection" or "parametric modeling."
[0066] In another embodiment, a slot data structure, such as 886a or 886b, may store information about the location of a corresponding tab instance, such as 882a or 882b. The information about the location of the tab instance may be in the form of a spatial transformation matrix, such as 887a or 887b. In addition, information indicating the location of the tab (stored in the slot data structure) may be included with a reference to the tab.
[0067] Below is pseudo code showing an exemplary tab and slot data structure, according to an embodiment.
[0068] class TabFeature
[0069] {
[0070] Array ListOfPropagatedSlots;
[0071] }
[0072] class SlotFeature
[0073] {
[0074] PropagateSlot()
[0075] {
[0076] }
[0077] TabFeature*TabFeatureReference;
[0078] Transformation TabTransformation;
[0079] }
[0080] Referring to the pseudo code above, in an embodiment, a tab data structure, such as tab data structure 884, may be represented by an object that is an instance of a class, such as class TabFeature. Then, according to one such embodiment, the instance of classTabFeature may include an array ListOfPropagatedSlots or other suitable known data structure, which contains slot indicators 885a-b and associated references 889a and 889b to corresponding slot data structures 886a and 886b, each slot indicator and slot data structure representing a slot propagated for tab feature 884. Likewise, in another embodiment, a slot data structure, such as slot data structures 886a and / or 886b, may be represented by an object that is an instance of a class, such as classSlotFeature. According to one such embodiment, the instance of class SlotFeature may include a reference, namely TabFeatureReference, which may be a reference to a corresponding instance of class TabFeature, such as tab feature 884. Furthermore, in yet another embodiment, an instance of class SlotFeature may include an instance of a transformation class TabTransformation, which may be a transformation matrix, such as 887a or 887b, that defines the position of a corresponding tab component in an assembly. Finally, in an embodiment, an instance of class SlotFeature may include a method or function PropagateSlot() that implements logic to generate a slot cutout in a slot component by, for example, retrieving a corresponding tab body, applying a transformation, and using a transformation matrix to generate a slot cutout.
[0081] Location Update Mechanism
[0082] According to an embodiment, when a component having a tab is repositioned, the corresponding slot position may be updated. According to one such embodiment, when a tab component is repositioned in a CAD model / assembly, the updated position of the tab component is compared to a stored position indication of the tab component. In an embodiment, the indication of the position is stored in a corresponding slot data structure. If a mismatch is identified between the updated position of the tab component and the stored position indication of the tab component (e.g., in the slot data structure), the stored position indication of the tab component is modified to conform to the updated position. According to an example embodiment, identifying a mismatch may include determining whether a transformation, such as a spatial transformation matrix, remains valid. For example, in one such embodiment, the stored position indication may include a transformation matrix, such as 887a or 887b ( Figure 8 ), which may be combined with the current transformation matrix of the convex patch instance, such as 882a or 882b ( Figure 8 ) to determine whether the former is outdated.
[0083] Exemplary Method Embodiments
[0084] Fig. 9 900 is a flow chart of a method 900 for automatic slot propagation in a CAD model according to an embodiment. The method 900 is a computer-implemented method executed by a processor with respect to a CAD model. It should be noted that although the description herein relates to functions with respect to a CAD model, the embodiments may be implemented with respect to any computer-based model known to those skilled in the art.
[0085] The method 900 begins at step 901 of identifying a first instance of a tab feature in a CAD model. The first instance of the tab feature is associated with a corresponding first instance of a slot feature. To continue, at step 902, the method 900 identifies a second instance of the tab feature in the CAD model. Then, at step 903, the method 900 automatically propagates the slot feature by creating a second instance of the slot feature in a component of the CAD model. The created second instance of the slot feature corresponds to the identified second instance of the tab feature.
[0086] As mentioned, method 900 is computer-implemented, and thus, functions and effective operations, such as identification (901 and 902) and propagation (903) are automatically performed by one or more digital processors. In addition, method 900 can be implemented using any computer device or combination of computing devices known in the art. In other examples, method 900 can be implemented using the method described below with respect to Fig.10 and 11 The computer / device 50 and / or 60 described above may be used to implement the invention.
[0087] In an embodiment of method 900, identifying a second instance of a tab feature (902) includes identifying a given instance of a tab feature in a CAD model that is not associated with a corresponding instance of a slot feature. The identified given instance is the identified second instance of the tab feature. For example, in one such embodiment, an instance of a tab feature may be identified as not associated with an instance of a corresponding slot feature by querying a data structure associated with the tab feature, wherein the data structure stores references to existing instances of the corresponding slot feature. According to another embodiment, identifying a given instance of a tab feature includes determining that the given instance of the tab feature interfaces with a component of the CAD model. For example, at step 902, such an embodiment may identify a tab instance that interfaces, such as intersects / interferes, with a part (e.g., a component) in the CAD model, wherein the part does not have a slot corresponding to the identified tab instance.
[0088] In an embodiment of method 900, a second instance of the tab feature is identified (902) in response to user interaction with an interface of the CAD system, such as a graphical user interface (GUI). According to one such embodiment, method 900 further includes presenting an interface of the CAD system in response to identifying the second instance of the tab feature.
[0089] In another embodiment of the method 900, creating a second instance of the slot feature in the component of the CAD model (903) includes applying a slot transform operation to the component of the CAD model based on a tab transform operation associated with the tab feature. According to one such embodiment, the tab transform operation can be a calculation that defines an instance of the tab feature of the part / component, such as a matrix calculation or other suitable calculation known to those skilled in the art. In an embodiment, a slot transform operation can be derived from the tab transform operation, such as a calculation to construct an instance of a corresponding slot feature in the component.
[0090] In yet another embodiment, the method 900 further includes storing a reference to the created second instance of the slot feature in a data structure associated with the tab feature. According to another example embodiment, the method 900 further includes storing a reference to the tab feature in a data structure associated with the created second instance of the slot feature. In one such embodiment, the reference to the tab feature includes a transformation matrix. As described above, in an embodiment, the transformation matrix can be a matrix used as part of a calculation to construct or generate an instance of the slot feature. According to an embodiment, the transformation matrix (i.e., the tab transformation matrix) is stored with the slot data structure and applied to the tab body and is used to generate a slot cutout in a slot component (i.e., the component in which the slot instance is generated).
[0091] In another embodiment, the method 900 further includes determining a position update for a given instance of a tab feature, and based on the determined position update, modifying the position of a given instance of a slot feature corresponding to the given instance of the tab feature. According to one such embodiment, determining a position update for a given instance of a tab feature includes identifying a mismatch between a position of the given instance of the tab feature in the CAD model (i.e., a position of the given instance of the tab in the currently existing CAD model) and a stored position indication of the given instance of the tab feature. For example, such an embodiment may determine that a record of the position and an actual position in the CAD model do not match. According to an embodiment, the stored position indication is in a slot data structure associated with the given instance of the slot feature. In an example embodiment, the stored position indication includes a spatial transformation matrix.
[0092] advantage
[0093] Embodiments automatically propagate slots on components that interface / intersect instances of a tab part or assembly. Such functionality may be performed in response to selecting an instance of a tab assembly, and may be performed for any desired tab instance. For example, slot propagation may be performed for a selected tab instance, all tab instances in a parent assembly, or all tab instances in a CAD model. Thus, users of the CAD system are freed from manually creating cutouts for missing slots. This results in significant time savings, increased efficiency, and reduced costs, as well as improved accuracy of the design of the CAD model and the corresponding manufactured real-world product / object. Furthermore, automatically propagating slots greatly improves user ergonomics.
[0094] Computer-based modeling is often a fundamental step in manufacturing real-world objects. The embodiments described herein improve the functionality for designing components and parts with tabs and slots, and thus improve the real-world object manufacturing process. The use of tabs and slots on real-world objects improves the real-world tasks of assembly and welding, and alleviates the need to physically manufacture and / or produce complex fasteners to secure parts together. Thus, by using the functionality described herein, for example, method 600 ( Figure 6 ) or 900( Fig. 9 ) improves methods for designing real-world objects with tabs and slots, and embodiments ultimately provide improvements in welding and assembly of real-world objects.
[0095] Computer Support
[0096] Fig.10 is a schematic diagram of a computer network in which embodiments may be implemented.
[0097] The client computers / devices 50 and server computers 60 provide processing, storage, and input / output devices for executing application programs, etc. The client computers / devices 50 may also be linked to other computing devices, including other client devices / processors 50 and server computers 60, via a communication network 70. The communication network 70 may be a remote access network, a global network (e.g., the Internet), a cloud computing server or service, a worldwide collection of computers, a local area network or a wide area network, and currently uses corresponding protocols (TCP / IP (Transmission Control Protocol / Internet Protocol), Other electronic device / computer network architectures are suitable.
[0098] Fig.11 It is shown Fig.1086. A block diagram of an example embodiment of a computer node (e.g., a client processor / device 50 or a server computer 60) in a computer network of FIG. 87. Each computer node 50, 60 contains a system bus 79, where a bus is a set of hardware lines used for data transfer between components of a computer or processing system. The bus 79 is essentially a shared pipe that connects the different elements of the computer system (e.g., processor, disk storage device, memory, I / O ports, network ports, etc.), which enables information to be transferred between the elements. An I / O device interface 82 is attached to the system bus 79 to connect various input and output devices (e.g., keyboard, mouse, display, printer, speakers, etc.) to the computer 50, 60. A network interface 86 allows the computer node to connect to a network (e.g., Fig.10 The memory 90 is used to implement the embodiments of the present disclosure (for example, the above-mentioned Figure 6 and 9 The computer software instructions 92a and data 94a for implementing the methods 600 and 900 described herein are provided with volatile storage. Disk storage device 95 provides non-volatile storage for computer software instructions 92 and data 94 for implementing embodiments of the present disclosure. Central processor unit 84 is also attached to system bus 79 and provides execution of computer instructions.
[0099] In one embodiment, the processor routine 92 and data 94 are a computer program product (generally referred to as 92) comprising a computer readable medium (e.g., a removable storage medium such as a DVD-ROM, CD-ROM, disk, tape, etc.) that provides at least a portion of the software instructions for the disclosed system. The computer program product 92 can be installed via any suitable software installation program, which is well known in the art. In another embodiment, at least a portion of the software instructions can also be downloaded via a cable, communication and / or wireless connection. In other embodiments, the disclosed program is a computer program propagation signal product embodied in a propagation medium (e.g., radio waves, infrared waves, laser waves, sound waves, or radio waves propagated through a global network such as the Internet or other networks). Such carrier media or signals provide at least a portion of the software instructions for the disclosed routine / program 92.
[0100] In alternative embodiments, the propagation signal is an analog carrier wave or a digital signal carried on a propagation medium. For example, the propagation signal may be transmitted through a global network (e.g., the Internet), a telecommunications network, or other network (e.g., Fig.10In one embodiment, the propagated signal is a signal transmitted over a propagation medium over a period of time, such as instructions of a software application program sent in packets over a network over a period of milliseconds, seconds, minutes, or longer. In another embodiment, the computer readable medium of the computer program product 92 is a propagation medium that can be received and read by the computer system 50, such as by receiving the propagation medium and identifying the propagation signal embodied in the propagation medium, as described above for the computer program propagation signal product.
[0101] Generally speaking, the term "carrier medium" or transient carrier encompasses the aforementioned transient signals, propagation signals, propagation media, storage media, and the like.
[0102] In other embodiments, program product 92 may be implemented as so-called software as a service (SaaS) or other installation or communication support for end users.
[0103] Embodiments or aspects thereof may be implemented in the form of hardware, including but not limited to hardware circuitry, firmware, or software. If implemented in software, the software may be stored on any non-transitory computer-readable medium that is configured to enable a processor to load the software or a subset of its instructions. The processor then executes the instructions and is configured to operate or cause the device to operate in the manner described herein.
[0104] Further, hardware, firmware, software, routines or instructions may be described herein as performing certain actions and / or functions of a data processor. However, it should be understood that such descriptions included herein are only for convenience and such actions are actually caused by a computing device, processor, controller or other device executing firmware, software, routines, instructions.
[0105] It should be understood that flow charts, block diagrams, and network diagrams may include more or fewer elements, be arranged in different ways, or be presented in different ways. However, it should be further understood that certain embodiments may indicate block diagrams and network diagrams and the number of block diagrams and network diagrams that illustrate the execution of an embodiment implemented in a particular manner.
[0106] Therefore, other embodiments may also be implemented in a variety of computer architectures, physical computers, virtual computers, cloud computers and / or some combination thereof, and therefore the data processor described herein is intended only for illustrative purposes and not as a limitation of the embodiments.
[0107] The teachings of all patents, published applications, and references cited herein are incorporated by reference in their entirety.
[0108] While example embodiments have been particularly shown and described, it will be understood by those skilled in the art that various changes in form and details may be made therein without departing from the scope of the embodiments as encompassed by the following claims.
Claims
1. A computer-implemented method for automatic slot propagation in a computer-aided design (CAD) model, the computer-implemented method comprising: In the CAD model: identifying a first instance of a tab feature, said first instance of the tab feature being associated with a corresponding first instance of a slot feature; identifying a second instance of the tab feature; and The slot feature is automatically propagated by creating a second instance of the slot feature in a component of the CAD model, the second instance of the slot feature corresponding to the identified second instance of the tab feature.
2. The method of claim 1 , wherein identifying the second instance of the tab feature comprises: A given instance of the tab feature that is not associated with a corresponding instance of the slot feature is identified in the CAD model, the identified given instance being the identified second instance of the tab feature.
3. The method of claim 2, wherein identifying the given instance of the tab feature comprises: The given instance of the tab feature is determined to interface with the component of the CAD model.
4. The method of claim 1 , wherein creating the second instance of the slot feature in the component of the CAD model comprises: A slot transform operation is applied to the component of the CAD model based on a tab transform operation associated with the tab feature.
5. The method according to claim 1, further comprising: A reference to the created second instance of the slot feature is stored in a data structure associated with the tab feature.
6. The method according to claim 1, further comprising: A reference to the tab feature is stored in a data structure associated with the created second instance of the slot feature. The method of claim 6 , wherein the reference to the tab feature comprises a transformation matrix.
8. The method of claim 1, wherein the second instance of the tab feature is identified in response to user interaction with an interface of a CAD system.
9. The method according to claim 8, further comprising: A user interface of the CAD system is presented in response to identifying the second instance of the tab feature.
10. The method according to claim 1, further comprising: determining a position update for a given instance of the tab feature; as well as Based on the determined position update, a position of the given instance of the slot feature corresponding to the given instance of the tab feature is modified.
11. The method of claim 10, wherein determining the position update of the given instance of the tab feature comprises: A mismatch between (i) a position of the given instance of the tab feature in the CAD model and (ii) a stored indication of a position of the given instance of the tab feature is identified.
12. The method of claim 11, wherein the stored position indication comprises a spatial transformation matrix.
13. A computer-based system for automatic slot propagation in a computer-aided design (CAD) model, the computer-based system comprising: processor; as well as a memory having computer code instructions stored thereon, the processor and the memory having the computer code instructions being configured to cause the computer-based system to: identifying a first instance of a tab feature, said first instance of the tab feature being associated with a corresponding first instance of a slot feature; identifying a second instance of the tab feature; and The slot feature is automatically propagated by creating a second instance of the slot feature in a component of the CAD model, the second instance of the slot feature corresponding to the identified second instance of the tab feature.
14. The computer-based system of claim 13, wherein upon identifying the second instance of the tab feature, the processor and the memory having the computer code instructions are configured to cause the computer-based system to: A given instance of the tab feature that is not associated with a corresponding instance of the slot feature is identified in the CAD model, the identified given instance being the identified second instance of the tab feature.
15. The computer-based system of claim 14, wherein upon identifying the given instance of the tab feature, the processor and the memory having the computer code instructions are configured to cause the computer-based system to: The given instance of the tab feature is determined to interface with the component of the CAD model.
16. The computer-based system of claim 13, wherein when creating the second instance of the socket feature in the component of the CAD model, the processor and the memory having the computer code instructions are configured to cause the computer-based system to: A slot transform operation is applied to the component of the CAD model based on a tab transform operation associated with the tab feature.
17. The computer-based system of claim 13, wherein the processor and the memory having the computer code instructions are further configured to cause the computer-based system to: A reference to the created second instance of the slot feature is stored in a data structure associated with the tab feature.
18. The computer-based system of claim 13, wherein the processor and the memory having the computer code instructions are further configured to cause the computer-based system to: A reference to the tab feature is stored in a data structure associated with the created second instance of the slot feature.
19. The computer-based system of claim 13, wherein the processor and the memory having the computer code instructions are further configured to cause the computer-based system to: determining a position update for a given instance of the tab feature; and Based on the determined position update, a position of the given instance of the slot feature corresponding to the given instance of the tab feature is modified.
20. A non-transitory computer program product for automatic slot propagation in a computer-aided design (CAD) model, the non-transitory computer program product comprising a computer-readable medium having computer code instructions stored thereon, the computer code instructions being configured to, when executed by a processor, cause a device associated with the processor to, in the CAD model: identifying a first instance of a tab feature, said first instance of the tab feature being associated with a corresponding first instance of a slot feature; identifying a second instance of the tab feature; and The slot feature is automatically propagated by creating a second instance of the slot feature in a component of the CAD model, the second instance of the slot feature corresponding to the identified second instance of the tab feature.