Method and system for automatic slot propagation

By automatically identifying and creating slot features in the CAD system, the problem of inefficient creation of slot features in manual slot features in the prior art is solved, and a more efficient CAD model design and manufacturing process is achieved.

JP2025019040AInactive Publication Date: 2025-02-06DASSAULT SYSTEMES SOLIDWORKS CORP
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
JP2024120796
Authority / Receiving Office
JP · JP
Patent Type
Applications
Current Assignee / Owner
Priority Date
2023-10-31
Filing Date
2024-07-26
Publication Date
2025-02-06
Estimated Expiration
Not applicable · inactive patent

AI Technical Summary

Technical Problem

When creating components containing multiple instances, existing CAD systems need to manually create notch features for each instance, resulting in inefficiency and excessive time-consuming problems.

Method used

Through automated methods, based on data structures and computer algorithms, the standard features in the components are identified and slot features are automatically created at corresponding locations, reducing manual operations.

Benefits of technology

It improves the efficiency of CAD model creation, reduces the time for users to operate manually, improves the accuracy and efficiency of design, and reduces labor costs.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 2025019040000001_ABST
    Figure 2025019040000001_ABST
Patent Text Reader

Abstract

To provide a method for automatically creating slots for tabs without slots.SOLUTION: A method for executing automatic slot propagation in CAD models includes: identifying a first instance of a tab feature in a CAD model, the 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 in the CAD model, e.g., a tab that does not have a slot; and automatically propagating the slot feature by creating a second instance of the slot feature in a component of the CAD model. The second instance of the slot feature corresponds to the identified second instance of the tab feature.SELECTED DRAWING: Figure 9
Need to check novelty before this filing date? Find Prior Art

Description

[Background technology]

[0001] Many existing products and simulation systems are offered on the market for designing and simulating objects, such as components, parts, assemblies of components or parts, etc. 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, such as real-world objects. Thus, CAD and CAE systems represent modeled objects using edges, lines, faces, polygons, or closed volumes. The lines, edges, faces, polygons, and closed volumes can be represented in various ways, for example, Non-Uniform Rational B-Splines (NURBS).

[0002] A CAD system manages parts or assemblies of parts of a modeled object, which are primarily specifications of geometry. In particular, a CAD file contains the specifications from which geometry is generated. From the geometry, a representation is generated. The specifications, geometry, and representation may be stored in a single CAD file or in multiple CAD files. A CAD system includes graphic tools to represent the modeled object to a designer, and these tools are dedicated to the display of complex objects. For example, an assembly may contain thousands of parts. A CAD system may be used to manage models of objects that are stored in electronic files.

[0003] CAD and CAE systems use computer-based models to represent objects. The computer-based models may be programmed such that they have the properties (e.g., physical, material, or other physics-based) of the underlying real-world objects that the models represent. Additionally, the computer-based models may be used to perform simulations of the real-world objects / environments that the models represent. Summary of the Invention

[0004] For example, common computer-based modeling tasks in CAD and CAE systems involve components and parts that have tabs and slots.

[0005] In a computer-based model, e.g., a CAD model, an assembly may include a part(s) that may need to be interlocked with an adjacent component(s). This interlocking is often done using tabs and slots, where the tabs are configured to physically interlock or mate with the slots. In some existing approaches, when a computer-based model includes multiple instances of a part, e.g., a component having a tab feature, a corresponding slot must be manually sketched and cut out for each instance of the part. In other current approaches, a corresponding slot is automatically created for the first instance of a part having a tab feature. However, corresponding slots must be manually created for all other instances of the part. Such a manual process is time consuming, tedious, and inefficient.

[0006] The embodiments address shortcomings of current approaches by providing the ability to automatically propagate slot(s) from one or more instances of a tab component onto component(s), e.g., adjacent components, in a single operation. If an instance of a tab component does not have a corresponding slot, the embodiments can automatically detect the component's face and propagate the slot onto the detected face. Thus, the embodiments reduce or ease the ergonomic burden on CAD and other computer-based modeling system users by freeing the user from the laborious and repetitive task of manually creating slots for each tab where slot propagation is desired / required.

[0007] Exemplary embodiments are directed to a computer-implemented method for automatic propagation of slots in a CAD model. To begin, 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. Thereafter, the method automatically propagates the slot feature by creating a second instance of the slot feature in a component part of the CAD model. The created second instance of the slot feature corresponds to the identified second instance of the tab feature.

[0008] In one 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 an embodiment, 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 part of the CAD model.

[0009] In another embodiment, creating a second instance of the slot feature in the component of the CAD model includes applying a slot conversion operation to the component of the CAD model based on a tab conversion operation associated with the tab feature.

[0010] In yet another embodiment, the method 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 an exemplary embodiment, the method 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.

[0011] In one 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 an 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 the given instance of the tab feature and modifying a position of the given instance of the slot feature corresponding to the given instance of the tab feature based on the determined position update. In one such embodiment, determining the position update for the given instance of the tab feature includes identifying a discrepancy between a position of the given instance of the tab feature in the CAD model and a representation of a saved position of the given instance of the tab feature. According to one embodiment, the representation of the position is saved in a slot data structure associated with the given instance of the slot feature. In an exemplary embodiment, the saved representation of the position includes a spatial transformation matrix.

[0013] Another exemplary embodiment is directed to a computer-based system for automated slot propagation in a CAD model. The system includes a processor and a memory having computer code instructions stored thereon. In such an embodiment, the processor and memory are configured to use the computer code instructions to cause the system to implement any embodiment or combination of embodiments described herein.

[0014] Yet another exemplary embodiment is directed to a non-transitory computer program product for automated slot propagation in a CAD model. The computer program product includes a computer readable medium having stored thereon computer code instructions that, when executed by a processor, are configured to cause equipment associated with the processor to implement any embodiment or combination of embodiments described herein.

