Determining a surface of an object in a computer model

The method addresses the inefficiencies and over-classification issues in existing surface determination techniques by employing a two-stage test involving a growth technique and visibility check in a computer-implemented approach, resulting in accurate and efficient surface determination in computer models.

WO2025106063A1PCT designated stage expired Publication Date: 2025-05-22SIEMENS INDUSTRY SOFTWARE INC
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
PCT/US2023/079514
Authority / Receiving Office
WO · WO
Patent Type
Applications
Current Assignee / Owner
Filing Date
2023-11-13
Publication Date
2025-05-22

AI Technical Summary

Technical Problem

Existing methods for determining a surface in a computer model are time-consuming and prone to over-classification, where specious portions of the model are erroneously included in the surface determination.

Method used

A computer-implemented method that uses a two-stage test to classify surface portions. The method employs a growth technique to identify surface portions near a starting position and a visibility check to ensure an uninterrupted line-of-sight to a reference point, thereby accurately determining the surface.

Benefits of technology

The method effectively determines the surface of an object in a computer model without over-classifying specious portions, thus reducing user time and computational resources.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure US2023079514_22052025_PF_FP_ABST
    Figure US2023079514_22052025_PF_FP_ABST
Patent Text Reader

Abstract

A computer-implemented method for determining a surface of an object in a computer model of the object is disclosed. The method comprises: determining a position on a surface of the computer model of the object; determining a reference point that is intersected by an axis projecting from the surface near to the position on the surface; determining one or more portions of the surface near to the position on the surface or near to another of the one or more portions of the surface; determining whether an uninterrupted line-of-sight exists between the one or more portions and the reference point; and determining that the one or more portions constitute the surface in response to determining that the uninterrupted line-of-sight exists between the one or more portions and the reference point.
Need to check novelty before this filing date? Find Prior Art

Description

DETERMINING A SURFACE OF AN OBJECT IN A COMPUTER MODELTECHNICAL FIELD

[0001] The present disclosure relates to determining a surface of an object in a computer model of the object.BACKGROUND

[0002] Computer-aided design and engineering software may be used by engineers to aid in the creation, modification, and analysis of a product design. Using such software engineers may create computer model representations of a design, and may use the model to generate manufacturing instructions, and / or to simulate the design’s physical response to intended operating conditions of the design, for example, to simulate interaction of the design with fluid by computational fluid dynamics evaluation. It may be desirable to be able to classify surfaces of a modelled object, that is, to determine portions of the computer model that represent a particular surface of the object. For example, in the case of a model of a vehicle, it may be desirable to be able to determine portions of the model representing an exterior surface of at least a part of the vehicle, as it may be desired to augment the model definition of only that exterior surface for the purpose of improving a subsequent computational fluid dynamics analysis.SUMMARY

[0003] An object of aspects of the present disclosure is to provide a method for classifying surfaces of a modelled object, that is, to determine portions of a computer model that represent a particular surface, or a part of a surface, of a modelled object. Determination of such surfaces may be useful in the context of computer-aided design and engineering for a number of reasons. For example, determination of a surface may usefully enable grouping of surface portions constituting a target surface, augmentation of the model definition of that particular surface, and / or analysis of the surface, e.g., using a computational fluid dynamics analysis.

[0004] A conventional approach to determining, (e.g., also called classifying), a surface in a computer model is for an engineer to manually delineate bounds of a particular surface. However, this may be undesirably time-consuming.

[0005] One approach to determining a surface in a computer model is a grow-based technique, whereby a user may specify a starting position on a target surface to be determined, and the software may then gradually expand the patch across the portion of the model until aparticular geometric detail, such as a sharp angle or an edge is encountered, which may be inferred to represent a boundary of the target surface. Such an approach however is useful only for component shapes having these geometric details, and even for shapes where the geometric details are present, if the geometric details are not sufficiently pronounced, there is a risk of ‘over-classifying,’ that is specious portions of the model being included in the determination of the surface.

[0006] Another approach to determining a surface in a computer model is to use a visible- ray based approach, whereby a reference point is determined in free-space above the target surface, and the software then identifies portions of the model that have an uninterrupted line- of-sight from or to that reference point, from which the software infers that those portions of the model likely form part of the target surface. However, again, this method risks overclassifying, by including specious portions of the model belonging to other visible surfaces in the determination of the target surface.

[0007] In both of the above-noted approaches, over-classifying, that is erroneously including specious portions of the model in a determination of a target surface, has many disadvantages, for example, in requiring a user to manually excise the specious model portions from the determination, and / or incurring excess computational time and resource in unnecessarily augmenting the model definition of those specious portions.

[0008] It is desirable therefore to provide a method for accurately determining a surface of an object in a computer model of the object, and in particular to provide a method that avoids over-classifying of specious portions of the model as belonging to a target surface.

[0009] A first aspect of the present disclosure therefore provides a computer-implemented method for determining a surface of an object in a computer model of the object, the method comprising: determining a position on a surface of the computer model of the object; determining a reference point that is intersected by an axis projecting from the surface near to the position on the surface; determining one or more portions of the surface near to the position on the surface or near to another of the one or more portions of the surface; determining whether an uninterrupted line-of-sight exists between the one or more portions and the reference point; and determining that the one or more portions constitute the surface in response to determining that an uninterrupted line-of-sight exists between the one or more portions and the reference point.

