US12242774B2 - Predictive modeling - Google Patents
Predictive modeling Download PDFInfo
- Publication number
- US12242774B2 US12242774B2 US17/156,780 US202117156780A US12242774B2 US 12242774 B2 US12242774 B2 US 12242774B2 US 202117156780 A US202117156780 A US 202117156780A US 12242774 B2 US12242774 B2 US 12242774B2
- Authority
- US
- United States
- Prior art keywords
- vertex
- computer
- descriptor
- design
- user
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active, expires
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/10—Geometric CAD
- G06F30/17—Mechanical parametric or variational design
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/10—Geometric CAD
- G06F30/12—Geometric CAD characterised by design entry means specially adapted for CAD, e.g. graphical user interfaces [GUI] specially adapted for CAD
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/20—Design optimisation, verification or simulation
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2111/00—Details relating to CAD techniques
- G06F2111/04—Constraint-based CAD
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2111/00—Details relating to CAD techniques
- G06F2111/20—Configuration CAD, e.g. designing by assembling or positioning modules selected from libraries of predesigned modules
Definitions
- This application relates to predictive modeling and, more particularly relates to predictive modeling within the context of a computer-aided design (CAD) program.
- CAD computer-aided design
- Computer-aided design refers to the use of computers (or workstations) to aid in the creation, modification, analysis, or optimization of a design.
- CAD software such as Dassault Systémes (DS) SOLIDWORKS and DS CATIA, can be used to create sketches and/or representations of solid geometries that may be derived from two-dimensional (2D) or three-dimensional (3D) sketches of products being designed.
- the sketches and solid geometry can have design requirements where the geometries created need to be replicated in other regions of the component. These other regions often have similar surrounding geometries but are not positioned such that creating a pattern or mirror of the geometry would achieve the desired result requiring the user to manually create very similar geometries in each region. Even for a moderately complex model, this can require the creation of many sketches and downstream features hence it can become a very tedious and time-consuming task. Some techniques do exist to reduce the repetitive nature of these tasks. For example, creating user-defined library features consisting of the many sketches and their downstream features allows for the replication of the geometry in these other regions but require the user to create the library feature for reuse and position in each region.
- a computer-based method includes enabling a user to create or select a geometric entity in a design in a computer-aided design program, predicting a location and orientation in the design for a copy of the geometric entity, and displaying, as a suggestion to the user, a visual representation of the copy of the geometric entity in the predicted location and orientation in the design.
- a computer in another aspect, includes a computer display, a computer processor, and computer-based memory coupled to the computer processor.
- the computer-based memory stores computer-readable instructions that, when executed by the computer processor, causes the computer processor to perform a process that includes enabling a user to create or select a geometric entity in a design in a computer-aided design program, predict a location and orientation in the design for a copy of the geometric entity, and display on the display device, as a suggestion to the user, a visual representation of the copy of the geometric entity in the predicted location and orientation in the design.
- a non-transitory, computer-readable medium stores instructions executable by a processor to perform the foregoing steps.
- the systems and techniques disclosed herein helps to reduce the repetitive nature of replicating geometries in other similar regions of a design. This is a common task required to achieve the design intent of a particular component in any computer-based design software.
- the systems and techniques disclosed herein may help make the task of replicating geometries in similar regions efficient. Moreover, it tries to capture the design intent by considering not just quantitative but also qualitative factors.
- design software users can increase their efficiency and improve their productivity many times over compared to the existing solutions.
- the systems and techniques tend to be very easy to use and intuitive.
- the internal selection of attributes helps capture the design intent of the user in an easy-to-use user-interface. It also reduces the tediousness associated with a common but essential task performed during a design process. Additionally, repetitive tasks done by humans can lead to mistakes.
- the systems and techniques disclosed herein may help alleviate these types of mistakes.
- FIG. 1 is a schematic representation of a computer configured to implement predictive modeling.
- FIG. 2 is a flowchart representing a predictive modeling process.
- FIGS. 3 A- 3 G show a sequence of partial screenshots that represent one example of predictive modeling in accordance with the flowchart of FIG. 2 .
- FIGS. 4 A- 4 J show a sequence of partial screenshots that illustrate another example of predictive modeling.
- FIGS. 5 A- 5 E show a sequence of partial screenshots that illustrate yet another example of predictive modeling.
- FIGS. 6 A- 6 C is a flowchart that represents one exemplary implementation of a computer-implemented process for calculating predictions/suggestions.
- FIG. 7 is a schematic representation of an exemplary hierarchical relationship between the different topological elements in a boundary representation of a modeled object.
- the computer displays onscreen a user-selectable predictive modeling (PM) button.
- PM predictive modeling
- this is done automatically and in direct response to the CAD user having created a new geometric entity (e.g., obround 306 ) in the design.
- An example of this kind of user-selectable PM button 308 is shown in the screenshot of FIG. 3 B to the right of the newly-created geometric feature (i.e., obround 306 ).
- the screenshot of FIG. 3 C also has a suggestions context menu 310 that took the place of the user-selectable PM button 308 .
- the suggestions context menu 310 has four user-selectable icons 316 a - 316 d , each of which can be selected to invoke or access one or more computer functionalities.
- Icon 316 a is a drop point icon, the selection of which causes the computer to show all valid drop points in a design simultaneously.
- Icon 316 b is a settings icon, the selection of which causes the computer 100 to present an interface onscreen with various system settings relevant the suggestions functionalities.
- Icon 316 c is an accept icon, the selection of which indicates to the computer 100 that the user wants to accept any onscreen, active predictions/suggestions.
- Icon 316 d is a close icon, the selection of which causes the computer 100 to close the suggestions context menu 110 and to remove any predictions/suggestions that the user has not already accepted from the design.
- These user-selectable icons 316 a - 316 d can take on any one of a variety of possible visual appearances.
- the first user-selectable icon 316 a appears as a polygon with smaller circles at three of its four corners and a larger circle near its fourth corner;
- the second user-selectable icon 316 b appears as a gear, which is a symbol commonly recognized as being associated with computer settings;
- the third user-selectable icon 316 c appears as a checkmark in front of a rectangle;
- the fourth user-selectable icon 316 d appears as the letter x.
- the screenshot in FIG. 3 C enables the user to review and consider the computer's predictions/suggestions 312 before accepting, rejecting, or modifying them.
- the computer 100 (at 214 ) turns the accepted predictions/suggestions into actual geometries (i.e., geometric entities) in the design. If that happens, the accepted predications/suggestions cease to be predictions/suggestions and become part of the design itself.
- the computer 100 enables the user to make certain modifications (at 218 ) that may prompt the computer 100 to calculate and provide new predictions/suggestions. Once the modifications are made (at 218 ), the computer 100 (at 208 ) calculates the new predictions/suggestions and (at 210 ) displays the new predictions/suggestions to the user.
- the computer 100 might enable the user to prompt the computer 100 to calculate and provide new predictions/suggestions. These include enabling the user to: a) toggle a “similarity” option on or off in the settings interface, b) toggle a “symmetry” option on or off in the settings interface, c) toggle one or more of the predictions/suggestions being displayed on or off by tapping directly on the prediction/suggestion (when a particular one of the predictions/suggestions has been toggled off, the toggled off suggestion may appear desaturated), d) choose another reference co-vertex (e.g., by dragging the orb 114 to another location), and/or e) turn a “propagate suggestions across components” option on or off (turning this option on generally indicates to the computer 100 to look for similar regions in not just the current base solid, but also in all other solids that may have been opened in the current session.
- the computer 100 might provide one or more other ways for the user to prompt the computer 100 to
- FIG. 3 D is a schematic representation showing a user dragging the orb 314 from its original position identifying the original reference co-vertex for the predictions/suggestions to a new location. More specifically, FIG. 3 D shows a user's finger 318 touching the screen and in the process of dragging the orb 314 from its original location—on the original reference co-vertex (at the intersection of the top edge and the upper, left, side edge of the hexagon 302 )—to a new location. If the user, in FIG.
- the computer will calculate new predictions/suggestions (at 208 ) and display those new predictions/suggestions (at 210 ).
- the new predictions/suggestions are calculated using the new reference co-vertex.
- the system identifies all of the co-vertices in the design onscreen. This may be accomplished in any number of ways. In one implementation, this is accomplished by applying markings—black dots, for example—on the co-vertices of the modeled object. In the implementation of FIG. 3 D , for example, co-vertices are identified by black dots 320 .
- the computer 100 identifies on screen certain all co-vertices in the design that may be viable alternatives to the original reference co-vertex. These viable alternative co-vertices are potential drop points for the orb 314 that the user is dragging.
- the computer considers a co-vertex as a viable alternative to the original reference co-vertex only if it offers one or more new (different) suggestions compared to those offered by the original reference co-vertex.
- the computer may consider only one of the co-vertices from that set as viable—typically, the one that is nearest from the seed geometry.
- the computer 100 identifies these certain viable alternative co-vertices onscreen. There are a variety of ways the computer 100 might accomplish this. For example, according to the implementation in FIG. 3 D , when the dragging process begins, the computer 100 identifies viable alternative co-vertices with markings that resembles empty circles 312 (e.g., that may be white with a gray outline) on the screen itself.
- the computer 100 may change the appearance of the reference co-vertex.
- the reference co-vertex may be marked with an empty white circle before the dragging process begins (see FIG. 3 C ), but that marking may change into a darkened (e.g., brown) circle after the dragging has begun (see FIG. 3 D ).
- the brown circle indicates that, although the orb 314 is being dragged and the reference co-vertex may change, the suggestions (e.g., 312 a - 312 k in FIG. 3 C ) that appear on the screen were determined by the computer 100 using the co-vertex marked by the brown circle as a reference co-vertex.
- the viable co-vertex/drop point which is nearest from the current position of the orb is darkened and the suggestions offered by that co-vertex are shown. All other viable co-vertices/drop points are shown as empty circles slightly smaller in size than the orb 314 being dragged.
- the orb 314 is snapped to whichever drop point is darkened at the moment of releasing the orb 314 .
- FIG. 3 D the upper left corner of the hexagon is darkened because it is the nearest drop point from the orb 314 at that time. Suggestions offered by the darkened co-vertex are shown.
- the upper left corner of the cut out is an empty circle because it is a drop point but not the nearest one at that time.
- FIG. 3 E as the user drags the orb 314 further down, the upper left corner of the cut out is darkened because it is nearest drop target from the orb at that time. Suggestions offered by the new darkened co-vertex are now shown. The upper left corner of the hexagon now turns into an empty circle because it is no longer the nearest one.
- the computer may update what the user sees on the screen to show a new set of suggestions (see, e.g., 3121 - 312 n in FIG. 3 E ) that are based on the potential drop point being a new reference co-vertex.
- the computer 100 in that instance may change the onscreen appearance of the potential drop point 331 to indicate its new status as a potential reference co-vertex for the new suggestions.
- the computer 100 also changes the onscreen appearance of the previous reference co-vertex (at the upper left corner of the hexagon) to indicate that the previous reference co-vertex is now just another viable alternative co-vertex (and no longer a reference co-vertex for the new suggestions being displayed).
- FIG. 3 E shows how the screen would appear when the user's finger 318 has dragged the orb 314 close enough to one of the new potential drop points (i.e., the one at the top left side of the cutout) for the computer to react to the new orb 314 position.
- the screenshot has been updated to change the eleven suggestions 312 a - 312 k previously shown (in FIG. 3 D ) to three new suggestions 3121 - 312 n (in FIG. 3 E ).
- These new suggestions 3121 - 312 n would have been determined by the computer 100 based on the new potential drop point (i.e., the one at the top left side of the cutout) being considered a new point co-vertex.
- the onscreen appearance of the potential drop target has been changed (from an empty circle to a darkened circle) to indicate its new status as the reference co-vertex for the new suggestions.
- the onscreen appearance of the previous reference co-vertex (at the upper left side of the hexagon) has been changed (from a darkened circle to an empty circle) to indicate that the previous reference co-vertex is now just another viable alternative co-vertex (and no longer acting as a reference co-vertex for the new suggestions).
- the computer would update the appearance of the design to show a new set of suggestions using the then-closest viable co-vertex as the reference co-vertex.
- a potential drop point is darkened (e.g., brown), as shown in FIG. 3 E , and the orb 314 is released
- the computer 100 causes the orb 314 to snap to the darkened drop point and the new suggestions will be on the screen until the user accepts, rejects or otherwise takes steps to change the suggestions.
- FIG. 3 F An example of this is shown in FIG. 3 F , where the illustrated design includes the original, user-created geometric feature (i.e., obround 306 ) and the three suggestions 3121 - 312 n that the computer 100 calculated using the co-vertex at the inner edge, left side of the cutout as a reference co-vertex.
- the computer 100 incorporates the onscreen suggestions 3121 - 312 n into the design.
- the computer 100 incorporates the three onscreen suggestions 3121 - 312 n into the design.
- the system presents to the user a screen such as the one shown in FIG. 3 G , which includes the prior suggestions 3121 - 312 n incorporated into the design as actual geometric entities 3241 - 324 n.
- the example above illustrates how the computer 100 might enable users to prompt the computer 100 to change its predictions/suggestions by dragging and dropping the orb (that identifies the reference co-vertex for the predictions/suggestions) from its original location to another viable alternative co-vertex.
- the computer 100 might enable a user to prompt the computer 100 (see, e.g., 218 in FIG. 2 ) to calculate and display different predictions/suggestions. For example, FIGS.
- 4 A- 4 J include a series of screenshots from the display of computer 100 that illustrate an exemplary workflow that shows how predictions/suggestions can be toggled off or on (e.g., by the user clicking or tapping on a button (e.g., a sketch helper command button) using a mouse) and how a “Similarity” option in the computer's settings interface) may be useful.
- a button e.g., a sketch helper command button
- a base geometry 400 which, in the illustrated example, is a roughly T-shape geometry, on its side.
- a user creates a circle 402 at an upper left-hand corner of the base geometry 400 .
- the computer 100 causes a context menu 404 to appear next to the circle 402 .
- the context menu 404 has a user-selectable PM button 408 in it. In some instances, the computer 100 would cause the context menu to appear when the user clicks on the circle.
- the screenshot of FIG. 4 C also has a suggestions context menu 410 that took the place of the prior context menu 404 that included the user-selectable PM button 408 .
- the suggestions context menu 410 has four user-selectable icons including a settings icon 416 b , the selection of which causes the computer 100 to present an interface onscreen with various system settings relevant the suggestions functionalities.
- the screenshot in FIG. 4 C identifies the reference co-vertex by an orb 414 in the upper left corner of the design.
- An example of these settings options is shown in the exemplary settings interface 417 shown in FIG. 4 D .
- the message 415 includes information about the available settings and reads, “Settings will reveal a set of factors that can be changed to refine the suggestions.”
- the options shown in the illustrated settings menu include a “similarity” toggle switch 419 , a “symmetry” toggle switch 421 , and a “propagate suggestions across components” on/off switch 423 .
- the “similarity” and “symmetry” toggle switches are in an on (or activated) position, whereas the “propagate suggestions across components” switch 423 is in an off (or deactivated) position.
- the computer 100 shows four more options as additional predictions/suggestions 412 b - 412 e . While only the original sole prediction/suggestions 412 a was able to satisfy the restrictions imposed by the “similarity” and “symmetry” options, the original sole prediction/suggestion 412 a , as well as the additional predictions/suggestions 412 b - 412 e , are able to satisfy the less stringent restrictions imposed by only the “symmetry” option being active.
- the computer 100 looks not just for co-vertices that are similar or identical to the reference co-vertex, but also for co-vertices that appear like or are mirror-images of the reference co-vertex.
- the computer 100 typically omits certain properties from the descriptor if “similarity” is turned off. Effectively, by turning off “similarity”, the check for similarity of co-vertices is made less stringent, because of which additional (less similar) co-vertices too may offer suggestions.
- FIG. 4 G the user starts dragging the orb 414 to one of the valid drop points.
- the nearest drop point is shown darkened (e.g., in brown) and the suggestions arising from the new drop point are displayed dynamically.
- the orb 414 is closest to a drop point that is next to, but different than, the original reference co-vertex and, as a result, the computer 100 is showing all of the previously presented predictions/suggestions 412 a - 412 e , as well as two new predictions/suggestions 412 f and 412 g.
- the user drops the orb 414 on the new drop point (next to the original reference co-vertex in the upper left corner of the design).
- the predictions/suggestions 412 a - 412 g arising from the new drop point acting as a new reference co-vertex are displayed by the computer 100 .
- the user clicks on any undesired predictions/suggestions, namely 412 b , 412 e , 412 f and 412 g which changes these predictions/suggestions 412 b , 412 e , 412 f , and 412 g to a desaturated appearance.
- the rest of the predictions/suggestions 412 a , 412 c , and 412 d keep their saturated appearances.
- FIG. 4 J the user accepts the remaining (saturated) predictions/suggestions 412 a , 412 c , and 412 d (e.g., by clicking on the accept icon 416 c with the green tick). These predictions/suggestions 412 a , 412 c , and 412 d are turned into actual geometric entities in the design, and the desaturated predictions/suggestions 412 b , 412 e , 412 f , and 412 g disappear from the design and the screen.
- FIG. 4 J thus shows the base geometry 400 with the circle 402 created by the user and the three copies of the circle 412 a , 412 c , and 412 d on screen.
- FIGS. 5 A- 5 E include a series of screenshots from the display of computer 100 that illustrate an exemplary workflow that shows how the “symmetry” option (in the settings interface) may be useful.
- the user creates a base geometry 500 , which, in the illustrated example, is a complex shape.
- FIG. 5 B the user draws a triangle 502 at an upper left-hand corner of the base geometry 500 .
- the computer 100 in response to the triangle 502 being drawn, the computer 100 would cause a user-selectable PM button (like the one in context menu 404 ) to appear next to the triangle 502 .
- FIG. 5 C shows what the computer 100 would present at its screen, if the user selects the user-selectable PM button and then selects the settings option on the resulting context menu.
- the illustrated screenshot shows the base geometry 500 , the most recently created triangle 502 , a reference co-vertex (identified by orb 514 ), a plurality of predictions/suggestions 512 a - 512 o (calculated by the computer 100 using the triangle 502 as a seed geometry), and the suggestions settings context menu 517 .
- the suggestions settings context menu 517 indicates that the “similarity” option and the “symmetry” option are on or active, but the “propagate suggestions across components” option is off or inactive.
- the user toggles off the “symmetry” option off (i.e., makes that option inactive).
- the computer 100 deletes predictions/suggestions 512 a , 512 c , 512 e , 512 g , 512 i , 512 k , 512 m , and 512 o , leaving only predictions/suggestions 512 b , 512 d , 512 f , 512 h , 512 j , 5121 , and 512 n intact.
- predictions/suggestions 512 a , 512 c , 512 e , 512 g , 512 i , 512 k , 512 m , and 512 o satisfy the criteria required by the computer 100 when the “symmetry” option is on or active, they do not satisfy the criteria required by the computer when only “similarity,” but not “symmetry,” is on or active.
- FIG. 5 E shows a screenshot that the user would see if the user selects the “accept suggestions” icon 516 c (i.e., the check) in FIG. 5 D .
- the screenshot in FIG. 5 E includes the base geometry 500 with the user-created triangle 502 and all of the other triangles from FIG. 5 D (i.e., based on predictions/suggestions 512 b , 512 d , 512 f , 512 h , 512 j , 5121 , and 512 n ).
- the algorithm set forth below assumes that the user has opened a new or a preexisting modeled object in a CAD system for editing.
- the opened modeled object may be empty, or it may contain one or more three-dimensional (3D) solids, or it may contain one or more two-dimensional (2D) sketches, etc. or it may contain a combination of one or more 3D solids and one or more 2D sketches.
- 3D three-dimensional
- 2D two-dimensional
- processes and functionalities attributable to the computer 100 may, in some implementations, be performed by the processor 102 of the computer 100 , either alone or in conjunction with other components of the computer or otherwise.
- the computer 100 calculates, and stores in memory 106 , the following four local coordinate systems for each co-vertex in the modeled object:
- the computer 100 calculates, and stores in memory 106 , the following four descriptors for each co-vertex in the modeled object:
- the computer 100 finds the co-vertex that is spatially located nearest to the seed geometry. In a typical implementation, this is done by determining the co-vertex whose position is located the shortest 3D distance from the seed geometry. To find a 3D distance between a position and geometry represented in B-rep form, there are well-known techniques that would be familiar to those having skill in the art.
- the computer 100 (at 612 ) enables the user to designate some other co-vertex in the design as the reference co-vertex. As discussed above, one way that the computer 100 enables users to change a reference co-vertex designation is by enabling the user to drag and drop an onscreen orb from a reference co-vertex to a new reference co-vertex. If the user (at 614 ) opts to designate a different co-vertex as the reference co-vertex, the computer 100 (at 616 ) recognizes the newly-designated reference co-vertex and proceeds to step 618 ; otherwise, the computer 100 simply proceeds to step 618 .
- the computer 100 finds all co-vertices in the modeled object that match with the reference co-vertex. In some implementations, to find if a particular co-vertex matches with the reference co-vertex, the computer 100 determines whether the descriptor D o for that particular co-vertex matches identically (or within a predetermined or user-definable error tolerance, which is considered identical for these purposes) any of the four descriptors D o , D m , D r and D rm of the reference co-vertex.
- transforming any geometry from one coordinate system to another can be achieved by standard techniques (e.g., using transformation matrices) that would be familiar to those having skill in the relevant art.
- the computer 100 transforms a copy of the seed geometry from the local coordinate system of the reference co-vertex to a respective local coordinate system of the matching co-vertex.
- the computer 100 displays the transformed copies of the seed geometry as predictions/suggestions (e.g., visually distinct from other parts of the design) on the computer screen.
- the computer 100 then (at 642 ) enables the user to accept, reject, and/or modify the suggestions. Once the user accepts any of the predictions/suggestions, the computer 100 adds the accepted predictions/suggestions as geometric entities to the modeled object (design).
- the phrase modeled object may be used herein.
- 3D design software applications such as CAD (computer-aided design) programs are used for building solid geometry of products being designed.
- Modeled objects may refer generally to representations of solid geometries in a CAD program.
- a modeled object may contain none, one or more 3D solids and it may contain none, one or more 2D or 3D sketches.
- the phrase 3D CAD feature may be used herein.
- a CAD user may modify a 3D modeled object by creating 3D CAD features like fillets, chamfers, extrudes, cuts, holes, angled drafts, etc.
- the phrase sketch entity may refer generally to a two or three-dimensional entity like a line segment, an arc, a circle, a spline curve, a construction line, etc.
- a sketch may be comprised of one or more sketch entities drawn on a sketch plane.
- the phrase sketch plane normal may be used herein. In some CAD programs, the sketch plane normal is an inherent property of every sketch plane. In general, it is perpendicular to the sketch plane and points in the direction from which the sketch is supposed to be (or is) viewed.
- Boundary Representation is used to represent a modeled object by most modern CAD programs.
- a modeled object is represented by a hierarchical relationship between different topological elements, namely solids, shells, faces, co-edge chains, co-edges, edges, co-vertices and vertices.
- FIG. 7 is a schematic representation of an exemplary hierarchical relationship between the different topological elements in a boundary representation of a modeled object.
- a solid is represented by its bounding shells
- a shell is represented by a set of connected face
- a face is represented by its bounding co-edge chains
- a co-edge chain is represented by an ordered list of co-edges that are connected by co-vertices.
- a co-edge chain may be closed, that is, it may loop back on itself, when used in the context of bounded geometry.
- a co-edge chain may be open when used in the context of a sketch.
- a co-edge chain may belong to a face called as its parent face.
- a co-edge chain inside a sketch may exist without a parent face.
- a co-edge is the representation of an edge in the context of a particular co-edge chain.
- a co-edge is bounded by two co-vertices, the start co-vertex and the end co-vertex.
- the choice of which co-vertex is considered as start co-vertex and which is considered as the end co-vertex may be determined by which one occurs first in an ordered chain of the co-edges.
- a co-edge always belongs to a single co-edge chain, which may be referred to as its parent co-edge chain. According to the illustrated implementation, an edge is described by the curve/line where two faces meet.
- the number of co-edges referring to every edge is equal to the number of co-edge chains that edge participates in. In sketches, an edge may have one or more co-edges.
- a co-vertex is the representation of a vertex in the context of a particular co-edge chain.
- a co-vertex acts as the end co-vertex of its previous co-edge and as the start co-vertex of its next co-edge.
- a co-vertex always belongs to a single co-edge chain called as its parent co-edge chain.
- a vertex may be described by the point where two or more edges meet.
- the number of co-vertices referring to every vertex is generally equal to the number of co-edge chains that the vertex participates in.
- a reference co-vertex is the co-vertex that indicates the context of the surrounding region to be considered for calculating the predictions/suggestions.
- the start direction of a co-edge generally refers to the direction beginning from the start point of the co-edge and going inwards towards the interior of the edge.
- we refer to the start direction of a co-edge as the direction beginning from the end point of the co-edge and going inwards towards the interior of the edge. Note that this is exactly opposite to the direction that is generally considered in literature as the end direction of a co-edge. We choose to refer to it this way because it causes the start and end co-edge directions to become independent of the orientation or the co-edge chain and makes it convenient to perform calculations related to reverse and mirror co-vertices.
- the face normal direction generally refers to the direction that is perpendicular to the given face at a given point on the face and that points outwards from the region enclosed by the shell that the face belongs to.
- the face normal direction is same as the sketch plane normal.
- the face normal direction of the co-vertex generally refers to the face normal direction of the parent face of the co-vertex at the point of the co-vertex. If the context is a sketch, the face normal direction of the co-vertex is the same as the sketch plane normal direction.
- a geometric entity may be any of a 2D sketch entity (like a line segment, an arc, a circle, a spline curve, etc.), or a 3D CAD feature (for example, an extrude, a cut, a hole).
- a local coordinate system of a co-vertex (S 0 ) is generally a coordinate system whose:
- This coordinate system is a right-handed coordinate system.
- a mirrored local coordinate system of a co-vertex (S m ) is generally a coordinate system whose:
- a reversed local coordinate system of a co-vertex (S r ) is generally a coordinate system whose:
- a reversed mirrored local coordinate system of a co-vertex is generally a coordinate system whose:
- ⁇ right arrow over (x) ⁇ ⁇ right arrow over (y) ⁇ right arrow over (z) ⁇ means that ⁇ right arrow over (x) ⁇ has to be assigned the value of ⁇ right arrow over (z) ⁇ right arrow over (y) ⁇ .
- co-vertex descriptor generally refers to an ordered array of specific numeric properties of a co-vertex and the surrounding local region around it in the co-edge chain. All quantities in the descriptor are expressed in one of the four possible local coordinate system of the co-vertex, S o , S m , S r and S rm .
- a co-vertex descriptor may consist of two parts ⁇ and ⁇ . The descriptor may be formed by concatenating the two parts. The sequence of concatenation may depend on which kind of coordinate system the descriptor is being expressed in. For coordinate systems S o and S rm , the ⁇ part may be placed after the ⁇ part. For coordinate systems S m and S r , the ⁇ part may be placed after ⁇ part.
- the ⁇ part of the descriptor refers to properties related to the previous co-edge in the co-edge chain (i.e., the co-edge that starts from the previous co-vertex in the co-edge chain and ends at the given co-vertex):
- the ⁇ part of the descriptor refers to properties related to the next co-edge in the co-edge chain (i.e., the co-edge that starts from the given co-vertex and ends at the next co-vertex in the co-edge chain)
- one of the two parts is omitted from the descriptor. This results in making the check for identical descriptors less strict. If the check for identical descriptors needs to be made stricter, then some additional properties could be added to the descriptor, such as the local coordinates of the mid-points of the corresponding co-edges, the radius of curvature of the co-edges at the start, and/or middle and/or end points of the co-edges.
- the phrases ‘local x, y and z coordinates’ and ‘local x, y and z components’ used herein mean that the x, y and z values are expressed in the given coordinate system of the co-vertex, which may be any of:
- the computer may fill the ⁇ part of the descriptor array with zeroes, so that the length of the array remains unchanged.
- the computer may fill the ⁇ part of the descriptor array with zeroes, so that the length of the array remains unchanged.
- the computer when the “Similarity” option is turned off, the computer omits the properties p prev , V start prev , V end prev2 , p next , V end next , V start next2 from the descriptors.
- the two parts of the descriptor may be concatenated such that ⁇ part is placed after ⁇ part.
- the two parts of the descriptor may be concatenated such that a part is placed after ⁇ part.
- the arrow heads drawn on the middle of the three sides indicate the anti-clockwise orientation of the co-edge chain.
- the six unit-vectors indicate the start and end directions of the co-edges.
- FIG. 9 shows five co-edge chains A, B, C, D, E constructed with the same measurements as the previously shown triangle.
- the arrow heads drawn in the middle of the sides indicate the orientation of the co-edges. Note that:
- FIG. 11 shows the local coordinate system S o of the co-vertex at the right-angled corner of each of the co-edge chains A, B, C, D and E.
- Co-edge Descriptor chain type P prev V start prev V end prev V end prev2 B ⁇ part of D o 0, 6, 0 0, ⁇ 1, 0 0, 1, 0 0.8, ⁇ 0.6, 0 C ⁇ part of D o 0, 8, 0 0, ⁇ 1, 0 0, 1, 0 0.6, ⁇ 0.8, 0 D ⁇ part of D o 0, ⁇ 8, 0 0, 1, 0 0, ⁇ 1, 0 ⁇ 0.6, ⁇ 0.8, 0 E ⁇ part of D o 0, ⁇ 6, 0 0, 1, 0 0, -1, 0 0.8, 0.6, 0 A ⁇ part of D o 0, 6, 0 0, ⁇ 1, 0 0, 1, 0 0.8, ⁇ 0.6, 0
- Co-edge Descriptor chain type Descriptor array B Full D o ( ⁇ + ⁇ ) 0, 6, 0, 0, ⁇ 1, 0, 0, 1, 0, 0.8, ⁇ 0.6, 0, 8, 0, 0, 1, 0, 0, ⁇ 1, 0, 0, ⁇ 0.8, 0.6, 0 C Full D o ( ⁇ + ⁇ ) 0, 8, 0, 0, ⁇ 1, 0, 0, 1, 0, 0.6, ⁇ 0.8, 0, 6, 0, 0, 1, 0, 0, ⁇ 1, 0, 0, ⁇ 0.6, 0.8, 0 D Full D o ( ⁇ + ⁇ ) 0, ⁇ 8, 0, 0, 1, 0, 0, ⁇ 1, 0, ⁇ 0.6, ⁇ 0.8, 0, 6, 0, 0, 0, 1, 0, ⁇ 1, 0, 0, 0.6, 0.8, 0 E Full D o ( ⁇ + ⁇ ) 0, ⁇ 6, 0, 0, 1, 0, 0, ⁇ 1, 0, 0.8, 0.6, 0, 8, 0, 0, 0, 1, 0, 0, ⁇ 1, 0, 0, ⁇ 0.8, ⁇ 0.6, 0 A Full D o ( ⁇ + ⁇ ) 0, 6, 0, 0, ⁇ 1, 0, 0, 1, 0, 0.8, ⁇ 0.6, 0, 8, 0, 0, 0, 1, 0, 0,
- Co-edge Descriptor chain type P prev V start prev V end prev V end prev2 A ⁇ part of D m 6, 0, 0 1, 0, 0 ⁇ 1, 0, 0 ⁇ 0.6, 0.8, 0 A ⁇ part of D r 6, 0, 0 1, 0, 0 ⁇ 1, 0, 0 0.6, 0.8, 0 A ⁇ part of D rm 0, ⁇ 6, 0 0, 1, 0 0, ⁇ 1, 0 0.8, 0.6, 0
- Co-edge Descriptor chain type P next V start next V end next V start next2 A ⁇ part of D m 0, 8, 0 0, ⁇ 1, 0 0, 1, 0 0.6, ⁇ 0.8, 0
- Co-edge Descriptor chain type Descriptor array B Full D o ( ⁇ + ⁇ ) 0, 6, 0, 0, ⁇ 1, 0, 0, 1, 0, 0.8, ⁇ 0.6, 0, 8, 0, 0, 1, 0, 0, ⁇ 1, 0, 0, ⁇ 0.8, 0.6, 0 C Full D o ( ⁇ + ⁇ ) 0, 8, 0, 0, ⁇ 1, 0, 0, 1, 0, 0.6, ⁇ 0.8, 0, 6, 0, 0, 1, 0, 0, ⁇ 1, 0, 0, ⁇ 0.6, 0.8, 0 D Full D o ( ⁇ + ⁇ ) 0, ⁇ 8, 0, 0, 1, 0, 0, ⁇ 1, 0, ⁇ 0.6, ⁇ 0.8, 0, 6, 0, 0, 0, 1, 0, ⁇ 1, 0, 0, 0.6, 0.8, 0 E Full D o ( ⁇ + ⁇ ) 0, ⁇ 6, 0, 0, 1, 0, 0, ⁇ 1, 0, 0.8, 0.6, 0, 8, 0, 0, 0, 1, 0, 0, ⁇ 1, 0, 0, ⁇ 0.8, ⁇ 0.6, 0 A Full D o ( ⁇ + ⁇ ) 0, 6, 0, 0, ⁇ 1, 0, 0, 1, 0, 0.8, ⁇ 0.6, 0, 8, 0, 0, 0, 1, 0, 0,
- the systems and techniques disclosed herein relate mainly to the field of product design.
- any software application used for 2D or 3D design e.g., where a user might need or want to reproduce geometries in all similar shaped regions in a modeled object.
- This may include, for example, software products used for product design, industrial design, sketching, and drawing.
- Some examples of such apps are SOLIDWORKS, CATIA Part Design, DS 3DByMe, and 3D Sketch App.
- Such a tool can as well be useful in other software applications that allow creating and editing geometric shapes like MS PowerPoint, Adobe Illustrator, etc.
- the subject matter disclosed herein can be implemented in digital electronic circuitry, or in computer-based software, firmware, or hardware, including the structures disclosed in this specification and/or their structural equivalents, and/or in combinations thereof.
- the subject matter disclosed herein can be implemented in one or more computer programs, that is, one or more modules of computer program instructions, encoded on computer storage medium for execution by, or to control the operation of, one or more data processing apparatuses (e.g., processors).
- the program instructions can be encoded on an artificially generated propagated signal, for example, a machine-generated electrical, optical, or electromagnetic signal that is generated to encode information for transmission to suitable receiver apparatus for execution by a data processing apparatus.
- a computer storage medium can be, or can be included within, a computer-readable storage device, a computer-readable storage substrate, a random or serial access memory array or device, or a combination thereof. While a computer storage medium should not be considered to be solely a propagated signal, a computer storage medium may be a source or destination of computer program instructions encoded in an artificially generated propagated signal. The computer storage medium can also be, or be included in, one or more separate physical components or media, for example, multiple CDs, computer disks, and/or other storage devices.
- processor e.g., a processor
- data processing apparatus e.g., a processor
- processor encompasses all kinds of apparatus, devices, and machines for processing data, including by way of example a programmable processor, a computer, a system on a chip, or multiple processors, or combinations, of the foregoing.
- the apparatus can include special purpose logic circuitry, e.g., an FPGA (field programmable gate array) or an ASIC (application specific integrated circuit).
- the apparatus can also include, in addition to hardware, code that creates an execution environment for the computer program in question, for example, code that constitutes processor firmware, a protocol stack, a database management system, an operating system, a cross-platform runtime environment, a virtual machine, or a combination of one or more of them.
- code that creates an execution environment for the computer program in question for example, code that constitutes processor firmware, a protocol stack, a database management system, an operating system, a cross-platform runtime environment, a virtual machine, or a combination of one or more of them.
- the phrase computer may refer to a single discrete computer or multiple discrete computers or computer components coupled together.
- processor or computer processor may refer to one discrete processor or more than one discrete processor. In some implementations that include more than one discrete processor, the processors may be distributed across multiple discrete devices and/or locations.
- memory or computer memory may refer to one discrete memory device or more than one discrete memory device. In some implementations that include more than one discrete memory device, the memory devices may be distributed across multiple discrete computers or computer components and/or locations.
Landscapes
- Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Geometry (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Evolutionary Computation (AREA)
- Computer Hardware Design (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Mathematical Analysis (AREA)
- Computational Mathematics (AREA)
- Human Computer Interaction (AREA)
- Architecture (AREA)
- User Interface Of Digital Computer (AREA)
- Processing Or Creating Images (AREA)
Abstract
Description
-
- a. a local coordinate system So for the co-vertex,
- b. a mirrored local coordinate system Sm for the co-vertex (not needed if “Symmetry” option is off),
- c. a reversed local coordinate system Sr for the co-vertex, and
- d. a reversed mirrored local coordinate system Srm for the co-vertex (not needed if “Symmetry” option is off).
-
- a. a Descriptor Do for the co-vertex expressed in the local coordinate system So,
- b. a Descriptor Dm for the co-vertex expressed in the mirrored local coordinate system Sm (not needed if “Symmetry” option is off),
- c. a Descriptor Dr for the co-vertex expressed in the reversed local coordinate system Sr, and
- d. a Descriptor Drm for the co-vertex expressed in the reversed mirrored local coordinate system Srm (not needed if “Symmetry” option is off).
-
- a. If the matching co-vertex's descriptor Do is identical to the reference co-vertex's descriptor Do (622), then the computer 100 (at 624) transforms a copy of the seed geometry as expressed in the reference co-vertex's So to the matching co-vertex's So.
- b. If the matching co-vertex's descriptor Do is identical to the reference co-vertex's descriptor Dm (626), then the computer 100 (at 628) transforms a copy of the seed geometry as expressed in the reference co-vertex's Sm to the matching co-vertex's So.
- c. If the matching co-vertex's descriptor Do is identical to the reference co-vertex's descriptor Dr (630), then the computer 100 (at 632) transforms a copy of the seed geometry as expressed in the reference co-vertex's Sr to the matching co-vertex's So.
- d. If the matching co-vertex's descriptor Do is identical to the reference co-vertex's descriptor Drm (634), then the computer 100 (at 634) transforms a copy of the seed geometry as expressed in the reference co-vertex's local coordinate system Srm to the matching co-vertex's So.
-
- origin coincides with the position of the co-vertex
- z-axis is aligned with the face normal direction at the co-vertex
- x-axis is aligned with the start direction of the next co-edge of the co-vertex
- y-axis is aligned with the cross product of the z and x directions ({right arrow over (y)}{right arrow over (z)}×{right arrow over (x)})
-
- y-axis is aligned with the end direction of the previous co-edge
- x-axis is aligned with the cross product of the y and z directions ({right arrow over (x)}{right arrow over (y)}×{right arrow over (z)})
-
- origin coincides with the position of the original co-vertex
- z-axis is aligned opposite to the face normal direction at the co-vertex
- x-axis is aligned with the end direction of the previous co-edge of the co-vertex
- y-axis is aligned with the cross product of the z and x directions ({right arrow over (y)}{right arrow over (z)}×{right arrow over (x)})
-
- y-axis is aligned opposite to the start direction of the next co-edge
- x-axis is aligned with the cross product of the y and z directions ({right arrow over (x)}{right arrow over (y)}×{right arrow over (z)})
-
- origin coincides with the position of the co-vertex
- z-axis is aligned with the face normal direction at the co-vertex
- x-axis is aligned with the end direction of the previous co-edge of the co-vertex
- y-axis is aligned with the cross product of the z and x directions ({right arrow over (y)}{right arrow over (z)}×{right arrow over (x)})
-
- y-axis is aligned opposite to the start direction of the next co-edge
- x-axis is aligned with the cross product of the y and z directions ({right arrow over (x)}{right arrow over (y)}×{right arrow over (z)})
-
- origin coincides with the position of the original co-vertex
- z-axis is aligned opposite to the face normal direction at the co-vertex
- x-axis is aligned with the start direction of the next co-edge of the co-vertex
- y-axis is aligned with the cross product of the z and x directions ({right arrow over (y)}{right arrow over (z)}×{right arrow over (x)})
-
- y-axis is aligned opposite to the end direction of the previous co-edge
- x-axis is aligned with the cross product of the y and z directions ({right arrow over (x)}{right arrow over (y)}×{right arrow over (z)})
-
- i. pprev (three real numbers): Local x, y and z coordinates of the previous co-vertex (omitted if Similarity option is off)
- ii. Vstart prev (three real numbers): Local x, y and z components of the start direction of the previous co-edge (omitted if Similarity option is off)
- iii. Vend prev (three real numbers): Local x, y and z components of the end direction of the previous co-edge
- iv. Vend prev2 (three real numbers): Local x, y and z components of the end direction of the co-edge previous to the previous co-edge (omitted if Similarity option is off).
-
- i. pnext (three real numbers): Local x, y and z coordinates of the next co-vertex (omitted if Similarity option is off)
- ii. Vstart next (three real numbers): Local x, y and z components of start direction of the next co-edge
- iii. Vend next (three real numbers): Local x, y and z components of end direction of the next co-edge (omitted if Similarity option is off)
- Iv. Vstart next2 (three real numbers): Local x, y and z components of start direction of the co-edge next to the next co-edge (omitted if Similarity option is off).
-
- a. local coordinate system of the co-vertex
- b. mirrored local coordinate system of the co-vertex
- c. reversed local coordinate system of the co-vertex
- d. reversed mirrored local coordinate system of the co-vertex
-
- If Do of a given co-vertex matches with Dm of the seed co-vertex then it means that the given co-vertex is identical to the seed co-vertex.
- If Do of a given co-vertex matches with Dm of the seed co-vertex then it means that the given co-vertex would have been identical to the seed co-vertex had the co-edge chain of the seed co-vertex been a mirror image of its current form.
- If Do of a given co-vertex matches with Dr of the seed co-vertex then it means that the given co-vertex would have been identical to the seed co-vertex had the orientation of the co-edge chain been reversed.
- If Do of a given co-vertex matches with Drm, of the seed co-vertex then it means that the given co-vertex would have been identical to the seed co-vertex had the co-edge chain of the seed co-vertex been a mirror image of its current form with its orientation reversed.
-
- A and B are identical co-edge chains
- A and C have the same orientations (anticlockwise) and their shapes are mirror images of each other
- A and D have opposite orientations, but their shapes are identical
- A and E have opposite orientations and their shapes are mirror images of each other
| Co-edge | Descriptor | ||||
| chain | type | Pprev | Vstart prev | Vend prev | Vend prev2 |
| B | α part of |
0, 6, 0 | 0, −1, 0 | 0, 1, 0 | 0.8, −0.6, 0 |
| C | α part of |
0, 8, 0 | 0, −1, 0 | 0, 1, 0 | 0.6, −0.8, 0 |
| D | α part of |
0, −8, 0 | 0, 1, 0 | 0, −1, 0 | −0.6, −0.8, 0 |
| E | α part of |
0, −6, 0 | 0, 1, 0 | 0, -1, 0 | 0.8, 0.6, 0 |
| A | α part of |
0, 6, 0 | 0, −1, 0 | 0, 1, 0 | 0.8, −0.6, 0 |
| Co-edge | Descriptor | ||||
| chain | type | Pnext | Vstart next | Vend next | Vstart next2 |
| B | β part of |
8, 0, 0 | 1, 0, 0 | −1, 0, 0 | −0.8, 0.6, 0 |
| C | β part of |
6, 0, 0 | 1, 0, 0 | −1, 0, 0 | −0.6, 0.8, 0 |
| D | β part of |
6, 0, 0 | 1, 0, 0 | −1, 0, 0 | 0.6, 0.8, 0 |
| E | β part of |
8, 0, 0 | 1, 0, 0 | −1, 0, 0 | −0.8, −0.6, 0 |
| A | β part of |
8, 0, 0 | 1, 0, 0 | −1, 0, 0 | −0.8, 0.6, 0 |
| Co-edge | Descriptor | |
| chain | type | Descriptor array |
| B | Full Do (α + β) | 0, 6, 0, 0, −1, 0, 0, 1, 0, 0.8, −0.6, 0, 8, |
| 0, 0, 1, 0, 0, −1, 0, 0, −0.8, 0.6, 0 | ||
| C | Full Do (α + β) | 0, 8, 0, 0, −1, 0, 0, 1, 0, 0.6, −0.8, 0, 6, |
| 0, 0, 1, 0, 0, −1, 0, 0, −0.6, 0.8, 0 | ||
| D | Full Do (α + β) | 0, −8, 0, 0, 1, 0, 0, −1, 0, −0.6, −0.8, 0, |
| 6, 0, 0, 1, 0, 0, −1, 0, 0, 0.6, 0.8, 0 | ||
| E | Full Do (α + β) | 0, −6, 0, 0, 1, 0, 0, −1, 0, 0.8, 0.6, 0, 8, 0, |
| 0, 1, 0, 0, −1, 0, 0, −0.8, −0.6, 0 | ||
| A | Full Do (α + β) | 0, 6, 0, 0, −1, 0, 0, 1, 0, 0.8, −0.6, 0, 8, 0, |
| 0, 1, 0, 0, −1, 0, 0, −0.8, 0.6, 0 | ||
[Note: The +symbol in (α+β) indicates concatenation, not summation].
| Co-edge | Descriptor | ||||
| chain | type | Pprev | Vstart prev | Vend prev | Vend prev2 |
| A | α part of |
6, 0, 0 | 1, 0, 0 | −1, 0, 0 | −0.6, 0.8, 0 |
| A | α part of |
6, 0, 0 | 1, 0, 0 | −1, 0, 0 | 0.6, 0.8, 0 |
| A | α part of |
0, −6, 0 | 0, 1, 0 | 0, −1, 0 | 0.8, 0.6, 0 |
| Co-edge | Descriptor | ||||
| chain | type | Pnext | Vstart next | Vend next | Vstart next2 |
| A | β part of |
0, 8, 0 | 0, −1, 0 | 0, 1, 0 | 0.6, −0.8, 0 |
| A | β part of |
0, −8, 0 | 0, 1, 0 | 0, −1, 0 | −0.6, −0.8, 0 |
| A | β part of |
8, 0, 0 | 1, 0, 0 | −1, 0, 0 | −0.8, −0.6, 0 |
| Co-edge | Descriptor | |
| chain | type | Descriptor array |
| B | Full Do (α + β) | 0, 6, 0, 0, −1, 0, 0, 1, 0, 0.8, −0.6, 0, 8, 0, 0, |
| 1, 0, 0, −1, 0, 0, −0.8, 0.6, 0 | ||
| C | Full Do (α + β) | 0, 8, 0, 0, −1, 0, 0, 1, 0, 0.6, −0.8, 0, 6, 0, 0, |
| 1, 0, 0, −1, 0, 0, −0.6, 0.8, 0 | ||
| D | Full Do (α + β) | 0, −8, 0, 0, 1, 0, 0, −1, 0, −0.6, −0.8, 0, 6, 0, |
| 0, 1, 0, 0, −1, 0, 0, 0.6, 0.8, 0 | ||
| E | Full Do (α + β) | 0,− 6, 0, 0, 1, 0, 0, −1, 0, 0.8, 0.6, 0, 8, 0, 0, |
| 1, 0, 0, −1, 0, 0, −0.8, −0.6, 0 | ||
| A | Full Do (α + β) | 0, 6, 0, 0, −1, 0, 0, 1, 0, 0.8, −0.6, 0, 8, 0, 0, |
| 1, 0, 0, −1, 0, 0, −0.8, 0.6, 0 | ||
| A | Full Dm (β + α) | 0, 8, 0, 0, −1, 0, 0, 1, 0, 0.6, −0.8, 0, 6, 0, 0, |
| 1, 0, 0, −1, 0, 0, −0.6, 0.8, 0 | ||
| A | Full Dr (β + α) | 0, −8, 0, 0, 1, 0, 0, −1, 0, −0.6, −0.8, 0, 6, 0, |
| 0, 1, 0, 0, −1, 0, 0, 0.6, 0.8, 0 | ||
| A | Full Drm (α + β) | 0, −6, 0, 0, 1, 0, 0, −1, 0, 0.8, 0.6, 0, 8, 0, 0, |
| 1, 0, 0, −1, 0, 0, −0.8, −0.6, 0 | ||
[Note: The +symbol in (α+β) and (β+α) indicates concatenation, not summation].
-
- Do of B is identical to Do of A
- Do of C is identical to Dm of A
- Do of D is identical to Dr of A
- Do of E is identical to Drm of A
Claims (25)
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US17/156,780 US12242774B2 (en) | 2020-02-05 | 2021-01-25 | Predictive modeling |
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US202062970317P | 2020-02-05 | 2020-02-05 | |
| US17/156,780 US12242774B2 (en) | 2020-02-05 | 2021-01-25 | Predictive modeling |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| US20210240881A1 US20210240881A1 (en) | 2021-08-05 |
| US12242774B2 true US12242774B2 (en) | 2025-03-04 |
Family
ID=74556667
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| US17/156,780 Active 2042-06-06 US12242774B2 (en) | 2020-02-05 | 2021-01-25 | Predictive modeling |
Country Status (4)
| Country | Link |
|---|---|
| US (1) | US12242774B2 (en) |
| EP (1) | EP3862905A1 (en) |
| JP (1) | JP7667662B2 (en) |
| CN (1) | CN113221203A (en) |
Families Citing this family (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP7473336B2 (en) * | 2018-12-29 | 2024-04-23 | ダッソー システムズ | Training Neural Networks to Infer Solid CAD Features |
| EP3675062A1 (en) | 2018-12-29 | 2020-07-01 | Dassault Systèmes | Learning a neural network for inference of solid cad features |
| US20250238562A1 (en) * | 2024-01-24 | 2025-07-24 | Dassault Systemes Solidworks Corporation | Bulk Replication of Gussets, Plates and End Caps in a Structure Model |
Citations (11)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20060004841A1 (en) | 2004-06-24 | 2006-01-05 | Teemu Heikkonen | Computer-aided modeling |
| EP2333683A1 (en) | 2009-11-06 | 2011-06-15 | Dassault Systèmes | Method and system for designing an assembly of objects in a system of computer-aided design |
| US20120078588A1 (en) * | 2010-09-27 | 2012-03-29 | Siemens Corporation | Inferring and maintaining symmetry relationships in a 3-d editor |
| JP2014099177A (en) | 2012-11-15 | 2014-05-29 | Dassault Systemes | Circular staggered pattern of objects |
| JP2014130602A (en) | 2012-12-31 | 2014-07-10 | Dassault Systemes | Groups of faces that form geometrical pattern |
| US8818769B2 (en) * | 2010-10-28 | 2014-08-26 | Parametric Technology Corporation | Methods and systems for managing synchronization of a plurality of information items of a computer-aided design data model |
| WO2014207454A1 (en) | 2013-06-26 | 2014-12-31 | Renishaw Plc | Method and apparatus for generating geometric data for use in additive manufacturing |
| US20160063174A1 (en) * | 2014-08-26 | 2016-03-03 | Dassault Systemes | Execution of sequential update |
| US20160246899A1 (en) | 2015-02-25 | 2016-08-25 | Onshape Inc. | Multi-User Cloud Parametric Feature-Based 3D CAD System |
| US20180122138A1 (en) | 2016-11-01 | 2018-05-03 | Purdue Research Foundation | Collaborative 3d modeling system |
| EP3432172A1 (en) | 2017-07-20 | 2019-01-23 | Bricsys NV | Predicting user desirability of a constructional connection in a building information model |
-
2021
- 2021-01-25 US US17/156,780 patent/US12242774B2/en active Active
- 2021-02-03 JP JP2021015949A patent/JP7667662B2/en active Active
- 2021-02-04 EP EP21155328.4A patent/EP3862905A1/en active Pending
- 2021-02-05 CN CN202110164570.4A patent/CN113221203A/en active Pending
Patent Citations (12)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20060004841A1 (en) | 2004-06-24 | 2006-01-05 | Teemu Heikkonen | Computer-aided modeling |
| EP2333683A1 (en) | 2009-11-06 | 2011-06-15 | Dassault Systèmes | Method and system for designing an assembly of objects in a system of computer-aided design |
| US20120078588A1 (en) * | 2010-09-27 | 2012-03-29 | Siemens Corporation | Inferring and maintaining symmetry relationships in a 3-d editor |
| US8818769B2 (en) * | 2010-10-28 | 2014-08-26 | Parametric Technology Corporation | Methods and systems for managing synchronization of a plurality of information items of a computer-aided design data model |
| JP2014099177A (en) | 2012-11-15 | 2014-05-29 | Dassault Systemes | Circular staggered pattern of objects |
| JP2014130602A (en) | 2012-12-31 | 2014-07-10 | Dassault Systemes | Groups of faces that form geometrical pattern |
| WO2014207454A1 (en) | 2013-06-26 | 2014-12-31 | Renishaw Plc | Method and apparatus for generating geometric data for use in additive manufacturing |
| US20160063174A1 (en) * | 2014-08-26 | 2016-03-03 | Dassault Systemes | Execution of sequential update |
| US20160246899A1 (en) | 2015-02-25 | 2016-08-25 | Onshape Inc. | Multi-User Cloud Parametric Feature-Based 3D CAD System |
| US20200004894A1 (en) * | 2015-02-25 | 2020-01-02 | Onshape Inc. | Multi-User Cloud Parametric Feature-Based 3D CAD System with Bi-directional Editing |
| US20180122138A1 (en) | 2016-11-01 | 2018-05-03 | Purdue Research Foundation | Collaborative 3d modeling system |
| EP3432172A1 (en) | 2017-07-20 | 2019-01-23 | Bricsys NV | Predicting user desirability of a constructional connection in a building information model |
Non-Patent Citations (2)
| Title |
|---|
| English machine translation of Office Action for JP 2021-015949, dated Nov. 22, 2024. |
| Extended European Search Report for Application No. 21155328.4, dated Jul. 2, 2021. |
Also Published As
| Publication number | Publication date |
|---|---|
| CN113221203A (en) | 2021-08-06 |
| JP2021125262A (en) | 2021-08-30 |
| JP7667662B2 (en) | 2025-04-23 |
| EP3862905A1 (en) | 2021-08-11 |
| US20210240881A1 (en) | 2021-08-05 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US11893312B2 (en) | Multi-directional editing within a multi-user cloud parametric feature-based 3D CAD system | |
| US11238186B2 (en) | Designing an assembly of objects in a computer-aided design system | |
| US12242774B2 (en) | Predictive modeling | |
| US8473259B2 (en) | Object interface in computer-aided design of an assembly of objects | |
| EP3040946B1 (en) | Viewpoint selection in the rendering of a set of objects | |
| EP2523132A1 (en) | Designing a three-dimensional modeled assembly of objects in a three-dimensional scene | |
| US11556234B2 (en) | WYSIWYG editor for creating and editing a feature control frame for geometric dimensioning and tolerancing in computer-aided design system | |
| CN103823922B (en) | The alternate pattern of design object | |
| US12307164B2 (en) | Linking views/states of 3D models and propagating updates in same | |
| US20230315251A1 (en) | Information processing apparatus, non-transitory computer readable medium storing program, and information processing method | |
| CN102598000B (en) | Correction of topology interference for solid objects in a modeling environment | |
| US7609259B2 (en) | System and method for performing a selective fill for a hearing aid shell | |
| US20260010665A1 (en) | Annotating a 3d modeled object representing a cad mechanical part or assembly of parts | |
| Сухарькова | Lecture course on the discipline «Engineering and computer graphics» section:«Computer graphics» | |
| CN114816156A (en) | Model detection method and device, terminal device and storage medium |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| AS | Assignment |
Owner name: DASSAULT SYSTEMES SOLIDWORKS CORPORATION, MASSACHUSETTS Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:APTE, MAKARAND;MULE, GIRISH;STILES, JODY;AND OTHERS;SIGNING DATES FROM 20200724 TO 20200728;REEL/FRAME:055014/0465 |
|
| FEPP | Fee payment procedure |
Free format text: ENTITY STATUS SET TO UNDISCOUNTED (ORIGINAL EVENT CODE: BIG.); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY |
|
| STPP | Information on status: patent application and granting procedure in general |
Free format text: APPLICATION DISPATCHED FROM PREEXAM, NOT YET DOCKETED |
|
| STPP | Information on status: patent application and granting procedure in general |
Free format text: DOCKETED NEW CASE - READY FOR EXAMINATION |
|
| STPP | Information on status: patent application and granting procedure in general |
Free format text: NON FINAL ACTION MAILED |
|
| STPP | Information on status: patent application and granting procedure in general |
Free format text: RESPONSE TO NON-FINAL OFFICE ACTION ENTERED AND FORWARDED TO EXAMINER |
|
| STPP | Information on status: patent application and granting procedure in general |
Free format text: FINAL REJECTION MAILED |
|
| STPP | Information on status: patent application and granting procedure in general |
Free format text: DOCKETED NEW CASE - READY FOR EXAMINATION |
|
| STPP | Information on status: patent application and granting procedure in general |
Free format text: DOCKETED NEW CASE - READY FOR EXAMINATION |
|
| STPP | Information on status: patent application and granting procedure in general |
Free format text: NON FINAL ACTION MAILED |
|
| STPP | Information on status: patent application and granting procedure in general |
Free format text: RESPONSE TO NON-FINAL OFFICE ACTION ENTERED AND FORWARDED TO EXAMINER |
|
| STPP | Information on status: patent application and granting procedure in general |
Free format text: NOTICE OF ALLOWANCE MAILED -- APPLICATION RECEIVED IN OFFICE OF PUBLICATIONS |
|
| STPP | Information on status: patent application and granting procedure in general |
Free format text: AWAITING TC RESP., ISSUE FEE NOT PAID |
|
| STPP | Information on status: patent application and granting procedure in general |
Free format text: PUBLICATIONS -- ISSUE FEE PAYMENT RECEIVED |
|
| STPP | Information on status: patent application and granting procedure in general |
Free format text: PUBLICATIONS -- ISSUE FEE PAYMENT VERIFIED |
|
| STCF | Information on status: patent grant |
Free format text: PATENTED CASE |