[0015] It should be noted that the methods, systems, 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 become apparent from the following more particular description of exemplary embodiments, as illustrated in the accompanying drawings, in which like reference characters refer to the same parts throughout the different views, and in which the drawings are not necessarily to scale, emphasis instead being placed upon illustrating embodiments. [Figure 1] FIG. 1 illustrates a problem of existing tools that is solved by an embodiment. [Figure 2A] FIG. 2A illustrates an exemplary interface, eg, a software interface, a CAD interface, etc., in which embodiments may be implemented. [Figure 2B] FIG. 2B illustrates an exemplary interface, eg, a software interface, a CAD interface, etc., in which embodiments may be implemented. [Diagram 3] FIG. 3 illustrates an example of automatic slot propagation in a CAD model according to an embodiment. [Figure 4] FIG. 4 illustrates an example of automatic slot propagation in a CAD model according to an embodiment. [Diagram 5] FIG. 5 illustrates an example of automatic slot propagation in a CAD model according to an embodiment. [Figure 6] FIG. 6 is a flowchart of an exemplary method for automatic slot propagation in a CAD model according to one embodiment. [Figure 7A] 7A-7C show an exemplary pre-slot propagation assembly and post-slot propagation assembly, respectively, according to one embodiment. [Figure 7B] FIG. 7B illustrates an exemplary pre-slot propagation assembly and post-slot propagation assembly, respectively, according to one embodiment. [Figure 8]FIG. 8 is a schematic diagram of an exemplary CAD model and data structures used in conjunction with the CAD model. [Figure 9] FIG. 9 is a flowchart of a method for automatic slot propagation in a CAD model according to an embodiment. [Figure 10] FIG. 10 is a schematic diagram of a computer network in which embodiments may be implemented. [Figure 11] FIG. 11 is a block diagram illustrating an exemplary embodiment of a computer node in the computer network of FIG. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

[0017] A description of an exemplary embodiment follows.

[0018] In real-world objects, e.g., bridges, cars, buildings, etc., parts, e.g., bridge trusses, sheet metal parts of a car body, structural members, are often physically interlocked. This interlocking is often achieved using tabs and slots, where a tab on one part is configured to physically join or mate with a slot on another part, e.g., an adjacent part. Among other benefits, the physical interlocking achieved by the tabs and slots makes it easy to weld the parts together and minimizes the need to construct 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 object of interest is represented by a computer-based model, e.g., a CAD model.

[0019] In many existing approaches, creating a computer-based model that represents a real-world object with tabs and slots requires the user to manually create a slot for each tab. This entirely manual approach has some improvements, for example, in SOLIDWORKS®, offered by applicant-assignee Dassault Systemes SolidWorks, Inc. (Waltham, Massachusetts). In SOLIDWORKS®, specifically, when a user creates a tab feature on a part, e.g., a component, a slot feature is automatically created on adjacent components to accommodate the tab. However, in an assembly having multiple instances of that part, slots corresponding to the tabs of each of the other instances are not automatically created. Thus, when a user creates a tab on a part, the slot is only created at the location of the first instance of the part, while the slot is not propagated to other instances of the same part. The existing solution in SOLIDWORKS® is to manually create cutouts to compensate for the missing slots, which is time-consuming and very tedious.

[0020] Figure 1 shows an example software interface 120 illustrating a problem solved by an embodiment. As shown in Figure 1, interface 120 includes a CAD model 121. CAD model 121 includes part instances 122a, 122b, and 122c that are adjacent to parts 123, 124, and 125, respectively.

[0021] Consider the manual slot creation problem discussed above with reference to FIG. 1. In the existing SOLIDWORKS® environment, a user can create tab 126a on part instance 122a, and automatically slot 127 is created on part 123. Furthermore, using existing SOLIDWORKS® functionality, when tab instance 126a is created, the tab is propagated across other part instances, i.e., instances 122b and 122c, as tab 126b and tab 126c, respectively. However, the problem is that slots are not automatically created on parts 124 or 125. An embodiment solves this problem.

[0022] 2A illustrates an example software interface 110 in which an embodiment may be implemented. As shown in FIG. 2A, interface 110 includes a CAD model 111. CAD model 111 includes an assembly 115 and a subassembly 116 that contain tab component instances 112a-f and 113a-b, respectively. CAD model 111 also includes a component 114.

[0023] 2B illustrates another exemplary software interface 220 in which an embodiment may be implemented. The interface 220 includes a CAD model 221 and a menu 222. The menu 222 includes a command 223 for automatic slot propagation in the CAD model 221 according to an embodiment, e.g., method 600 (FIG. 6) or 900 (FIG. 9). As shown in FIG. 2B, the CAD model 221 includes an assembly 226 that includes tab component instances 224a-e. The assembly 226 also includes a subassembly 227 that includes tab component instances 225a-b. In an embodiment, the tab component instance 224a may be displayed with shading and / or coloring in the interface 220 to indicate that the tab component instance 224a has been selected by a user and / or designated for automatic slot propagation (e.g., pursuant to command 223), for example. Similarly, in embodiments, the tab component instances 225a-b may be displayed in interface 220 with shading and / or coloring to indicate that the instances 225a-b belong to a subassembly, such as subassembly 227, for example.

[0024] According to one embodiment, novel functionality for automatic slot propagation, such as methods 600, 900, etc. described herein, is provided when an assembly has a component that includes a tab feature, such as tab component instance 224a. Automatic slot propagation may be provided regardless of how a component is inserted into an assembly, such as by inserting a component, by Ctrl (Control) + dragging a component, by copying and pasting a component, or by any other known technique for inserting a component into an assembly. Additionally, the automatic slot propagation functionality of the embodiments may be provided via a menu presented or displayed in response to clicking a right mouse button (RMB) on a component, such as component instance 224a of CAD model 221, such as a "Propagate Slots" command, such as menu command 223 of menu 222, or by any other suitable technique known to one of skill in the art.

[0025] In one embodiment, when the Auto Slot Propagate command is invoked, for example, via the RMB click described above, three options may be provided, for example, as follows:

