EP3123368A1 - Intelligent offset recognition in cad models - Google Patents

Intelligent offset recognition in cad models

Info

Publication number
EP3123368A1
EP3123368A1 EP15768850.8A EP15768850A EP3123368A1 EP 3123368 A1 EP3123368 A1 EP 3123368A1 EP 15768850 A EP15768850 A EP 15768850A EP 3123368 A1 EP3123368 A1 EP 3123368A1
Authority
EP
European Patent Office
Prior art keywords
entity
chain
offset
offset pair
strong
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.)
Ceased
Application number
EP15768850.8A
Other languages
German (de)
French (fr)
Other versions
EP3123368A4 (en
Inventor
Howard Charles Duncan Mattson
Douglas Joseph King
Yanong ZHU
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Siemens Industry Software Inc
Original Assignee
Siemens Product Lifecycle Management Software Inc
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Siemens Product Lifecycle Management Software Inc filed Critical Siemens Product Lifecycle Management Software Inc
Publication of EP3123368A1 publication Critical patent/EP3123368A1/en
Publication of EP3123368A4 publication Critical patent/EP3123368A4/en
Ceased legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/10Geometric CAD
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]

Definitions

  • the present disclosure is directed, in general, to computer-aided design, visualization, and manufacturing systems ("CAD systems”), product lifecycle management (“PLM”) systems, and similar systems, that manage data for products and other items (collectively, “Product Data Management” systems or PDM systems).
  • CAD systems computer-aided design, visualization, and manufacturing systems
  • PLM product lifecycle management
  • PDM systems manage PLM and other data, and CAD systems are useful for modeling. Improved systems are desirable.
  • a method includes receiving a CAD model that includes a plurality of entities each having an underlying geometry.
  • the method includes identifying a first offset pair chain corresponding to a first entity of the plurality of entities, including identifying a first partner entity that is part of the same offset pair.
  • the method includes determining whether the first offset pair chain is a strong chain.
  • the method includes, when the first offset pair chain is a strong chain, then marking the first entity as a part of an offset pair.
  • the method includes storing the CAD model including the marked first entity.
  • Figure 1 illustrates a block diagram of a data processing system in which an embodiment can be implemented
  • Figure 2 illustrates examples of geometric offsets between underlying geometries in accordance with disclosed embodiments
  • Figure 3 illustrates offset pairs in accordance with disclosed embodiments
  • Figures 4A-4F illustrate connected offset pairs in accordance with disclosed embodiments
  • Figures 5A-5C illustrate examples of offset chains in accordance with disclosed embodiments
  • Figure 6 illustrates a flowchart of a process in accordance with disclosed embodiments
  • Figures 7A and 7B illustrate an example of a CAD model in accordance with disclosed embodiments
  • Figure 8 illustrates an example of a thin-wall characteristic in accordance with disclosed embodiments
  • Figure 9 illustrates an example of vanishing partners in accordance with disclosed embodiments
  • Figures 10A and 10B illustrate vanishing overlaps in accordance with disclosed embodiments; and [0017] Figure 11 illustrates entities in multiple chains in accordance with disclosed embodiments.
  • FIGURES 1 through 1 1 discussed below, and the various embodiments used to describe the principles of the present disclosure in this patent document are by way of illustration only and should not be construed in any way to limit the scope of the disclosure. Those skilled in the art will understand that the principles of the present disclosure may be implemented in any suitably arranged device. The numerous innovative teachings of the present application will be described with reference to exemplary non-limiting embodiments.
  • a model will often include two geometries, such as a line, curve, or object, that are offset from each other by a fixed distance. In many cases, this offset relationship should be maintained in the model while other operations are being performed.
  • Disclosed embodiments include intelligent systems and methods for automatic recognition and processing of such offset relationships.
  • Basic low level detection of the geometric offset condition can be performed by some systems, for example by simply recognizing that two geometries are constrained to a set distance from each other.
  • Other systems can identify wall features in object models by identifying counterpart wall faces, such as described in commonly-assigned United States Patent 8,260,583, incorporated herein by reference.
  • Figure 1 depicts a block diagram of a data processing system in which an embodiment can be implemented, for example as a CAD or PDM system particularly configured by software or otherwise to perform the processes as described herein, and in particular as each one of a plurality of interconnected and communicating systems as described herein.
  • the data processing system depicted includes a processor 102 connected to a level two cache/bridge 104, which is connected in turn to a local system bus 106.
  • Local system bus 106 may be, for example, a peripheral component interconnect (PCI) architecture bus.
  • PCI peripheral component interconnect
  • main memory 108 main memory
  • graphics adapter 1 10 may be connected to display 1 1 1.
  • Peripherals such as local area network (LAN) / Wide Area Network / Wireless (e.g. WiFi) adapter 1 12, may also be connected to local system bus 106.
  • Expansion bus interface 1 14 connects local system bus 106 to input/output (I/O) bus 1 16.
  • I/O bus 1 16 is connected to keyboard/mouse adapter 1 18, disk controller 120, and I/O adapter 122.
  • Disk controller 120 can be connected to a storage 126, which can be any suitable machine usable or machine readable storage medium, including but not limited to nonvolatile, hard-coded type mediums such as read only memories (ROMs) or erasable, electrically programmable read only memories (EEPROMs), magnetic tape storage, and user-recordable type mediums such as floppy disks, hard disk drives and compact disk read only memories (CD-ROMs) or digital versatile disks (DVDs), and other known optical, electrical, or magnetic storage devices.
  • Storage 126 can store any data necessary for operation as described herein, including CAD model 152 and cache 154, discussed in more detail below.
  • audio adapter 124 Also connected to I/O bus 1 16 in the example shown is audio adapter 124, to which speakers (not shown) may be connected for playing sounds.
  • Keyboard/mouse adapter 1 18 provides a connection for a pointing device (not shown), such as a mouse, trackball, trackpointer, touchscreen, etc.
  • a data processing system in accordance with an embodiment of the present disclosure includes an operating system employing a graphical user interface.
  • the operating system permits multiple display windows to be presented in the graphical user interface simultaneously, with each display window providing an interface to a different application or to a different instance of the same application.
  • a cursor in the graphical user interface may be manipulated by a user through the pointing device. The position of the cursor may be changed and/or an event, such as clicking a mouse button, generated to actuate a desired response.
  • One of various commercial operating systems such as a version of Microsoft WindowsTM, a product of Microsoft Corporation located in Redmond, Wash, may be employed if suitably modified.
  • the operating system is modified or created in accordance with the present disclosure as described.
  • LAN/ WAN/Wireless adapter 1 12 can be connected to a network 130 (not a part of data processing system 100), which can be any public or private data processing system network or combination of networks, as known to those of skill in the art, including the Internet.
  • Data processing system 100 can communicate over network 130 with server system 140, which is also not part of data processing system 100, but can be implemented, for example, as a separate data processing system 100.
  • Disclosed embodiments include systems and methods for intelligently identifying and processing "realistic" offset geometries, and can be implemented as an overall flexible framework into which further heuristics can be added.
  • "realistic" offsets refer to those that correspond to offset geometries as a human user would regard them.
  • Various embodiments can operate in different modes, including a batch / global mode for recognizing all realistic offsets in a model and storing this information for subsequent use, and a local, selection-driven, on-the-fly mode for interactive operations only requiring the minimum of offset pairs to be found.
  • Various embodiments can use absolute or context-independent criteria, so that the decision of whether an entity is or is not an offset will always be the same regardless of whether batch or selection mode is being used and is independent of any processing order.
  • chains of connected offsets can be considered together, which is more aligned with the way humans judge offsets in typical models.
  • various embodiments can favor chains of offsets containing some "long and thin" pairs as these are typical in thin-wall and clearance situations in CAD modeling.
  • An "entity” refers to a bounded portion of an underlying geometry.
  • the entity is an edge and the underlying geometry is a curve, while in 3D implementations, the entity is a face and the underlying geometry is a surface.
  • a "geometric offset” exists between the underlying geometries of two entities when each underlying geometry is the same distance from the other underlying geometry at all corresponding points. These two entities are referred to herein as an “offset pair” and each entity in the pair may be referred to as the "partner" of the other.
  • an offset pair could consist, for example, of parallel lines, concentric circles, approximate spline curve offsets, or a base curve and a procedurally defined offset curve:
  • OffsetCurve(t) BaseCurve(t) + distance * NormalToBaseCurve(t)
  • an offset pair could consist of, for example, parallel planes, concentric spheres, coaxial cylinders, same spine tori, coaxial and same angle cones, approximate spline surface offsets, or a base surface and a procedurally defined offset surface:
  • OffsetSurface(t) BaseSurface(t) + distance * NormalToBaseSurface(t)
  • Figure 2 illustrates examples of geometric offsets between underlying geometries of two parallel lines (top row) and two concentric circles (bottom row).
  • the entities 202 are shown with solid lines while their respective underlying geometries 204 are shown with dashed lines.
  • This figure illustrates that the one entity can completely overlap the other entity (first column), partially overlap the other (second column), or the entities may not overlap each other at all (third column) where the underlying geometries for each entity have a geometric offset.
  • an "overlap" exists between two geometric offset entities when there is at least one point of projection between the two entities.
  • a normal from the surface of one entity can be projected onto the other entity in the first and second columns, but not in the third column.
  • the entities of the first and second columns have an overlap but the entities of the third column do not have an overlap.
  • offset pair refers to two entities which are the nearest overlapping geometric offsets of each other.
  • Figure 3 illustrates offset pairs in accordance with disclosed embodiments. In this example, only entities 2 and 3 form an offset pair as they are the only combination where each is the nearest overlapping geometric offset to the other.
  • two offset pairs or offset pair chains are "connected” if they have the same offset distance and have an adjacency between entities on the same side or share an entity on the same side.
  • Figures 4A-4F illustrate connected offset pairs in accordance with disclosed embodiments.
  • Figs. 4A-4D illustrate examples of the connection through adjacency.
  • entities 1 and 2 are a first offset pair and entities 3 and 4 are a second offset pair. These offset pairs are connected since entities 1 and 4 are adjacent to each other in each example, and entities 2 and 3 are adjacent to each other in the examples of Figs. 4A and 4B. Adjacency on 1 side is sufficient for a connection.
  • Figs. 4E-4F illustrate examples of the connection through sharing.
  • entities 1 and 2 are an offset pair and entities 1 and 3 are also an offset pair. These offset pairs are connected since entities 2 and 3 each form an offset pair with the "shared" entity 1.
  • FIG. 5A-5C illustrate examples of offset chains 502 shown as solid lines in a CAD model 500 while remaining entities are shown as dashed lines.
  • Fig. 5A illustrates a minimal offset chain, including only a single offset pair.
  • Fig. 5B illustrates a partial offset chain of several connected offset pairs, but not including all of the offset pairs connected to those shown.
  • Fig. 5C illustrates a complete offset chain, where the complete chain of offset pairs is shown in solid lines.
  • Disclosed embodiments can designate entities as "realistic" offsets if they are part of a “strong” offset chain. The strength or weakness of a chain can be judged by using many and multiple measures.
  • an offset chain can be considered “strong” if it is long and thin.
  • This measure encodes the human interpretation of wall-like and slot-like portions of a model as being stronger than distant or short sections of possible offset.
  • this measure is made on individual pairs and a chain is deemed strong if at least one pair is strong. It can also be applied to the chain as a whole.
  • the measure is a ratio of the length of the overlap to the offset distance value.
  • the length of overlap is calculated as the overlapping portions of edges.
  • the length would be formed by any reasonable length measure of overlap such as a diagonal of an overlap box.
  • a variable threshold can then be used to determine whether the pair is strong or not. In some embodiments, a ratio of 5: 1 (length of overlap : offset) is used as a threshold to determine that the pair is strong, but other ratios can be used in other embodiments.
  • an offset chain can be considered “strong” if it is explicitly labelled. If an offset pair is explicitly denoted as an offset pair, then it should be considered as strong.
  • an offset chain can be considered less “strong” if it the offset pairs are "blocked" by other entities. Intervening entities within the overlap region may be regarded as weakening the strength of a pair or even disregarding it as a pair altogether. Whether this measure is used can depend heavily on the application domain and the particular implementation.
  • an offset chain can be considered "strong” based on the geometric type of the geometries. Different geometric types may be considered stronger due to consideration of the rarity of their appearance. For example, spline geometries in approximate offset or procedural offset geometry are unlikely to be accidentally in offset, whereas lines and planes are often parallel and circles and cylinders are often concentric. This can be used as an explicit override of the strength measure or else to decrease the overlap ratio required for recognition.
  • an offset chain can be considered "strong" based on specific values. Particular absolute values may be significant in some situations, either as explicitly entered by a user or perhaps a set of domain standard values might be known.
  • an offset chain can be considered "strong" based on other implementation specifics.
  • disclosed techniques are flexible and any domain or implementation specifics can be used to infer a pair or whole chain as strong.
  • Figure 6 depicts a flowchart of a process in accordance with disclosed embodiments that may be performed, for example, by one or more CAD systems as described herein, referred to generically as the "system.”
  • the system receives a CAD model (605), the CAD model including a plurality of entities each having an underlying geometry. Note that multiple entities may share an underlying geometry, such as two bounded line entities on the same underlying line geometry.
  • the CAD model can be stored as CAD model 152.
  • the CAD model can also store offset and chain information for some of the entities, including which entities are part of a strong offset chain, in which case those entities do not need to be re -processed as described herein.
  • Figures 7A and 7B illustrate an example of a CAD model 700 that can be received that has a plurality of entities, such as entity 702 of Fig. 7A, each having an underlying geometry (not shown), and is used to illustrate the process of Fig. 6. While this example is a 2D CAD model representation, the processes described herein apply also to 3D CAD models.
  • the system can initialize a chain cache (610).
  • the chain cache can record processed entities and their discovered chains.
  • the chain cache can be stored as cache 154.
  • the system can identify the entities to be processed (615). This can be, for example, a single entity for on-the-fly mode or all entities in CAD model for batch mode.
  • entity 702 is selected as the entity to be processed, and the application or user needs to know whether to treat the selected entity 702 as an offset. Identifying the entity to be processed can include receiving a user selection of one or more entities to be processed.
  • the system For each entity to be processed, if the entity is not already in an offset pair stored in the cache, the system identifies an offset pair (620). As part of 620, the system determines if the entity is part of an offset pair (620), including identifying at least one partner entity. If the current entity is not part of an offset pair, then no further processing is needed for that entity since it is not part of an offset pair chain. In the example of Fig. 7A, entity 704 is identified as an offset entity to entity 702, and entities 702 and 704 comprise an offset pair and an offset pair chain (since an offset pair chain need have only one offset pair).
  • the system adds the offset pair to the chain cache (625) as an offset pair chain.
  • the system can form a new chain in the cache with this immediate offset pair or add this offset pair chain to a connected offset pair chain already stored in the cache (when the process repeats as described below).
  • the system can determine if the offset pair chain is a strong chain (630). If the offset pair chain is a strong chain, then the offset pair chain is marked as strong in the cache. In the on-the-fly mode case, processing can proceed to 640 as soon as the offset pair chain is marked as a strong chain, since the entity 702 is therefore determined to be a recognized offset and the chain marked as strong in the cache. In a batch mode, all entities will generally be processed in any case. [0056] In the example of Fig. 7 A, the overlap between entities 702 and 704 is insufficient in ratio to the offset distance, however, so this chain is not strong in the first pass.
  • the system can identify an additional offset pair that is connected to the offset pair chain stored in the cache (635), and the process repeats to 625. If there are no further connected offset pairs, then the process proceeds to 640.
  • entities 706 and 708 are identified as a connected offset pair after the first pass; this offset pair is also not strong.
  • entities 710 and 712 are added to the offset pair chain as a connected offset pair, but they are not strong.
  • Entities 720 and 722 are added to the offset pair chain as a connected offset pair, but they are not strong.
  • Entities 714 and 716 are added to the offset pair chain as a connected offset pair, but they are not necessarily strong (depending on the overlap/distance ratio used).
  • Entities 714 and 718 are added to the offset pair chain as a connected offset pair, but they are not necessarily strong (depending on the overlap/distance ratio used).
  • the system marks the selected entity as part of an offset pair if it is part of a strong chain (640). If it is not part of a strong chain, then the selected entity is not marked as part of an offset pair. Note that it is not necessary to find the whole chain in order to determine the outcome for the selected entity. In the example of Fig. 7A, once the strong offset pair chain is identified, entity 702 is marked as part of an offset pair.
  • the system stores the CAD model including the marked entity (645). Any of the offset pair, offset pair chain, or other information described above can also be stored.
  • Fig. 7B illustrates the results of a batch-mode process performed as described above.
  • the batch mode would have recognized three full chains in model 700, shown as solid lines in Fig. 7B, while non-chain entities are shown in dashed lines.
  • one chain is the solid lines indicated at 730
  • another chain is the solid lines indicated at 740
  • the final chain is the remaining solid lines.
  • the system considers the combination of multiple entities in overlap calculations.
  • offset pairs share an entity, such as where entities 716 and 718 share entity 714 in Fig. 7A
  • the calculation of the offset ratio can be improved by summing the overlap of all the pairs. This case occurs often as a result of splitting one side of a single offset pair and is often how a human perceives the case.
  • the sum of the overlaps between entities 714/716 and 714/718 is compared to the offset difference, which results in a much larger ratio for considering whether a strong offset chain is formed.
  • Such a combination is not limited to two entities that share another entity; any number of entities that share a common entity can be combined for such an overlap calculation.
  • the overlap can be calculated based on a ratio of (i) a sum of the lengths by which the first entity and at least one other entity that shares the first partner entity overlap the first partner entity to (ii) an offset distance between the first entity and the first partner entity
  • Various embodiments can also filter offset pairs. In some implementations and for some domains, it may be required to only recognize some subsets of offsets. For example, if a particular meaning can be assigned to each side of the entities, such as "inside" and "outside,” then offsets with the characteristics of thin walls or inter-wall clearance gaps may be required whereas other combinations, where the sides are aligned, may not be useful.
  • Figure 8 illustrates an example of a thin-wall characteristic 802, where the entity pair forms a thin wall within object 820.
  • Fig. 8 also illustrates an example of a clearance characteristic 804, where the entity pair represents the offset between the contained object 810 and the containing object 820.
  • the system can process vanishing partners.
  • a general issue when dealing with offsets is when the radius of curvature becomes equal to and then smaller than the offset distance. When it becomes equal, the partner entity collapses into a point of zero radius and when it decreases further, the partner radius effectively becomes negative and is not represented in the real portion of the model.
  • Figure 9 illustrates an example of vanishing partners as the radius is decreased, left to right.
  • the radius R of the outer entity curvature is greater than the distance d between the inner entity and the outer entity, and so the radius r of the inner entity curvature is greater than zero.
  • R is equal to d, and r is equal to 0 (where d is kept constant), so the inner entity has collapsed to a point.
  • R is less than d, so r is less than 0 (where d is kept constant); the inner entity has vanished from the visible model altogether.
  • the system can process vanishing overlaps.
  • the overlap will vanish.
  • Figures 10A and 10B illustrate vanishing overlaps in accordance with disclosed embodiments.
  • entities 1002 and 1004 in the offset chain overlap.
  • the overlap disappears, so that no overlap is seen in the rightmost illustration.
  • the system can define the "overlap" requirement to include gaps of up to the offset distance.
  • Fig. 10B illustrates an example of allowing an offset pair when there is a distance gap in the overlap. In this case, the gap in the overlap between entities 1006 and 1008 is less than the distance d of the offset, so the system can consider these to be overlapping when identifying offset pairs.
  • the system can process explicit labels.
  • the system can process multiple chains for the same entity.
  • the algorithm framework is capable of handling entities being in multiple chains.
  • Figure 1 1 illustrates entities in multiple chains.
  • a first offset chain could include entities 1 102/1 106/1 1 12 and their partner entities 1 104/1 108/1 1 10.
  • a second offset chain could include entity 1 104 and partner entity 1 1 10. This can be true whether or not the offset distance between the pairs in the first offset chain is the same as or is different from the distance between the pairs in the second offset chain.
  • This inclusion is preferably limited to avoid over finding of offset pairs, and so the system can use an implementation-specific heuristics and domain knowledge to limit finding excess pairs.
  • finding pairs with the characteristic long and thin seeds make the whole chain recognized, and finding pairs as offsets which would be weak, in isolation, are counted as offsets due to chain connection.
  • Various embodiments can find those offset pairs that are nearest overlapping offsets of each other, and can avoid finding offset pairs when there are blocking entities.
  • Various embodiments can use domain knowledge and implementation extensions within the framework of the disclosed techniques, including in the basic detection of the offset pair condition, in the filtering of unwanted offset pairs, in the connection types for building chains, and in strength indicators for pairs and chains as a whole.
  • machine usable/readable or computer usable/readable mediums include: nonvolatile, hard-coded type mediums such as read only memories (ROMs) or erasable, electrically programmable read only memories (EEPROMs), and user-recordable type mediums such as floppy disks, hard disk drives and compact disk read only memories (CD-ROMs) or digital versatile disks (DVDs).
  • ROMs read only memories
  • EEPROMs electrically programmable read only memories
  • user-recordable type mediums such as floppy disks, hard disk drives and compact disk read only memories (CD-ROMs) or digital versatile disks (DVDs).

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Geometry (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Evolutionary Computation (AREA)
  • General Engineering & Computer Science (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Processing Or Creating Images (AREA)
  • Architecture (AREA)
  • Software Systems (AREA)
  • Image Analysis (AREA)
  • Apparatus For Radiation Diagnosis (AREA)

Abstract

Systems and methods for identifying members of offset pairs in CAD models. A method includes receiving (605) a CAD model (700) that includes a plurality of entities (702) each having an underlying geometry. The method includes identifying (620) a first offset pair chain (702/704) corresponding to a first entity of the plurality of entities, including identifying a first partner entity (704) that is part of the same offset pair. The method includes determining (630) whether the first offset pair chain is a strong chain. The method includes when the first offset pair chain is a strong chain, then marking (640) the first entity as a part of an offset pair. The method includes storing (645) the CAD model including the marked first entity.

Description

INTELLIGENT OFFSET RECOGNITION IN CAD MODELS TECHNICAL FIELD
[0001] The present disclosure is directed, in general, to computer-aided design, visualization, and manufacturing systems ("CAD systems"), product lifecycle management ("PLM") systems, and similar systems, that manage data for products and other items (collectively, "Product Data Management" systems or PDM systems).
BACKGROUND OF THE DISCLOSURE
[0002] PDM systems manage PLM and other data, and CAD systems are useful for modeling. Improved systems are desirable.
SUMMARY OF THE DISCLOSURE
[0003] Various disclosed embodiments include systems and methods for identifying members of offset pairs in CAD models. A method includes receiving a CAD model that includes a plurality of entities each having an underlying geometry. The method includes identifying a first offset pair chain corresponding to a first entity of the plurality of entities, including identifying a first partner entity that is part of the same offset pair. The method includes determining whether the first offset pair chain is a strong chain. The method includes, when the first offset pair chain is a strong chain, then marking the first entity as a part of an offset pair. The method includes storing the CAD model including the marked first entity.
[0004] The foregoing has outlined rather broadly the features and technical advantages of the present disclosure so that those skilled in the art may better understand the detailed description that follows. Additional features and advantages of the disclosure will be described hereinafter that form the subject of the claims. Those skilled in the art will appreciate that they may readily use the conception and the specific embodiment disclosed as a basis for modifying or designing other structures for carrying out the same purposes of the present disclosure. Those skilled in the art will also realize that such equivalent constructions do not depart from the spirit and scope of the disclosure in its broadest form.
[0005] Before undertaking the DETAILED DESCRIPTION below, it may be advantageous to set forth definitions of certain words or phrases used throughout this patent document: the terms "include" and "comprise," as well as derivatives thereof, mean inclusion without limitation; the term "or" is inclusive, meaning and/or; the phrases "associated with" and "associated therewith," as well as derivatives thereof, may mean to include, be included within, interconnect with, contain, be contained within, connect to or with, couple to or with, be communicable with, cooperate with, interleave, juxtapose, be proximate to, be bound to or with, have, have a property of, or the like; and the term "controller" means any device, system or part thereof that controls at least one operation, whether such a device is implemented in hardware, firmware, software or some combination of at least two of the same. It should be noted that the functionality associated with any particular controller may be centralized or distributed, whether locally or remotely. Definitions for certain words and phrases are provided throughout this patent document, and those of ordinary skill in the art will understand that such definitions apply in many, if not most, instances to prior as well as future uses of such defined words and phrases. While some terms may include a wide variety of embodiments, the appended claims may expressly limit these terms to specific embodiments.
BRIEF DESCRIPTION OF THE DRAWINGS
[0006] For a more complete understanding of the present disclosure, and the advantages thereof, reference is now made to the following descriptions taken in conjunction with the accompanying drawings, wherein like numbers designate like objects, and in which:
[0007] Figure 1 illustrates a block diagram of a data processing system in which an embodiment can be implemented;
[0008] Figure 2 illustrates examples of geometric offsets between underlying geometries in accordance with disclosed embodiments;
[0009] Figure 3 illustrates offset pairs in accordance with disclosed embodiments;
[0010] Figures 4A-4F illustrate connected offset pairs in accordance with disclosed embodiments;
[0011] Figures 5A-5C illustrate examples of offset chains in accordance with disclosed embodiments;
[0012] Figure 6 illustrates a flowchart of a process in accordance with disclosed embodiments;
[0013] Figures 7A and 7B illustrate an example of a CAD model in accordance with disclosed embodiments;
[0014] Figure 8 illustrates an example of a thin-wall characteristic in accordance with disclosed embodiments;
[0015] Figure 9 illustrates an example of vanishing partners in accordance with disclosed embodiments;
[0016] Figures 10A and 10B illustrate vanishing overlaps in accordance with disclosed embodiments; and [0017] Figure 11 illustrates entities in multiple chains in accordance with disclosed embodiments.
DETAILED DESCRIPTION
[0018] FIGURES 1 through 1 1 , discussed below, and the various embodiments used to describe the principles of the present disclosure in this patent document are by way of illustration only and should not be construed in any way to limit the scope of the disclosure. Those skilled in the art will understand that the principles of the present disclosure may be implemented in any suitably arranged device. The numerous innovative teachings of the present application will be described with reference to exemplary non-limiting embodiments.
[0019] In the context of two-dimensional (2D) or three-dimensional (3D) geometric models, it is often useful for a system to be able to automatically recognize those pairs of offset geometries that a user might reasonably wish to maintain or otherwise process. That is, a model will often include two geometries, such as a line, curve, or object, that are offset from each other by a fixed distance. In many cases, this offset relationship should be maintained in the model while other operations are being performed. Disclosed embodiments include intelligent systems and methods for automatic recognition and processing of such offset relationships.
[0020] Basic low level detection of the geometric offset condition can be performed by some systems, for example by simply recognizing that two geometries are constrained to a set distance from each other. Other systems can identify wall features in object models by identifying counterpart wall faces, such as described in commonly-assigned United States Patent 8,260,583, incorporated herein by reference.
[0021] However, many systems will either not recognize offset relations without specific constraints or will identify too many pairs of geometries as having an offset relationship simply because they are proximate to each other. Over-recognition of offset "pairs" is particularly problematic since it results in a slow and unproductive user interaction with the system. Disclosed embodiments employ heuristic intelligence techniques to determine which offset pairs should be recognized.
[0022] Figure 1 depicts a block diagram of a data processing system in which an embodiment can be implemented, for example as a CAD or PDM system particularly configured by software or otherwise to perform the processes as described herein, and in particular as each one of a plurality of interconnected and communicating systems as described herein. The data processing system depicted includes a processor 102 connected to a level two cache/bridge 104, which is connected in turn to a local system bus 106. Local system bus 106 may be, for example, a peripheral component interconnect (PCI) architecture bus. Also connected to local system bus in the depicted example are a main memory 108 and a graphics adapter 1 10. The graphics adapter 1 10 may be connected to display 1 1 1.
[0023] Other peripherals, such as local area network (LAN) / Wide Area Network / Wireless (e.g. WiFi) adapter 1 12, may also be connected to local system bus 106. Expansion bus interface 1 14 connects local system bus 106 to input/output (I/O) bus 1 16. I/O bus 1 16 is connected to keyboard/mouse adapter 1 18, disk controller 120, and I/O adapter 122. Disk controller 120 can be connected to a storage 126, which can be any suitable machine usable or machine readable storage medium, including but not limited to nonvolatile, hard-coded type mediums such as read only memories (ROMs) or erasable, electrically programmable read only memories (EEPROMs), magnetic tape storage, and user-recordable type mediums such as floppy disks, hard disk drives and compact disk read only memories (CD-ROMs) or digital versatile disks (DVDs), and other known optical, electrical, or magnetic storage devices. Storage 126 can store any data necessary for operation as described herein, including CAD model 152 and cache 154, discussed in more detail below.
[0024] Also connected to I/O bus 1 16 in the example shown is audio adapter 124, to which speakers (not shown) may be connected for playing sounds. Keyboard/mouse adapter 1 18 provides a connection for a pointing device (not shown), such as a mouse, trackball, trackpointer, touchscreen, etc.
[0025] Those of ordinary skill in the art will appreciate that the hardware depicted in Figure 1 may vary for particular implementations. For example, other peripheral devices, such as an optical disk drive and the like, also may be used in addition or in place of the hardware depicted. The depicted example is provided for the purpose of explanation only and is not meant to imply architectural limitations with respect to the present disclosure.
[0026] A data processing system in accordance with an embodiment of the present disclosure includes an operating system employing a graphical user interface. The operating system permits multiple display windows to be presented in the graphical user interface simultaneously, with each display window providing an interface to a different application or to a different instance of the same application. A cursor in the graphical user interface may be manipulated by a user through the pointing device. The position of the cursor may be changed and/or an event, such as clicking a mouse button, generated to actuate a desired response.
[0027] One of various commercial operating systems, such as a version of Microsoft Windows™, a product of Microsoft Corporation located in Redmond, Wash, may be employed if suitably modified. The operating system is modified or created in accordance with the present disclosure as described.
[0028] LAN/ WAN/Wireless adapter 1 12 can be connected to a network 130 (not a part of data processing system 100), which can be any public or private data processing system network or combination of networks, as known to those of skill in the art, including the Internet. Data processing system 100 can communicate over network 130 with server system 140, which is also not part of data processing system 100, but can be implemented, for example, as a separate data processing system 100.
[0029] Disclosed embodiments include systems and methods for intelligently identifying and processing "realistic" offset geometries, and can be implemented as an overall flexible framework into which further heuristics can be added. As used herein, "realistic" offsets refer to those that correspond to offset geometries as a human user would regard them. Various embodiments can operate in different modes, including a batch / global mode for recognizing all realistic offsets in a model and storing this information for subsequent use, and a local, selection-driven, on-the-fly mode for interactive operations only requiring the minimum of offset pairs to be found. [0030] Various embodiments can use absolute or context-independent criteria, so that the decision of whether an entity is or is not an offset will always be the same regardless of whether batch or selection mode is being used and is independent of any processing order. In various embodiments, chains of connected offsets can be considered together, which is more aligned with the way humans judge offsets in typical models. Further, while not limited to this bias, various embodiments can favor chains of offsets containing some "long and thin" pairs as these are typical in thin-wall and clearance situations in CAD modeling.
[0031] For consistency of description, various terms have specific usage in this document. An "entity" refers to a bounded portion of an underlying geometry. In 2D implementations, the entity is an edge and the underlying geometry is a curve, while in 3D implementations, the entity is a face and the underlying geometry is a surface.
[0032] A "geometric offset" exists between the underlying geometries of two entities when each underlying geometry is the same distance from the other underlying geometry at all corresponding points. These two entities are referred to herein as an "offset pair" and each entity in the pair may be referred to as the "partner" of the other. In 2D implementations, an offset pair could consist, for example, of parallel lines, concentric circles, approximate spline curve offsets, or a base curve and a procedurally defined offset curve:
OffsetCurve(t) = BaseCurve(t) + distance * NormalToBaseCurve(t)
[0033] In 3D implementations, an offset pair could consist of, for example, parallel planes, concentric spheres, coaxial cylinders, same spine tori, coaxial and same angle cones, approximate spline surface offsets, or a base surface and a procedurally defined offset surface:
OffsetSurface(t) = BaseSurface(t) + distance * NormalToBaseSurface(t)
[0034] Figure 2 illustrates examples of geometric offsets between underlying geometries of two parallel lines (top row) and two concentric circles (bottom row). In this figure, the entities 202 are shown with solid lines while their respective underlying geometries 204 are shown with dashed lines. This figure illustrates that the one entity can completely overlap the other entity (first column), partially overlap the other (second column), or the entities may not overlap each other at all (third column) where the underlying geometries for each entity have a geometric offset.
[0035] As used herein, an "overlap" exists between two geometric offset entities when there is at least one point of projection between the two entities. In Fig. 2, a normal from the surface of one entity can be projected onto the other entity in the first and second columns, but not in the third column. Thus, the entities of the first and second columns have an overlap but the entities of the third column do not have an overlap.
[0036] An "offset pair" refers to two entities which are the nearest overlapping geometric offsets of each other. Figure 3 illustrates offset pairs in accordance with disclosed embodiments. In this example, only entities 2 and 3 form an offset pair as they are the only combination where each is the nearest overlapping geometric offset to the other.
[0037] As used herein, two offset pairs or offset pair chains are "connected" if they have the same offset distance and have an adjacency between entities on the same side or share an entity on the same side. Figures 4A-4F illustrate connected offset pairs in accordance with disclosed embodiments.
[0038] Figs. 4A-4D illustrate examples of the connection through adjacency. In each of these examples, entities 1 and 2 are a first offset pair and entities 3 and 4 are a second offset pair. These offset pairs are connected since entities 1 and 4 are adjacent to each other in each example, and entities 2 and 3 are adjacent to each other in the examples of Figs. 4A and 4B. Adjacency on 1 side is sufficient for a connection.
[0039] Figs. 4E-4F illustrate examples of the connection through sharing. In each of these examples, entities 1 and 2 are an offset pair and entities 1 and 3 are also an offset pair. These offset pairs are connected since entities 2 and 3 each form an offset pair with the "shared" entity 1.
[0040] An "offset chain" or "offset pair chain" as used herein is one or more connected offset pairs. Figures 5A-5C illustrate examples of offset chains 502 shown as solid lines in a CAD model 500 while remaining entities are shown as dashed lines. Fig. 5A illustrates a minimal offset chain, including only a single offset pair. Fig. 5B illustrates a partial offset chain of several connected offset pairs, but not including all of the offset pairs connected to those shown. Fig. 5C illustrates a complete offset chain, where the complete chain of offset pairs is shown in solid lines.
[0041] Disclosed embodiments can designate entities as "realistic" offsets if they are part of a "strong" offset chain. The strength or weakness of a chain can be judged by using many and multiple measures.
[0042] In some cases, an offset chain can be considered "strong" if it is long and thin. This measure encodes the human interpretation of wall-like and slot-like portions of a model as being stronger than distant or short sections of possible offset. In various embodiments, this measure is made on individual pairs and a chain is deemed strong if at least one pair is strong. It can also be applied to the chain as a whole. The measure is a ratio of the length of the overlap to the offset distance value. In 2D implementations, the length of overlap is calculated as the overlapping portions of edges. In 3D implementations, the length would be formed by any reasonable length measure of overlap such as a diagonal of an overlap box. A variable threshold can then be used to determine whether the pair is strong or not. In some embodiments, a ratio of 5: 1 (length of overlap : offset) is used as a threshold to determine that the pair is strong, but other ratios can be used in other embodiments.
[0043] In some cases, an offset chain can be considered "strong" if it is explicitly labelled. If an offset pair is explicitly denoted as an offset pair, then it should be considered as strong.
[0044] In some cases, an offset chain can be considered less "strong" if it the offset pairs are "blocked" by other entities. Intervening entities within the overlap region may be regarded as weakening the strength of a pair or even disregarding it as a pair altogether. Whether this measure is used can depend heavily on the application domain and the particular implementation. [0045] In some cases, an offset chain can be considered "strong" based on the geometric type of the geometries. Different geometric types may be considered stronger due to consideration of the rarity of their appearance. For example, spline geometries in approximate offset or procedural offset geometry are unlikely to be accidentally in offset, whereas lines and planes are often parallel and circles and cylinders are often concentric. This can be used as an explicit override of the strength measure or else to decrease the overlap ratio required for recognition.
[0046] In some cases, an offset chain can be considered "strong" based on specific values. Particular absolute values may be significant in some situations, either as explicitly entered by a user or perhaps a set of domain standard values might be known.
[0047] In some cases, an offset chain can be considered "strong" based on other implementation specifics. As described herein, disclosed techniques are flexible and any domain or implementation specifics can be used to infer a pair or whole chain as strong.
[0048] Figure 6 depicts a flowchart of a process in accordance with disclosed embodiments that may be performed, for example, by one or more CAD systems as described herein, referred to generically as the "system."
[0049] The system receives a CAD model (605), the CAD model including a plurality of entities each having an underlying geometry. Note that multiple entities may share an underlying geometry, such as two bounded line entities on the same underlying line geometry. The CAD model can be stored as CAD model 152. The CAD model can also store offset and chain information for some of the entities, including which entities are part of a strong offset chain, in which case those entities do not need to be re -processed as described herein.
[0050] Figures 7A and 7B illustrate an example of a CAD model 700 that can be received that has a plurality of entities, such as entity 702 of Fig. 7A, each having an underlying geometry (not shown), and is used to illustrate the process of Fig. 6. While this example is a 2D CAD model representation, the processes described herein apply also to 3D CAD models. [0051] The system can initialize a chain cache (610). The chain cache can record processed entities and their discovered chains. The chain cache can be stored as cache 154.
[0052] The system can identify the entities to be processed (615). This can be, for example, a single entity for on-the-fly mode or all entities in CAD model for batch mode. In the example of Fig. 7A, entity 702 is selected as the entity to be processed, and the application or user needs to know whether to treat the selected entity 702 as an offset. Identifying the entity to be processed can include receiving a user selection of one or more entities to be processed.
[0053] For each entity to be processed, if the entity is not already in an offset pair stored in the cache, the system identifies an offset pair (620). As part of 620, the system determines if the entity is part of an offset pair (620), including identifying at least one partner entity. If the current entity is not part of an offset pair, then no further processing is needed for that entity since it is not part of an offset pair chain. In the example of Fig. 7A, entity 704 is identified as an offset entity to entity 702, and entities 702 and 704 comprise an offset pair and an offset pair chain (since an offset pair chain need have only one offset pair).
[0054] The system adds the offset pair to the chain cache (625) as an offset pair chain. The system can form a new chain in the cache with this immediate offset pair or add this offset pair chain to a connected offset pair chain already stored in the cache (when the process repeats as described below).
[0055] The system can determine if the offset pair chain is a strong chain (630). If the offset pair chain is a strong chain, then the offset pair chain is marked as strong in the cache. In the on-the-fly mode case, processing can proceed to 640 as soon as the offset pair chain is marked as a strong chain, since the entity 702 is therefore determined to be a recognized offset and the chain marked as strong in the cache. In a batch mode, all entities will generally be processed in any case. [0056] In the example of Fig. 7 A, the overlap between entities 702 and 704 is insufficient in ratio to the offset distance, however, so this chain is not strong in the first pass.
[0057] The system can identify an additional offset pair that is connected to the offset pair chain stored in the cache (635), and the process repeats to 625. If there are no further connected offset pairs, then the process proceeds to 640.
[0058] In the example of Fig. 7A, entities 706 and 708 are identified as a connected offset pair after the first pass; this offset pair is also not strong. In further iterations, entities 710 and 712 are added to the offset pair chain as a connected offset pair, but they are not strong. Entities 720 and 722 are added to the offset pair chain as a connected offset pair, but they are not strong. Entities 714 and 716 are added to the offset pair chain as a connected offset pair, but they are not necessarily strong (depending on the overlap/distance ratio used). Entities 714 and 718 are added to the offset pair chain as a connected offset pair, but they are not necessarily strong (depending on the overlap/distance ratio used). However, when the overlap of entities 716 and 718 with entity 714 are combined, as described in more detail below, it is clear that there is a strong offset pair chain.
[0059] The system marks the selected entity as part of an offset pair if it is part of a strong chain (640). If it is not part of a strong chain, then the selected entity is not marked as part of an offset pair. Note that it is not necessary to find the whole chain in order to determine the outcome for the selected entity. In the example of Fig. 7A, once the strong offset pair chain is identified, entity 702 is marked as part of an offset pair.
[0060] The system stores the CAD model including the marked entity (645). Any of the offset pair, offset pair chain, or other information described above can also be stored.
[0061] Of course, those of skill in the art will recognize that, unless specifically indicated or required by the sequence of operations, certain steps in the processes described above may be omitted, performed concurrently or sequentially, or performed in a different order. [0062] Fig. 7B illustrates the results of a batch-mode process performed as described above. The batch mode would have recognized three full chains in model 700, shown as solid lines in Fig. 7B, while non-chain entities are shown in dashed lines. In this figure, one chain is the solid lines indicated at 730, another chain is the solid lines indicated at 740, and the final chain is the remaining solid lines.
[0063] In various embodiments, the system considers the combination of multiple entities in overlap calculations. When offset pairs share an entity, such as where entities 716 and 718 share entity 714 in Fig. 7A, the calculation of the offset ratio can be improved by summing the overlap of all the pairs. This case occurs often as a result of splitting one side of a single offset pair and is often how a human perceives the case. In the example of Fig. 7A, as described above, the sum of the overlaps between entities 714/716 and 714/718 is compared to the offset difference, which results in a much larger ratio for considering whether a strong offset chain is formed. Such a combination is not limited to two entities that share another entity; any number of entities that share a common entity can be combined for such an overlap calculation. That is, the overlap can be calculated based on a ratio of (i) a sum of the lengths by which the first entity and at least one other entity that shares the first partner entity overlap the first partner entity to (ii) an offset distance between the first entity and the first partner entity
[0064] Various embodiments can also filter offset pairs. In some implementations and for some domains, it may be required to only recognize some subsets of offsets. For example, if a particular meaning can be assigned to each side of the entities, such as "inside" and "outside," then offsets with the characteristics of thin walls or inter-wall clearance gaps may be required whereas other combinations, where the sides are aligned, may not be useful. Figure 8 illustrates an example of a thin-wall characteristic 802, where the entity pair forms a thin wall within object 820. Fig. 8 also illustrates an example of a clearance characteristic 804, where the entity pair represents the offset between the contained object 810 and the containing object 820. Fig. 8 also illustrates an example of an aligned characteristic 806, where the entity pair represents the aligned offset between borders of the object 830 and the object 820. Any given pairs of entities can be filtered to be included or excluded from the process based on such characteristics. [0065] In various embodiments, the system can process vanishing partners. A general issue when dealing with offsets is when the radius of curvature becomes equal to and then smaller than the offset distance. When it becomes equal, the partner entity collapses into a point of zero radius and when it decreases further, the partner radius effectively becomes negative and is not represented in the real portion of the model.
[0066] Figure 9 illustrates an example of vanishing partners as the radius is decreased, left to right. In the left illustration, the radius R of the outer entity curvature is greater than the distance d between the inner entity and the outer entity, and so the radius r of the inner entity curvature is greater than zero. In the middle illustration, R is equal to d, and r is equal to 0 (where d is kept constant), so the inner entity has collapsed to a point. In the right illustration, R is less than d, so r is less than 0 (where d is kept constant); the inner entity has vanished from the visible model altogether.
[0067] As this is a fairly common situation, various offset recognition processes as described herein explicitly detect this by consideration of the neighboring geometry. An offset pair with a virtual partner (that is, created in the model but not visible in the model) and zero or negative radius is used to represent this situation allowing the pair to be part of an offset chain. When the model is subsequently edited and the larger radius increased or the distance decreased (right to left in the figure), the partner radius may become positive again and can reappear in the model.
[0068] In various embodiments, the system can process vanishing overlaps. When the length of a candidate offset entity pair becomes smaller than the value of the offset distance, the overlap will vanish.
[0069] Figures 10A and 10B illustrate vanishing overlaps in accordance with disclosed embodiments. Example of vanishing overlap when entities are small compared to the offset value. In the example of Fig. 10A, note that in the leftmost illustration entities 1002 and 1004 in the offset chain overlap. As entities 1002 and 1004 are viewed as progressively smaller, the overlap disappears, so that no overlap is seen in the rightmost illustration. Given that the distance d is constant, a user would often desire for the left most case to still be considered as an offset pair chain. [0070] To address this, the system can define the "overlap" requirement to include gaps of up to the offset distance. Fig. 10B illustrates an example of allowing an offset pair when there is a distance gap in the overlap. In this case, the gap in the overlap between entities 1006 and 1008 is less than the distance d of the offset, so the system can consider these to be overlapping when identifying offset pairs.
[0071] Note that this does not need to imply that the strength measure is changed at all, as this pair should still generally not be considered strong. It is sufficient to include the pair in the basic check and allow strength to be required elsewhere in the chain.
[0072] In various embodiments, the system can process explicit labels. The presence of an explicit label that indicates that a pair should be considered as an offset pair, at least in the local editing usage, would generally be expected to result in the pair being included in the processing as an offset pair, regardless of whether it met the overlap or nearest neighbor requirements. Note that this is not to be confused with the previous mention of explicit labelling as enhancing the strength measure of an otherwise valid offset pair.
[0073] In various embodiments, the system can process multiple chains for the same entity. The algorithm framework is capable of handling entities being in multiple chains. Figure 1 1 illustrates entities in multiple chains. For example, in this figure, a first offset chain could include entities 1 102/1 106/1 1 12 and their partner entities 1 104/1 108/1 1 10. A second offset chain could include entity 1 104 and partner entity 1 1 10. This can be true whether or not the offset distance between the pairs in the first offset chain is the same as or is different from the distance between the pairs in the second offset chain. This inclusion is preferably limited to avoid over finding of offset pairs, and so the system can use an implementation-specific heuristics and domain knowledge to limit finding excess pairs.
[0074] In various embodiments finding pairs with the characteristic long and thin seeds make the whole chain recognized, and finding pairs as offsets which would be weak, in isolation, are counted as offsets due to chain connection. Various embodiments can find those offset pairs that are nearest overlapping offsets of each other, and can avoid finding offset pairs when there are blocking entities. [0075] Various embodiments can use domain knowledge and implementation extensions within the framework of the disclosed techniques, including in the basic detection of the offset pair condition, in the filtering of unwanted offset pairs, in the connection types for building chains, and in strength indicators for pairs and chains as a whole.
[0076] Those skilled in the art will recognize that, for simplicity and clarity, the full structure and operation of all data processing systems suitable for use with the present disclosure is not being depicted or described herein. Instead, only so much of a data processing system as is unique to the present disclosure or necessary for an understanding of the present disclosure is depicted and described. The remainder of the construction and operation of data processing system 100 may conform to any of the various current implementations and practices known in the art.
[0077] It is important to note that while the disclosure includes a description in the context of a fully functional system, those skilled in the art will appreciate that at least portions of the mechanism of the present disclosure are capable of being distributed in the form of instructions contained within a machine -usable, computer-usable, or computer- readable medium in any of a variety of forms, and that the present disclosure applies equally regardless of the particular type of instruction or signal bearing medium or storage medium utilized to actually carry out the distribution. Examples of machine usable/readable or computer usable/readable mediums include: nonvolatile, hard-coded type mediums such as read only memories (ROMs) or erasable, electrically programmable read only memories (EEPROMs), and user-recordable type mediums such as floppy disks, hard disk drives and compact disk read only memories (CD-ROMs) or digital versatile disks (DVDs).
[0078] Although an exemplary embodiment of the present disclosure has been described in detail, those skilled in the art will understand that various changes, substitutions, variations, and improvements disclosed herein may be made without departing from the spirit and scope of the disclosure in its broadest form.
[0079] None of the description in the present application should be read as implying that any particular element, step, or function is an essential element which must be included in the claim scope: the scope of patented subject matter is defined only by the allowed claims. Moreover, none of these claims are intended to invoke paragraph six of 35 USC § 112 unless the exact words "means for" are followed by a participle.

Claims

WHAT IS CLAIMED IS:
1. A method for product data management, the method performed by a data
processing system and comprising:
receiving (605) a CAD model (700) that includes a plurality of entities (702) each having an underlying geometry;
identifying (620) a first offset pair chain (702/704) corresponding to a first entity of the plurality of entities, including identifying a first partner entity (704) that is part of the same offset pair;
determining (630) whether the first offset pair chain is a strong chain, and
when the first offset pair chain is a strong chain, then marking (640) the first entity as a part of an offset pair; and
storing (645) the CAD model including the marked first entity.
2. The method of claim 1, wherein the first entity (702) and the first partner entity (704) comprise the offset pair chain.
3. The method of claim 1, wherein when the first offset pair chain is not a strong chain, then the system identifies (635) an additional offset pair that is connected to the first offset pair chain, and repeats the determining (630), marking (640), and storing (645) steps using the additional offset pair.
4. The method of claim 1, wherein the first offset pair chain is determined to be a strong chain based on a ratio of a length of an overlap between the first entity (714) and the first partner entity (716) to an offset distance between the first entity and the first partner entity.
5. The method of claim 1, wherein the first offset pair chain (702/704) is determined to be a strong chain based on an explicit label of an offset pair.
The method of claim 1, wherein the first offset pair chain is determined to be a strong chain based on geometric types of the underlying geometries of the first entity and the first partner entity.
The method of claim 1, wherein the first offset pair chain is determined to be a strong chain based on a ratio of
a sum of lengths by which the first entity (716) and at least one other
entity (718) that shares the first partner entity (714) overlap the first partner entity to
an offset distance between the first entity and the first partner entity.
A data processing system comprising:
a processor; and
an accessible memory, the data processing system particularly configured to
receive (605) a CAD model (700) that includes a plurality of entities (702) each having an underlying geometry;
identify (620) a first offset pair chain (702/704) corresponding to a first entity of the plurality of entities, including identifying a first partner entity (704) that is part of the same offset pair; determine (630) whether the first offset pair chain is a strong chain, and mark (640) the first entity as a part of an offset pair when the first offset pair chain is a strong chain; and
store (645) the CAD model including the marked first entity.
The data processing system of claim 8, wherein the first entity (702) and the first partner entity (704) comprise the offset pair chain.
The data processing system of claim 8, wherein when the first offset pair chain is not a strong chain, then the system identifies (635) an additional offset pair that is connected to the first offset pair chain, and repeats the determining (630), marking (640), and storing (645) steps using the additional offset pair.
11. The data processing system of claim 8, wherein the first offset pair chain is determined to be a strong chain based on a ratio of a length of an overlap between the first entity (714) and the first partner entity (716) to an offset distance between the first entity and the first partner entity.
12. The data processing system of claim 8, wherein the first offset pair chain
(702/704) is determined to be a strong chain based on an explicit label of an offset pair.
13. The data processing system of claim 8, wherein the first offset pair chain is
determined to be a strong chain based on geometric types of the underlying geometries of the first entity and the first partner entity.
14. The data processing system of claim 8, wherein the first offset pair chain is
determined to be a strong chain based on a ratio of
a sum of lengths by which the first entity (716) and at least one other entity (718) that shares the first partner entity (714) overlap the first partner entity to
an offset distance between the first entity and the first partner entity.
15. A non-transitory computer- readable medium encoded with executable instructions that, when executed, cause one or more data processing systems to:
receive (605) a CAD model (700) that includes a plurality of entities (702) each having an underlying geometry;
identify (620) a first offset pair chain (702/704) corresponding to a first entity of the plurality of entities, including identifying a first partner entity (704) that is part of the same offset pair;
determine (630) whether the first offset pair chain is a strong chain, and mark (640) the first entity as a part of an offset pair when the first offset pair chain is a strong chain; and
store (645) the CAD model including the marked first entity.
16. The computer-readable medium of claim 15, wherein the first entity (702) and the first partner entity (704) comprise the offset pair chain.
17. The computer- readable medium of claim 15, wherein when the first offset pair chain is not a strong chain, then the system identifies (635) an additional offset pair that is connected to the first offset pair chain, and repeats the determining (630), marking (640), and storing (645) steps using the additional offset pair.
18. The computer- readable medium of claim 15, wherein the first offset pair chain is determined to be a strong chain based on a ratio of a length of an overlap between the first entity (714) and the first partner entity (716) to an offset distance between the first entity and the first partner entity.
19. The computer- readable medium of claim 15, wherein the first offset pair chain (702/704) is determined to be a strong chain based on an explicit label of an offset pair. The computer- readable medium of claim 15, wherein the first offset pair chain determined to be a strong chain based on geometric types of the underlying geometries of the first entity and the first partner entity.
EP15768850.8A 2014-03-28 2015-03-23 Intelligent offset recognition in cad models Ceased EP3123368A4 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US14/229,041 US20150278401A1 (en) 2014-03-28 2014-03-28 Intelligent offset recognition in cad models
PCT/US2015/021925 WO2015148337A1 (en) 2014-03-28 2015-03-23 Intelligent offset recognition in cad models

Publications (2)

Publication Number Publication Date
EP3123368A1 true EP3123368A1 (en) 2017-02-01
EP3123368A4 EP3123368A4 (en) 2017-12-27

Family

ID=54190739

Family Applications (1)

Application Number Title Priority Date Filing Date
EP15768850.8A Ceased EP3123368A4 (en) 2014-03-28 2015-03-23 Intelligent offset recognition in cad models

Country Status (6)

Country Link
US (1) US20150278401A1 (en)
EP (1) EP3123368A4 (en)
JP (1) JP6320561B2 (en)
CN (1) CN106471503B (en)
RU (1) RU2658882C2 (en)
WO (1) WO2015148337A1 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10360312B2 (en) * 2015-05-04 2019-07-23 Siemens Product Lifecycle Management Software Inc. System and method for identifying clones

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6614430B1 (en) * 1998-09-08 2003-09-02 Proficiency Ltd. System and method for the exchange of CAD data
JP4337387B2 (en) * 2003-04-24 2009-09-30 大成建設株式会社 A system for evaluating the morphological characteristics of a planar region using a tangent circle network model
US8050491B2 (en) * 2003-12-17 2011-11-01 United Technologies Corporation CAD modeling system and method
US7522163B2 (en) * 2004-08-28 2009-04-21 David Holmes Method and apparatus for determining offsets of a part from a digital image
US7965890B2 (en) * 2007-01-05 2011-06-21 Raytheon Company Target recognition system and method
US8305376B2 (en) * 2007-04-12 2012-11-06 Dassault Systemes Solidworks Corporation Locally updating a three-dimensional model
US7830377B1 (en) * 2008-01-09 2010-11-09 Spaceclaim Corporation, Inc. Systems and methods for using a single tool for the creation and modification of solids and surfaces
US20090237410A1 (en) * 2008-03-20 2009-09-24 Dick Baardse System and method for offset curves with bidirectional constraints
US8872820B2 (en) * 2008-04-14 2014-10-28 Siemens Product Lifecycle Management Software Inc. System and method for splitting faces on a solid model
US8260583B2 (en) * 2009-03-12 2012-09-04 Siemens Product Lifecycle Management Software Inc. System and method for identifying wall faces in an object model
FR2945136A1 (en) * 2009-05-04 2010-11-05 Turbomeca DATA STRUCTURE OF A NOMENCLATURE
CN102270179B (en) * 2010-06-03 2015-12-02 苏州浩辰软件股份有限公司 For the data Storage and Processing method based on sheet unit and the system thereof of CAD system
US20130287288A1 (en) * 2012-04-25 2013-10-31 General Electric Company Method and device for determining the offset distance between two surfaces
US20150269284A1 (en) * 2014-03-24 2015-09-24 Siemens Product Lifecycle Management Software Inc. Intelligent chamfer recognition in cad models

Also Published As

Publication number Publication date
CN106471503B (en) 2020-05-15
CN106471503A (en) 2017-03-01
US20150278401A1 (en) 2015-10-01
RU2658882C2 (en) 2018-06-25
JP6320561B2 (en) 2018-05-09
EP3123368A4 (en) 2017-12-27
JP2017510001A (en) 2017-04-06
WO2015148337A1 (en) 2015-10-01
RU2016142266A3 (en) 2018-04-28
RU2016142266A (en) 2018-04-28

Similar Documents

Publication Publication Date Title
EP2870552B1 (en) Identification and management of redundancy within geometric relationships
US8626444B2 (en) Safety based road map navigation
US20150269284A1 (en) Intelligent chamfer recognition in cad models
CN107291760A (en) Unsupervised feature selection approach, device
WO2013192372A1 (en) Symmetry of discovered geometric relationships in a three dimensional model
EP2618312A2 (en) System and method for snapping normals to create fair 3D surfaces from edge curves
US20150278400A1 (en) Hybrid variational solving in cad models
US20150278401A1 (en) Intelligent offset recognition in cad models
US8983803B2 (en) Tolerant intersections in graphical models
EP2406742A1 (en) System and method for determining a virtual curve in an object model
US9626460B2 (en) Method for creating accurate, updateable vertical ramps that fall on ramp geometry in transition areas of laminated composite parts
US9690878B2 (en) Geometric modeling with mutually dependent blends
US20160267201A1 (en) Method for construction of a step feature in a 3d model
US9122818B2 (en) Representation and discovery of geometric relationships in a three dimensional model
WO2015187600A1 (en) Aerospace joggle on multiple adjacent web faces with intersecting runouts
US11068621B2 (en) Method for patching a sheet body to a target body
CN114186294A (en) Automatic detection of regular patterns of features
CN113906427A (en) Volume separation in CAD models
CN106416145A (en) Methods for the creation and editing of massive constraint networks

Legal Events

Date Code Title Description
STAA Information on the status of an ep patent application or granted ep patent

Free format text: STATUS: THE INTERNATIONAL PUBLICATION HAS BEEN MADE

PUAI Public reference made under article 153(3) epc to a published international application that has entered the european phase

Free format text: ORIGINAL CODE: 0009012

STAA Information on the status of an ep patent application or granted ep patent

Free format text: STATUS: REQUEST FOR EXAMINATION WAS MADE

17P Request for examination filed

Effective date: 20160907

AK Designated contracting states

Kind code of ref document: A1

Designated state(s): AL AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HR HU IE IS IT LI LT LU LV MC MK MT NL NO PL PT RO RS SE SI SK SM TR

AX Request for extension of the european patent

Extension state: BA ME

DAV Request for validation of the european patent (deleted)
DAX Request for extension of the european patent (deleted)
A4 Supplementary search report drawn up and despatched

Effective date: 20171129

RIC1 Information provided on ipc code assigned before grant

Ipc: G06F 17/50 20060101AFI20171123BHEP

STAA Information on the status of an ep patent application or granted ep patent

Free format text: STATUS: EXAMINATION IS IN PROGRESS

17Q First examination report despatched

Effective date: 20180720

RAP1 Party data changed (applicant data changed or rights of an application transferred)

Owner name: SIEMENS INDUSTRY SOFTWARE INC.

REG Reference to a national code

Ref country code: DE

Ref legal event code: R003

STAA Information on the status of an ep patent application or granted ep patent

Free format text: STATUS: THE APPLICATION HAS BEEN REFUSED

18R Application refused

Effective date: 20200206