GB2595443A - Virtual engineering - Google Patents

Virtual engineering Download PDF

Info

Publication number
GB2595443A
GB2595443A GB2006500.9A GB202006500A GB2595443A GB 2595443 A GB2595443 A GB 2595443A GB 202006500 A GB202006500 A GB 202006500A GB 2595443 A GB2595443 A GB 2595443A
Authority
GB
United Kingdom
Prior art keywords
shapes
hierarchy
shape
parts
user
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Withdrawn
Application number
GB2006500.9A
Other versions
GB202006500D0 (en
Inventor
William Monaghan Ian
holst Felix
White Daren
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hackrod
Original Assignee
Hackrod
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hackrod filed Critical Hackrod
Priority to GB2006500.9A priority Critical patent/GB2595443A/en
Publication of GB202006500D0 publication Critical patent/GB202006500D0/en
Priority to PCT/US2021/030079 priority patent/WO2021222697A1/en
Publication of GB2595443A publication Critical patent/GB2595443A/en
Withdrawn legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/10Geometric CAD
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/10Geometric CAD
    • G06F30/12Geometric CAD characterised by design entry means specially adapted for CAD, e.g. graphical user interfaces [GUI] specially adapted for CAD
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2111/00Details relating to CAD techniques
    • G06F2111/18Details relating to CAD techniques using virtual or augmented reality
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/20Design optimisation, verification or simulation
    • G06F30/23Design optimisation, verification or simulation using finite element methods [FEM] or finite difference methods [FDM]

Abstract

Designing a part 320b, initially comprising selecting two or more shapes from a database of shapes. A further shape is created in dependence on the selected shapes and a modifier is determined that defines the further shape with reference to the selected shapes. Finally, an indication is provided of the selected shapes and the determined modifier. The further shape may be an interpolation between the selected shapes or an interpolation between vertices of the selected shapes, or an interaction between the selected shapes such as union, intersection, or exclusion. The complexity of the selected shapes may be modified to reduce the complexity of a model based on the further shape. Also, evaluating a structure formed from a plurality of parts organised in a hierarchy. A virtual model of the structure is created in dependence upon the hierarchical format. A feature of the structure is evaluated, and the output of the evaluating may be presented.

Description

Virtual engineering
Field of invention
The present disclosure relates to a method of designing a structure. In particular, the present disclosure relates to a method of designing constituent parts of a structure, such as a vehicle, and to a method of evaluating a structure comprising such constituent parts.
Background
Presently, the design of structures, such as vehicles, takes place by combining physical components in the real world. As an example, a motorbike design might be assessed by installing a fuel tank and a seat onto a frame; a designer can then physically interact with this motorbike to assess its aesthetics and performance. If the designer wishes to change an aspect of the motorbike, they must acquire new parts and install these parts.
Designing structures in this way is both time consuming and limited -in order to make any modifications, the designer must disassemble and reassemble the structure. Furthermore, the designer is limited to either using parts that are readily available or waiting until specific parts can be delivered.
Summary
Aspects and embodiments of the present invention are set out in the appended claims. These and other aspects and embodiments of the invention are also described herein.
According to least one aspect of the present disclosure, there is provided a computer-implemented method of designing a part, comprising: selecting two or more shapes from a database of shapes; creating a further shape in dependence on the selected shapes; determining a modifier that defines the further shape with reference to the selected shapes; and providing an indication of the selected shapes and the modifier.
Optionally, creating a further shape comprises interpolating between the selected shapes. Optionally, creating a further shape comprises interpolating between vertices of the selected shapes based on a user selected interpolation factor.
Optionally, creating a further shape comprises defining an interaction between the selected shapes. Optionally, the interaction is one of: a union an intersection; and an exclusion.
Optionally, creating a further shape comprises modifying one of the selected shapes in dependence on a bounding shape. Optionally, creating a further shape comprises modifying the one of the selected shapes so that it fits within the bounding shape. -2 -
Optionally, the method further comprises adding graphics and/or details to the further shape.
Optionally, the method further comprises modifying the complexity of the selected shapes in order to reduce the complexity of a model based on the further shape. Optionally, modifying the complexity comprises reducing the number of vertices of the selected shapes. Optionally, the method comprises modifying the complexity in dependence on a computing device on which the method is implemented. Optionally, the method comprises modifying the complexity in dependence on a processing power and/or a network speed.
Optionally, the database is an online database and/or a database of vehicle parts.
Optionally, the method further comprises forming a structure comprising the part and evaluating a feature of the structure.
Optionally, evaluating a feature comprises performing finite element analysis (FEA). Optionally, evaluating a feature comprises performing computational fluid dynamics (CFD). Optionally, evaluating a feature comprises assessing the feature in a virtual reality (VR) environment. Optionally, evaluating a feature comprises simulating the use of the structure; and providing a game model of the structure. Optionally, the properties of the game model are based on the properties of real-world components.
Optionally, the method comprises forming a structure comprising a plurality of parts, wherein the parts are organised as a hierarchy; and creating a virtual model of the structure in dependence on the hierarchy. Optionally, the organisation of parts as a hierarchy comprises organisation as an octree.
According to a further aspect of the present disclosure, there is disclosed a computer-implemented method of evaluating a structure, comprising: forming a structure from a plurality of parts, wherein the parts are organised a hierarchy; creating a virtual model of the structure in dependence on the hierarchical format; and evaluating a feature of the structure.
Optionally, the method further comprises modifying the hierarchy; and recreating a virtual model in dependence on the modified hierarchy.
Optionally, recreating the model comprises regenerating only parts of the hierarchy that are dependent on the modified part.
Optionally, a level of detail of the virtual model, and/or the depth of the hierarchy which is considered, depends on a feature of a computing device on which the method is implemented. Optionally, a level of detail depends on a processing power of the -3 -computing device. Optionally, a level of detail of the virtual model depends on a feature of a network connection. Optionally, a level of detail of the virtual model depends on a download and/or upload speed.
Optionally, different levels of detail are obtained by altering the number of levels of the hierarchy that are considered.
Optionally, the number of levels of the hierarchy that are considered depends on a selection by a user.
Optionally, each of the plurality of parts is modelled using a different hierarchy.
Optionally, the virtual model is created in dependence on only a subset of the hierarchies, preferably wherein the subset is selected by a user.
Optionally, a user is able to modify a single hierarchy in order to create a modified virtual model. Optionally, the modification of the single hierarchy does not affect any of the other hierarchies.
Optionally, designing the part further comprises altering the resolution of the shapes before the creation of the further shape.
According to a further aspect of the present disclosure, there is described an apparatus for designing a part, comprising: a selection means for selecting two or more shapes from a database of shapes (e.g. a user interface and/or a CPU/processor as described with reference to Figure 2); a creation means for creating a further shape in dependence on the selected shapes (e.g. a CPU/processor as described with reference to Figure 2); a determination means for determining a modifier that defines the further shape with reference to the selected shapes (e.g. a user input and/or a CPU/processor as described with reference to Figure 2); and an output for providing an indication of the selected shapes and the modifier (e.g. a user interface and/or a CPU/processor as described with reference to Figure 2).
According to a further aspect of the present disclosure, there is described an apparatus for evaluating a structure, comprising: a forming means for forming a structure from a plurality of parts (e.g. a CPU/processor as described with reference to Figure 2), wherein the parts are organised a hierarchy; a creating means for creating a virtual model of the structure in dependence on the hierarchical format (e.g. a CPU/processor as described with reference to Figure 2); and an evaluation means for evaluating a feature of the structure (e.g. a CPU/processor as described with reference to Figure 2); and, optionally, an outputting means for presenting the evaluation (e.g. a user interface as described with reference to Figure 2). -4 -
The disclosure extends to any novel aspects or features described and/or illustrated herein.
Further features of the disclosure are characterised by the other independent and dependent claims.
Any feature in one aspect of the disclosure may be applied to other aspects of the disclosure, in any appropriate combination. In particular, method aspects may be applied to apparatus aspects, and vice versa.
Furthermore, features implemented in hardware may be implemented in software, and vice versa. Any reference to software and hardware features herein should be construed accordingly.
Any apparatus feature as described herein may also be provided as a method feature, and vice versa. As used herein, means plus function features may be expressed alternatively in terms of their corresponding structure, such as a suitably programmed processor and associated memory.
It should also be appreciated that particular combinations of the various features described and defined in any aspects of the disclosure can be implemented and/or supplied and/or used independently.
The disclosure also provides a computer program and a computer program product comprising software code adapted, when executed on a data processing apparatus, to perform any of the methods described herein, including any or all of their component steps.
The disclosure also provides a computer program and a computer program product comprising software code which, when executed on a data processing apparatus, comprises any of the apparatus features described herein.
The disclosure also provides a computer program and a computer program product having an operating system which supports a computer program for carrying out any of the methods described herein and/or for embodying any of the apparatus features described herein.
The disclosure also provides a computer readable medium having stored thereon the computer program as aforesaid.
The disclosure also provides a signal carrying the computer program as aforesaid, and a method of transmitting such a signal.
The disclosure extends to methods and/or apparatus substantially as herein described with reference to the accompanying drawings. -5 -
Aspects and embodiments of the disclosure will now be described, purely by way of example, with references to the accompanying drawings in which: Figure 1 shows a motorbike comprising a plurality of components; Figure 2 shows an exemplary computing device on which the methods disclosed herein are implemented; Figures 3a and 3b shows a method of designing a part; Figure 4 shows a structure for storing part data; and Figure 5 shows a flowchart for a method of evaluating the design of the motorbike of Figure 1.
Figures 6a -6d show an exemplary method of forming a structure.
Figures 7a and 7b show exemplary methods of evaluating a structure. Figures 8a -8i show a method of designing a part of a structure.
Detailed description
Referring to Figure 1, there is shown a motorbike 100 that comprises a plurality of components.
Specifically, the motorbike 100 comprises: a frame 102 on which other components can be installed; a set of handlebars 104; a fuel tank 106; a seat 108; and wheels 110a, 110b.
Each component part other than the frame itself 102 is attached to the frame 102 and can be replaced by an equivalent part. As an example, the fuel tank 106 can be replaced with a differently shaped (e.g. larger) fuel tank. In this way, the design of the motorbike 100 can be modified.
Modifications to the design typically take place before construction of the motorbike 100.
For example, when a motorbike is ordered from the manufacturer, the buyer is able to specify certain options (e.g. a size of fuel tank) and the manufacturer constructs the bike accordingly. Usually, any modifications made this way are 'sight unseen' -that is, the buyer will not know exactly how the assembled motorbike 100 will look and perform until it has been delivered.
The present disclosure relates to a method of designing a structure and to a method of designing component parts of a structure. Furthermore, the present disclosure relates to a method for evaluating a structure before assembly to improve an initial design. With the example of the motorbike 100, the present disclosure enables a component part to be designed using a computer device, and a motorbike comprising this component part to be -6 -evaluated using the computer device. In this way, a part can be evaluated before it is ordered and installed on the motorbike 100.
Referring to Figure 2, the disclosed methods are implemented on a computer device. An exemplary computer device 2000 is described below.
The computer device 2000 comprises a processor in the form of a CPU 2002, a communication interface 2004, a memory 2006, storage 2008, removable storage 2010 and a user interface 2012 coupled to one another by a bus 1014. The user interface 2012 comprises a display 2016 and an input/output device, which in this embodiment is a keyboard 2018 and a mouse 2020. In other embodiments, the input/output device comprises a touchscreen.
The CPU 2002 executes instructions, including instructions stored in the memory 2006, the storage 2008 and/or removable storage 2010.
Typically, the computer device 2000 also comprises one or more graphics processing units (CPUs), which are optimised for parallel processing. This enables a visual model of the motorbike 100 to be rendered quickly.
The communication interface 2004 enables the computer device 2000 to communicate with other computer devices. The communication interface 2004 may be configured to support short-range wireless communication, in particular Bluetooth0 and WiFi communication, long-range wireless communication, in particular cellular communication, and/or an Ethernet network adaptor.
The memory 2006 stores instructions and other information for use by the CPU 2002. The memory 2006 is the main memory of the computer device 2000. It usually comprises both Random Access Memory (RAM) and Read Only Memory (ROM).
The storage 2008 provides mass storage for the computer device 2000. In different implementations, the storage 2008 is an integral storage device in the form of a hard disk device, a flash memory or some other similar solid state memory device, or an array of such devices.
The removable storage 2010 provides auxiliary storage for the computer device 2000. In different implementations, the removable storage 2010 is a storage medium for a removable storage device, such as an optical disk, for example a Digital Versatile Disk (DVD), a portable flash drive or some other similar portable solid state memory device, or an array of such devices. In other embodiments, the removable storage 2010 is remote from the computer device 2000, and comprises a network storage device or a cloud-based storage device. -7 -
A computer program product is provided that includes instructions for carrying out aspects of the method(s) described below. The computer program product is stored, at different stages, in any one of the memory 2006, storage device 2008 and removable storage 2010. The storage of the computer program product is non-transitory, except when instructions included in the computer program product are being executed by the CPU 2002, in which case the instructions are sometimes stored temporarily in the CPU 2002 or memory 2006. It should also be noted that the removable storage 2008 is removable from the computer device 2000, such that the computer program product is held separately from the computer device 2000 from time to time.
Referring to Figures 3a and 3b, there is shown a method 300 of designing a part, e.g. the fuel tank 106 of the motorbike 100.
In a first step 310, a base part is selected. This typically involves selecting a part from a database; with the example of the fuel tank 106, selecting a base part typically comprises selecting a fuel tank from a library of existing fuel tanks. Databases can be stored on the computing device 2000 or can be stored remotely and accessed using the communication interface 2004 of the computing device 2000.
In a second step 320, the shape of the base part is adapted A number of possible methods for adapting the shape are described herein: A first way of adapting the shape 320 is "shape blending" 320a; shape blending 320a comprises selecting two bounding shapes from a database of pre-existing shapes and blending these shapes to define a (new) intermediary shape. Typically, shape blending 320a is performed using a slider between the two bounding shapes to enable any shape between these bounding shapes to be chosen. In some embodiments, the user is able to select a shape outside of the bounding shapes, this shape being obtained using extrapolation (e.g. if shape A is smaller than shape B, the user is able to select an even smaller shape than A, this shape being extrapolated using the difference of shape A from shape B). This process enables new shapes to be defined with reference to existing shapes selected from a database. The new shapes are then stored with reference to the existing shapes and to a modifier (e.g. Shape C = 0.75xShape A + 0.25xShape B); this reduces the amount of storage space needed to store the new part.
A second way of adapting the shape 320 is "solid constructive geometry" 320b; two or more sub-shapes are selected and a relationship is defined between the two sub-shapes 320b. As an example, a circle and a square can be selected and an interaction between the circle and the square can then be defined; the interaction is typically a Boolean expression, such as: -an intersection (C = A AND B);
-
an exclusion (C = A AND NOT B or B and NOT A) or a union (C = A OR B).
A third way of adapting the shape 320 is "shape influence" 320c; a chosen shape is altered in dependence on limitations conferred by other aspects of the design. For example, the fuel tank 106 may be limited in size due to needing to fit into the frame 102.
Limitations can include limitations of a minimum or maximum size and limitations on where material cannot be present. With reference to Figure 3b, a boundary (e.g. in the form of a circle) can be drawn, where the part is not able to extend beyond this circle. A shape that is arranged so as to pass outside of the circle is modified so that it remains entirely within the circle. The part is then be defined with reference to the limitation (e.g. the part can be defined as having a height that is 90% of the maximum allowable height of a fuel tank used for the frame 102). In practice, shape influence 320c typically involves placing a desired component onto the frame 102; the shape of the desired component is then adapted based on the influence of the shape of the frame 102 so that the desired component fits onto the frame 102.
The use of shape blending 320a, solid constructive geometry 320b, and/or shape influence 320c enables a new shape to be defined with reference to existing shapes -typically a new shape is stored using the format: Shape C = M1 x Shape A + M2 x Shape B + M3, where Shape A and Shape B are shapes selected from a pre-existing library and M1, M2 and M3 are modifiers selected by the user. It will be appreciated that the new shape can be defined with reference to any number of previous shapes (e.g. it might reference three previous shapes instead of only two). The storage typically also comprises an identifier of the positions of the referenced shapes -for example the coordinates of the centre of the shapes or of attachment points.
The described methods 320a, 320b, 320c of adapting the shape 320 enable a new shape to be defined with reference to existing shapes so as to save storage space. Additionally, each method of adapting the shape 320 may be combined with another method of adapting the shape 320 so that, for example, one or more of the sub-shapes for the solid constructive geometry 320b may be defined using shape blending 320a and/or one or more of the bounding shapes for the shape blending 320a may be defined using solid constructive geometry 320b.
In a third step 330, the user adds features to the part. Adding features can involve defining shapes present on the part 330a, for example defining knee scallops on the fuel tank 106.
In a fourth step 340, the user adds graphics to the part. For example, the user can add colours and/or decals to the part. -9 -
Shapes and graphics are typically stored in a similar way to modifiers, so that the part is stored as a combination of referenced shapes from a database, modifiers, shapes, and graphics.
The described methods of adapting the shape 320a, 320b, 320c will now be described in further detail, with reference to exemplary pseudocode: Shape blending Shape blending 320a typically comprises defining a new shape with reference to two prior shapes, although it will be appreciated that any number of reference shapes can be used.
An exemplary shape blending process is illustrated here using pseudocode: Let A = shape 1 defined parametrically or by vertex coordinates Let B -shape 2 defined parametrically or by vertex coordinates Let C -number of vertices required for output shape Let D -blend amount (0-1) For Loop L -0 to 1 with C steps of (1 / Let XY/ = calculate coordinates for the parametric point L from A Let X12 -calculate coordinates fir the parametric point L from B Let final,CY -(X-17 * (I-D)) (XY 2 *D) Store final XY as new vertex in new shape coordinate array [index-LI End Loop L This process results in the production of a new shape where each vertex of the new shape is interpolated/extrapolated using a line drawn between vertexes of reference shapes and a 'blend amount' (interpolation factor).
It will be appreciated that this process can be used for any of 1D, 2D and 3D shapes. For 3D shapes, the process can use a line drawn between the vertices of the reference shapes in 3D space, or the process can consider a series of 2D slices of the 3D space.
Constructive solid geometry Constructive solid geometry 320b also typically comprises defining a new shape with reference to two prior shapes, although, as with shape blending 320a, it will be appreciated that any number of reference shapes can be used.
-10 -An exemplary constructive solid geometry process is illustrated here using pseudocode: Let A = shape I defined parametrically or by vertex coordinates Let B -shape 2 defined parametrically or by vertex coordinates Let C -number of samples along the slicing axis required for output shape Let Dy -calculate bounding box of the two shapes and get Y size For Loop V -0 to Dy with C steps of J)/ C) Let XA1 = calculate leftmost X coordinate from shape A using Y Let XA2 -calculate rightmost X coordinate from shape A using Y Let Xm -calculate leftmost X coordinate from shape B using Y Let XB2 = calculate rightmost X coordinate from shape B using Y Let I -calculate intersection type. This can be NONE, A IN B, B IN A, INTERSECTION A B, INTERSECTION B A If combine method equals A Intersect 13 ifl=A JIVE Store XAI, Y, XA2, Else If I = B IN A Store XIII, Y, XB2, Else If! -INTE,RSECTION A B Store XB1, 17, XA2, Else If I -INTERSECTION B A Store XAI, 17, XI32, If combine method equals A Not B = NONE Store XAI, Y, XA2, Y Else 111-B INA XAn Y, XA2, Store Xrn, Y, XB2, Y as hole Else -INTERSECTION A B Store XA1, Y, XR1,17 Else If I = INTERSECTION B A Store X132, 17, XA2, If combine method equals B Not A If = NONE Store XBI, Y, XB2, Else If! -A IN B Store XIII, 17, XB2, Store XAL Y, XA2, Y as hole Else If! -INTE,RSECTION A B Store XA2, 17, X132, Else If I -INTERSECTION B A Store Km, Y,XAI, Y If combine method equals A Union B If I -NONE Store XAL Y, XA2, Store Xm, Y, X132,17 Else If! = A IN B StOre XB1, Y, X/32, 17 Else = B N A -12 -Store XAL Y, XA2, Else If 1 -INTERSECTION A B Store XAL Y, X/32, 17 Else -INTERSECTION B A Store XB1, Y, XA2, If combine method equals A Xor B 1/1 = NONE Store XA1, Y, XA2, SlOre XM, 17, X/32, Vas hole Else If 1 -A IN B Vas hole Store Xffi, Y, X82, Store XAJ, Y, XA2, Eke I/1 = B IN A Store XAI, Y, XA2 Store XB1, Y, XB2, Else If I -INTERSECTION A B Store KAJ, Y, XBI, Y Store XA2, Y, XB2, Else If I -INTERS'ECTION B A Store Nub Y, XAI, Store XB2, 17, XA2, End loop Y It will be appreciated this is only exemplary pseudocode, and the solid constructive geometry 320a could be implemented in other ways; for example, it is possible to use interactions other than those considered in the pseudocode. Similarly, other methods for determining the intersections are possible, such as iterating over a grid of coordinates -13 -bounded by the shapes and determining whether each coordinate is in the area bounded by each shape. An iterative approach may be suitable for a wider range of possible shapes.
An alternative pseudocode approach which allows a user to specify a curve around the side of a component is as follows: First, generate a bezier curve, with control parameters specified by the user, as 2D coordinates along an x-y plane.
With the generated coordinates, sort by x-coorcl and also sort by y-coord. Generate a 2D bounding box using the generated coordinates.
Let T = Tank vertex data For loop L = 0 to number of vertex in T If y and z coordinates are within the curve bounding box: Use T[L] y and z coordinates to index into x and y sorted curve coordinates respectively, to give two curve coordinate points.
If TX] lies to the left of the line created by the two coordinates generated: Let displacement, D = -(user specified scallop depth) * displacement D can be blended at the edges here by using the minimum distance between TX] coorrl and the generated coordinates.* TX] coords = T[L] coords + (T[L] normal "D) End loop L Shape influence An exemplary shape influence process is illustrated here using pseudocode: Let A -a line defined parametrically or by vertex coordinates Let B -a sphere defined parametrically Let C = number of vertices or coordinates required fbr output line Let D -sphere influence amount (04) Let E = sphere diameter For Loop L -0 to I with C steps of (I C) -14 -Let XY1 -calculate coordinates/or the parametric point I. from A Let XY2 -calculate coordinates for the intersection of B with A Let F = distance between XY1 and XY2 expressed parametrically (0-1), but clipped in range (0-0.5) Let final Y -Y ((/) * E) * cos r) Store final Xi V as new vertex in HelV line coordinate array /index-LJ End Loop L This exemplary pseudocode considers the use of a circle to modify a line that passes through that circle (e.g. to produce a curved line to pass around a curved part of the frame 102) -this is illustrated by Figure 2b. It will be appreciated that other shapes can be used to influence the geometry of the part and the shape influence process can consider 3D situations as well as 2D situations.
Design of a part, for example using the methods described with reference to Figure 3, typically takes place using a game-like selection menu. The user is provided with a series of options alongside a representation of the part. The user can then modify the part by selecting options, for example by sliding a slider between two values or by scrolling through a menu of possible features.
An alternative pseudocode for creating a raised ridge in dependence on a user specified shape is as follows: Let T = Tank vertex data For loop L = 0 to number of vertex in T If T[L] z coord is within ridge start and end range If (TX] x coord is within user specified distance from ridge x axis Calculate displacement, D, using: If shape type is rounded: D = ridge height * ((cos(TILI as distance from ridge axis) + 1.0) /2.0) If shape type is triangular D = ridge height " (1.0-TX] as distance from ridge axis) If shape type is rectangular D = ridge height; "*"If required D can be smoothly blended in and out here, for the ridge start and end points respectively- -15 -T[L] coords = TEL) coords + (TX] normal * D) End loop L This exemplary pseudocode algorithm is optimised to work on a part with the longest axis lying along the z-axis and the bottom to top of the part along the y-axis, which leaves the x-axis for left to right. In practice, the mesh may be transformed to this orientation at load-time, the modification is applied, then the mesh is transformed back to its original orientation. In general, any part may be reoriented before the step of adapting the shape 230 occurs and then reoriented after the shape adapting 230 is complete. This enables the use of a small group of efficient shape adapting algorithms.
Part storage Each part is stored as a combination of a base part and a set of modifiers. The base part is typically taken from a database of available parts, where the database may be provided by a manufacturer. The set of modifiers is formed as has been described above, so that the adaptation of the shape results in modifiers that define a difference between the base (reference) part and the adapted part.
Storing parts in this way leads to versatility -since a change to the base part automatically results in a change to a designed part -and efficiency, since the storage 2008 of the computing device 2000 only needs to store a reference to a part and the set of modifiers. Typically, complex (and sizeable) data relating to the parts is stored away from the computing device 2000 (e.g. in an online database) and retrieved using the reference -this can allow design of parts on computing devices that do not have the computing power and/or storage space to perform conventional computer automated design processes.
In some embodiments, the modifiers are restricted to certain values (for example, multiples of 0.5). The restriction of the modifiers may depend on a manufacturing process relating to the part in question (e.g. the tolerance of a tool) and/or may depend on a feature of the computing device.
Combining parts When designing a structure, there are typically a plurality of component parts, each of which can be designed using the method 300 described with Figure 3. These component parts are thereafter combined in order to form the structure (e.g. the motorbike 100). Specifically, the computer device 2000 is used to combine the constituent parts of the motorbike 100 so as to form a virtual model of the motorbike 100. A designer can then interact (virtually) with this model to modify the motorbike 100.
-16 -Typically, information relating to each component part is stored separately; when the user wishes to assess the motorbike 100, the information is combined. This enables independent modification of each part. The combination typically involves the use of combining information that indicates how each part interacts with other parts -this combining information may be co-ordinate data (e.g. the co-ordinates of joining means).
In some embodiments, a new model of the motorbike 100 is rendered automatically when any part is modified -this enables real-time updating of the model of the motorbike 100. Alternatively, in some embodiments only a subset of the motorbike 100 is rendered when a constituent part is modified, for example a change to the seat 108 may result only in rendering of the exterior of the motorbike (since the seat is unlikely to alter internal components or to affect performance).
Referring to Figure 4, each part is typically stored using a tree structure comprising a plurality of nodes.
A computer-generated model occupies a certain volume in a modelling space -this space can be defined by co-ordinates. Specifically, each part of the motorbike 100 and by extension the motorbike 100 itself is defined using co-ordinates that indicate where that part lies in the modelling space -this enables the parts to be combined to form the model of the motorbike 100.
To determine the location of each part of the motorbike 100, the modelling space is broken into a regular 3D grid of cubes. These cubes, or nodes, are then examined to see if they contain a section of the part. If a cube does contain a section of the part and the cube is not solid (e.g. if the part does not extend over the entirety of the cube), then the cube is divided into eight more sub-cubes and the process is repeated (continuously dividing each cube into eight sub-cubes). If a cube is solid, then the cube is marked as an end node and information is stored about this section of the part based on the cube.
Storing data using a tree structure and a grid of cubes allows a desired level of detail to be set, e.g. by setting a limit to the number of levels (or sub-cubes) to consider. This limit may be set by a user or may depend on the capabilities of the computing device being used, where more powerful computing devices can consider a large number of levels than less powerful computing devices (and so a more precise model) without needing an excessive amount of time.
In this embodiment, an octree, as described with reference to Figure 4, is generated for each part and these octrees are merged to obtain an octree for the motorbike 100. The information required to combine the octrees is stored in the octrees themselves -e.g. each octree comprises co-ordinates that locate the related part in the modelling space.
-17 -Each node in the octree relates to a point in space, where each non-terminal node has eight child nodes. Where a node fully describes the point in space (e.g. for a solid part of space), the node is a terminal node. Where the node does not fully describe the point in space (e.g. the node covers a region with two different materials/features) the node is a non-terminal node and will have child nodes that relate to a smaller point in space.
Octrees are further described in "Meagher, D. J. Geometric Modeling Using Octree Encoding. Computer Graphics and Image Processing 19,2 (June 1982), 129-147". Each octree comprises information about the relevant component, for example material properties. Therefore, once the octrees are merged, a complete structure is formed and the motorbike 100 can be assessed to determine its performance, e.g. its aerodynamic performance. This assessment may, for example, comprise simulating a force being placed on the motorbike 100; the effect of the force is determined by evaluating the effect on each cube of the octree taking into account the connections between the cubes and the properties of each cube. The assessment can return the effect on each octree to identify potential damage in the event of an impact and to determine the handling properties of the motorbike 100.
The octree system enables a structure to be assessed on computing devices with different capabilities without an increase in computing time (by altering the number of levels of the octree that are assessed). The octree system also allows any part to be modified or replaced without requiring other parts to be altered. Where one part is modified, the related octree is updated, but this does not affect the octrees of other parts. At the time of assessment, the octrees of each part are combined, and the effect of the modification filters through to affect the assembled motorbike 100.
Similarly, for the evaluation of a design it is only needed to load octrees that relate to a region currently being considered. Where a user wishes to focus on a small region of a larger part (e.g. a connector), only the subnodes relating to this region are generated/loaded, where for the rest of the part only high-level nodes may be generated/loaded.
Information, such as an octree, for each part can be obtained using data from part manufacturers. The manufacturer part can then be modified, as described with reference to Figure 3, to obtain a personalised art, and a model including this personalised part can be assessed using the octree system described with reference to Figure 4.
While an octree system has been described here, it will be appreciated that any hierarchical system could be used with similar benefits being obtained.
-18 -Hierarchical storage A hierarchical system can be used to render the motorbike 100 as well as to render subsystems of the motorbike 100 The motorbike 100 is composed of a number of distinct, and connected, subsystems, for example a drivetrain subsystem, an exhaust subsystem, and an ergonomics subsystem.
Each of these subsystems interacts to enable operation of the motorbike 100.
Furthermore, each subsystem is itself composed of further subsystems, for example the engine sub-system itself comprises a number of sub-systems (e.g. pistons, turbocharger, camshaft). The motorbike 100 can therefore be modelled as a hierarchical tree, where the motorbike 100 depends on a number of 'second-level' subsystems, and each second-level subsystem depends on a number of 'third-level' subsystems (and so on).
For the purposes of evaluation, these sub-systems can be separated. To enable this, each part is stored separately (e.g. using a separate octree) and is sorted into the hierarchical tree system appropriately. Using the octree system, the user is able to consider (and render) only a single sub-system so as to analyse subsystems separately.
For example, when the user is considering the drivetrain, the engine sub-system is modelled, but the seat 108 is not modelled. This enables efficient evaluation of the motorbike 100, since there is no computing power wasted on modelling subsystems that are not of interest at a given point in time.
The motorbike 100 can be modelled by considering second-level subsystems (e.g. the engine sub-system) only; in other words, if the overall attributes of the engine are known, it is not necessary to model each piston of the engine. Therefore, a second-level model of the engine can be compiled using third-level subsystems (e.g. pistons) and this second-level model can be used to compile the motorbike 100 without detailed reference to the third-level model (the pistons).
In some embodiments, each third-level subsystem is compiled at a first time to obtain information for each second-level subsystem and then, at the time of modelling, the motorbike 100 is compiled with reference to the (already compiled) second-level subsystems. This enables the top-level system to be quickly compiled since the second-level sub-systems can be precompiled.
When a user wishes to edit the motorbike 100, the user is able to edit a second-level subsystem and then recompile the model of the motorbike 100. Only the edited second-level subsystem and the top-level system need to be recompiled -the remainder of the second-level subsystems are not changed.
-19 -This is of course true for third-level and lower-level subsystems, where a single third-level subsystem can be modified with other third-level subsystems being unaffected.
The level of depth of modelling that is, or can be, performed typically depends on the capabilities of the computing device 2000 and/or a choice, e.g. by the user. This enables modelling to be performed based on, for example, a processor speed or the speed of a network connection, so that modelling of an appropriate level of depth can be provided.
In some embodiments, a third party, such as a manufacturer is able to set an evaluation depth for certain subsystems. This enables a manufacturer to provide information relating to an engine without revealing (proprietary) data about the inner workings of that engine.
Model conversion In some embodiments, the structure is displayed and assessed in the form of a game, for example the structure may be presented to the user in the form of a virtual reality game. This enables the user to evaluate real-world performance and aesthetics by playing a game using the model. Due to the model having realistic structural characteristics (since the octree system imparts to the model the real structural characteristics), features such as the handling of the motorbike 100 can be tested in a game environment.
In order to do this, files provided by original equipment manufacturers (OEMs) are typically converted into more user-friendly tiles that can be modified without specialist equipment or knowledge. In this regard, computer models for parts are commonly stored in the form of proprietary files or computer aided design (CAD) models. To modify such CAD models requires specialist programs and a computing device with substantial computing power.
To allow a wider range of users to design structures, models provided by manufacturers/designers are converted into more accessible file types. An example of this is UnrealScript or UScript files, which enable users to modify aspects of the models without needing CAD programs.
Conversion from high-complexity file types may be dependent on the capabilities of the computing device 300, where files are not converted for users with more powerful computing devices 300.
Once a part has been designed, the model for this part may be converted back into a high-complexity file type (e.g. a CAD model), so as to be compatible with other manufacturer models. In this way, a CAD file from a manufacturer can be converted to a UScript file, edited by a user, converted back into a CAD file, and returned to the manufacturer.
-20 -High-complexity' can refer to files that require high computing power to run, require specialist programs, or require expert knowledge. Typically, this is due to high-complexity filings containing a high degree of information and modelling parts very accurately. Conversion from a high-complexity file to a low-complexity file can comprise changing the format of the file (e.g. to allow the use of simpler programs) and may also comprise reducing the computing demands by simplifying the model. For example, during conversion a high-complexity model may be smoothed to reduce the number of vertices and thereby to obtain a simpler low-complexity model. Typically, a user will wish to alter parts at a fairly high-level (e.g. to increase the radius of a curve, or change the shape of a component), a user will not normally wish to change every detail of a part (e.g. normally a user is not interested in modifying the roughness of the surface of a part). Therefore, features like surface roughness may be removed from the file during conversion to a low-complexity model. This both simplifies the model to increase accessibility to a range of users and reduces the computational load of the model.
In various embodiments, the conversion depends on a feature of the user, a feature of the user's computing device (e.g. a processing capability), a choice made by the user and/or manufacturer, and/or a feature of the model being converted.
The parts designed by a user can be provided to manufacturers to be manufactured. Alternatively, the designed parts may be manufactured using a 3D printer, which can be stored in the home of a user. The described methods therefore allow the creation of bespoke componentry that can be designed and manufactured by a user before being added to the motorbike 100.
For many parts, it is desirable to obtain manufacturing tolerances that are not possible without specialist equipment; therefore, the described methods may be implemented by vendors, whereby a buyer of a motorbike is able to go to a motorbike dealership, modify each part of the motorbike as desired, and provide modelling files to the dealer, who can then arrange for a bespoke motorbike to be delivered to the buyer.
Using the source + modifier storage described with reference to Figure 3, a modifier can be stored with reference to an existing part. Therefore, a modifier can be determined by a user interacting with a lower-complexity model, stored with reference to an original part, and then used with a higher-complexity model. For example, a part designed using a (low-complexity) UScript file can be thereafter converted to a CAD file. Since the part references existing parts, the conversion is simple and unlikely to result in errors. Further, the designed part can automatically be updated based on the higher-complexity CAD file.
In practice, in order to enable a user to work on the fuel tank 106, an original part file in which the fuel tank 106 has twenty vertices may be converted to a UScript file in which -21 -the fuel tank 106 only has ten vertices. The fuel tank 106 may then be modified by the user (e.g. to reduce the size by 10%) and then saved. Thereafter, the modified fuel tank may be converted back to a CAD file and used to model a high-complexity reduced-size fuel tank with twenty vertices.
Analysis Analysis of the modelled motorbike 100 typically comprises evaluation of the performance and aesthetics of the motorbike 100. Performance evaluations can take place using, for example, finite element analysis (FEA) or computational fluid dynamics (CFD).
In some embodiments, the user is able to set a performance requirement and requirements of the relevant parts can then be computationally determined. As an example, the user might set a minimum top speed, where the engine size required to obtain this top speed given the frame 102 and any attached components can then be computationally determined (e.g. by iteratively increasing the engine size until the required top speed is met). This requirement can then be provided for the user and set as a limitation while each part is being defined; for example, where shape influence 320c is used to define a part the geometry of the fuel tank 106 may be limited to enable the placement of an engine of sufficient size to fit on the frame 102.
From an aesthetic point of view, the motorbike 100 is typically modifiable in real-time (or near real-time). The user is given the option to modify any part, as has been described with reference to Figure 2; modifying a part results in the octree for that part being changed. When an update is confirmed the top-level model of the motorbike 100 is recompiled to allow the user to view the effect of the change of the part.
The depth which is analysed (e.g. the number of levels of the grid that are considered) typically depends on the capability of the computing device 2000 on which the analysis is being carried out. This capability is typically limited by the performance of the CPU 2002 and/or the GPU of the computer device 2000.
Equally, where a user is attempting to analyse a model in real-time the capability of the computing device 2000 may be determined by the communications interface 2004. In some embodiments, information relating to parts of the model is received via the communications interface, e.g. to allow a user to access a database of parts held on an online database. In these examples, the capability of the computing device 2000 may depend on the transmission speed and the ping of a network connection.
-22 -In some embodiments, this network capability is determined during an initial testing period, e.g. while the user watches a welcome video. The determined network capability is then used to determine an appropriate level of computing activity.
Referring to Figure 5, a method 500 for designing and evaluating a vehicle is described.
In a first step 510, the user enters a virtual showroom. Specifically, a showroom is rendered using the computer device 2000; this showroom may be a virtual reality showroom where the computer device 2000 has virtual reality capabilities. Typically, the virtual showroom is arranged in a similar manner to existing (real) showrooms, where the user is able to move around the showroom view to multiple vehicles from different angles.
In a second step 520, the user selects a vehicle from the vehicles in the showroom. This can comprise clicking on a vehicle using the mouse 2020.
In a third step 530, the user selects a part of the selected vehicle; for example, the user can select the fuel tank 106 of the motorbike 100.
In a fourth step 540, the user modifies the selected part. Typically, this comprises designing a shape as explained with reference to Figure 2. Equally, the modification may comprise substituting the part with another part from a database, or modifying the geometry of the selected part.
In a fifth step 550, the vehicle is updated using the modified part. This comprises the model of the vehicle being recompiled to take into account the modifications.
In a sixth step 560, the user tests the vehicle. This testing may, for example, comprise aerodynamic testing or finite element analysis. In some embodiments, the user is able to virtually test drive the vehicle; for example, a model formed using the vehicle data (including accurate performance data) can be used in a racing game.
In this manner, a user is able to rapidly and easily design parts and modify existing structures while evaluating the effects of the modification. Once the user is content with the design of the vehicle, data for the modified parts can be saved and then transmitted to a manufacturer that can create the parts and thereby build the designed vehicle.
The fourth step 540 of modifying the part may comprise indicating to a user a property of the modification. In some embodiments, a cost related to the modification is displayed. In the case of the modification being the selection of another existing part, the price of this existing part can be displayed. Where the modification results in a bespoke part, an estimate of the cost of making this modification may be displayed.
Referring to Figures 6a -6d, an exemplary method of forming a structure, in this example a car, is shown.
-23 -Starting with a frame, the user is able to select parts from a menu to build up a car. As the user selects these parts, a representation of the car is shown; this representation is updated with each selection. The parts can each be altered using the methods described with reference to Figure 3.
Referring to Figures 7a and 7b, exemplary methods of evaluation are shown.
Referring to Figure 7a, the user is able to perform simulations on the designed structure and to view the effects. For example, stresses on the structure can be shown using a colour gradient and the physical deformation that would occur during a collision can be shown visually.
Referring to Figure 7b, the user is able to drive the car in a game environment. The performance of the car is based on the selected parts and so the performance in the game mirrors the expected performance that will occur when the car is built in the real world Referring to Figures 8a -Si an exemplary method of designing a part of a structure is shown. This method may be used instead of, or in conjunction with, the method of Figures 6a -6d.
Referring to Figure 8a, when a user wishes to design a part, in this example a fuel tank, the user selects an initial design from a database of stored parts. This database may, for example, be a database of parts relating to a manufacturer or distributor of the part in question.
Referring to Figure 8b, the user is then able to select a property, e.g. a colour, texture, or finish, that the user wishes to modify.
Referring to Figures Sc and 8d, the user then modifies this property, e.g. by scrolling through a list of options Referring to Figures 8e -Si, the user is able to repeat this process for a number of properties.
Referring to Figure 8f and 8g, in order to modify a texture (or another material property), the user is able to select a material to use. The user may also be able to select a resolution for the design; this typically relates to an accuracy with which a design may be created or finished. This resolution may depend on the accuracy of a related tool, for example different manufacturers may be able to achieve different design tolerances (or different tolerances may incur different costs).
Referring to Figures 8h and Si, the user is typically able to apply finishes, such as stencils, to each part.
-24 -In order to simplify the storage of parts and to reduce the computational load, it is desirable to store only necessary information. Therefore, information is typically only stored for modified parts, and here only the necessary information is stored.
The use of octrees has been described with reference to Figure 4; using the methods disclosed herein (e.g. with reference to Figure 8), an octree may be generated only for parts which are non-standard and/or the octree that is generated may depend on a feature of the part, such as a material resolution.
The parts are typically stored using a structure of sublayers, where for example the colour of a material and the roughness of a material may both be sublayers of a material layer. This can be fitted into an octree structure as described with reference to Figure 4, where the octrees are only populated to the extent that non-standard values are used. This enables efficient storage and also reduces computational load since a computer device can refer mainly to a locally stored database and access the octree structures only where the design of a part strays from the parts stored in that local database.
Alternatives and modifications Various other modifications will be apparent to those skilled in the art for example, in some embodiments, the available options for shape adaptation depend on the user, for example on the experience of a user. As an example, less experienced users may only be allowed to use shape blending 230a between two standard parts; more experienced user may be allowed to use a whole array of methods, including designing parts from scratch (e.g. as a series of polygons).
In some embodiments, the experience of the user is determined by an initial testing stage and options are set accordingly. As the user gains experience, which may be determined by monitoring a user's performance with the available tools, more options are made available. This enables a simple, and accessible, user interface to be provided, with this user interface being continuously updated to ensure that each user can access a suitable array of tools.
The experience of the user may also be determined based on a user input, e.g. the input of the user themselves or the input of a supervisor of the user.
The detailed description has described shape blending 230a as being performed using a slider, it will be appreciated that any of the described processes for adapting the shape 230 may be performed in a variety of ways. For example, in some embodiments, the step of adapting the shape 230 is performed in a virtual reality environment, here shape blending 230a may comprise the user making gestures or manipulating (e.g. pushing together) virtual shapes with their hands.
-25 -It will be understood that the present invention has been described above purely by way of example, and modifications of detail can be made within the scope of the invention.
Reference numerals appearing in the claims are by way of illustration only and shall have no limiting effect on the scope of the claims.

Claims (25)

  1. -26 -Claims 1 A computer-implemented method of designing a part, comprising: selecting two or more shapes from a database of shapes; creating a further shape in dependence on the selected shapes determining a modifier that defines the further shape with reference to the selected shapes; and providing an indication of the selected shapes and the modifier.
  2. 2 A method according to claim 1, wherein creating a further shape comprises interpolating between the selected shapes and/or interpolating between vertices of the selected shapes based on a user selected interpolation factor.
  3. 3 A method according to any preceding claim, wherein creating a further shape comprises defining an interaction between the selected shapes, preferably wherein the interaction is one of: a union; an intersection; and an exclusion
  4. 4 A method according to any preceding claim, wherein creating a further shape comprises modifying one of the selected shapes in dependence on a bounding shape, preferably modifying the one of the selected shapes so that it fits within the bounding shape.
  5. 5. A method according to any preceding claim, further comprising adding graphics and/or details to the further shape.
  6. 6 A method according to any preceding claim, further comprising modifying the complexity of the selected shapes in order to reduce the complexity of a model based on the further shape.
  7. 7. A method according to claim 6, wherein modifying the complexity comprises reducing the number of vertices of the selected shapes.
  8. 8 A method according to claim 6 or 7, comprising modifying the complexity in dependence on a computing device on which the method is implemented, preferably in dependence on a processing power and/or a network speed.
  9. 9. A method according to any preceding claim, wherein the database is an online database and/or a database of vehicle parts.-27 -
  10. 10. A method according to any preceding claim, further comprising forming a structure comprising the part and evaluating a feature of the structure.
  11. 11. A method according to claim 10, wherein evaluating a feature comprises at least one of: performing finite element analysis (FEA) and/or computational fluid dynamics (CFD); assessing the feature in a virtual reality (VR) environment; simulating the use of the structure; and providing a game model of the structure, preferably wherein the properties of the game model are based on the properties of real-world components.
  12. 12. A method according to any of claims 10 or 11, comprising forming a structure comprising a plurality of parts, wherein the parts are organised as a hierarchy; and creating a virtual model of the structure in dependence on the hierarchy, preferably wherein the organisation of parts as a hierarchy comprises organisation as an octree.
  13. 13. A computer-implemented method of evaluating a structure, comprising: forming a structure from a plurality of parts, wherein the parts are organised as a hierarchy; creating a virtual model of the structure in dependence on the hierarchy; and evaluating a feature of the structure.
  14. 14. A method according to claim 12 or 13, further comprising modifying the hierarchy; and recreating a virtual model in dependence on the modified hierarchy.
  15. 15. A method according to claim 14, wherein recreating the model comprises regenerating only parts of the hierarchy that are dependent on the modified part.
  16. 16. A method according to any of claims 12 to 15, wherein the level of detail of the virtual model, and/or the depth of the hierarchy which is considered, depends on a feature of a computing device on which the method is implemented.
  17. 17. A method according to claim 16, wherein the level of detail depends on a processing power of the computing device.-28 -
  18. 18. A method according to claims 16 or 17, wherein the level of detail of the virtual model depends on a feature of a network connection, preferably a download and/or upload speed.
  19. 19. A method according to any of claims 16 to 18, wherein different levels of detail are obtained by altering the number of levels of the hierarchy that are considered, preferably wherein the number of levels of the hierarchy that are considered depends on a selection by a user.
  20. 20. A method according to any of claims 12 to 19, wherein each of the plurality of parts is modelled using a different hierarchy.
  21. 21. A method according to claim 20, wherein the virtual model is created in dependence on only a subset of the hierarchies, preferably wherein the subset is selected by a user.
  22. 22. A method according to claim 20 or 21, wherein a user is able to modify a single hierarchy in order to create a modified virtual model, preferably wherein the modification of the single hierarchy does not affect any of the other hierarchies.
  23. 23. A method according to any preceding claim, wherein designing the part further comprises altering the resolution of the shapes before the creation of the further shape.
  24. 24. An apparatus for designing a part, comprising: a selection means for selecting two or more shapes from a database of shapes; a creation means for creating a further shape in dependence on the selected shapes; a determination means for determining a modifier that defines the further shape with reference to the selected shapes; and an output for providing an indication of the selected shapes and the modifier.-29 -
  25. 25. An apparatus for evaluating a structure, comprising: a forming means for forming a structure from a plurality of parts, wherein the parts are organised a hierarchy; a creating means for creating a virtual model of the structure in dependence on the hierarchical format; an evaluation means for evaluating a feature of the structure; and optionally, an outputting means for presenting the evaluation.
GB2006500.9A 2020-05-01 2020-05-01 Virtual engineering Withdrawn GB2595443A (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
GB2006500.9A GB2595443A (en) 2020-05-01 2020-05-01 Virtual engineering
PCT/US2021/030079 WO2021222697A1 (en) 2020-05-01 2021-04-30 Method and apparatus for structural design

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
GB2006500.9A GB2595443A (en) 2020-05-01 2020-05-01 Virtual engineering

Publications (2)

Publication Number Publication Date
GB202006500D0 GB202006500D0 (en) 2020-06-17
GB2595443A true GB2595443A (en) 2021-12-01

Family

ID=71080340

Family Applications (1)

Application Number Title Priority Date Filing Date
GB2006500.9A Withdrawn GB2595443A (en) 2020-05-01 2020-05-01 Virtual engineering

Country Status (2)

Country Link
GB (1) GB2595443A (en)
WO (1) WO2021222697A1 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115544783B (en) * 2022-10-19 2023-04-07 泰科信(北京)科技有限公司 Method, device, equipment and medium for virtual testing of electrical and electronic products

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5561747A (en) * 1992-02-03 1996-10-01 Computervision Corporation Boundary evaluation in non-manifold environment
US5894310A (en) * 1996-04-19 1999-04-13 Visionary Design Systems, Inc. Intelligent shapes for authoring three-dimensional models
US6392645B1 (en) * 1999-03-15 2002-05-21 Alventive Inc. Three dimensional geometric modeling system
WO2007146950A2 (en) * 2006-06-16 2007-12-21 Autodesk, Inc. Fast interactive object manipulation

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8836701B1 (en) * 1998-07-23 2014-09-16 Freedesign, Inc. Surface patch techniques for computational geometry
US9747407B2 (en) * 2014-02-20 2017-08-29 Synopsys, Inc. Categorized stitching guidance for triple-patterning technology
CN107743619B (en) * 2015-04-15 2021-06-18 应用材料公司 Automatic generation of test layouts for verifying DRC stacks
EP3746917A1 (en) * 2018-01-29 2020-12-09 Siemens Industry Software Limited A method of operating a cad system model for modelling an article to be manufactured

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5561747A (en) * 1992-02-03 1996-10-01 Computervision Corporation Boundary evaluation in non-manifold environment
US5894310A (en) * 1996-04-19 1999-04-13 Visionary Design Systems, Inc. Intelligent shapes for authoring three-dimensional models
US6392645B1 (en) * 1999-03-15 2002-05-21 Alventive Inc. Three dimensional geometric modeling system
WO2007146950A2 (en) * 2006-06-16 2007-12-21 Autodesk, Inc. Fast interactive object manipulation

Also Published As

Publication number Publication date
GB202006500D0 (en) 2020-06-17
WO2021222697A1 (en) 2021-11-04

Similar Documents

Publication Publication Date Title
US11256832B2 (en) Replica selection
EP1804187B1 (en) Process for displaying objects in a PLM database and apparatus implementing this process
JP7327943B2 (en) Designing parts that can be manufactured by milling
KR101955035B1 (en) Method for designing a geometrical three-dimensional modeled object
JP7049807B2 (en) Database query based on parametric view functions
JP7249144B2 (en) How to assemble product parts
CN105760570B (en) Selecting viewpoints of a set of objects
CN101866379B (en) Method, program and product edition system for visualizing objects displayed on a computer screen
CN111354074A (en) Designing 3D modeled objects via user interaction
JP2020115340A (en) Modelling using weak definition
JP2022054460A (en) Deep-learning generative model
WO2021222697A1 (en) Method and apparatus for structural design
JP2023056515A (en) Designing modeled object
US11941325B2 (en) 3D modeled object of a physical prototype of a product
KR20140063475A (en) Designing a circular staggered pattern of objects
US20200211296A1 (en) Flexible modeling using a weak type definition
Zhao Application Research in Computer Aided Development Modeling System of Art Design 3D Technology
JP2023092523A (en) Setting of typed parameters
Bansal A CAD PARADIGM FOR GEOMETRIC MODELING OF THIN COMPONENTS

Legal Events

Date Code Title Description
WAP Application withdrawn, taken to be withdrawn or refused ** after publication under section 16(1)