[0026] 1. Instances of the selected component FIG. 3 illustrates an interface 330 showing example options for automatic slot propagation in a CAD model 331, according to one embodiment. The example option shown in FIG. 3 is automatic slot propagation for a selected component instance, the selected component instance having an instance of a tab feature. As shown in FIG. 3, the CAD model 331 includes a selected tab component instance 337b that belongs to an assembly 340. The assembly 340 also includes tab component instances 337a and 337c-f, as well as a subassembly 341. The subassembly 341, in turn, includes tab component instances 338a-b. The interface 330 also includes a menu 332 having a text area 333 and radio buttons 334a-c. In the example embodiment shown in FIG. 3, the text area 333 lists identifiers 335 corresponding to the selected tab component instance 337b to which the slots may be propagated. The menu 332 further includes icons or buttons 336a and 336b. In one embodiment, menu 332 may be displayed or presented in response to a user selecting or initiating a propagate slot command, for example, by selecting menu command 223 (FIG. 2B).

[0027] In the embodiment of automatic slot propagation illustrated by interface 330, a radio button 334a is selected indicating that the slot is to be propagated to the selected tab component instance 337b. An identifier 335 corresponding to the tab component instance 337b to which the slot may be propagated is then displayed in text area 333. Optionally, the selected or identified tab component instance, e.g., 337b, may be highlighted in the CAD interface, e.g., in the graphics area of ​​interface 330, by coloring and / or shading, or by any other known highlighting technique. The user then selects or activates button 336a or 336b to indicate whether to proceed with automatic slot propagation for tab component instance 337b, respectively. If the user selects to proceed with slot propagation, a slot is automatically created in the component 339 that interfaces with the tab on part instance 337b. Note that since Figure 3 illustrates slot propagation for a selected tab component instance, the slot is propagated to the selected tab instance 337b and not to the remaining tab instances 337a, 337c-f and 338a-b. Note further that in one embodiment, the slot may be automatically propagated to the selected tab instance 337b based on a pre-existing slot corresponding to the first part instance that shares a common tab feature with instance 337b, where the pre-existing slot was created using the current automatic slot creation techniques described above.

[0028] 2. One or more instances of the component in the parent assembly FIG. 4 illustrates an interface 440 showing example options for automatic slot propagation in a CAD model 441, according to one embodiment. The example option shown in FIG. 4 is automatic slot propagation for all tab component instance(s) in a given parent assembly. In the example shown in FIG. 4, a parent assembly 450 includes a CAD model 441 and tab component instances 447a-f. The parent assembly 450 also includes a subassembly 451, which contains tab component instances 448a-b. As shown in FIG. 4, the interface 440 also includes a menu 442 having a text area 443 and radio buttons 444a-c. In the example embodiment shown in FIG. 4, the text area 443 lists identifiers 445a-f corresponding to component instances 447a-f (belonging to the same parent assembly 450) to which slots may be propagated. The menu 442 further includes small icons or buttons 446a and 446b. In one embodiment, menu 442 may be displayed or presented in response to a user selecting or initiating a slot propagation command, for example, by selecting menu command 223 (FIG. 2B).

[0029] In the embodiment of automatic slot propagation illustrated by interface 440, radio button 444b has been selected, for example, by a user, indicating that automatic slot propagation is evaluated for other component instance(s) (e.g., 447b-447f) that belong 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 that belong to the same parent assembly as the selected component 447a is 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 instance(s), for example, 447a-447f, may be highlighted in a graphics area of ​​the CAD interface, for example interface 440, by coloring and / or shading, or by any other known highlighting technique. The user then selects or activates buttons 446a or 446b to indicate whether to proceed with automatic slot propagation for components 447a-f, respectively. If the user selects to proceed with slot propagation, slots are automatically created in the component(s) that interface with the tab according to the selected propagation method, e.g., the method selected using radio buttons 445a-c. In the example of FIG. 4, slots are created in component 449 that interfaces with the tab on part instances 447a-d. Also note that corresponding slots are not created for tab instances 447e and 447f, since they do not interface with component 449 or any other components. Furthermore, identifiers for tab instances 448a and 448b are not listed in text area 443, and similarly, slot propagation is not performed for tab instances 448a and 448b, since they do not belong to assembly 450 of selected component 447a.

[0030] 3. Instance(s) of the component in the CAD model FIG. 5 illustrates an interface 550 showing an example embodiment for automatic slot propagation in a CAD model 551, including an assembly 560 and a subassembly 561. An example option shown in FIG. 5 is automatic slot propagation for all component instance(s) of a given CAD model, e.g., CAD model 551, where each component instance of the given CAD model has a respective instance of a tab feature. As shown in FIG. 5, CAD model 551 includes tab component instances 557a-f that belong to assembly 560, and tab component instances 558a-b that belong to subassembly 561. Interface 550 includes a menu 552 having a text area 553 and radio buttons 554a-c. In the example embodiment shown in FIG. 5, text area 553 includes identifiers 555a-f and 555g-h that correspond to tab component instances 557a-f and 558a-b, respectively, to which slots may be propagated. Menu 552 further includes small icons or buttons 556a and 556b. In one embodiment, menu 552 may be displayed or presented in response to a user selecting or initiating a propagate slot command, for example, by selecting menu command 223 (FIG. 2B).