[0010] The method therefore enables determination of portions of model data that represent a particular target surface of a computer model. Moreover, the method involves a two-stage test for classifying portions of a surface, such as faces of a tessellated or otherwise discretized model, as constituting a part of a target surface. In a first step of the test, a growth technique is employed for identifying portions of the modelled surface, such as faces of tessellated modelled surface, as being near to the determined starting position on the surface. And, to reduce a risk of specious faces being erroneously determined as constituting the target surface just because of their being near to the starting position, such as an opposite surface of object, the visibilitycheck technique is employed to determine whether the candidate portions identified by the growth technique have an uninterrupted line-of-sight to the reference point. In the event that both tests are passed, it may be inferred using the method that the surface portions do indeed constitute the target surface.

[0011] In implementation, the determining a reference point comprises determining a normal axis near to the position on the surface and determining a reference point that is intersected by the normal axis.

[0012] Determining the reference point to be along the normal axis enables the reference point to be located above the position on the surface. Hence, the line-of-sight test may more reliably assess the likelihood of the one or more portions forming a part of the same surface as the starting position.

[0013] In implementation, the determining a position on a surface of the computer model of the object comprises: displaying via a graphical user interface a graphical representation of the computer model of the object within a modelled volume; receiving via a human-machine interface to the computer a user selection of a point in the modelled volume; and associating the selected point with a position on a surface of the computer model of the object based on a proximity of the selected point to the position on the surface in the modelled volume.

[0014] In other words, the user may utilize a human-machine interface to interact with the computer program to specify the starting point. This may desirably enable a user to select a particular surface, or part of a surface, for determination.

[0015] In implementations, the determining whether an uninterrupted line-of-sight exists between the one or more portions and the reference point comprises determining whether an uninterrupted line of sight exists between the one or more portions and the reference point within a particular angle of view.

[0016] In implementations, the method comprises receiving via a human-machine interface to the computer a user selection of a value, wherein the determining whether an uninterrupted line-of-sight exists between the one or more portions and the reference point comprises determining whether an uninterrupted line of sight exists between the one or more portions and the reference point within a particular angle of view that is based on the user-selected value. Advantageously, the user may thereby vary the ‘field-of-view,’ and so vary the coarseness of the visibility test. For example, for a coarse determination, the user may wish to set a relatively large field-of-view. This may be expected to result in a relatively large proportion of the portions of the target surface passing the visibility test, notwithstanding that because the visibility test is not so stringent there may be an enhanced risk of specious surface portions also being erroneously included in the determination. Alternatively therefore, where the user wishes to minimize a risk of specious portions being included in the determination, the user may instead reduce the angle of view, such that only those portions of the surface that are located relative near to the starting point pass the visibility test, notwithstanding that a relatively greater number of portions of the surface that do constitute the target surface may not pass the visibility test on each iteration of the method.

[0017] In implementations, the determining one or more portions of the surface near to the position on the surface or near to another of the one or more portions of the surface and the determining whether an uninterrupted line-of-sight exists between the one or more portions and the reference point comprises determining only one portion of the surface near to the position on the surface or near to another of the one or more portions of the surface, and determining whether an uninterrupted line-of-sight exists between that portion and the reference point. In other words, the growth method could identify a single portion, e.g., a face, of the surface at a time, and the visibility test may then be performed for that single portion.

[0018] In implementations, the determining whether an uninterrupted line-of-sight exists between the one or more portions and the reference point comprises determining whether an uninterrupted line-of-sight exists between a respective centroid of each of the one or more portions and the reference point. This may desirably best distinguish portions constituting the target surface from specious portions of the model.

[0019] In implementations, the method comprises displaying via the graphical user interface a graphical representation of the computer model in which the one or more portions determined to constitute the surface are visually distinguished from other portions of thecomputer model. The user may thereby understand the portions of the surface that have been determined to constitute the surface and may thereby assess whether all portions of the target surface have been correctly determined and make thereby make an informed decision as to whether additional repetitions of the method are appropriate.

[0020] In implementations, the method is for determining a further surface of a further object in a further computer model of a further object, and the method comprises: determining a position on the further surface of the further computer model of the object that is intersected by the axis; determining one or more portions of the further surface near to the position on the further surface; determining whether an uninterrupted line-of-sight exists between the one or more portions and the reference point; and determining that the one or more portions constitute the surface in response to determining that a line-of-sight exists between the one or more portions and the reference point. This may advantageously enable the portions of the further surface to be determined based on the previously set reference points, by generation of new starting positions on the surface corresponding to those reference points.

[0021] In implementations, the method is for determining a surface of an object in a tessellated computer model of the object, wherein the determining a position on a surface of the computer model of the object comprises determining a position on a surface of the tessellated computer model of the object, the determining a reference point comprises determining a face of the surface near to the position on the surface and reference point that is intersected by an axis projecting from the face, the determining one or more portions of the surface near to the position on the surface or near to another of the one or more portions of the surface are identified comprises determining one or more further faces near to the face or another of the further faces, the determining whether an uninterrupted line-of-sight exists between the one or more portions and the reference point comprises determining whether an uninterrupted line-of-sight exists between the one or more identified further faces and the reference point, and the determining that the one or more portions constitute the surface in response to determining that a line of sight exists between the one or more identified portions and the reference point comprises determining that face and the one or more further faces constitute the surface in response to determining that a line of sight exists between the one or more identified further faces and the reference point. The method may thus be particularly suitable for tessellated or otherwise discretized models.

[0022] In implementations, the determining one or more further faces near to the face or another of the further faces comprises determining one or more further faces adjacent to the face or another of the further faces.

