Bulk replication of gusset, plate and end cap in structure model
The method for bulk replication of gussets, plates, and end caps in structural models addresses the tedious and error-prone manual process by using feature vectors to suggest similar structural members for duplication, enhancing ergonomic efficiency in CAD systems.
Patent Information
- Application Number
- JP2025010558
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2024-01-24
- Filing Date
- 2025-01-24
- Publication Date
- 2025-09-02
AI Technical Summary
The process of manually replicating gussets, plates, and end caps in structural models is tedious and prone to human error due to the repetitive and difficult task of selecting and constraining similar components, which requires extensive manual interaction and zooming/rotating the model view.
A method for bulk replication of gussets, plates, and end caps using feature vectors to identify and suggest similar structural members for duplication, reducing manual input and human error by analyzing geometric properties and connections.
Efficiently duplicates structural elements with minimal user interaction, reducing human error and improving ergonomic efficiency in CAD systems by automating the tedious process of selecting and constraining similar components.
Smart Images

Figure 2025128019000001_ABST
Abstract
Description
Detailed Description of the Invention
[0001] [Field of the Invention] The present invention relates to modeling physical systems, and more particularly to simplifying iterative processes in modeled systems. [Background of the invention] As shown in Figure 1, a digital structural model 100 may represent a physical structure constructed to scale using materials such as wood, plastic, or metal. Physical models can be used to study the structural behavior of buildings and bridges under various loads and conditions. Models may be created using specialized software, such as DS SOLIDWORKS or DS CATIA. CAD models can be used to visualize a structure and its components in three dimensions and simulate their behavior under various loads and conditions.
[0002] When creating a computer-aided design (CAD) model of a physical structure, the process of inserting, moving, orienting, and constraining components is highly repetitive, with human error at every step. Repeated placement and constraining of components such as gussets, plates, and end caps in a structural model typically requires numerous selections from the user for each command in modeling applications like SOLIDWORKS. Similarly, the duplicate command may be limited to geometry that resides on a shared surface and / or has the same geometric characteristics. Depending on the geometry variation, users may need to manually duplicate the placement and constraints of another instance of the component before duplicating the gusset, plate, or end cap using the process described above.
[0003] Once a user manually defines a first gusset, plate, or end cap, replicating that gusset, plate, or end cap elsewhere in an assembly requires the user to manually define all positions and constraints or ensure the same geometry exists at each desired location. This manual replication can be tedious because selecting each gusset, plate, or end cap requires rotating and / or zooming the view of the model to allow the user to view and select the part, which may be necessary for selecting every component. Identifying similarly sized geometry on a component is very difficult for the human eye, and often requires the user to implement other means, such as measuring tools or trial and error, to determine whether the selected geometry is appropriate. Therefore, there is a need in this field to address one or more of the above shortcomings. [Summary of the Invention] An embodiment of the present invention provides a method for collectively replicating gussets, plates, and end caps in a structural model. Briefly, the present invention relates to a computer-aided design method for proposing structural member pairs based on selected support elements for a modeled physical structure. A seed pair is designated consisting of a first seed structural member and a second seed structural member attached to the selected support elements. Feature vectors are generated for candidate structural members in the modeled physical structure. The first seed structural member feature vector is compared with the structural member feature vector to identify a first candidate pair of members. The second seed structural member feature vector is compared with the structural member feature vector to identify a second candidate pair of members for the candidate pair. A seed pair connector feature vector and a candidate pair connector feature vector are determined. The seed pair connector feature vector is compared with the candidate pair connector feature vector. The candidate pair is designated as a proposed pair, and the proposed pair is shown in a representation of the modeled physical structure.
[0004] Other systems, methods, and features of the present invention will be, or will become, apparent to one with skill in the art upon examination of the following figures and detailed description. All such additional systems, methods, and features are intended to be described herein, be within the scope of the present invention, and be protected by the accompanying claims. [Brief explanation of the drawings]
[0005] The accompanying drawings are included to provide a further understanding of the present invention, and are incorporated in and constitute a part of this specification. The components in the drawings are not necessarily to scale, emphasis instead being placed upon clearly illustrating the principles of the present invention. The drawings illustrate embodiments of the present invention and, together with the description, explain the principles of the present invention. [Figure 1] FIG. 1 is a schematic diagram of a rendering of an exemplary modeled structure having gussets, plates, and end caps. [Figure 2A] FIG. 2A is a schematic diagram showing an example of a base plate in a modeled structure. [Figure 2B] FIG. 2B is a schematic diagram showing an example of a gusset in a modeled structure. [Figure 2C] FIG. 2C is a schematic diagram showing an example of an end cap in the modeled structure. [Figure 3] FIG. 3 is a flowchart of a first exemplary embodiment method for proposing structural members based on selected support elements. [Figure 4] FIG. 4 is a flowchart detailing the sub-processes for the implementation of block 400 of FIG. 3 for creating a feature vector for a structural member. [Figure 5A] FIG. 5A is a flowchart detailing a sub-process for the implementation of block 500a of FIG. 3 for comparing the feature vector of a seed member with the feature vector of another structural member. [Figure 5B]FIG. 5B is a flowchart detailing a sub-process for the implementation of block 500b of FIG. 3 for comparing the feature vector of a seed pair member with the feature vector of another structural member. [Figure 6] FIG. 6 is a flowchart of a second exemplary embodiment of a method for proposing structural members based on selected support elements attached to two or more structural members. [Figure 7] FIG. 7 is a flowchart detailing the sub-process for the implementation of block 700 of FIG. 6 for creating a connector feature vector. [Figure 8] FIG. 8 is a flowchart 800 detailing the sub-process for the implementation of block 800 of FIG. 6 for comparing connector feature vectors. [Figure 9] FIG. 9 is a flowchart detailing a method for creating a connector vector between two members. [Figure 10] FIG. 10 is a schematic diagram illustrating an example of a system for performing the functions of the present invention. [Figure 11A] FIG. 11A is a schematic diagram of the modeled structure with the end cap element selected on the pipe member. [Figure 11B] FIG. 11B is a schematic diagram of the modeled structure of FIG. 11A showing the end cap proposal. [Figure 11C] FIG. 11C is a schematic diagram of the modeled structure of FIG. 11A showing end caps added based on user approval of the suggestions. [Figure 12A] FIG. 12A shows the modeled structure as an example of a support element attached to two structural members. [Figure 12B] FIG. 12B is a schematic diagram of the modeled structure of FIG. 12A, showing the proposed locations. [Figure 12C] FIG. 12C is a schematic diagram of the modeled structure of FIG. 12A, showing structural members added based on user approval of the suggestions. DETAILED DESCRIPTION OF THE INVENTION
[0006] [Detailed explanation] The following definitions are useful in interpreting terms applied to features of the embodiments disclosed herein and are only meant to define elements within the present disclosure.
[0007] As used in this disclosure, "structural member" refers to a component of a structure that receives (and may be attached to) a support element. In a structural member, the welded metal piece is typically large and heavy, often formed into an I-beam, H-beam, L-beam, pipe, or angle beam. This type of beam provides strength and rigidity to the entire structure.
[0008] As used in this disclosure, a "seed member" refers to a structural member that is used as a basis for comparison of a modeled structure with one or more "candidate members," where a candidate member refers to a structural member that is compared to a seed member. If a candidate member is sufficiently similar to a seed member (e.g., according to the comparison criteria), the candidate member is then identified and referred to as a "proposed member" or "proposed."
[0009] As used in this disclosure, "support element" refers to a gusset, plate, end cap, or another member that is attached to a structural member of an assembly.
[0010] As used in this disclosure, "plate" refers to the first type of support element in an assembly. Plates are commonly used in structures to provide additional strength, rigidity, and support to various structural members 215 (FIG. 2A). Plates are typically flat, thin, rectangular, or circular pieces of material, such as steel or aluminum, and are often used in combination with beams, columns, and other types of structural members 215. Plates can be used in a variety of ways in structural design. For example, plates can be used as base plates or stiffener plates. Base plates, as shown in FIG. 2A, are used to distribute the weight of a column or other type of vertical structural member 215 over a larger area of the foundation. Base plates 210 are typically bolted or welded to the bottom of the column or other member. Stiffener plates may also be used to provide additional rigidity and support to structural members 215, such as beams and columns. Stiffener plates are typically welded or bolted to the member and help prevent buckling and twisting under high loads.
[0011] As used in this disclosure, "gusset" refers to a second type of support element in an assembly. As shown in FIG. 2B, gussets 220 are commonly used in conjunction with structural members to provide additional strength and support. Gussets 220 are typically small relative to each support member 215, typically triangular or rectangular, and may be made of, for example, metal or wood, and are added to the joints or connection points of two or more structural members 215. Gussets 220 are used to transfer loads and stresses between structural members 215 and prevent buckling or twisting at the joint. They also distribute loads more evenly across the joint, reducing the risk of localized failure.
[0012] As used in this disclosure, "end cap" refers to a terminating structural member in an assembly, such as a hollow structural member. FIG. 2C shows an exemplary end cap 230. Examples of end caps include pipe end caps and furniture leg end caps. A pipe end cap is a device used to seal the end of a pipe. Pipe end caps can be made of a variety of materials, such as plastic, metal, or rubber, and are often used to prevent dirt, debris, water, and the like from entering the pipe. A furniture leg end cap can be a small cap placed on the end of a furniture leg to protect floors from scratches and prevent the furniture from sliding. In general, end caps 230 can serve a variety of purposes, such as protection, sealing, and aesthetic enhancement.
[0013] As used in this disclosure, "descriptor" refers to a data structure that describes characteristics of a local region of geometry within a modeled assembly, particularly characteristics of members, plates, gussets, end caps, etc. Descriptors may include both textual and numeric fields and may include fields that indicate relationships to other components and / or structural features. The use of the term "descriptor" is common in information retrieval systems. For example, in an image retrieval system, descriptors include visual features of an image, such as shape, color, texture, etc., that aid in image classification. In a music retrieval system, descriptors may include characteristics such as rhythm, scale, genre, artist, etc. In a document retrieval system, descriptors may include respective word counts, authors, languages, etc.
[0014] As used in this disclosure, a "component list" refers to a list of individual parts of a modeled assembly in two dimensions (2D) or three dimensions (3D). In a CAD environment, the component list may be visually displayed in a sidebar of a graphics window that displays a 2D or 3D rendering of the modeled assembly. The component list and the graphics window may interact; for example, selecting a component in the component list may highlight the corresponding component in the graphics window. Similarly, selecting a component in the graphics window (e.g., by clicking the mouse) may highlight the corresponding component in the component list.
[0015] As used in this disclosure, "model resolution" refers to a parameter of a CAD system that indicates the smallest dimension, anything smaller than the model resolution is considered to have zero length by the CAD system.
[0016] As used in this disclosure, "surface" refers to the surface of a portion of an assembly modeled in 2D or 3D.
[0017] As used in this disclosure, "proposed structural member" (or "proposed") refers to a structural member that has been identified as a compatible combination with the support element selected by the user.
[0018] As used in this disclosure, "one-hot encoding" refers to a technique used in machine learning and data preprocessing to represent categorical variables as binary vectors. For example, hot-one encoding may be beneficial when working with algorithms that require numerical inputs, such as neural networks and many machine learning models.
[0019] Reference will now be made in detail to embodiments of the invention, examples of which are illustrated in the accompanying drawings. Wherever possible, the same reference numbers are used in the drawings and the description to refer to the same or like parts.
[0020] Plates, gussets, and end caps are commonly used in any structural model design to add support or strength. The exemplary embodiments described herein alleviate the need to repeatedly select similar member properties, member lengths, and corner joints to add plates, gussets, and end caps. Because structural models are typically large and require many selections by rotating and zooming the model, the exemplary embodiments also significantly reduce stress and human error.
[0021] Exemplary embodiments provide for bulk duplication of multiple gussets, plates, or end caps with minimal user input. In an exemplary workflow, a user selects, via a user interface in a CAD environment, one or more structural elements (such as gussets, plates, end caps, etc.) that they want to duplicate in a structural model.
[0022] The embodiment analyzes each structural element of interest, for example, by analyzing the structural element's placement and one or more properties of the parent structural member (or set of parent structural members) that the structural element supports. The embodiment scans the data structure of the structural model to search for other structural members (or sets of other structural members) with properties and geometric configurations similar to the parent element. If the embodiment finds one or more similar structural members, it presents the user with a preview of a proposed new structural element, similar to the selected structural element, that can be replicated to the similar structural members.
[0023] The embodiment provides the user with the opportunity to select additional structural members to be replicated using the same process described above. The user can choose to automatically apply all suggested replications or to exclude specific suggestions and replicate the remaining suggestions. The embodiment allows the user to adjust the search scope for structural members by specifying changes to one or more parameters of the selected structural elements.
[0024] Embodiments may be implemented as an application or function within a CAD environment, effectively automating portions of an otherwise tedious manual process and improving the overall ergonomics of the CAD system.
[0025] 3 is a flowchart of a first exemplary embodiment of a method for locating proposed structural members based on selected support elements. Any process descriptions or blocks in the flowchart should be understood to represent modules, segments, portions of code, or steps that include one or more instructions for implementing specific logical functions in the process. It should also be understood that alternative implementations are within the scope of the present invention, and that functions may be performed in a different order than that shown or discussed, for example, substantially simultaneously or in reverse order, depending on the functionality involved. These would be understood by one skilled in the art of the present invention.
[0026] A user selection of a selected support element is received, as indicated by block 310. For example, the selected support element may be a plate, a gusset, or an end cap. FIG. 11A shows a modeled structure with a selected end cap element 230 attached to a structural member (rectangular tube) 215. The structural member attached to the selected support element is designated as a seed structural member ("seed member"), as indicated by block 320. In the example of FIG. 11A, rectangular tube 215 is the designated seed member.
[0027] As indicated by block 400, a feature vector is created for each of a plurality of structural members in the modeled physical structure. The creation of feature vectors is described below with reference to FIG. 4. As indicated by block 500a, the seed structural member feature vector is compared to structural member (“proposed candidate” or “candidate member”) feature vectors among a plurality of structural members in the modeled physical structure. The comparison of feature vectors is described below with reference to FIG. 5A. A user may adjust one or more options related to the seed structural member feature vector to relax or tighten the comparison criteria. The comparison of block 550a results in one or more proposed structural members (“proposed”). As previously discussed, a proposed structural member refers to a structural member identified as a compatible combination for the selected support element. Here, at least one feature of the proposed structural member matches a corresponding feature of the seed structural member, and therefore the proposed candidate is designated as a proposed. FIG. 11B shows a proposed pipe 1145 and an associated end cap proposal 1140.
[0028] As indicated by block 350, the proposed structural member is shown in a representation of the modeled physical structure. The proposed structural member may be shown, for example, with a colored highlight. Alternatively, the proposed structural member may be shown in a list of candidate structural members. The user may approve the proposed structural member, for example, by selecting the displayed structural member. When the user selects the proposed structural member, the CAD system replicates the selected support structure element in the proposed structural member ("proposal"). Figure 11C shows an end cap 1150 added based on user approval of the proposal.
[0029] If more than one structural member is attached to a selected support element, each member is considered a seed member, where connector feature vectors are created for the seed members and the proposed members, as described further below with respect to Figures 6-9 for a second exemplary embodiment.
[0030] Figure 4 details the subprocess for implementing block 400 of Figure 3. With regard to block 410, "Profile Name One-Hot Encoding," this embodiment uses multiple standards for the profiles of structural members. Each profile may be, for example, "ST," "C," "FL," "L," "M," "MC," "MT," "PIPE," "Round HSS," "S," "W," "WT," "WRF," "WWF," "WWT," "HA," "HS," "L," "M," "MC," "Round HA," "Round HS," "W," "WRF," "WWF," "WWT," "L," "PFC," "FlatBar," "HD," "HE," "HL," "HLZ," "HP," "I," "IPE," "IPN," "J," "L," and "PFC," and each profile is characterized by a distinct shape. For example, profile "C" may encompass a range of sizes such as, for example, ["6x8.2", "6x10.5", "3x3.5", "3x4.1", "3x5", "3x6", "4x4.5", "4x5.4", "4x6.25", "4x7.25", "5x6.7", "5x9", "6x8.2", "6x10.5"], in this example the units of measurement are inches.
[0031] From these profile names, a feature vector is created using one-hot encoding techniques. Each profile name corresponds to a unique feature in the vector. A "1" indicates the presence of a particular profile, and a "0" indicates its absence. This allows for an effective representation and analysis of the structural profiles used in a CAD model. For example, when applied to a model using three profiles: For the "L20×20" profile, the vector is [1,0,0] For the "L30×30" profile, the vector is [0,1,0] For the "Square20×20" profile, the vector is [0,0,1] A profile geometry vector is calculated as shown in block 415. Essential features of the cross-sectional shape of the member, such as area, side lengths, and angles between sides, are extracted from the member descriptor (data structure). Below is an example of how the geometric properties of an element can be incorporated as a feature vector, in this case a square profile with side lengths of 20 mm. The feature vector can be written as follows: ·Area: 400mm 2 Side lengths: [20,20,20,20] Angle between sides: [90,90,90,90] The resulting feature vector is [400,20,20,20,20,90,90,90,90].
[0032] As shown in block 420, the connections of a member to other members are calculated. For example, the connections that a member makes with other members at their respective ends are calculated. These connections or relationships are calculated and included in the member's descriptor. These connection calculations are used in the descriptor. For example, if a particular member is connected to four other members, its feature vector is represented as [4]. This vector represents connectivity information and may be used for further structural analysis.
[0033] As shown in block 425, the ratio of the side length to the chord length is calculated. The ratio of the side length to the chord length of a member is a reliable feature that effectively conveys the shape of the member. The chord length represents the linear distance between the start and end points of the member. For example, if the length of a circular arc is 20 mm and the distance between its start and end points is 10 mm, the feature vector is represented as [2]. This vector succinctly characterizes the shape of the member by emphasizing the extension or curvature in the trajectory that the member follows.
[0034] As shown in block 430, an angular deviation vector is calculated, where angular deviation refers to the angle between the initial and final orientations of a structural member. The angular deviation vector quantifies the angular variation along the length of the member and provides important information for structural analysis. For example, if a member exhibits a 45-degree angular difference between its starting tangent and its ending tangent, the feature vector is represented as
[45] .
[0035] As shown in block 435, an adjacent surface angle vector is calculated. An adjacent surface angle refers to the angle between two surfaces adjacent to the edge shared by adjacent members. The adjacent surface angle attribute provides valuable insight into how adjacent members are interconnected. The adjacent surface angle feature vector succinctly captures the relationship and connectivity between adjacent members and is important for understanding and analyzing structural configurations. For example, if a member is attached to two other members at angles of 45 degrees and 90 degrees, the feature vector representing these adjacent surface angles would be [90, 90].
[0036] A member length feature vector is calculated, as shown in block 440. The length of a structural member is determined by measuring the distance along its curve from its start point to its end point. The member length feature vector succinctly describes the extent of the member along the curve, facilitating structural analysis and design studies. For example, if the length of a member is 5000 mm, this feature may be represented by the feature vector
[5000] .
[0037] A member orientation vector is calculated, as shown in block 445. Here, the orientation of a structural member is quantified by calculating the tangents at its start and end points. For example, if the tangent at the start point is (1,0,0) and the tangent at the end point is (-1,0,0), then the feature vector describing this orientation is defined as [1,0,0,-1,0,0].
[0038] When setting the proposed plane option for filtering structural members, the member start and end points are required criteria. Block 450 is described in more detail below, where an embodiment calculates the proposed start and end point vectors.
[0039] The specific conditions for filtering based on the type of support element are as follows: For plates, either the proposed start point or the proposed end point must be in the plane of the proposed structural member. For gussets, the distance from both the start point and the end point to the plane must be the same. This distance must be less than or equal to the width of the cross section of the proposed structural member.
[0040] The start / end feature vector helps identify and classify members based on their proximity to a specified plane, allowing for accurate filtering in the analysis process. For example, for a structural member with a start point of (10,0,0) and an end point of (100,0,0), the corresponding feature vector for filtering these conditions would be [10,0,0,100,0,0].
[0041] For any given part, various attributes are combined to create a feature vector for comparison. Below is a breakdown of an exemplary combined feature vector: Edge-to-chord ratio, angular deviation, and profile name or profile geometry feature vector: [2,45,1,0,0] or [2,45,400,20,20,20,20,90,90,90,90] - Number of connections and angle of adjacent surfaces Feature vector: [4,90,90] ·length: Feature vector:
[5000] ·direction: Feature vector: [1,0,0,-1,0,0] ·the last stop: Feature vector: [10,0,0,100,0,0] These feature vectors efficiently reduce specific member attributes, allowing for detailed comparison, analysis, and identification of unique characteristics between various members. Additionally, embodiments may provide the ability to enable or disable specific parameters, such as length, orientation, and endpoints, to suit a user's specific comparison needs. In a first exemplary embodiment, user options for structural member analysis include multiple attributes by default. Length (enabled by default) Orientation (disabled by default) Suggested Planes (disabled by default) Connectivity (enabled by default) Here, by default, length and connectivity with others are enabled features. Users can enable or disable orientation and plane suggestions depending on their specific needs.
[0042] In an alternative embodiment, the user can enable the "Suggestion Plane" option to select a plane in the model. Once selected, only suggestions related to members that lie on the selected proposal plane will be presented to the user. This feature allows the user increased control and customization during the analysis process.
[0043] Figure 5A is a flowchart detailing the sub-process for implementing block 500a of Figure 3 for comparing the feature vectors of seed members with the feature vectors of candidate members. Blocks 510, 520, 530, 540, and 550 each involve comparing the feature vectors of candidate members with the feature vectors of seed members.
[0044] As indicated by block 510, one or more shape vectors of the seed member are compared to one or more corresponding shape vectors of the candidate members. Here, for example, embodiments may compare one or more of the seed member's edge-to-chord ratio, angle deviation, profile name, and / or profile geometry composite vectors to the composite vectors of the candidate members being evaluated. This comparison may involve calculating the L2 norm between the feature vectors, and may threshold this evaluation at, for example, 0.1.
[0045] The length vector(s) of the seed member are compared to the corresponding length vector(s) of the candidate members, as indicated by block 520. This comparison involves using absolute differences for evaluation, and the threshold for the comparison may be determined by the specified error tolerance of the model.
[0046] As indicated by block 530, one or more connectivity vectors of the seed member are compared to one or more corresponding connectivity vectors of the candidate members. Here, for example, embodiments may compare a composite vector of the seed member's number of connections to others and adjacent face angles with a composite vector of the candidate member being evaluated. This comparison may involve calculating the L2 norm between the feature vectors, and may be thresholded to 0.1, for example.
[0047] As indicated by block 540, one or more orientation vectors of the seed member are compared to one or more corresponding orientation vectors of the candidate members. Here, for example, an embodiment may compare the orientation vector of the seed member with the orientation vector of the candidate member being evaluated. This comparison may involve calculating the L2 norm between the feature vectors, and may threshold this evaluation at, for example, 0.1.
[0048] As indicated by block 550, one or more plane vectors of the seed member are compared to one or more corresponding plane vectors of the candidate members. Here, for example, if there is a proposed plane, embodiments may extract start and end points from the end feature vector. Then, embodiments check whether any of these points match the user-specified plane.
[0049] It is determined whether the comparison criteria for each predecessor block is met, as indicated by block 560. For all comparisons, the result is determined as follows: If the member meets the criteria, the result is true. If the attribute is optional and not computed, the result is also considered true. If the member does not meet the criteria, the result is false.
[0050] If all criteria are not determined to be true, the comparison is terminated without advancing the candidate member to the proposal, as indicated by block 590. If all criteria are determined to be true, the candidate member is added to the list of proposals, as indicated by block 570.
[0051] It should be noted that different implementations of the embodiment may omit one or more of comparison blocks 510, 520, 530, 540, and 550, and / or a user of the CAD environment may select which comparison blocks to include among comparison blocks 510, 520, 530, 540, and 550. In alternative embodiments, the criteria check of block 560 may be performed after any one or more of blocks 510, 520, 530, 540, and 550.
[0052] FIG. 6 is a flowchart of a second exemplary embodiment method for proposing pairs of structural members ("proposed pairs") based on selected support elements attached to two or more structural members.
[0053] As indicated at block 310, a user selection of selected support elements is received. For example, a user of a CAD system may select support elements, such as gussets, from a representation of a structure. The two or more support structural members attached to the selected support elements are referred to as "seed members." For illustrative purposes, the following description is directed to the selected support elements and relates to the selected support elements connected to a first seed structural member designated as the first seed structural member, as indicated at block 610, and a second seed structural member designated as the second seed structural member, as indicated at block 620. Collectively, the first seed member and the second seed member form a seed member pair, or "seed pair" for short.
[0054] Proposed element pairs ("proposed pairs") are identified based on comparing seed pairs with pairs of candidate structural elements. For a candidate pair to be considered a proposed pair, the first pair member candidate matches the corresponding feature of the first seed member, the second pair member candidate matches the corresponding feature of the second seed member, and the seed pair connector feature vector matches the corresponding candidate pair connector feature vector.
[0055] As an example of a support element attached to two structural members, Figure 12A shows a modeled structure in which a selected gusset element 1250 is attached to a first structural member 1220 and a second structural member 1225. As indicated at block 610, the first structural member 1220 is designated as a first seed structural member ("seed member"). As indicated at block 620, the second structural member 1225 is designated as a second seed member.
[0056] A feature vector is created for each of a plurality of structural members in the modeled physical structure, as indicated by block 400. The creation of feature vectors was described above with respect to FIG.
[0057] As shown in block 500b(i), the first seed structural member feature vector is compared to the structural member feature vector. The comparison of feature vectors is described above with respect to FIG. 5B. If the comparison is successful, the matching structural member is considered a first paired member candidate and added to a list of first paired member candidates. This process is repeated until all structural members in the structure have been determined to be first paired member candidates.
[0058] The second seed structural member feature vector is compared to structural member feature vectors of multiple structural members in the modeled physical structure, as shown at 500b(ii). The comparison of feature vectors is described above with respect to FIG. 5B. If the comparison is successful, a second paired member candidate is indicated and added to the list of second paired member candidates. This process is repeated until all structural members in the structure have been determined to be second paired member candidates.
[0059] A connector feature vector is created for each pair of seed pair and candidate first / second paired members, as indicated by block 700. As explained further below, block 700 is detailed in FIG. 7. Here, a list of candidate pairs of structural elements is created. A candidate pair is not considered a suggestion until the connector feature vector of the candidate first / second paired member compares favorably with the connector feature vector of the seed pair.
[0060] As indicated by block 800, the connector feature vector of the seed pair is compared to the connector feature vectors of all candidate first / second pair members. As explained further below, block 800 is detailed in FIG. 8. This results in a list of proposed structural member pairs. FIG. 12B shows proposed gusset positions 1240 displayed for the proposed structural pair.
[0061] The proposed structural member pairs in the list of proposed structural member pairs are shown in a representation of the modeled physical structure, as indicated by block 650. The proposed pairs may be indicated, for example, by highlighting them in color. The user may approve the proposed pairs, for example, by selecting the structural pair shown in the representation. Upon user selection, the CAD system duplicates the selected support element in the proposed pair. Figure 12C shows a gusset 1250 added based on user approval of the proposal.
[0062] When there are two seed members, they may be referred to as a seed pair. Similarly, two candidate members may be referred to as a candidate pair, and two corresponding proposed members may be referred to as a proposal pair. The above description of Figure 6 describes seed pairs and candidate / proposal pairs. However, method 600 may be extended to three, four, or more seed members and corresponding candidate / proposal members, which may be referred to as a seed group and candidate / proposal group. Here, a connector feature vector is created and compared for each member of the seed group or candidate / proposal group.
[0063] The connector vector describes the relationship between two paired structural members. The connector vector includes an intersection vector and an angle vector. The intersection vector of the seed pair is calculated for the first member of the seed pair and the second member of the seed pair. The angle vector of the seed pair is calculated for the first member of the seed pair and the second member of the seed pair. The intersection vector of the candidate pair is calculated for the first paired member candidate member and the second paired member candidate. The angle vector of the candidate pair is calculated for the first paired member candidate member and the second paired member candidate.
[0064] 5B is a flowchart detailing the subprocess for implementing block 500b of FIG. 3 for comparing the feature vector of a seed pair member with the feature vector of another structural member. Each of blocks 510, 520, 530, 540, and 550 involves comparing the feature vector of a structural member with the feature vector of a seed member. A description of blocks 510, 520, 530, 540, and 550 is provided above with respect to the description of FIG. 5A.
[0065] It is determined whether the comparison criteria for each predecessor block is met, as indicated by block 560. For all comparisons, the result is determined as follows: If the member meets the criteria, the result is true. If the attribute is optional and not computed, the result is also considered true. If the member does not meet the criteria, the result is false. If all criteria are not determined to be true, the comparison is terminated without advancing the candidate component to proposal, as indicated by block 590. If all criteria are determined to be true, the candidate component is added to a list of potential paired components, as indicated by block 580.
[0066] It should be noted that different implementations of the embodiment may omit one or more of comparison blocks 510, 520, 530, 540, and 550, and / or a user of the CAD environment may select which comparison blocks to include among comparison blocks 510, 520, 530, 540, and 550. In alternative embodiments, the criteria check of block 560 may be performed after any one or more of blocks 510, 520, 530, 540, and 550.
[0067] FIG. 7 is a flowchart 700 detailing the subprocess for implementing block 700 of FIG. 6 to create connector feature vectors for seed pairs and candidates. As indicated by block 900, a connector vector is created for the seed attached to the selected support element (plate or gusset). The process of creating a connector vector is described below with reference to FIG. 9. As indicated by block 710, a first paired member candidate is found for the first seed. As indicated by block 720, a second paired member candidate is found for the second seed. Here, the first and second paired member candidates are found in a manner similar to identifying a single proposal according to the first embodiment (FIG. 3). As indicated by block 730, a connector vector is created for the candidate pair (where the candidate pair consists of a combination of the first paired member candidate and the second paired member candidate). Here, each of the first paired member candidates of each member pair is a good match with the first seed member of the seed pair, and the second paired member candidate of the member pair is a good match with the second seed member of the seed pair.
[0068] Each candidate pair is added to a list of candidate pairs and is later compared to the seed pairs, as further described with respect to Figure 8, to determine whether the relationship between the members of the candidate pair matches the relationship between the members of the seed pair.
[0069] FIG. 9 is a flowchart detailing a method for creating a connector vector between two members. As indicated by block 910, the intersection of the two member vectors is determined. If the two members do not meet a comparison criterion, for example, the resulting vector may be [-1,-1]. However, if the two members intersect at a specific location, an embodiment calculates for each member the ratio of the distance from the intersection point to one end to the total distance between the end points. This vector conveys the relative location of the intersection point along the length of each member. For example, if the intersection point is located 0.3 from one end on the first member and 0.4 on the other member, the vector would be represented as [0.3,0.4].
[0070] As shown in block 920, the angle between two member vectors is determined. The angle is based on the tangents of each member orientation vector at the start of the two members. The first tangent is to the seed or candidate, and the second tangent is to the adjacent element attached to the seed or candidate. There is an intersection point between these members. The first tangent is evaluated from the seed or candidate at the intersection point between the first and second members. The second tangent is evaluated from the adjacent element at the intersection point. The angle attribute provides insight into how the two members are oriented relative to each other. The resulting angle feature vector succinctly captures the relationship and connectivity of the two members. For example, if a particular member is attached to another member at a 90-degree angle, the feature vector representing these adjacent surface angles would be
[90] . As shown in block 930, the intersection vector and angle vector are combined to form a connector vector.
[0071] 8 is a flowchart 800 detailing a subprocess for the implementation of block 800 of FIG. 6 for comparing connector feature vectors. As shown in block 810, a first candidate pair having a first pair member candidate and a second pair member candidate is identified. As shown in block 820, the intersection vector of the seed pair is compared to the intersection vector of the candidate pair. For example, in the context of intersection vectors, if the seed intersection vector is [0.3,0] and the candidate pair intersection vector is [0.7,0], the interpretation is as follows:
[0072] About Seed On the first seed member, the intersection divides the member length by a ratio of 0.3 to 0.7 of the total length. On the second seed member, the intersection points meet at one of the edges.
[0073] About the candidates: On the first candidate member, the intersection divides the length of the member in a ratio of 0.7 to 0.3 of the total length. On the second candidate member, the intersection points meet at one of the edges.
[0074] The L2 norm is calculated between these intersection vectors, taking into account any differences in the start and end points and considering all possible permutations. For the above values, the second embodiment calculates ([0.3,0] and [0.7,0]), ([1-0.3,1-0] and [0.7,0]), ([0,0.3] and [0.7,0]), and ([1-0,1-0.3] and [0.7,0]). If any combination returns an L2 norm less than 0.1, the comparison returns true.
[0075] The angle vector of the seed pair is compared to the angle vector of the candidate pair, as shown in block 830. If the comparison of the intersection vector and the angle vector are both true, the candidate pair is added to a list of proposed pairs, as per block 840. In a second embodiment, the L2 norm between the angles is calculated, and if the L2 norm is less than 0.1, the comparison returns true.
[0076] The system performing the functionality detailed above may be a computer, an example of which is shown in the schematic diagram of FIG. 10. The system 1000 includes a processor 1002, a storage device 1004, a memory 1006 containing software 1008 defining the functionality described above, input / output (I / O) devices 1010 (or peripherals), and a local bus or interface 1012 that enables communication within the system 1000. The local interface 1012 may include, for example, but is not limited to, one or more buses or other wired or wireless connections known in the art. The local interface 1012 may include additional elements, omitted for simplicity, such as controllers, buffers (caches), drivers, repeaters, and receivers to enable communication. Additionally, the local interface 1012 may include address, control, and / or data connections to enable appropriate communication between the aforementioned elements.
[0077] The processor 1002 is a hardware device specifically designed to execute software stored in the memory 1006. The processor 1002 may be any custom or commercially available single-core or multi-core processor, a central processing unit (CPU), a coprocessor among multiple processors associated with the system 1000, a semiconductor-based microprocessor (in the form of a microchip or chipset), a microprocessor, or generally any device that executes software instructions.
[0078] The memory 1006 may be any one or a combination of volatile memory elements (e.g., random access memory (RAM, such as DRAM, SRAM, SDRAM, etc.)) and non-volatile memory elements (e.g., ROM, hard disk, tape, CD-ROM, etc.). Furthermore, the memory 1006 may incorporate electronic, magnetic, optical, and / or other types of storage media. It should be noted that the memory 1006 may have a distributed architecture, where various components are located remotely from each other but are accessible by the processor 1002.
[0079] Software 1008 defines the functions performed by system 1000 in accordance with the present invention. Software 1008 in memory 1006 may include one or more individual programs, as described below, each containing an ordered list of executable instructions for implementing the logical functions of system 1000. Memory 1006 may also include an operating system (O / S) 1020. An operating system essentially controls the execution of programs in system 1000 and provides scheduling, input / output control, file and data management, memory management, and communication control and related services.
[0080] The input / output devices 1010 may include input devices such as, but not limited to, a keyboard, a mouse, a scanner, a microphone, etc. The input / output devices 1010 may further include output devices such as, but not limited to, a printer, a display, etc. Finally, the input / output devices 1010 may further include devices that communicate via both input and output, such as, but not limited to, a modulator / demodulator (modem; for accessing other devices, systems, or networks), a radio frequency (RF) or other transceiver, a telephone interface, a bridge, a router, or other devices.
[0081] As described above, during operation of the system 1000, the processor 1002 is configured to execute software 1008 stored in the memory 1006, to communicate data to and from the memory 1006, and to generally control the operation of the system 1000 in accordance with the software 1008.
[0082] When the system 1000 is functionally operational, the processor 1002 is configured to execute software 1008 stored in the memory 1006, to communicate data to and from the memory 1006, and to generally control the operation of the system 1000 in accordance with the software 1008. An operating system 1020 is loaded into the processor 1002, possibly into temporary storage within the processor 1002, and then executed.
[0083] It should be noted that if the system 1000 is implemented in software 1008, the instructions for implementing the system 1000 may be stored on any computer-readable medium used by or in connection with any computer-related apparatus, system, or method. Such a computer-readable medium may, in some embodiments, correspond to either or both of the memory 1006 or the storage device 1004. In the context of this specification, a computer-readable medium is an electronic, magnetic, optical, or other physical device or means that can contain or store a computer program used by or in connection with a computer-related apparatus, system, or method. The instructions for implementing the system may be embodied in any computer-readable medium used by or in connection with a processor or other such instruction execution system, apparatus, or device. While the processor 1002 has been mentioned as an example, such an instruction execution system, apparatus, or device may, in some embodiments, be any computer-based system, system including a processor, or other system capable of obtaining and executing instructions from an instruction execution system, apparatus, or device. In the context of this specification, a "computer-readable medium" may be any means capable of storing, communicating, propagating, or transferring a program for use by or in connection with a processor or other such instruction execution system, apparatus, or device.
[0084] Such a computer-readable medium may be, for example, but not limited to, an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system, apparatus, device, or propagation medium. More specific examples (non-exhaustive list) of computer-readable media include: an electrical connection having one or more wires (electronic), a portable computer diskette (magnetic), a random access memory (RAM) (electronic), a read-only memory (ROM) (electronic), an erasable programmable read-only memory (EPROM, EEPROM, or flash memory) (electronic), an optical fiber (optical), and a portable compact disc read-only memory (CD-ROM) (optical). Note that the computer-readable medium may also be paper or another suitable medium on which the program is printed, since the program can be captured electronically, for example by optically scanning the paper or other medium, and then compiled, interpreted, or otherwise processed in an appropriate manner, if necessary, and stored in computer memory.
[0085] In alternative embodiments, when system 1000 is implemented in hardware, system 1000 may be implemented with any or a combination of the following technologies known in the art: discrete logic circuits having logic gates for performing logical functions on data signals, application specific integrated circuits (ASICs) having appropriate combinations of logic gates, programmable gate arrays (PGAs), field programmable gate arrays (FPGAs), etc.
[0086] Embodiments may be used in automated manufacturing processes for physical structures based on modeled structures. For example, support elements identified and created by embodiments may be added to an inventory list for either ordering or automated manufacturing of proposed support elements added to the model during execution of the method of the embodiments. Similarly, resulting information regarding the orientation of the proposed support elements may be used to control manufacturing machines used to manufacture assemblies and / or subassemblies of the actual physical structure.
[0087] Furthermore, reducing the repetitive manual tasks involved in replicating support elements improves the ergonomics of the CAD environment, reducing the likelihood of repetitive stress injuries, for example, in operating input / output devices, as well as reducing the likelihood of errors in repetitive manual tasks.
[0088] It will be apparent to those skilled in the art that various modifications and variations can be made to the structure of the present invention without departing from the scope or spirit of the invention. In view of the foregoing, it is intended that the present invention cover modifications and variations of this invention provided they come within the scope of the following claims and their equivalents.
Claims
1. 1. A computer-based method for proposing structural member pairs based on selected support elements for a modeled physical structure in a computer-aided design (CAD) environment, comprising: receiving a selection of the selected support elements; designating a seed pair comprising a first seed structural member attached to the selected support element and a second seed structural member attached to the selected support element; generating a feature vector for each of a plurality of candidate structural members in the modeled physical structure; comparing a first seed structural member feature vector with the structural member feature vectors of each of the plurality of candidate structural members in the modeled physical structure to identify a first paired member candidate; comparing a second seed structural member feature vector with the structural member feature vector of each of the plurality of candidate structural members in the modeled physical structure to identify the second paired member candidate for a candidate pair comprising the first paired member candidate and the second paired member candidate; determining a seed pair connector feature vector and a candidate pair connector feature vector; comparing the seed pair connector feature vector with the candidate pair connector feature vector; designating the candidate pair as a proposed pair based on the comparison; showing the proposed pairs in a representation of the modeled physical structure; A method for providing the above.
2. 10. The method of claim 1, receiving user approval of the proposed pairs. method.
3. 10. The method of claim 1, creating a replica of the selected support element configured to attach to the proposed pair approved by a user. method.
4. 10. The method of claim 1, the support element is one of the group consisting of a plate, a gusset, and an end cap; method.
5. 1. A computer-based method for proposing structural members based on selected support elements for a modeled physical structure in a computer-aided design (CAD) environment, comprising: receiving a selection of the selected support elements; designating a first seed structural member attached to the selected support element; generating a feature vector for each of a plurality of candidate structural members in the modeled physical structure; comparing a first seed structural member feature vector with a structural member feature vector of each of the plurality of candidate structural members in the modeled physical structure; identifying a candidate structural member from the plurality of candidate structural members as a proposed structural member based on the comparison; showing the proposed structural member in a representation of the modeled physical structure; Equipped with the plurality of structural members in the modeled physical structure comprises the first seed structural member, and characteristics of the proposed structural member match corresponding characteristics of the first seed structural member; method.
6. 6. The method of claim 5, receiving user approval of the selected structural member; method.
7. 6. The method of claim 5, creating a replica of the selected support element configured to attach to the selected structural member. method.
8. 6. The method of claim 5, the support element is one of the group consisting of a plate, a gusset, and an end cap; method.
9. 9. The method of claim 8, designating a second seed structural member attached to the selected support element, wherein the plurality of structural members in the modeled physical structure comprises the second seed structural member, and a seed pair comprises the first seed structural member and the second seed structural member; and creating a connector feature vector connecting the first seed structural member and the second seed structural member; comparing the connector feature vector with candidate pair connector vectors of the proposed structural member and candidate pair structural members; and designating the proposed structural member and the candidate paired structural member as a proposed pair based on the comparison. method.