[0031] In the embodiment of automatic slot propagation illustrated by interface 550, radio button 554c has been selected, for example, by a user, indicating that automatic slot propagation is evaluated for all component instance(s) of the same CAD model 551 as the selected instance 557a, regardless of whether such instance(s) 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 that belong to the same CAD model 551 are identified and, optionally, highlighted in interface 550. Identifiers 555a-f and 555g-h, which may correspond, for example, to tab instances 557a-f and 558a-b, respectively, are then listed in text area 553. Optionally, the selected or identified component instance(s), e.g., 557a-f and 558a-b, may be further highlighted in the CAD interface, e.g., in a graphics area of ​​the interface 550, by coloring and / or shading, or by any other known highlighting technique. Note further that in this example, for example, if radio button 554b is selected, instances 558a-b are not highlighted because they are in assembly 561 and outside of assembly 560 to which selected component 557a belongs. The user then selects or activates buttons 556a or 556b to indicate whether to proceed with automatic slot propagation for components 557a-f and 558a-b (having corresponding identifiers 555a-f and 555g-h displayed in text area 553), respectively. If the user chooses to proceed with slot propagation, the slot is automatically created in the component(s) that interface with the slot according to the selected propagation method, e.g., the method selected using radio buttons 554a-c. In the example of Figure 5, the slot is created in component 559 that interfaces with tabs on part instances 557a-d and 558a-b.Note that corresponding slots are not created for instances 557e and 557f, since they do not interface with component 559 or any other components.

[0032] FIG. 6 is a flowchart of an exemplary method 600 for automatic slot propagation in a CAD model, e.g., CAD model 111 (FIG. 2A), 221 (FIG. 2B), 331 (FIG. 3), 441 (FIG. 4), or 551 (FIG. 5), according to one embodiment. Method 600 is a computer-implemented method and, as such, may be implemented using any computing device or combination of computing devices known to those of skill in the art. At step 601, method 600 detects a call to a component in an assembly, e.g., as a result of a user's RMB or other click or GUI interaction with the component, adding an instance of the component to the CAD model, or any other suitable action or interaction known to those of skill in the art. Next, at step 602, method 600 determines whether the component, e.g., tab component instance 112a (FIG. 2A), has a tab feature. If not (no at step 602), the method 600 moves to step 603, where the method 600 refrains from showing or displaying an auto slot propagation command, such as menu command 223 of menu 222 (FIG. 2B). However, if at step 602 it is determined that the component has a tab feature, the method 600 moves to step 604.

[0033] In one embodiment, a tab feature may have an associated data structure, e.g., a list or array, that contains information, such as a reference(s) or pointer(s), regarding the corresponding instance(s) of a slot feature that corresponds to the tab feature. Similarly, according to one embodiment, an instance of a slot feature may have an associated data structure that contains information, such as a reference or pointer, regarding the tab feature that corresponds to the slot feature. In this manner, a tab feature may be paired with a corresponding instance(s) of a slot feature, and similarly, an instance of a slot feature may be paired with a corresponding tab feature. Further details regarding tab and slot data structures that may be used in the embodiments are described below in connection with FIG. 8.

[0034] Continuing with step 604 of FIG. 6, in one embodiment, method 600 may use the data structures described above to determine whether a slot feature exists for the tab feature of the component instance called in step 601. According to one embodiment, determining whether a slot exists corresponding to the tab feature in step 604 includes checking the tab data structure to see if a reference exists between the tab data structure (corresponding to the tab feature on the component instance called in step 601) and a slot instance in the slot data structure. In one such embodiment of method 600, this check in step 604 is made by analyzing data structure(s), such as data structure(s) 884, 886a, and / or 886b, described below in connection with FIG. 8.

[0035] Referring again to FIG. 6, if the method 600 determines in step 604 that a corresponding slot feature already exists for the tab feature, the method 600 proceeds to step 603 and no slot propagation command, e.g., menu command 223 of menu 222, is presented. Otherwise, if it is determined in step 604 that no slot feature exists corresponding to the tab feature, the method 600 moves to step 605. However, it should be noted that in some embodiments, the method 600 may proceed to step 605 even if a corresponding slot feature is determined to exist in step 604. In more detail, the method 600 (illustrated in FIG. 6) implements functionality in which a slot is propagated to a selected / invoked tab component. Such functionality has been described herein above in relation to FIG. 3. However, the method 600 may also be configured to implement functionality described herein above in relation to FIGS. 4-5, i.e., propagating slots of all tab component instances in the same assembly as the selected tab component (FIG. 4) or all tab component instances in the CAD model (FIG. 5). In such a modified embodiment of method 600, the logic in step 604 may consider whether the called, e.g., 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 put, step 604 may consider whether there are tab component instances for which to evaluate slot propagation (according to the selected propagation type). In this modified example, if there is a tab instance for which to consider slot propagation, e.g., a tab without a slot, method 600 moves to step 605.

[0036] Continuing with FIG. 6, at step 605, the method 600 displays or presents a slot propagation command, e.g., menu command 223 of menu 222. Next, at step 606, the method 600 determines whether a slot propagation command has been initiated, e.g., by a user clicking, selecting, or otherwise activating the command. If a propagation command has not been initiated at step 606, the method 600 moves to step 607 and no action is performed by the method 600. Otherwise, if a slot propagation command has been initiated (as determined at step 606), the method 600 determines at step 608 whether the instance(s) of the tab feature, e.g., tab component instance 112a, interfaces with other component(s) of the assembly. It should be noted that while step 608 of FIG. 6 refers to checking whether an instance of a tab interfaces with other components in an assembly, the embodiment of FIG. 6 is not limited to checking whether instances in a single assembly interface with components. Alternatively, similar to the embodiment described herein above in relation to FIG. 5, an embodiment of the method 600 may operate across multiple assemblies and CAD models.

[0037] According to one embodiment, interference checking is performed in step 608 of method 600 to determine whether an instance of a tab feature, e.g., tab component instance 112a (FIG. 2A), interfaces with a component. In one such embodiment, performing an interference check may include applying a transform to determine whether two bodies, parts, or components are in close proximity to one another such that one body may cut into the other. For example, according to one embodiment, interference checking may be used to determine whether an instance of a tab feature, e.g., tab component instance 112a, touches or cuts into another component or part. Thus, in one embodiment, interference checking may be used to determine whether two geometries are touching or collide, bump, or interfere with one another.