[0023] In implementations, the determining one or more further faces near to the face or another of the further faces comprises determining one or more further faces having a respective edge contiguous with the face. The edge-based growth technique may desirably enable application of further break conditions to be applied to truncate the growth technique, for example, by using geometric details of the model such as sharp edges coincident with the face edges.

[0024] In implementations, the determining one or more further faces near to the face or another of the further faces comprises determining one or more further faces having a respective vertex contiguous with the face. The vertex-based growth technique may desirably enable discovery of neighboring faces with relatively less computational cost than the edgebased discovery method.

[0025] In implementations, the determining a reference comprises determining a measure of the face and determining the reference point to be a distance along the axis from the face as a function of the measure of the face. This may desirably set the coarseness of the visibility test to be a function of the face size.

[0026] In implementations, the determining a reference point comprises receiving via a human-machine interface to the computer a user selection of a value, and determining the reference point to be a distance along the axis from the face that is a function of the measure of the face and the value.

[0027] In implementations, the determining a measure of the face comprises determining an average length of edges of the face.

[0028] In implementations, the method comprises modifying the model to augment the data of the model representing the determined surface.

[0029] In implementations, the method comprises simulating interaction of fluid with the determined surface.

[0030] A second aspect of the present disclosure provides a computer system comprising: at least one processor, and at least one memory including machine-readable instructions, wherein the at least one memory and the machine-readable instructions are configured to, withthe at least one processor, cause the computer system to determine a surface of an object in a computer model of the object by a method of any one of the preceding statements.

[0031] A third aspect of the present disclosure provides a computer program comprising instructions, which, when executed by a computer, cause the computer to carry out the method of any one of the preceding statements.

[0032] A fourth aspect of the present disclosure provides a data storage apparatus having stored thereon the computer program of the preceding statement.

[0033] These and other aspects of the disclosure are apparent from the embodiment(s) described below.BRIEF DESCRIPTION OF THE DRAWINGS

[0034] In order that the present disclosure may be more readily understood, embodiments are now described, by way of example, with reference to the accompanying drawings, in which:

[0035] Figure 1 shows schematically an example manufacturing assembly incorporating aspects of the present disclosure.

[0036] Figure 2 shows schematically a computer system for determining a surface of an object in a computer model of the object, the computer system embodying aspects of the present disclosure.

[0037] Figure 3 shows schematically a view of computer model of an object.

[0038] Figure 4 shows schematically a method for determining a surface of an object.

[0039] Figure 5 shows schematically another view of the computer model of the object.

[0040] Figure 6 shows schematically another view of the computer model of the object.

[0041] Figure 7 shows schematically another view of the computer model of the object.

[0042] Figure 8 shows schematically another view of the computer model of the object.

[0043] Figure 10 shows schematically another view of the computer model of the object.

[0044] Figure 11 shows schematically another view of the computer model of the object.

[0045] Figure 12 shows schematically another view of the computer model of the object.

[0046] Figure 13 shows schematically parts of a method of determining the surface of an object.

[0047] Figure 14 shows schematically parts of a method of determining the surface of an object.

[0048] Figure 15 shows schematically parts of a method of determining the surface of an object.

[0049] Figure 16 shows schematically processes involved in a method of manufacturing an object.

[0050] Figure 17 shows schematically further processes involved in the method of manufacturing an object.

[0051] Figure 18 shows schematically further processes involved in the method of manufacturing an object.DETAILED DESCRIPTION

[0052] Example embodiments are described below in sufficient detail to enable those of ordinary skill in the art to embody and implement the systems and processes herein described. It is important to understand that embodiments can be provided in many alternate forms and should not be construed as limited to the examples set forth herein.

[0053] Accordingly, while embodiments can be modified in various ways and take on various alternative forms, specific embodiments thereof are shown in the drawings and described in detail below as examples. There is no intent to limit to the particular forms disclosed. On the contrary, all modifications, equivalents, and alternatives falling within the scope of the appended claims should be included. Elements of the example embodiments are consistently denoted by the same reference numerals throughout the drawings and detailed description where appropriate.

[0054] The terminology used herein to describe embodiments is not intended to limit the scope. The articles “a,” “an,” and “the” are singular in that they have a single referent, however the use of the singular form in the present document should not preclude the presence of more than one referent. In other words, elements referred to in the singular can number one or more, unless the context clearly indicates otherwise. It will be further understood that the terms “comprises,” “comprising,” “includes,” and / or “including,” when used herein, specify the presence of stated features, items, steps, operations, elements, and / or components, but do not preclude the presence or addition of one or more other features, items, steps, operations, elements, components, and / or groups thereof.

[0055] Figure 1 shows schematically an environment in which aspect of the present disclosure may be employed.

[0056] In Figure 1, an engineer is using a computer system 101 running computer-aided design and engineering software to create, modify, and evaluate a product design, and then generate instructions for manufacturing a product to the design. For example, the instructionsmay define a shape of the product and specifications of the product. The instructions may include machine-readable instructions for use by computer-controlled manufacturing equipment to produce a product to the design. Whilst in the example computer system 101 is depicted as a unitary computer, the computer system 101 may instead comprise a plurality of separate computers each performing a part of the process of creating, modifying, and evaluating the computer model and then generating manufacturing instructions based on the computer model. For example, the computer system 101 may comprise a computer used for creating a computer model of an object, another computer used for analyzing the computer model, for example, for performing computational fluid dynamic evaluation on the modelled object, and then another computer for generating manufacturing instructions based on the computer model.

