Method of positioning a digitally modeled object relative to a digitally modeled space and performing a volume query
Patent Information
- Application Number
- CN202011251656.2
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Priority Date
- 2019-11-18
- Filing Date
- 2020-11-11
- Publication Date
- 2026-09-29
- Estimated Expiration
- 2040-11-11
AI Technical Summary
[0014]改进体素表示的空间分辨率可以缓解该问题,但是在计算资源方面的成本很高,并且将不能在所有情况下解决该问题
Smart Images

Figure CN112818424B_ABST
Abstract
Description
Technical Field
[0001] This invention relates to a computer-implemented method for determining the location of a digitally modeled object relative to the space of the digital model and for performing volume queries. This invention relates to the field of computer-aided engineering. Background Technology
[0002] Digital physical models that describe products in three dimensions (3D) have become essential in many industries, such as mechanical engineering, shipbuilding, construction, etc.
[0003] By identifying potential problems early in the design process and replacing physical prototypes, time to market and product development costs can be reduced. Furthermore, it allows for the exploration of more design alternatives before selecting the final design.
[0004] Digital entity models of large systems (such as ships, airplanes, or industrial plants) can include millions of 3D objects representing components, which amount to a massive amount of data that is difficult to process.
[0005] Such large systems are typically divided into several zones. For example, to ensure maritime life safety regulations, ships are required to be divided into fire-resistant zones, watertight compartments, and watertight decks; nuclear power plants are divided into different zones corresponding to different levels of safety and radiation hazards; buildings consist of several floors, which are further divided into multiple fire-resistant zones to prevent the spread of fire, and so on. This process of decomposing into zones is reproduced by digital physical models.
[0006] It is typically necessary to determine which 3D objects in a digital entity model reside within a specific 3D region (volume query), and conversely, to determine which region(s) contain a specific object. For example, this allows:
[0007] - Calculate key product performance indicators, such as weight and volume.
[0008] - Traceability, and checking design consistency, compliance with regulations, and custom requirements. For example, in a ship, it may be necessary to check whether there are pumps in each watertight compartment or fire detectors in public rooms.
[0009] 3D objects and regions (or spaces) are typically represented in a format that accurately describes their geometry (e.g., a checkerboard format), where solid parts are represented by three-dimensional surfaces formed by polygons (typically triangles). Performing volume queries directly using this format would require excessive memory space and processing power, especially considering the number of objects can be in the millions, sometimes even tens of millions. Therefore, before performing volume queries, volumes are typically converted to a voxel-based format, preferably an n-ary voxel format, and even more preferably an octree (n=3 n-ary tree) voxel format. This is known from US 8,013,854 (although in a different context).
[0010] An octree voxel representation of an object or space is based on a cube containing the object / space (note that space can be considered a special kind of object). This cube is then divided into eight octants (smaller cubes) arranged in a 2×2×2 three-dimensional array; more generally, in any n-ary tree representation, the volume is divided into 2... n A smaller volume. The cube containing a portion of the object is further subdivided; objects not containing a portion of the geometry are not subdivided. This process is performed recursively a predetermined number of times (e.g., 10 times). At the end of the process, these cubes form an approximate representation of the product parts, which has a significantly smaller memory footprint compared to a uniform voxel-based representation. Furthermore, this representation is conveniently stored in a tree-based data structure. Computation of the voxel-based representation is typically performed offline before the user inputs a query.
[0011] Figure 1A The diagram shows a checkerboard representation of a digitally modeled space S and three digitally modeled objects O1, O2, and O3 (represented in 2D for simplicity). Object O1 is entirely inside space S; object O3 is entirely outside space S; and object O2 is partly inside and partly outside space, and more specifically, crosses the boundary of space (note that a non-connected object formed by multiple non-intersecting parts may be "partly inside and partly outside" rather than "crossing the boundary").
[0012] Figure 1BThe diagram shows a "voxel-based" representation of the same space and objects (although the term "voxel" is not appropriate here because the representation is two-dimensional). Referring to the voxel-based representation of the space SV, OV1, OV2, and OV3 represent voxel-based representations of the objects (this representation is very simplified for clarity). All voxels of OV1 (actually only one) intersect with voxels of SV, and none of the voxels of OV1 intersect with the outer space SO (which itself may or may not be decomposed into voxels); this allows it to be determined that OV1 is "entirely inside SV". All voxels of OV3 (actually only one) intersect with the outer space SO, and none of the voxels of OV3 intersect with SV; this allows it to be determined that OV3 is "entirely outside SV". Finally, some voxels of OV2 intersect SV, and some voxels intersect SO (in this particular example, OV2 consists of a single voxel that intersects both SV and SO); this allows it to be determined that OV2 is “part inside SV and part outside SV”.
[0013] However, this approach is prone to error because it uses an approximate (voxel-based) representation of geometry—especially when considering objects located near the boundaries of space. This is in Figure 1C The above explains the finding that both the "voxel-modeled" objects OV4 and OV5 are partially inside and partially outside the space SV, even though the checkerboard representation shows that these two objects are actually completely inside and completely outside the space, respectively. In fact, the voxel-based representations of both the space and the objects extend beyond the corresponding checkerboard representations (i.e., constituting the upper bounds of the space and the objects, respectively), leading to spurious intersections. As a result, if a query is performed for the "completely inside" object, OV4 will be lost, while if the query is extended to the "partially inside" object, OV5 will be included. This is particularly problematic due to the fact that in many cases several important objects are located near the boundaries of the space. For example, in buildings and ships, fire extinguishers and smoke detectors are often attached to the walls or ceilings of rooms. Therefore, it is possible to detect a fire extinguisher in a room, for example, if the fire extinguisher is located in an adjacent space, or conversely, to miss it if the fire extinguisher is not.
[0014] Improving the spatial resolution of voxel representation can alleviate this problem, but it is very costly in terms of computational resources and will not solve the problem in all cases. Summary of the Invention
[0015] The present invention aims to overcome these drawbacks of the prior art with minimal additional complexity.
[0016] The present invention aims to provide a computer-implemented method for determining the location of a digitally modeled object relative to the space of the digital model, comprising the following steps:
[0017] a) Retrieve or create voxel representations of digitally modeled objects and digitally modeled spaces;
[0018] b) Divide the voxel representation of the digitally modeled object into a first set of heart object voxels and a second set of boundary object voxels, and divide the voxel representation of the digitally modeled space into a third set of heart space voxels and a fourth set of boundary space voxels.
[0019] c) Assess whether:
[0020] - The second set of boundary object voxels intersects with the third set of central space voxels;
[0021] - The second set of boundary object voxels intersects with the fourth set of boundary space voxels; and
[0022] - The second set of boundary object voxels extends outside the space of the digital modeling;
[0023] d) Determine the location of the digitally modeled object relative to the digitally modeled space based on the results of the assessment.
[0024] According to a specific embodiment of the method:
[0025] -Step c) may also include assessing whether:
[0026] - The first set of voxels of the central object intersects with the third set of voxels of the central space;
[0027] - The first set of voxels of the central object intersects with the fourth set of voxels of the boundary space; and
[0028] - The first set of central object voxels extends outside the space of the digital modeling.
[0029] -Step d) may include:
[0030] d-1) Calculate the first ternary logic function of the evaluation result, indicating whether the object of digital modeling is completely inside the space of digital modeling;
[0031] d-2) Calculate the second ternary logic function of the evaluation result, representing whether the object in the digital modeling crosses the boundary of the digital modeling space; and
[0032] d-3) Calculate the third ternary logic function of the evaluation result, indicating whether the object of digital modeling is completely outside the space of digital modeling;
[0033] Each of the three-valued logic functions takes a "true", "false", or "uncertain" value.
[0034] More specifically, step d) may also include assigning the object to one of a plurality of categories depending on the value of the three-valued logic function.
[0035] -Even more specifically, the categories may include:
[0036] - For the first category of the object being modeled digitally, the first three-valued logic function takes the value "true", and the second and third three-valued logic functions take the value "false".
[0037] - The second category of objects in digital modeling, for which the first and second three-valued logic functions take "uncertain" values and the third three-valued logic function takes "false" values;
[0038] - The third category of the object in the digital modeling, for which the first and third three-valued logic functions take the value "false" and the second three-valued logic function takes the value "true";
[0039] - The fourth category of objects in digital modeling, for which the first three-valued logic function takes a "false" value, and the second and third three-valued logic functions take an "uncertain" value;
[0040] - The fifth category of objects in digital modeling, for which the first and second ternary logic functions take the value "false", and the third ternary logic function takes the value "true"; and
[0041] - The sixth category of objects in digital modeling, for which all three three-valued logic functions take uncertain values.
[0042] - The voxel representation can be an n-ary voxel representation, and preferably an octary voxel representation.
[0043] Step a) may include creating a voxel representation of the object being digitally modeled and a space being digitally modeled, based on at least one of the different representations of the object and the space being digitally modeled.
[0044] Another object of the present invention is a computer-implemented method for performing volume queries, comprising:
[0045] - The first phase includes the following steps:
[0046] i) Retrieve or create multiple digitally modeled objects and one or more voxel representations of digitally modeled spaces;
[0047] ii) Divide the voxel representation of each digitally modeled object into a first set of central object voxels and a second set of boundary object voxels, and divide the voxel representation of each in the space of the digital model into a third set of central space voxels and a fourth set of boundary space voxels.
[0048] - The second phase includes the following steps:
[0049] iii) Receive a request from a user, the request including an indication of the space of the one or more digitally modeled objects and an indication of the required relationship between the digitally modeled space and the object to be retrieved;
[0050] iv) For each of the objects in the digital modeling, evaluate whether:
[0051] - The second subset of the boundary object voxels intersects with the third set of voxels in the central space;
[0052] - The second subset of boundary object voxels intersects with the fourth set of boundary space voxels;
[0053] v) For each of the digitally modeled objects, determine, based on the results of the evaluation, whether its spatial relationship matches the spatial matching requirements of the digital modeling; and
[0054] vi) Retrieve the digitally modeled object that matches the spatial relationship required by the digital modeling.
[0055] According to a specific embodiment of this method:
[0056] -Step iv) may also include assessing whether:
[0057] - The first subset of the central object voxels intersects with the third set of the central space voxels;
[0058] - The first subset of the central object voxels intersects with the fourth set of voxels in the boundary space; and
[0059] - The first subset of the central object voxels extends outside the space of the digital modeling.
[0060] - For each of the digitally modeled objects, step v) may include:
[0061] v-1) Calculate the first ternary logic function of the result of the evaluation, indicating whether the object being digitally modeled is at least partially inside the space being digitally modeled;
[0062] v-2) Calculate a second ternary logic function representing the result of the evaluation, indicating whether the digitally modeled object at least partially crosses the boundary of the digitally modeled space; and
[0063] v-3) Calculate the result of the evaluation using a third ternary logic function, indicating whether the object being digitally modeled is at least partially outside the space being digitally modeled;
[0064] Each of the three-valued logic functions takes a "true", "false", or "uncertain" value.
[0065] More specifically, the required spatial relationship between the space of the digital model and the object to be retrieved can be selected in the following options:
[0066] - Objects that are definitely digitally modeled entirely within the space of digital modeling;
[0067] - The digitally modeled object is at least partially located inside the space of the digital modeling;
[0068] - Objects in digital modeling that definitely cross the boundaries of the space of digital modeling;
[0069] - The digitally modeled object is at least partially located outside the space of the digital modeling;
[0070] - The digitally modeled object is definitely outside the space of the digital modeling;
[0071] - The relationship between the space and the digital modeling is uncertain for the digital modeling object.
[0072] -Even more specifically, in step v):
[0073] - Such an object can be considered to be completely inside the space: for this object, the first three-valued logic function takes the value "true", and the second and third three-valued logic functions take the value "false";
[0074] - Such an object is considered to be at least partially inside the space: for the object, the first and second three-valued logic functions take "uncertain" values, and the third three-valued logic function takes "false" values; and for the object, the first three-valued logic function takes "true" values, and the second and third three-valued logic functions take "false" values;
[0075] - Such an object can be considered to definitely cross the boundary of space: for this object, the first and third three-valued logic functions take the value "false", and the second three-valued logic function takes the value "true".
[0076] - Such an object can be considered to be definitely outside the space: for this object, the first and second ternary logic functions take the value "false", and the third ternary logic function takes the value "true".
[0077] Such an object is considered to be at least partially outside of space: for this object, the first three-valued logic function takes a "false" value, and the second and third three-valued logic functions take "indeterminate" values; and for this object, the first and second three-valued logic functions take a "false" value, and the third three-valued logic function takes a "true" value; and
[0078] Such an object is considered to have an uncertain relationship with space: for this object, all three three-valued logic functions take the value "false".
[0079] - The voxel representation can be an n-ary voxel representation, and preferably an octary voxel representation.
[0080] Step i) may include creating a voxel representation of the object being digitally modeled and a space being digitally modeled, based on at least one of the different representations of the object being digitally modeled and the space being digitally modeled.
[0081] Another object of the present invention is a computer program product stored on a non-transitory computer-readable data storage medium, comprising computer-executable instructions for causing a computer system to perform the method according to any one of the preceding claims.
[0082] Another object of the present invention is a non-transitory computer-readable data storage medium comprising computer-executable instructions for causing a computer system to perform such a method.
[0083] Another object of the present invention is a computer system including a processor coupled to a non-transitory memory and a graphical user interface, the non-transitory memory storing computer-executable instructions for causing the computer system to perform such methods. Attached Figure Description
[0084] Other features and advantages of the invention will become apparent from the following description taken in conjunction with the accompanying drawings, in which:
[0085] -Already described Figures 1A to 1C The method according to the prior art is shown. Figure 1C The limitations of this method, which are overcome by the present invention, are shown;
[0086] - Figure 2A and Figure 2B This illustrates a key aspect of the invention, namely, the distinction between the "center" voxel and the "boundary" voxel regarding both the object and the space;
[0087] - Figures 3A to 3C This is a table illustrating how objects are classified based on their relationship with space according to embodiments of the present invention;
[0088] - Figure 4A and Figure 4BSix different spatial relationships between objects and space can be distinguished using methods according to embodiments of the present invention.
[0089] - Figure 5 This is a flowchart of a method for determining the position of an object relative to space according to an embodiment of the present invention;
[0090] - Figure 6 This is a flowchart of a volume query method according to another embodiment of the present invention;
[0091] - Figure 7 This represents the graphical interface used to execute this method; and
[0092] - Figure 8 This is a block diagram of a computer system suitable for performing the methods according to embodiments of the present invention. Detailed Implementation
[0093] As in Figure 2A and 2B As shown above, the main idea of this invention is to divide the voxels of both objects and spaces (or regions) into two sets: "center" (or "core") voxels and "boundary" voxels. Boundary voxels intersect with both the object or space and the external space, while center voxels intersect only with the object or space. It is worth noting that in some cases ("thin" objects and spaces), the set of center voxels can be empty, while the set of boundary voxels is not empty. Conversely, the opposite is impossible. It is also possible for "logical" objects to exist that do not have a geometric shape and therefore do not have voxel representation, but this is not truly considered in this invention.
[0094] The union of the set of boundary voxels and the set of central voxels constitutes the upper bound of the object or space, respectively. The set of central voxels itself constitutes the lower bound.
[0095] Figure 2A The checkerboard-like (high-resolution) geometry TO of an object and its voxel approximation OV are represented by the set of central object voxels OH and the set of boundary object voxels surrounding the central object voxels OB. Similarly, Figure 2B The checkerboard (high-resolution) geometry TS of the space is represented by its voxel approximation SV, which is decomposed into a set of central space voxels SH and a set of boundary space voxels surrounding the central space voxels SB. Figure 2B It also represents the outer space SO, which is the complement of SV (in the sense of set theory). The outer space SO may or may not be decomposed into voxels.
[0096] Another key idea behind this invention is to consider the intersection between these sets of voxels. More specifically, determining the location of an object OV relative to a spatial SV requires calculating six Boolean functions:
[0097] -If the set of central object voxels intersects with the third set of central space voxels, then OH∩SH=1; otherwise, OH∩SH=0.
[0098] - If the set of central object voxels intersects with the set of boundary space voxels, then OH∩SB=1; - If the set of central object voxels extends outside the space of the digital modeling, then OH∩SO=1;
[0099] - If the set of boundary object voxels intersects with the set of central space voxels, then OB∩SH = 1; - If the set of boundary object voxels intersects with the set of boundary space voxels, then OB∩SB = 1; and
[0100] -If the set of boundary object voxels extends outside the space of the digital modeling, then OB∩SO=1.
[0101] Here, "∩" is the symbol for intersection.
[0102] The first three Boolean functions allow you to determine 2 3 =8 different categories, which represent the position of the central voxel of the object relative to space:
[0103] ·H000: OH∩SH=0; OH∩SB=0; OH∩SO=0;
[0104] ·H100: OH∩SH=1; OH∩SB=0; OH∩SO=0;
[0105] ·H010: OH∩SH=0; OH∩SB=1; OH∩SO=0;
[0106] ·H001: OH∩SH=0; OH∩SB=0; OH∩SO=1;
[0107] ·H110: OH∩SH=1; OH∩SB=1; OH∩SO=0;
[0108] ·H011: OH∩SH=0; OH∩SB=1; OH∩SO=1;
[0109] ·H101: OH∩SH=1; OH∩SB=0; OH∩SO=1;
[0110] ·H111: OH∩SH=1; OH∩SB=1; OH∩SO=1;
[0111] The H000 category corresponds to "thin" objects, which do not include central voxels but only boundary voxels.
[0112] Furthermore, the Boolean values taken by these three Boolean functions are used to calculate three three-valued logic functions, which can take three values: "true" (or "yes"), "false" (or "no"), and "uncertain" (or "maybe"). These functions are:
[0113] OH in Is the collection of central object voxels located inside space?
[0114] OH in / out Is the collection of central object voxels both inside and outside the space?
[0115] OH out Is the collection of central object voxels outside of space?
[0116] This is Figure 3A As shown above.
[0117] The last three Boolean functions allow you to determine 2 3 = 8 different categories, which represent the position of the object boundary voxel relative to space:
[0118] ·B000: OB∩SH=0; OB∩SB=0; OB∩SO=0;
[0119] ·B100: OB∩SH=1; OB∩SB=0; OB∩SO=0;
[0120] ·B010: OB∩SH=0; OB∩SB=1; OB∩SO=0;
[0121] ·B001: OB∩SH=0; OB∩SB=0; OB∩SO=1;
[0122] ·B110: OB∩SH=1; OB∩SB=1; OB∩SO=0;
[0123] ·B011: OB∩SH=0; OB∩SB=1; OB∩SO=1;
[0124] ·B101: OB∩SH=1; OB∩SB=0; OB∩SO=1;
[0125] ·B111: OB∩SH=1; OB∩SB=1; OB∩SO=1;
[0126] The B000 class corresponds to objects that do not have voxel representations and therefore do not have positions. Clearly, objects belonging to the B000 class also belong to the H000 class, since objects without boundary voxels do not have central voxels.
[0127] Furthermore, the Boolean values taken by these three Boolean functions are used to calculate three additional three-valued logic functions, which can take three values: "true" (or "yes"), "false" (or "no"), and "uncertain" (or "maybe"). These functions are:
[0128] OB in Is the collection of boundary object voxels inside space?
[0129] OB in / out The set of boundary object voxels is both inside and outside the space.
[0130] OB out Is the collection of boundary object voxels outside of space?
[0131] This is Figure 3B As shown above.
[0132] Overall, the six Boolean functions allow for the determination of 2 6 =64 possible scenarios (however, not all scenarios are possible), these scenarios are Figure 3C As shown above. Figure 3C The approach takes the form of two entry tables, with entries for the "Bxyz" class and the "Hijk" class (x, y, z, i, j, k taking values of 0 and 1). Each cell in this table corresponds to one of 64 possible cases and can therefore be determined by six binary values x, y, z, i, j, k. It is also interesting to define a third set of classes Vuvw (u, v, w = 0, 1), which is defined as follows:
[0133] ·V000: (OB∪OH)∩SH=0; (OB∪OH)∩SB=0; (OB∪OH)∩SO=0;
[0134] ·V100: (OB∪OH)∩SH=1; (OB∪OH)∩SB=0; (OB∪OH)∩SO=0;
[0135] ·V010: (OB∪OH)∩SH=0; (OB∪OH)∩SB=1; (OB∪OH)∩SO=0;
[0136] ·V001: (OB∪OH)∩SH=0; (OB∪OH)∩SB=0; (OB∪OH)∩SO=1;
[0137] ·V110: (OB∪OH)∩SH=1; (OB∪OH)∩SB=1; (OB∪OH)∩SO=0;
[0138] ·V011: (OB∪OH)∩SH=0; (OB∪OH)∩SB=1; (OB∪OH)∩SO=1;
[0139] ·V101: (OB∪OH)∩SH=1; (OB∪OH)∩SB=0; (OB∪OH)∩SO=1;
[0140] ·V111: (OB∪OH)∩SH=1; (OB∪OH)∩SB=1; (OB∪OH)∩SO=1.
[0141] It can be noted that u=x OR i; v=y OR j; w=z OR k.
[0142] Six Boolean values x, y, z, i, j, and k are used to compute three additional three-valued logic functions. These three-valued logic functions are actually used to determine the relationships between objects in the digital modeling relative to the space in the digital modeling:
[0143] O in Is the object completely inside the space?
[0144] O acr Does the object cross the boundary of space?
[0145] O out Is the object completely outside of space?
[0146] To reiterate, these logical functions can take three values: "true" (or "yes"), "false" (or "no"), and "uncertain" (or "maybe"). Figure 3C Above, O in O acr O out The values taken (determined by considering each individual case) are written into the cells of the table.
[0147] In principle, (O in O acr O out There are 3 3 =27 possible combinations, but it's easy to understand that the actual number is much smaller, because it's impossible for a function to take more than one "true" value at a time. In fact, every case (and therefore...) Figure 3C Each cell in the table belongs to one of the following categories:
[0148] • "Deeply In": (O in =Yes; O acr =No; O out =No). This corresponds to units (B100, H000) and (B100, H100).
[0149] • "Border & In": (O in =Maybe; O acr =Maybe; O out =No). This corresponds to the (B010, H100), (B010, H110), (B110, H100), (B110, H110), (B011, H100), (B011, H110), (B111, H100), (B111, H110) units.
[0150] • "Across" (O in =No; O acr =Yes; O out =No). This corresponds to the (B100, H111), (B001, H111), (B101, H000), (B101, H100), (B101, H010), (B101, H001), (B101, H110), (B101, H011), (B101, H101), (B101, H111), (B111, H101), (B111, H111).
[0151] • "Border & Out": (O in =No; O acr =Maybe; O out = Perhaps). This corresponds to the units (B010, H001), (B010, H011), (B110, H001), (B110, H011), (B011, H001), (B011, H011), (B111, H001), (B111, H011).
[0152] • "Completely external": (O in =No; O acr =No; O out =Yes). This corresponds to the (B001, H000) and (B001, H001) units.
[0153] • “Boundary”: (O in =Maybe; O acr =Maybe; O out= Perhaps) — that is, the case where the object's location cannot be determined. This corresponds to the units (B010, H000), (B010, H010), (B110, H000), (B110, H010), (B011, H000), (B011, H010), (B111, H000), and (B111, H010). By convention, the unit (B000, H000) — which corresponds to an object that has no geometry and therefore no location — can also be considered to belong to the "boundary" category.
[0154] • All other units correspond to impossible cases.
[0155] exist Figure 3C Above, each unit has an appearance (texture) corresponding to its class ("impossible" to be assimilated into a ninth class). O in O acr O out The values are written in italics in the cells corresponding to “limit” cases, which are highly unlikely to occur in real-world applications but can still be handled by the method of the present invention; for example, (B010, H001) corresponds to the case where there is a “hole” inside the space that is filled with an object.
[0156] Interestingly, it should be noted that for the 27 “nominal” cases (excluding the 23 impossible cases and the 14 “limit” cases), Vuvw = Bxyz. This means that if the “limit” cases are ignored, only the positions of the boundary voxels can be considered, and therefore only the values of the x, y, z Boolean variables can be evaluated.
[0157] Figure 4A This represents the eight categories mentioned above, and can be used for explanation. Figure 3C Legend of the diagram. Figure 4B Different kinds of meanings are allowed:
[0158] • "Deep Inside" objects only overlap with the central voxel of the space.
[0159] • “Boundary and Interior” objects overlap with both the center voxel and the boundary voxel of the space (meaning that these objects may or may not extend slightly outside the space);
[0160] • "Crossing boundaries" objects overlap with the central and boundary voxels of space and with the external space.
[0161] • "Border In & Out" objects overlap with the boundary voxels of the space and the outer space, but do not overlap with the center voxel of the space (meaning these objects may or may not be partially located inside the space).
[0162] • Objects that are “completely outside” only overlap with the external space.
[0163] • “Boundary” objects only overlap with the boundary voxels of space. Unless the spatial resolution of the voxel representation is increased, it is impossible to know whether these objects are inside, outside, or crossing the boundary of space.
[0164] Ternary logic functions are useful for understanding the operation of the method of this invention, but they can be directly derived from the six Boolean functions OH. in OH in / out OH out OB in OB in / out OB out Assigning objects to categories. Furthermore, categories different from those listed above can be used. For example, it might be advantageous to define a "partially inside" category corresponding to the union of "deep inside" and "boundary and inside," and a "partially outside" category corresponding to the union of "completely outside" and "boundary and outside." The disadvantage is that, in this case, an object could belong to several categories. For this reason, the six categories above are preferred; however, the concepts of "partially inside" and "partially outside" can be used in volume queries, as will be referenced below. Figure 7 The explanation given.
[0165] Figure 5 This is a flowchart of a method for determining the location of a digitally modeled object relative to a digitally modeled space according to an embodiment of the present invention. The method includes four steps a) to d).
[0166] Step a) includes retrieving or creating voxel representations of the objects and spaces in the digital modeling (e.g., from a database). This step can be performed by retrieving non-voxel-based (e.g., checkerboard-based) representations of the objects and spaces from the database and “voxelizing” them.
[0167] Step b) involves partitioning the voxel representation of the digitally modeled objects into a first set OH of central object voxels and a second set OB of boundary object voxels, and partitioning the voxel representation of the digitally modeled space into a third set SH of central space voxels and a fourth set SB of boundary space voxels. This step is... Figure 2A and Figure 2B As shown.
[0168] Step c) involves computing six Boolean functions OH, starting with the voxel-based representations of objects and spaces. in OH in / out OH out OB in OB in / out OBout .
[0169] Step d) involves determining the location of the digitally modeled object relative to the space of the digital model, i.e., the type to which the object belongs (“Deep Inside”, “Boundary and Inside”, “Across Boundary”, “Boundary and Outside”, “Completely Outside”, “Boundary”). This can be achieved using... Figure 3C Use the table to perform this step.
[0170] Figure 6 This is a flowchart of a method for performing a volume query according to an embodiment of the present invention. The method includes six steps i) to vi).
[0171] Step i) involves retrieving or creating multiple digitally modeled objects and voxel representations of one or more digitally modeled spaces. Essentially, step i) corresponds to... Figure 5 The method involves step a), but step i) is typically performed on all spaces or objects (or a subset thereof) of the digital modeling system (digital entity model).
[0172] Step ii) involves partitioning the voxel representation of each digitally modeled object into a first set of central object voxels and a second set of boundary object voxels, and partitioning the voxel representation of each object in the space of the digital modeling into a third set of central space voxels and a fourth set of boundary space voxels. Essentially, step ii) corresponds to... Figure 5 Step b) of the method, but step ii) is performed for multiple objects and / or spaces, as described above.
[0173] Steps i) and ii) correspond to the "preparation" phase, which can be performed "offline" to build an index based on a voxel-based representation. The following steps constitute the actual "query" phase, which is prompted by the user's request and utilizes the index.
[0174] Step iii) includes receiving the request from the user, which includes an indication of the space(s) digitally modeled and an indication of the required relationship between the digitally modeled space and the objects to be retrieved. For example, the user might be interested in finding all objects that are definitely inside the space.
[0175] Step iv) involves computing six Boolean functions OH, starting with the voxel-based representations of objects and spaces. in OH in / out OH out OB in OB in / out OB out Basically, step iv) corresponds to Figure 5Step c) of the method, but step iv) is performed for multiple objects and possible spaces, as described above.
[0176] Step v) involves determining, for each of the digitally modeled objects, whether its spatial relationship matches the spatial matching requirements of the digital modeling, based on the results of the evaluation. Essentially, step v) corresponds to... Figure 5 The method is performed on step d), but step v) is performed on multiple objects and possible spaces, as described above.
[0177] Step vi) includes retrieving the objects of the digital model that match the spatial relationship required by the digital model and providing them to the user in an appropriate form (list, graphical representation, etc.).
[0178] Figure 7 It shows the method for execution Figure 6 The method involves step iii) (i.e., the graphical interface used for entering queries). The graphical interface (GI) appears or is activated after a space has been selected. This interface consists of six icons and one checkbox; the pointer PT can be used to click the icon and select / deselect the checkbox.
[0179] The icons correspond to different spatial relationships, and these spatial relationships are not all the same. Figure 4A The categories are exactly the same (however, this is just an example, and different choices are possible). Icon FI (for "completely inside") initiates a query for "deep inside" objects. Icon PI (for "partially inside") initiates a query for objects that are definitely at least partially inside the space and therefore belong to either "deep inside" or "boundary and inside" objects. Icon AC (for "across boundary") initiates a query for objects belonging to... Figure 4A The query is for objects of the "Across Boundaries" category. The icon PO (for "Partially Outside") initiates a query for objects that are definitely at least partially outside the space and therefore belong to the "Completely Outside" or "Boundary and Outside" categories. The icon "O" (for "Outside") initiates a query for "Completely Outside" objects. When the checkbox BD (for "Boundary") is selected, "Boundary" objects are also retrieved to ensure no objects are lost.
[0180] The methods of the present invention can be performed by a properly programmed general-purpose computer or computer system (possibly including a computer network), which stores the appropriate program in non-volatile form on a computer-readable medium (e.g., a hard disk, solid-state drive, or CD-ROM) and executes the program using its microprocessor(s) and memory(s).
[0181] refer to Figure 8A computer CPT suitable for performing methods according to exemplary embodiments of the present invention is described. Figure 8 In this system, the computer CPT includes a central processing unit (CPU) P, which executes the method steps described above while running an executable program (i.e., a set of computer-readable instructions). This executable program is stored in a memory device such as RAM M1 or ROM M2, or a hard disk drive (HDD) M3, DVD / CD drive M4, or in remote storage. Furthermore, one or more digital entity models and / or indexes, consisting of pixel-based representations of objects and spaces of entity models, may also be stored in one or more of the memory devices M1 to M4 in either medium or remote storage.
[0182] The claimed invention is not limited to the form of a computer-readable medium on which computer-readable instructions and / or data structures of the inventive process are stored. For example, the instructions and files may be stored on a CD, DVD, flash memory, RAM, ROM, PROM, EPROM, EEPROM, hard disk, or any other information processing device (e.g., a server or computer) that communicates with a computer. The program and files may be stored on the same storage device or on different storage devices.
[0183] Furthermore, computer programs suitable for performing the methods of the present invention can be provided as utility applications, background daemons, or components or combinations thereof of an operating system, thereby combining a CPU P and an operating system such as Microsoft Vista, Microsoft Windows 10, UNIX, Solaris, LINUX, Apple MAC-OS, and other systems known to those skilled in the art.
[0184] CPU P can be a Xenon processor from Intel Corporation or an Opteron processor from AMD Corporation, or it can be other processor types, such as a Freescale ColdFire, IMX, or ARM processor from Freescale Corporation. Alternatively, as those skilled in the art will recognize, the CPU can be a processor such as the Core 2 Duo from Intel Corporation, or it can be implemented on an FPGA, ASIC, PLD, or using discrete logic circuitry. Furthermore, the CPU can be implemented as multiple processors working together to execute computer-readable instructions of the inventive processes described above.
[0185] Figure 8The computer CPT also includes a network interface NI (e.g., an Intel Ethernet PRO network interface card from Intel Corporation) for connecting to a network (e.g., a local area network (LAN), wide area network (WAN), the Internet, etc.). The computer also includes a display controller DC (e.g., an NVIDIA GeForce GTX graphics adapter from NVIDIA Corporation) for connecting to a monitor DY (e.g., a Hewlett Packard HPL2445w LCD monitor). General purpose I / O interfaces include a keyboard KB and (e.g., for driving...) Figure 7 The pointing device (PD) (e.g., ball, mouse, touchpad, etc.) is coupled to the display, keyboard, pointing device, display controller, and I / O interface. Together, they form a graphical user interface (GUI), which is used by the user to input commands and by the computer to, for example, initiate volume queries. Figure 7 As shown above.
[0186] The disk controller DKC connects the HDD M3 and DVD / CD M4 to the communication bus CBS, which can be ISA, EISA, VESA, PCI or similar architectures to interconnect all components of the computer.
[0187] For the sake of brevity, this article omits descriptions of the general characteristics and functions of displays, keyboards, pointing devices, display controllers, disk controllers, network interfaces, and I / O interfaces, as these characteristics are known.
[0188] The network interface NI connects the computer CPT to the system administrator ADS and one or more data servers DSV, which store files F1, F2 containing data describing objects and spaces. For example, the server could store files forming a digital entity model and files forming an index (the space of the entity model and the voxel-based representation of objects are divided into "center" voxels and "boundary" voxels). In this case, the data server stores and runs software for creating the index (see reference). Figure 6 The method involves steps i) and ii), while the computer CPT stores and runs software used to perform volume queries (see reference). Figure 6 Steps iii) to vi) of the method.
[0189] The network NW can be a public network (e.g., the Internet) or a private network (e.g., a LAN network or a WAN network) or any combination thereof, and may also include PSTN or ISDN subnets. The network NW can also be wired (e.g., Ethernet) or wireless (e.g., a cellular network including EDGE, 3G, and 4G wireless cellular systems). The wireless network can also be Wi-Fi, Bluetooth, or any other known form of wireless communication. Therefore, the network NW is merely exemplary and in no way limits the scope of the invention.
[0190] Any method steps described herein should be understood as representing modules, segments, or portions of code that include one or more executable instructions for implementing specific logical functions or steps in the process, and alternative implementations are included within the scope of exemplary embodiments of the invention.
Claims
1. A computer-implemented method for determining the location of a digitally modeled object relative to a digitally modeled space, comprising the following steps: a) Retrieve or create the voxel representation (OV) of the object being digitally modeled and the voxel representation (SV) of the space being digitally modeled. b) Divide the voxel representation of the digitally modeled object into a first set (OH) of central object voxels and a second set (OB) of boundary object voxels, and divide the voxel representation of the digitally modeled space into a third set (SH) of central space voxels and a fourth set (SB) of boundary space voxels. c) Assess whether: - The second set of boundary object voxels intersects with the third set of central space voxels; - The second set of boundary object voxels intersects with the fourth set of boundary space voxels; as well as - The second set of boundary object voxels extends outside the space of the digital modeling; d) Based on the results of the evaluation, determine the location of the digitally modeled object relative to the space of the digital model. Step d) includes: d-1) Calculate the first ternary logic function of the evaluation result, indicating whether the digitally modeled object is completely inside the digitally modeled space; d-2) Calculate a second ternary logic function representing the result of the evaluation, indicating whether the object of the digital modeling crosses the boundary of the space of the digital modeling; and d-3) Calculate the third ternary logic function of the evaluation result, indicating whether the object of the digital modeling is completely outside the space of the digital modeling; Each of the three-valued logic functions takes a "true" value, a "false" value, or an "uncertain" value.
2. The method according to claim 1, wherein, Step c) also includes: assessing whether: - The first set of central object voxels intersects with the third set of central space voxels; - The first set of central object voxels intersects with the fourth set of boundary space voxels; and - The first set of the central object voxels extends outside the space of the digital modeling.
3. The method according to claim 1, wherein, Step d) further includes: assigning the object to one of a plurality of categories depending on the value of the three-valued logic function.
4. The method according to claim 3, wherein, The categories include: - The first category (DI) of the object in digital modeling, for which the first three-valued logic function takes a "true" value, and the second and third three-valued logic functions take a "false" value; - A second category (BI) of objects in digital modeling, wherein for the second category, the first and second three-valued logic functions take "uncertain" values, and the third three-valued logic function takes "false" values; - The third category (AC) of the object in digital modeling, for which the first three-valued logic function and the third three-valued logic function take the value "false" and the second three-valued logic function takes the value "true"; - A fourth category of objects in digital modeling (BOT), for which the first three-valued logic function takes a "false" value, and the second and third three-valued logic functions take "uncertain" values; - A fifth category (FO) of the object in the digital modeling, for which the first and second ternary logic functions take a "false" value, and the third ternary logic function takes a "true" value; and - The sixth category (BD) of objects in digital modeling, for which all three three-valued logic functions take uncertain values.
5. The method according to any one of claims 1 to 4, wherein, The voxels are represented as n-ary tree voxels.
6. The method according to claim 5, wherein, The voxel representation is an octree voxel representation.
7. The method according to any one of claims 1 to 4, wherein, Step a) includes: creating a voxel representation of the digitally modeled object based on at least one of the different representations (TO, TS) of the digitally modeled space.
8. A computer-implemented method for performing volume queries, comprising: - The first phase includes the following steps: i) Retrieve or create voxel representations (OV) of multiple digitally modeled objects and voxel representations (SV) of one or more digitally modeled spaces. ii) Divide the voxel representation of each digitally modeled object into a first set (OH) of central object voxels and a second set (OB) of boundary object voxels, and divide the voxel representation of each in the space of the digital model into a third set (SH) of central space voxels and a fourth set (SB) of boundary space voxels. - The second phase includes the following steps: iii) Receive a request from a user, the request including an indication of the space of the one or more digitally modeled objects and an indication of the required relationship between the digitally modeled space and the object to be retrieved; iv) For each of the objects in the digital modeling, evaluate whether: - The second subset of the boundary object voxels intersects with the third set of the central space voxels; - The second subset of the boundary object voxels intersects with the fourth set of the boundary space voxels; v) For each of the digitally modeled objects, determine, based on the results of the evaluation, whether it matches the required spatial relationship with the space of the digitally modeled space; and vi) Retrieve the digitally modeled object that matches the required spatial relationship with the space of the digital model. For each of the digitally modeled objects, step v) includes: v-1) Calculate the result of the evaluation using a first ternary logic function, indicating whether the digitally modeled object is at least partially inside the space of the digital model; v-2) Calculate a second ternary logical function representing the result of the evaluation, indicating whether the digitally modeled object at least partially crosses the boundary of the digitally modeled space; and v-3) Calculate a third ternary logic function of the result of the evaluation, indicating whether the object of the digital modeling is at least partially outside the space of the digital modeling; Each of the three-valued logic functions takes a "true" value, a "false" value, or an "uncertain" value.
9. The method according to claim 8, wherein, Step iv) also includes: assessing whether: - The first subset of the central object voxels intersects with the third set of the central space voxels; - The first subset of the central object voxels intersects with the fourth set of the boundary space voxels; and - The first subset of the central object voxels extends outside the space of the digital modeling.
10. The method according to claim 8, wherein, Select the required spatial relationship between the space of the digital model and the object to be retrieved from the following options: - A digitally modeled object that is definitely entirely within the space of the digital modeling (FI); - Certainly, at least partially, the digitally modeled object is located within the space (PI) of the digital modeling space; - Objects in digital modeling that definitely cross the boundaries (AC) of the space described in the digital modeling; - Certainly, at least partially, the digitally modeled object is located outside (PO) of the space in which the digital model is located; - The digitally modeled object is definitely located entirely outside the space (FO) of the digital modeling space; - The relationship between the space described in the digital modeling is an indeterminate (BD) digital modeling object.
11. The method according to claim 10, wherein, In step v), - Such an object is considered to be completely inside the space (FI): for the object, the first three-valued logic function takes a "true" value, and the second and third three-valued logic functions take a "false" value; - Such an object is considered to be at least partially inside the space (PI): for the object, the first three-valued logic function and the second three-valued logic function take "uncertain" values, and the third three-valued logic function takes "false" values; and for the object, the first three-valued logic function takes "true" values, and the second three-valued logic function and the third three-valued logic function take "false" values; - Such an object is considered to definitely cross the boundary (AC) of the space: for the object, the first three-valued logic function and the third three-valued logic function take the value "false", and the second three-valued logic function takes the value "true"; - Such an object is considered to be completely outside the space (FO): for the object, the first three-valued logic function and the second three-valued logic function take the value "false", and the third three-valued logic function takes the value "true"; - Such an object is considered to be at least partially outside the space (PO): for the object, the first three-valued logic function takes a "false" value, and the second and third three-valued logic functions take "uncertain" values; and for the object, the first and second three-valued logic functions take a "false" value, and the third three-valued logic function takes a "true" value; and - Such an object is considered to have an indeterminate relationship (BD) with the space: for the object, all three three-valued logic functions take the value "false".
12. The method according to any one of claims 8 to 11, wherein, The voxels are represented as n-ary tree voxels.
13. The method according to claim 12, wherein, The voxel representation is an octree voxel representation.
14. The method according to any one of claims 8 to 11, wherein, Step i) includes: creating a voxel representation of the digitally modeled object based on at least one of the different representations (TO, TS) of the digitally modeled space.
15. A computer program product stored on a non-transitory computer-readable data storage medium (M1, M2, M3, M4), comprising computer-executable instructions for causing a computer system (CPT) to perform the method according to any one of claims 1 to 14.
16. A non-transitory computer-readable data storage medium (M1, M2, M3, M4) comprising computer-executable instructions for causing a computer system (CPT) to perform the method according to any one of claims 1 to 14.
17. A computer system (CPT) including a processor (P) and a graphical user interface (IF) coupled to non-transitory memory, the non-transitory memory storing computer-executable instructions for causing the computer system to perform the method according to any one of claims 1 to 14.
Citation Information
Patent Citations
Process for displaying objects of a PLM database and apparatus implementing this process
US8013854B2
Voxelization techniques
US20140306955A1
Voxelization of mesh representations
US20170178388A1