[0038] In an exemplary embodiment, performing the interference check may include calculating and / or applying a transformation operation(s) to the component(s) in the CAD model, e.g., CAD model 111 (FIG. 2A). According to one such embodiment, the transformation operation(s) may be calculated and / or applied via a mathematical calculation library or application programming interface (API), or any other suitable library or API known to one of ordinary skill 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 components in a common or shared coordinate system. For example, according to one such embodiment, the position of a tab feature relative to the coordinate system of its own component (e.g., tab component instance 112a) may be (5.0, 5.0, 5.0), but when the component is placed in an assembly, e.g., assembly 115 (FIG. 2A), its position may be (10.0, 10.0, 10.0) relative to the coordinate system of the assembly. Thus, according to one embodiment, the interface check at step 608 of method 600 may include determining the location of potentially mating components in the assembly coordinate system. Similarly, performing the interface check at step 608 may include determining the location of one component in the coordinate system of another component. In this manner, one such embodiment evaluates possible interfaces between components in a common or shared coordinate system.

[0039] Such functionality may include utilizing a transformation operation to identify the location of the tab feature in its own component (e.g., 112a) coordinate system and then calculating the location of the tab feature in the assembly's coordinate system by multiplying the identified location with a transformation matrix. According to one embodiment, further calculations may be performed to determine whether the transformation indicates that an interface, e.g., interference, exists between the two components. In one such embodiment, determining the presence of an interface may be based on the location of the tab feature and / or the slot feature in the assembly coordinate system. In particular, a transformation operation may be performed on the location of the tab and the location of the component in which the slot is to be created in order to determine the location of the tab and potential slot in the same coordinate system (e.g., assembly coordinate system). In this manner, such an embodiment may determine whether the tab interfaces with the component in which the slot is to be created.

[0040] According to another embodiment, a component of a CAD model, e.g., tab component instance 112a, may include (x, y, z) coordinates that indicate the location of the component within the CAD model, e.g., CAD model 111 (FIG. 2A). Additionally, in an exemplary embodiment, an edge or face of a component, e.g., tab component instance 112a, may include multiple points. According to one such exemplary embodiment, a transformation may be calculated to determine whether any of the multiple points interfere, e.g., intersect, with other component(s) within the CAD model. In another embodiment, such calculations may be performed via a formula library or API, or any other suitable library or API known to one of ordinary skill in the art. Additionally, in yet another embodiment, if a CAD model, e.g., CAD model 111, includes a complex hierarchy of assemblies, each with its own components, performing an interference check may include calculating multiple transformations.

[0041] Continuing with FIG. 6, if at step 608 it is determined that the instance of the tab feature, e.g., tab component instance 112a, does not interface with other component(s) in the assembly, then the method 600 proceeds to step 607 and no action is performed. Otherwise, if at step 608 it is determined that the instance of the tab interfaces with other component(s), then the method 600 moves to step 609 and propagates the instance of the corresponding slot feature.

[0042] In one embodiment, at step 609, method 600 may identify a tab transformation operation associated with the tab feature. Method 600 may further identify a slot body(s) associated with the tab feature. According to one embodiment, the slot body may also be referred to as an interference body and may refer to a location to which the slot is propagated. In another embodiment, method 600 may determine or calculate a transformation required to notch an instance of a corresponding slot feature based on the tab transformation operation. Furthermore, in yet another embodiment, method 600 may also perform automatic slot propagation by creating new instance(s) of a corresponding slot feature in a component(s) of an assembly determined in step 608 to interface with the component(s) where the instance(s) of the tab feature, e.g., tab component instance 112a, is / are.

[0043] As previously discussed, method 600 is computer implemented, such that functions and effective operations, e.g., steps 601-609, are implemented automatically by one or more digital processors. Additionally, method 600 can be performed using any computer device or combination of computing devices known in the art. Among other examples, method 600 may be implemented using computer(s) / device(s) 50 and / or 60 described below in connection with FIGS. 10 and 11. Additionally, although method 600 is described as being performed on a tab instance, it should be noted that method 600 may be performed on multiple tab instances simultaneously, such that multiple slots may be created simultaneously.

[0044] In one embodiment, the automatic slot propagation functionality of method 600 is also implemented when a component within an assembly, such as tab component instance 112a, is patterned, mirrored, or otherwise duplicated, copied, or recreated. Additionally, it should be noted that embodiments of method 600 are not limited to operating on a single assembly, but rather the slot propagation functionality may be implemented across multiple different assemblies that contain parts.

[0045] Additionally, in yet another embodiment, when there are multiple configurations of a part or component, some of which have a tab feature and some of which do not, method 600 may ensure that an auto slot propagation command, such as menu command 223 included in menu 222 (FIG. 2B), is only available for configurations that have the tab feature.

[0046] Tab and Slot Associations 7A and 7B illustrate an example assembly before slot propagation 770a and after slot propagation 770b, respectively, according to one embodiment. As shown in FIG. 7A, before slot propagation, assembly 770a includes component part 771, tab feature instances 772a-772c, and slot feature instance 773a corresponding to tab feature instance 772a. In assembly 770a, slot feature instance 773a corresponds to tab feature instance 772a, while tab feature instances 772b and 772c lack such corresponding slot feature instances. However, according to one embodiment, automatic slot propagation can be used to propagate the slots of tab feature instances 772b and 772c.

[0047] As shown in Figure 7B, after slot propagation (e.g., by use of methods 600 and 900 described herein with respect to Figures 6 and 9, respectively), assembly 770b further includes corresponding slot feature instances 773b and 773c. In one embodiment, instances 773b and 773c correspond to tab feature instances 772b and 772c, respectively.