[0057] The instructions for manufacturing generated by the computer system 101 may subsequently be provided to computer-controlled manufacturing equipment, depicted schematically at 102, to manufacture a product to the design. In practice, the computer system 101 may be located remotely of the manufacturing equipment 102, and thus the manufacturing instructions may be transmitted via an electronics communications system, depicted schematically by arrow 103, for example, via the internet, which may include intermediary computer systems.

[0058] Aspects of the present disclosure therefore include a method for manufacturing an object to a design created, modified, and / or analyzed by computer system 101, and manufactured by manufacturing equipment 102, the method performed by the computer system 101 including a method for determining a surface of an object in a computer model of an object, as will be described in more detail herein, as also to a manufacturing assembly, comprising the computer system 101 and the manufacturing equipment 102.

[0059] Referring next to Figure 2, the computer system 101 comprises a processor 201, memory 202, graphical display device 203, input / output interface 204, peripheral device 205, and system bus 206. Although in the depicted example, computer system 101 is depicted as comprising one of each component, in other examples, computer system 101 may comprise a plurality of one or more of the components, and the plural components may be distributed across mutually physically remote systems. For example, in examples, the computer system 101 may comprise a plurality of processors such as processor 201, each of the processors fulfilling a part of the processing requirements and communicating via a communicationsnetwork such as the internet, and / or may comprise a plurality of peripheral devices such as peripheral device 205.

[0060] Processor 201 is configured for execution of instructions of a computer program for creating, modifying, and evaluating a tessellated computer model of an object and generating machine-readable manufacturing instructions based on the computer model. As will be described herein in further detail, the computer program includes functionality for determining a surface of an object in the tessellated computer model of the object. Memory 202 is configured for non-volatile storage of the computer program, defining machine-readable instructions, for execution by the processor, and for serving as read / write memory for storage of operational data associated with computer programs executed by the processor. Graphical display device 203 is configured for displaying graphical representations of the computer model data created by the computer program, to enable a user of the computer system 101 to visualize the data and so aid the user’s interaction, for example, modification, of the model data. Input / output interface 204 is configured for connection of the computer system 202 to peripheral devices 205, and to external systems such as communications system 103 to communicate with manufacturing equipment 102. Peripheral devices 205 are functional as human-machine interfaces, to enable the user to input commands to control the computer program, for example, to enable the user to input commands to modify the model data. Peripheral devices 205 may include, for example, a computer mouse, joystick, and / or keyboard. The components 201 to 204 of the computer system 101 are in communication via system bus 206.

[0061] Figure 3 shows schematically a view of a computer model 301 that may be created by the computer program running on the computer system 101 and displayed as a part of a graphical user interface via graphical display device 203.

[0062] The computer model 301 defines a modelled volume and includes an assembly model of a hood 302 and a fender 303 of vehicle bodywork. The model 301 is a tessellated model of the of the components, in which the volume of the model is represented by tetrahedra, and surfaces of the model by the plane faces of the tetrahedra. In the example, the computer model 301 represents both internal and external surfaces of the components.

[0063] It may be desirable in some applications to be able to classify surfaces of the model 301, that is, to determine portions of the modelled surfaces that belong to each of the modelled components 302, 303, and moreover to be able to determine particular surfaces of each of thecomponents, for example, to determine an external surface of the hood 302 as distinct from other surfaces of the model, for example, distinct from the external surface of the fender 303.

[0064] For example, it may be desirable to perform a computational fluid dynamics (CFD) analysis technique on the hood 302, in order to understand the interaction of the external surface of the hood 302 with incident airflow in use. In this situation, it may be desirable to augment the model definition of the external surface with a relatively greater number of prismatic volume cell layers, in order to better define the surface, in order to adequately resolve the flow boundary profile when numerically solving the fluid flow field using a Reynolds-averaged Navier-Stokes equations (RANS) based CFD approach. Whereas it may be desirable to avoid also excessively increasing the prism layer cell count for internal surfaces, in order to maintain the overall cell count for the volume mesh relatively low, thereby minimizing the data size of the model and so minimizing computational resource associated with creating, rendering, and modifying the model.

[0065] An approach to this example problem is for the user of the computer system 101 to manually delineate the perimeter of the external surface of the hood 302 by interacting with the computer system 101 via the display 203 and the peripheral devices 205, to thereby allow the model data corresponding to the target surface to be distinguished from the model data corresponding to other portions of the model. However, this may be a relatively timeconsuming process for the user, and particularly so where the task needs to be performed repeatedly, for example, during the design and evaluation process, where the user may iteratively evaluate and modify the design.

[0066] In comparison, aspects of the present disclosure provide a method for at least partially automating the process of determining surfaces of a computer model.

[0067] An example application of the present disclosure will be described herein by reference to determining an external surface of the hood 302, that is determining the portions of the computer model that represent the external surface of the hood.

[0068] Figure 4 depicts schematically the present method for determining a surface in a computer model representation of an object, which is for distinguishing model data representing a target surface from other of the model data. In Figure 4, a target surface 401 is represented by model data. The user may wish to distinguish the model data corresponding to the target surface, or a part of the target surface, from other of the model data. This gives astarting point for the subsequent growth technique, whereby the computer system progressively determines neighboring portions of the surface.

[0069] From the target point 402, a computer-implemented surface growth technique may be employed to identify neighboring portions of the surface, that is, to identify model data representing the adjacent portions of the surface. By this method, the computer system 101 identifies model data that is labelled in the model as being connected to the target point.

[0070] To avoid over-classifying, that is, erroneously identifying other model data, such as model data representing other surfaces of the same object, which although connected to the target point may not actually belong to the notional target surface, for example, an internal surface of the object, a visibility check is employed. The visibility check serves to limit the model data selected as belonging to the target surface to only surface data that is notionally ‘visible’ from a specific aspect.

[0071] The visibility check technique involves the computer system 101 generating a normal axis 404 that projects normally to the target point 402. A reference point 403 is then determined lying along the normal axis 404.

[0072] A determination is then made by the computer system 101 as to whether an uninterrupted line-of-sight exists between the reference point 403 and a portion of the surface that has been identified as a candidate portion by the growth technique, within a particular visibility angle. This visibility check serves to avoid data representing surfaces that are not visible from the reference point 403, such as internal surfaces, from being erroneously identified as belonging to the target surface.

[0073] Thus, in the example depicted in Figure 4, a central portion of the surface 401 has been determined by the growth technique as being adjacent and connected to the surface selected at the target point, and has then been determined by the visibility check technique to lie on an uninterrupted line-of-sight within a particular visibility angle to the reference point 403. From these two determinations, it may reasonably be inferred that the portions of the surface do belong to the target surface.

[0074] In the case of a large or irregularly shaped object surface however, the method may need to be repeated in multiple iterations in order to provide that substantially all of the model data representing the target surface has been selected. For example, in the example of Figure 4, the left and right-most non-visible portions of the surface may actually be part of the target surface. Whereas these non-visible portions have been excluded by a first iteration of themethod for failing to satisfy the visibility test, in that they are outside of the visibility angle from the reference point 403.

[0075] The present method provides various functionalities for enlarging the visible portion of the surface. The computer program running on the computer system 101 may increase the visibility angle, and / or increase the projection distance of the reference point 403 from the surface 401, each of which enlarges the area of the surface 401 having an uninterrupted line of sight to the reference point 403. In examples, the computer program allows a user to input a desired value for the visibility angle and / or for the distance of the reference point 403 from the surface 401. Additionally, the computer program allows a user to specify additional target points. Thus, using this functionality, a user could, for example, specify an additional target point on the left-most non-visible portion, based on which the previously described growth and visibility check methods may be repeated. The method may thus be repeated iteratively until an entirety of the target surface has been selected, from which an entirety of the relevant model data may be identified.

[0076] Figures 5 to 13 collectively depict the previously described method as applied to the task of determining the model data representing the external surface of the hood 302.

[0077] Firstly, referring to Figure 5, the computer system 101 displays a graphical representation of the computer model data via the display device 203. The user may thereby visualize the model data, and in particular may visualize the portions of the data that represent the target surface.

[0078] The method firstly involves determining a starting position on the target surface. In examples, this may involve the user of the computer system 101 placing the target point 402 in a place within the modelled volume corresponding to the target surface, for example, using the peripheral devices 205 and the display 203. The computer system 101 may the associate the point selected by the user with corresponding surface data of the model, which is surface data of the model that is near to the selected point within the modelled volume. In other examples, the computer system could determine the starting position without user intervention, for example, the computer system may be configured to use as a starting position a geometric center of the model. In other examples, the computer system 101 may instead ‘automatically’ determine each surface of a computer model by ‘automatically’ selecting a plurality of positions throughout the model and performing the method on each of the positions.

[0079] Referring next in particular to Figure 6, the method then involves determining a starting face 601 of the target surface that is near to the starting position, for example, by matching the position of the starting position to the position of the face within the modelled volume.

[0080] The normal axis 404 is then determined that is normal to the starting face 601 and that projects outwardly of the target surface. The computer system 101 may display a representation of the normal axis on the display device 203, to allow the user to visualize the normal axis.

[0081] The reference point 403, that is the point along the normal axis 404 from which the visibility check is to be performed, is then determined. In examples, the distance of the reference point 404 from the surface along the normal line is determined as a function of a measure of a size of the starting face 601. For example, the computer system 101 may determine an average length of edges of the starting face 601 and may set the distance of the reference point 404 to be a multiple of the average edge length.

[0082] Referring next in particular to Figures 7 to 9 collectively, the method then involves performing a growth method, whereby one or more further faces of the target surface adjacent to the starting face 601 are determined. The growth method may, for example, involve the computer system 101 inspecting the computer model to identify metadata describing adjacencies between the faces.

[0083] In examples, the growth method and the visibility check method are performed iteratively, such that during the growth method only a single or small number of further faces are identified, whereupon the growth method is paused, and then the visibility check is performed to determine whether those one or more further faces satisfy the test of having an uninterrupted line of sight to the reference point 403. For example, the growth method and the visibility check method could be performed individually for each further face, whereby the growth method is performed to identify a face adjacent to the starting face 601, or a previously determined further face 602, and then the visibility check method is performed on that individual further face.

[0084] Figures 10 and 11 depict representations of the determination by the method of the faces constituting the target surface, in which the projection distance of the reference point 403, that is the distance of the reference point from the surface, is mutually different. Referring to Figure 10, the reference point 403 is relatively close to the surface, the field-of-view isrelatively low, and hence a relatively small number of the faces passed the visibility test. Whereas, in Figure 11, the reference point is a relatively greater distance from the surface, such that the field-of-view is relatively great, and a relatively higher number of the faces pass the visibility test.

[0085] In the example of Figure 11 however, it can be observed that even with the relatively large field-of-view, portions 1101, 1102 of the external surface of the hood 302 have not yet been determined as belonging to the target surface. It may be assumed that this is because the faces in those portions fail the visibility check, because respective lines of sight between the faces and the reference point are occluded, for example, by contours of the hood. It may be desirable however to correctly determine the entirety of the external surface of the hood 302, for example, to provide the accuracy of any subsequent CFD processes performed on the surface.