[0048] Geometry Update Mechanism FIG. 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. As shown in FIG. 8, the CAD model 880 includes a component 881, instances 882a and 882b of tab features, and slot features 883a and 883b of the component 881. In the CAD model 880, the slots 883a and 883b correspond to the tabs 882a and 882b, respectively. According to one embodiment, the definitions (e.g., geometric definitions) of the tabs 882a and 882b in the CAD model 880 also include references (e.g., pointers 888a and 888b, respectively) in memory that link the tabs 882a-b to a tab feature data structure 884. The tab feature data structure 884 indicates characteristics of the tab feature and includes indicators 885a and 885b of the slots (883a-b, respectively) associated with the tab feature. Each slot indicator 885a-b includes a respective reference, pointer 889a-b, that links the slot indicator 885a-b to a corresponding slot data structure 886a and 886b. Each slot indicator 885a-b also includes a pointer 890a-b that links the slot indicator 885a-b to an appropriate slot instance 883a-b in the CAD model 880. Additionally, each slot data structure 886a and 886b includes a respective indicator of an associated tab transformation matrix 887a-b. In one such embodiment, each matrix 887a and 887b may be a spatial transformation matrix or any other known transformation matrix and may define the position of a corresponding tab instance, e.g., 882a and 882b. According to another embodiment, the transformation matrix may be used to create a slot instance that corresponds to the tab instance defined by the transformation matrix.

[0049] In one embodiment, when an instance of a slot feature, e.g., 773a, 773b, or 773c (FIG. 7B), is propagated to an assembly component, e.g., component 771 (FIG. 7A), e.g., via method 600 (FIG. 6) or 900 (FIG. 9), a tab data structure, e.g., tab data structure 884, may be associated with a slot data structure, e.g., slot data structure 886a or 886b.

[0050] According to another embodiment, a tab data structure, eg, tab data structure 884, may be configured to store a list of references to propagation slot data structures, eg, references 889a or 889b.

[0051] In yet another embodiment, when the geometry of a tab, e.g., a tab feature having instances 772a-772c (FIG. 7A), is updated, notification(s) may be sent to the propagating slot(s), e.g., instances 773a, 773b, and / or 773c. Thus, according to one such embodiment, the geometry updates of the slots may be driven by corresponding changes in the geometry of the tabs. Propagating changes in the geometry of the tabs to the geometry of the slots in this manner may be referred to as "parametric connectivity" or "parametric modeling."

[0052] In another embodiment, a slot data structure, e.g., 886a or 886b, may store information about the location of a corresponding tab instance, e.g., 882a or 882b. The information about the location of the tab instance may be in the form of a spatial transformation matrix, e.g., 887a or 887b. Additionally, information indicating the location of the tab (stored in the slot data structure) may be included in a reference to the tab.

[0053] Below is pseudocode illustrating an exemplary tab and slot data structure according to one embodiment. class TabFeature { Array ListOfPropagatedSlots; } class SlotFeature { PropagateSlot() { } TabFeature* TabFeatureReference; Transformation TabTransformation; }

[0054] With reference to the pseudocode above, in an embodiment, a tab data structure, e.g., tab data structure 884, may be represented by an object that is an instance of a class such as the TabFeature class. According to one such embodiment, the instance of the TabFeature class may then include an array, ListOfPropagatedSlots, or other suitable known data structure, that includes slot indicators 885a-b and associated references 889a and 889b to respective slot data structures 886a and 886b, each of which represents a slot that has been propagated for the tab feature 884. Similarly, in another embodiment, a slot data structure, e.g., slot data structures 886a and / or 886b, may be represented by an object that is an instance of a class such as the SlotFeature class. According to one such embodiment, the instance of the SlotFeature class may include a reference, TabFeatureReference, which may be a reference to a corresponding instance of the TabFeature class, e.g., tab feature 884. Additionally, in yet another embodiment, an instance of the SlotFeature class may include an instance of TabTransformation of the Transformation class, which may be a transformation matrix, e.g., 887a or 887b, that defines the location of the corresponding tab component in the assembly. Finally, in one embodiment, an instance of the SlotFeature class may include a method or function called PropagateSlot() that implements logic for generating a slot cut in a slot component, for example, by getting the corresponding tab body, applying a transformation, and generating the slot cut using the transformation matrix.

[0055] Location update mechanism According to one embodiment, when a tab-bearing component 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 representation of the tab component's saved position. In one embodiment, the representation of the position is saved in a corresponding slot data structure. If an inconsistency is identified between the tab component's updated position and the representation of the tab component's saved position (e.g., in the slot data structure), the representation of the tab component's saved position is modified to match the updated position. According to an example embodiment, identifying the inconsistency may include determining whether a transformation, e.g., a spatial transformation matrix, is still valid. For example, in one such embodiment, the representation of the saved position may include a transformation matrix, e.g., 887a or 887b (FIG. 8), which may be compared to a current transformation matrix of a tab instance, e.g., 882a or 882b (FIG. 8), to determine whether the former has become out of date.

[0056] Exemplary Method Embodiments 9 is a flowchart 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 the CAD model. It should be noted that although the description herein refers to functions related to a CAD model, the embodiments may be implemented with respect to any computer-based model known to those of skill in the art.

[0057] The method 900 begins at step 901 by 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. Subsequently, at step 902, the method 900 identifies a second instance of the tab feature in the CAD model. Next, at step 903, the method 900 automatically propagates the slot feature by creating a second instance of the slot feature in a component part of the CAD model. The created second instance of the slot feature corresponds to the identified second instance of the tab feature.

[0058] As previously mentioned, method 900 is computer-implemented, such that functions and effective operations such as identifying (901 and 902) and propagating (903) are implemented automatically by one or more digital processors. Furthermore, method 900 can be implemented using any computer device or combination of computing devices known in the art. Among other examples, method 900 can be implemented using computer(s) / device(s) 50 and / or 60 described herein below in connection with FIGS. 10 and 11.

[0059] In one embodiment of the method 900, identifying a second instance of a tab feature (902) includes identifying a given instance of a tab feature in the CAD model that is not associated with a corresponding instance of a slot feature. The identified given instance is an identified second instance of the tab feature. For example, in one such embodiment, an instance of a tab feature can be identified as not associated with an instance of a corresponding slot feature by querying a data structure associated with the tab feature, where the data structure stores reference(s) to an existing instance(s) of the corresponding slot feature. According to another embodiment, identifying the given instance of the tab feature includes determining that the given instance of the tab feature interfaces with a component part of the CAD model. For example, in step 902, such an embodiment can identify a tab instance that interfaces, e.g., intersects / interferes with a part (e.g., component) in the CAD model, where the part does not have a slot corresponding to the identified tab instance.