[0086] The method may involve the computer system 101 displaying the representation of the model via the display device 203, and updating the representation in real-time to depict portions, e.g., faces, of the model that have already been determined by the method to belong to the target surface. For example, as in Figures 6 to 13, the determined portions / faces of the model may be depicted in solid fill. By this feature, the user may then review the representation of the model and decide whether the entirety of the target surface has been satisfactorily determined. In the event that it has not, the user may vary the visibility angle and / or the projection distance of the reference point 403. As a further alternative, the user may specify additional target points on which the method is to be performed, as depicted in Figures 12 and 13.

[0087] Referring next to Figures 12 and 13, it can be observed that the method performed by the computer enables the user to specify further target points 1201, 1301. Based on the additional target points, the computer system 101 generates new reference points 1202, 1302. The previously described method may then be repeated using those new points, whereby adjacent faces are determined for the respective target point, and the visibility check is performed for the respective reference point.

[0088] Once the method has been performed sufficiently for an acceptable level of maturity of the surface definition to be reached, as depicted in Figure 13, the method may cease. The model data representing the portions / faces determined to constitute the target surface may beidentified, and the model data may then be utilized, for example, for evaluating the surface such as using a CFD technique to evaluate fluid interaction with the determined surface.

[0089] Referring next to Figures 14 and 15 collectively, in examples, the method accommodates convenient determination of a surface in a modified computer model, by allowing previously computed reference points to be copied across and applied to a new model, for example, a modified model.

[0090] Referring firstly to Figure 14, the previously described method may be applied to the model of the object in order to determine the model data representing the target surface 1401. Thus, as previously described, the target point 1402 may be selected by the user, from which the reference point 1403 may be computed, and then based on the target point 1402 and the reference point 1403, the growth and visibility check schemes respectively may be performed to identify the portions of the surface of the object that constitute the target surface 1401.

[0091] Following determining of the target surface, and identification of the corresponding model data, the user may decide to modify the object, for example, to alter the shape of the target surface following CFD analysis. This scenario is depicted in Figure 15, where the modelled object and the target surface thereof has been reshaped.

[0092] Referring next to Figure 15 then, it may be desirable again to determine the portions of the surface of the modified model that constitute the target surface. An approach to this task would be for the method to be repeated in its entirety based on new target points selected by the user. However, selection of new target points by the user may be relatively time-consuming, in particular where the surface has been determined using multiple target points, as described with reference to Figures 12 and 13.

[0093] The present method however allows for automatic computation of appropriate target points to evaluate the modified design, by using the reference points previously computed with respect to the initial design of Figure 14. Thus, in the example, coordinates of the previously computed reference point 1403 and the normal axis 1404 may be stored in memory 202 of the computer system 101, and retrieved for use with the modified model of Figure 15. In this scenario, a new target point 1402 may be computed by computing the intersection of the normal axis 1404 on which the reference point 1403 lies with the new target surface and using the new target point 1402 the method for determining the surface may be performed again.

[0094] Referring next to Figure 16, in examples the computer program for creating, modifying, and evaluating a product design and manufacturing a product to the design comprises five operations.

[0095] At operation 1601, the computer program causes the processor 201 of the computer system 101 to create a model of the product or a part thereof. This operation could, for example, involve the computer system creating the model data based on a three-dimensional scan of a physical prototype using a scanner connected to input / output interface 204.

[0096] At operation 1602, the computer program causes the processor 201 of the computer system 101 to functionally evaluate the model, or a part thereof. For example, operation 1602 could involve the computer system 101 performing a CFD evaluation method on one or more surfaces of the model to determine the interaction of each of those surfaces with a fluid flow.

[0097] At operation 1603, based on the results of the evaluation at operation 16002, the computer system 101 may modify the model created at operation 1601, for example, to improve fluid flow across the evaluated surfaces. Operation 1603 could, for example, involve a user interacting with the computer program to modify the model.

[0098] Operations 1602 and 1603 may be repeated in order until the results of the evaluation process indicate that the design is acceptable.

[0099] At operation 1604, manufacturing data for manufacturing the subject project is generated based on the finalized model generated at operation 1603. The manufacturing data could, for example, include the model data, and / or instructions for manufacturing the product. The manufacturing data is then transmitted by the computer system 101 to the manufacturing equipment 102, for example, via the communication system 103.

[0100] At operation 1605, the manufacturing data received at operation 1604 is utilized by the manufacturing equipment 102 to manufacture the product.

[0101] Referring next to Figure 17, in examples operation 1602 for evaluating the computer model comprises three stages.

[0102] At operation 1701, the computer program causes the processor 201 of the computer system 101 to determine the target surface(s) of the model for the evaluation procedure and identify the model data representing those target surface(s), using the method described previously with reference to Figures 3 to 15.

[0103] At operation 1702, the computer program causes the processor 201 of the computer system 101 to augment the model data to enhance the definition of the target surface(s), tothereby improve the accuracy of the evaluation procedures. For example, operation 1702 could involve the computer system 101 adding extra model data to more precisely define the target surface(s).

[0104] At operation 1703, the computer program causes the processor 201 of the computer system 101 to evaluate the target surface(s), for example, using a CFD evaluation method, or another method to evaluate the physical characteristics of the modelled surface(s).

[0105] Referring finally to Figure 18, in examples, operation 1701 for determining a surface of an object in the computer model comprises five stages.

[0106] At operation 1801, the computer program causes the processor 201 of the computer system 101 to determine a position on a surface of the model. As previously described, operation 1801 could involve the computer system 101 receiving a user input defining a target point on the target surface.

[0107] At operation 1802, the computer program causes the processor 201 of the computer system 101 to determine a reference point located on an axis that intersects the target surface near to the target position determined at operation 1801. As previously described, operation 1802 could involve the computer system 101 computing a normal axis to the target point, computing a projection distance, and determining a location the projection distance along the axis away from the surface as the reference point.

[0108] At operation 1803, the computer program causes the processor 201 of the computer system 101 to determine one or more portions, for example, faces, of the surface near to the target position determined at operation 1801, or indeed near to other portions determined by a preceding iteration of operation 1803.

[0109] At operation 1804, the computer program causes the processor 201 of the computer system 101 to determine whether an uninterrupted line of sight exists between the one or more portions of the surface determined at operation 1802 and the reference point determined at operation 1802. As previously described, operation 1804 could involve the computer system determining whether a line of sight exists between a centroid of each of the portions of the surface and the reference point.

[0110] At operation 1805, the computer program causes the processor 201 of the computer system 101 to determine those surface portions, e.g., faces, determined to be near to the target point at operation 1803, and determined at operation 1804 to have an uninterrupted line of sight to the reference point, to constitute the target surface. Operation 1805 could, for example,involve the computer system displaying a visually modified version of the computer model in which the determined portions of the surface are visually distinguished from other portions of the surface, such as using a color fill. Operation 1805 could further involve the computer system marking with a machine-readable marker the portions of the model data representing the determined surface.[oni] The system and apparatus described above may use dedicated processor systems, micro controllers, programmable logic devices, microprocessors, or any combination thereof, to perform some or all of the operations described herein. Some of the operations described above may be implemented in software and other operations may be implemented in hardware. Any of the operations, processes, and / or methods described herein may be performed by an apparatus, a device, and / or a system substantially similar to those as described herein and with reference to the illustrated figures.

[0112] The processor may execute instructions or "code" stored in memory. The memory may store data as well. The processing device may include, but may not be limited to, an analog processor, a digital processor, a microprocessor, a multi-core processor, a processor array, a network processor, or the like. The processing device may be part of an integrated control system or system manager or may be provided as a portable electronic device configured to interface with a networked system either locally or remotely via wireless transmission.

[0113] The memory may be integrated together with the processing device, for example RAM or FLASH memory disposed within an integrated circuit microprocessor or the like. In other examples, the memory may comprise an independent device, such as an external disk drive, a storage array, a portable FLASH key fob, or the like. The memory and processing device may be operatively coupled together, or in communication with each other, for example by an I / O port, a network connection, or the like, and the processing device may read a file stored on the memory. Associated memory may be "read only" by design (ROM) by virtue of permission settings, or not. Other examples of memory may include, but may not be limited to, WORM, EPROM, EEPROM, FLASH, or the like, which may be implemented in solid state semiconductor devices. Other memories may comprise moving parts, such as a known rotating disk drive. All such memories may be "machine-readable" and may be readable by a processing device.

[0114] Operating instructions or commands may be implemented or embodied in tangible forms of stored computer software (also known as "computer program" or "code"). Programs,or code, may be stored in a digital memory and may be read by the processing device. “Computer-readable storage medium" (or alternatively, "machine-readable storage medium") may include all of the foregoing types of memory, as well as new technologies of the future, as long as the memory may be capable of storing digital information in the nature of a computer program or other data, at least temporarily, and as long at the stored information may be "read" by an appropriate processing device. The term "computer-readable" may not be limited to the historical usage of "computer" to imply a complete mainframe, mini-computer, desktop or even laptop computer. Rather, "computer-readable" may comprise storage medium that may be readable by a processor, a processing device, or any computing system. Such media may be any available media that may be locally and / or remotely accessible by a computer or a processor, and may include volatile and non-volatile media, and removable and non-removable media, or any combination thereof.

[0115] A program stored in a computer-readable storage medium may comprise a computer program product. For example, a storage medium may be used as a convenient means to store or transport a computer program. For the sake of convenience, the operations may be described as various interconnected or coupled functional blocks or diagrams. However, there may be cases where these functional blocks or diagrams may be equivalently aggregated into a single logic device, program, or operation with unclear boundaries.

[0116] While the application describes specific examples of carrying out embodiments of the disclosure, those skilled in the art will appreciate that there are numerous variations and permutations of the above described systems and techniques that fall within the spirit and scope of the disclosure as set forth in the appended claims. For example, while specific terminology has been employed above to refer to electronic design automation processes, it should be appreciated that various examples of the disclosure may be implemented using any desired combination of electronic design automation processes.

[0117] One of skill in the art will also recognize that the concepts taught herein can be tailored to a particular application in many other ways. In particular, those skilled in the art will recognize that the illustrated examples are but one of many alternative implementations that will become apparent upon reading this disclosure.

[0118] Although the specification may refer to “an,” “one,” “another,” or “some” example(s) in several locations, this does not necessarily mean that each such reference is to the same example(s), or that the feature only applies to a single example.

Claims

CLAIMS1. A computer-implemented method for determining a surface of an object in a computer model of the object, the method comprising: determining a position on a surface of the computer model of the object; determining a reference point that is intersected by an axis projecting from the surface near to the position on the surface; determining one or more portions of the surface near to the position on the surface or near to another of the one or more portions of the surface; determining whether an uninterrupted line-of-sight exists between the one or more portions and the reference point; and determining that the one or more portions constitute the surface in response to determining that the uninterrupted line-of-sight exists between the one or more portions and the reference point.