[0060] In one embodiment of method 900, a second instance of the tab feature is identified 902 in response to user interaction with an interface, such as a graphical user interface (GUI), of the CAD system. 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.

[0061] 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 may be a calculation, such as a matrix calculation or other suitable calculation known to one of ordinary skill in the art, that defines an instance of a tab feature of a part / component. In one embodiment, the slot transform operation, e.g., a calculation to construct an instance of a corresponding slot feature in the component, may be derived from the tab transform operation.

[0062] 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 exemplary 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 discussed above, in one embodiment, the transformation matrix may be a matrix used as part of a calculation to construct or generate an instance of the slot feature. According to one embodiment, the transformation matrix (i.e., the tab transformation matrix) is stored with the slot data structure and applied to the tab body and used to generate a slot cut in the slot component (i.e., the component in which the slot instance is generated).

[0063] In another embodiment, the method 900 further includes determining a position update for the given instance of the tab feature and modifying a position of the given instance of the slot feature corresponding to the given instance of the tab feature based on the determined position update. According to one such embodiment, determining the position update for the given instance of the 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 representation of a saved position of the given instance of the tab feature. For example, such an embodiment may determine that the records of the position in the CAD model and the actual position do not match. According to one embodiment, the representation of the saved position is in a slot data structure associated with the given instance of the slot feature. In an exemplary embodiment, the representation of the saved position includes a spatial transformation matrix.

[0064] advantage The embodiments automatically propagate slots on components that interface / intersect with an instance(s) of a tab part or component. Such functionality may be performed in response to a selection of an instance of a tab component and may be performed for any desired tab instance. For example, slot propagation may be performed for a selected tab instance, all tab instance(s) in a parent assembly, or all tab instance(s) in a CAD model. Thus, a user of a CAD system is relieved from manually creating cutout(s) for a missing slot(s). This results in significant time savings, improved efficiency, and cost reduction, as well as increased accuracy of the design of the CAD model and the corresponding manufactured real-world product / object. Additionally, automatically propagating slots significantly improves user ergonomics.

[0065] Computer-based modeling is often an essential step in manufacturing real-world objects. The embodiments described herein provide improved capabilities for designing components and parts with tabs and slots, thereby improving the real-world object manufacturing process. The use of tabs and slots in real-world objects improves the real-world tasks of assembly and welding, alleviating the need to physically manufacture and / or produce complex fixtures to hold parts together. Thus, by improving the methods for designing real-world objects with tabs and slots using the capabilities described herein, for example, method 600 (FIG. 6) or 900 (FIG. 9), the embodiments ultimately provide improved welding and assembly of real-world objects.

[0066] Computer Support FIG. 10 is a schematic diagram of a computer network in which embodiments may be implemented.

[0067] The client computer(s) / device(s) 50 and server computer(s) 60 provide processing, storage, and input / output (I / O) devices for running application programs and the like. The client computer(s) / device(s) 50 can also be linked to other computing devices, including other client device(s) / processor(s) 50 and server computer(s) 60, via a communications network 70. The communications network 70 can be part of a remote access network, a global network (e.g., the Internet), a cloud computing server or service, a collection of computers around the world, a local or wide area network, and gateways that currently communicate with each other using their respective protocols (TCP / IP (Transmission Control Protocol / Internet Protocol), Bluetooth, etc.). Other electronic device / computer network architectures are also suitable.

[0068] FIG. 11 is a block diagram illustrating an exemplary embodiment of a computer node (e.g., client processor(s) / device(s) 50 or server computer(s) 60) in the computer network of FIG. 10. Each computer node 50, 60 contains a system bus 79, which is a set of hardware lines used to transfer data between components of a computer or processing system. The bus 79 is essentially a shared conduit that connects the various components of a computer system (e.g., processor, disk storage, memory, I / O ports, network ports, etc.) and allows information to be transferred between the components. Attached to the system bus 79 is an I / O device interface 82 for connecting various input / output devices (e.g., keyboard, mouse, display(s), printer(s), speaker(s), etc.) to the computer nodes 50, 60. A network interface 86 allows the computer nodes to connect to various other devices connected to a network (e.g., network 70 of FIG. 10). Memory 90 provides volatile storage for computer software instructions 92 and data 94 used to implement embodiments of the present disclosure (e.g., methods 600, 900, etc., discussed above with respect to Figures 6 and 9, respectively). Disk storage 95 provides non-volatile storage for computer software instructions 92 and data 94 used to implement embodiments of the present disclosure. Central processing unit 84 is also coupled to system bus 79 and executes computer instructions.

[0069] In one embodiment, the processor routines 92 and data 94 are a computer program product (generally referred to as 92) including a computer readable medium (e.g., removable storage medium such as DVD-ROM(s), CD-ROM(s), diskette(s), tape(s) etc.) that provides at least a portion of the software instructions for the disclosed system. The computer program product 92 can be installed by any suitable software installation procedure as known in the art. In another embodiment, at least a portion of the software instructions may also be downloaded via cable, communication and / or wireless connection. In other embodiments, the program of the present disclosure is a computer program propagated signal product embodied in a propagated signal on a propagated medium (e.g., radio waves, infrared waves, laser waves, sound waves, or electric waves propagated over a global network such as the Internet or other network(s)). Such carrier medium or signal provides at least a portion of the software instructions for the routines / programs 92 of the present disclosure.