2. The computer-implemented method of claim 1, wherein the determining of the reference point comprises: determining a normal axis near to the position on the surface; and determining the reference point that is intersected by the normal axis.

3. The computer-implemented method of claim 1, wherein the determining of the position on the surface of the computer model of the object comprises: displaying via a graphical user interface a graphical representation of the computer model of the object within a modelled volume; receiving, via a human-machine interface to a computer, a user selection of a point in the modelled volume; and associating the selected point with the position on the surface of the computer model of the object based on a proximity of the selected point to the position on the surface in the modelled volume.

4. The computer-implemented method of claim 1, wherein the determining whether the uninterrupted line-of-sight exists between the one or more portions and the reference pointcomprises determining whether an uninterrupted line of sight exists between the one or more portions and the reference point within a particular angle of view.

5. The computer-implemented method of claim 4, further comprising: receiving, via a human-machine interface to a computer, a user-selected value, wherein the determining whether the uninterrupted line-of-sight exists between the one or more portions and the reference point comprises determining whether an uninterrupted line of sight exists between the one or more portions and the reference point within a particular angle of view that is based on the user-selected value.

6. The computer-implemented method of claim 1, wherein the determining of the one or more portions of the surface near to the position on the surface or near to another of the one or more portions of the surface and the determining whether the uninterrupted line-of-sight exists between the one or more portions and the reference point comprises: determining only one portion of the surface near to the position on the surface or near to another of the one or more portions of the surface; and determining whether the uninterrupted line-of-sight exists between the only one portion and the reference point.

7. The computer-implemented method of claim 1, wherein the determining whether the uninterrupted line-of-sight exists between the one or more portions and the reference point comprises determining whether the uninterrupted line-of-sight exists between a respective centroid of each portion of the one or more portions and the reference point.

8. The computer-implemented method of claim 1, further comprising: displaying via a graphical user interface a graphical representation of the computer model in which the one or more portions determined to constitute the surface are visually distinguished from other portions of the computer model.

9. The computer-implemented method of claim 1, further comprising: determining a further surface of a further object in a further computer model of the further object, wherein the determining of the further surface comprises:determining a position on the further surface of the further computer model of the object that is intersected by the axis; determining one or more portions of the further surface near to the position on the further surface; determining whether an uninterrupted line-of-sight exists between the one or more portions and the reference point; and determining that the one or more portions constitute the surface in response to determining that the uninterrupted line-of-sight exists between the one or more portions and the reference point.

10. The computer-implemented method of claim 1, wherein the surface of the object is determined in a tessellated computer model of the object, wherein the determining of the position on the surface of the computer model of the object comprises determining a position on a surface of the tessellated computer model of the object, wherein the determining of the reference point comprises determining a face of the surface near to the position on the surface and the reference point that is intersected by an axis projecting from the face, wherein the determining of the one or more portions of the surface near to the position on the surface or near to another of the one or more portions of the surface are identified comprises determining one or more further faces near to the face or another face of the one or more further faces, wherein the determining whether the uninterrupted line-of-sight exists between the one or more portions and the reference point comprises determining whether an uninterrupted line- of-sight exists between the one or more identified further faces and the reference point, and wherein the determining that the one or more portions constitute the surface in response to determining that the uninterrupted line of sight exists between the one or more identified portions and the reference point comprises determining that face and the one or more further faces constitute the surface in response to determining that the uninterrupted line of sight exists between the one or more identified further faces and the reference point.

11. The computer-implemented method of claim 10, wherein the determining of the one or more further faces near to the face or another face of the one or more further faces comprises determining one or more further faces adjacent to the face or another face of the one or more further faces.

12. The computer-implemented method of claim 10, wherein the determining of the one or more further faces near to the face or another face of the one or more further faces comprises determining one or more further faces having a respective edge contiguous with the face.

13. The computer-implemented method of claim 10, wherein the determining of the one or more further faces near to the face or another face of the one or more further faces comprises determining one or more further faces having a respective vertex contiguous with the face.

14. The computer-implemented method of claim 10, wherein the determining of the reference point comprises: determining a measure of the face; and determining the reference point to be a distance along the axis from the face as a function of the measure of the face.

15. The computer-implemented method of claim 14, wherein the determining of the reference point comprises: receiving, via a human-machine interface to a computer, a user selection of a value; and determining the reference point to be a distance along the axis from the face that is a function of the measure of the face and the value.

16. The computer-implemented method of claim 14, wherein the determining of the measure of the face comprises determining an average length of edges of the face.

17. The computer-implemented method of claim 1, further comprising: modifying the computer model to augment data of the computer model representing the determined surface.

18. The computer-implemented method of claim 1, further comprising: simulating interaction of fluid with the determined surface.

19. A computer system comprising: at least one processor; and at least one memory including machine-readable instructions, wherein the at least one memory and the machine-readable instructions are configured to, with the at least one processor, cause the computer system to determine a surface of an object in a computer model of the object by the method of claim 1.

20. A computer program comprising instructions, which, when executed by a computer, cause the computer to carry out the method of claim 1.

21. A data storage apparatus having stored thereon the computer program of claim 20.

Citation Information

Patent Citations

  • Apparatus, method and program for segmentation of mesh model data into analytic surfaces based on robust curvature estimation and region growing

    US20070188490A1

  • Scanning arrangement and method

    US6128086A