[0070] In alternative embodiments, the propagated signal is an analog carrier wave or a digital signal carried on a propagation medium. For example, the propagated signal may be a digital signal propagated over a global network (e.g., the Internet), a communications network, or other network (e.g., network 70 of FIG. 10). In 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 transmitted in packets over a network over a period of milliseconds, seconds, minutes, or more. In another embodiment, the computer-readable medium of computer program product 92 is a propagation medium that computer system 50 can receive and read, for example, by receiving the propagation medium and identifying the propagated signal embodied in the propagation medium, as described above for computer program propagated signal products.

[0071] In general, the term "carrier medium" or transient carrier encompasses the aforementioned transient signals, propagated signals, propagated media, storage media, and the like.

[0072] In other embodiments, the program product 92 may be implemented as a so-called Software as a Service (SaaS) or other installation or communication supporting an end user.

[0073] The embodiments or aspects thereof may be implemented in the form of hardware, including but not limited to hardware circuits, firmware, or software. If implemented in software, the software may be stored on any non-transitory computer-readable medium configured to enable a processor to load the software, or a subset of its instructions. The processor is then configured to execute the instructions to operate an apparatus or cause it to operate in a method described herein.

[0074] Furthermore, hardware, firmware, software, routines, or instructions may be described herein as performing certain operations and / or functions of a data processor, however, it will be understood that such descriptions contained herein are merely for convenience and that such operations may in fact be attributable to a computing device, processor, controller, or other device executing the firmware, software, routines, instructions, etc.

[0075] It will be understood that the flow diagrams, block diagrams, and network diagrams may include more or fewer elements, may be arranged differently, or may be represented differently, but it will also be understood that a particular implementation may implement the block diagrams and network diagrams, and the number of block diagrams and network diagrams illustrating the implementation of an embodiment, in a particular way.

[0076] Accordingly, alternative embodiments may also be implemented in various computer architectures, physical computers, virtual computers, cloud computers, and / or some combination thereof, and thus the data processors described herein are intended to be illustrative only and not limiting of the embodiments.

[0077] The teachings of all patents, published applications, and references cited herein are incorporated by reference in their entirety.

[0078] While exemplary 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 encompassed by the appended claims.

Claims

1. 1. A computer-implemented method for automated 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, the 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 automatically propagating the slot feature by creating a second instance of the slot feature in a component part of the CAD model, the second instance of the slot feature corresponding to the identified second instance of the tab feature.

2. identifying the second instance of the tab feature; 2. The method of claim 1, comprising identifying a given instance of the tab feature in the CAD model that is not associated with a corresponding instance of the slot feature, the identified given instance being the identified second instance of the tab feature.

3. Identifying the given instance of the tab feature includes: The method of claim 2 , comprising determining that the given instance of the tab feature interfaces with the component part of the CAD model.

4. creating the second instance of the slot feature in the component part of the CAD model; The method of claim 1 , comprising applying a slot conversion operation to the component part of the CAD model based on a tab conversion operation associated with the tab feature.

5. The method of claim 1 , further comprising: storing a reference to the created second instance of the slot feature in a data structure associated with the tab feature.

6. The method of claim 1 , further comprising storing a reference to the tab feature in a data structure associated with the created second instance of the slot feature.

7. The method of claim 6 , wherein the reference to the tab feature includes 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 of claim 8 , further comprising presenting the user interface of the CAD system in response to identifying the second instance of the tab feature.

10. determining a position update for a given instance of the tab feature; The method of claim 1 , further comprising: modifying a position of the given instance of the slot feature that corresponds to the given instance of the tab feature based on the determined position update.

11. Determining the location update of the given instance of the tab feature includes:

11. The method of claim 10, comprising identifying a discrepancy between (i) a location of the given instance of the tab feature within the CAD model and (ii) a representation of a saved location of the given instance of the tab feature.

12. The method of claim 11 , wherein the representation of the stored positions includes a spatial transformation matrix.

13. 1. A computer-based system for automated slot propagation in a computer-aided design (CAD) model, the computer-based system comprising: A processor; a memory having computer code instructions stored thereon, the processor and the memory using the computer code instructions to cause the computer-based system to: identifying a first instance of a tab feature, the 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 automatically propagating the slot feature by creating a second instance of the slot feature in a component part of the CAD model, the second instance of the slot feature corresponding to the identified second instance of the tab feature.

14. Upon identifying the second instance of the tab feature, the processor and the memory use the computer code instructions to program the computer-based system to:

14. The computer-based system of claim 13, configured to: identify a given instance of the tab feature in the CAD model that is not associated with a corresponding instance of the slot feature, the identified given instance being the identified second instance of the tab feature.

15. Upon identifying the given instance of the tab feature, the processor and the memory use the computer code instructions to cause the computer-based system to: The computer-based system of claim 14 , configured to cause determining that the given instance of the tab feature interfaces with the component part of the CAD model.

16. and wherein the processor and the memory use the computer code instructions to cause the computer-based system to: The computer-based system of claim 13 , configured to cause applying a slot conversion operation to the component part of the CAD model based on a tab conversion operation associated with the tab feature.

17. The processor and the memory use the computer code instructions to program the computer-based system:

14. The computer-based system of claim 13, further configured to cause a data structure associated with the tab feature to store a reference to the created second instance of the slot feature.

18. The processor and the memory use the computer code instructions to program the computer-based system:

14. The computer-based system of claim 13, further configured to store a reference to the tab feature in a data structure associated with the created second instance of the slot feature.

19. The processor and the memory use the computer code instructions to program the computer-based system: determining a position update for a given instance of the tab feature; 14. The computer-based system of claim 13, further configured to cause a change in position of a given instance of the slot feature that corresponds to the given instance of the tab feature based on the determined position update.

20. 1. A non-transitory computer program product for automated 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, when executed by a processor, causing a device associated with the processor to: identifying a first instance of a tab feature, the 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 automatically propagating the slot feature by creating a second instance of the slot feature in a component part of the CAD model, the second instance of the slot feature corresponding to the identified second instance of the tab feature.

Citation Information

Patent Citations

  • Method for duplicating matched component in assembly

    JP2022105291A

  • Computer aided design (CAD) model connection propagation

    US20210303744A1