WO2004066089A2 - Procede et systeme pour convertir des donnees techniques en donnees de modelisation en 3d - Google Patents
Procede et systeme pour convertir des donnees techniques en donnees de modelisation en 3d Download PDFInfo
- Publication number
- WO2004066089A2 WO2004066089A2 PCT/US2004/001562 US2004001562W WO2004066089A2 WO 2004066089 A2 WO2004066089 A2 WO 2004066089A2 US 2004001562 W US2004001562 W US 2004001562W WO 2004066089 A2 WO2004066089 A2 WO 2004066089A2
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- data
- computer
- software component
- mathematical
- engineering
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Ceased
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T17/00—Three dimensional [3D] modelling, e.g. data description of 3D objects
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/10—Geometric effects
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2210/00—Indexing scheme for image generation or computer graphics
- G06T2210/32—Image data format
Definitions
- the present invention relates to a method and system for converting engineering data into three-dimensional (3D) modeling data to permit the production of technically accurate 3D models. More particularly, this invention relates to a method by which a user can electronically convert technically accurate engineering data into an alternate and generally smaller but still technically accurate format, transport the converted data to a 3D modeling software component and have the 3D modeling software component create technically accurate photo realistic 3D models.
- Artist's renderings can be beautiful and compelling, they often lack true dimensional accuracy. Artist's renderings are simply a graphical representation of the artist's interpretation of the project based on the information they have been provided (often the specification and plan sets) and are ultimately quite subjective. Apart from being technically inaccurate, artist's renderings are rather time-consuming, expensive and do not lend themselves to frequent design changes.
- a truer and more accurate representation of design concepts can be achieved through the use of mathematically defined, three-dimensional computer models. These types of models provide unrestricted movement throughout a scene and can be rendered from any point-of-view. Many engineers use three-dimensional design tools as part of their everyday workflows. Often these tools have some limited 3D visualization (rendering) capability built-in and are adequate to help the designer picture his/her design but are not up to the standards of quality and sophistication expected in the 3D graphic arts community. That level of quality, the norm in the general media, is what the public has come to expect. To achieve that quality, the actual design information from the engineering design software must be transferred in some way to a professional 3D modeling package. The problem, however, is that the underlying file format of engineering software is generally not compatible with industry standard 3D modeling packages.
- TIN triangulated irregular networks
- GIS geographic information systems
- TINs are a surface representation derived from irregularly spaced sample points and multiple types of breakline features. TINs are formed by connecting a set of points (scattered or gridded) having x, y and z coordinates. These points are connected by edges to form a set of non overlapping triangles used to represent the surface. The surface is assumed to change its planar continuity at adjoining triangles' edges.
- Each TIN has data associated therewith that includes topological relationships between points and their proximal triangles. Fig.
- TIN models are a generally acceptable method of representing designs
- large or complex models create an overwhelming amount of data as x, y and z information is needed for each point in the model. This large amount of data often exceeds the memory and processing capacity of even dedicated high-end computers frequently causing them to crash.
- the data from the engineering design software package is generally in a file format which is incompatible with 3D modeling packages, thereby making it unusable. Consequently, to make use of high-end professional 3D modeling packages, designs, which have already been created in a engineering design software package, must regularly be re-created from scratch in the 3D modeling package.
- the resulting design created anew in the 3D modeling package does not make direct use of the data from the design created in the engineering design software package.
- the operator of the 3D modeling package manually approximates the design of the engineering design software package and tries to recreate the appearance of the design in the 3D modeling package.
- the present invention ties together a set of processes with custom computer programming to streamline the process of 3D visualization of complex engineering designs.
- the invention is an integrated system of software and procedures designed to enhance interactive visualization for design analysis and to permit increased input and involvement from project owners and stakeholders, including the public. The invention provides for an accurate and interactive design visualization system.
- the present invention takes many practices used in civil design and combines them with GIS tools in order to standardize transfer of data sets from engineering design software into 3D visualization software to permit the production of mathematically accurate simulations.
- This direct translation of the design data eliminates the need to re-create the data in a professional 3D modeling package.
- the present invention converts engineering design data to a type that can be utilized with a variety of third-party software packages.
- the invention permits output from InRoadsTM civil design software to be converted to a format where the output data is usable by 3D Studio MaxTM 3D visualization software to produce high end, mathematically accurate three-dimensional computer models of a project.
- the invention also permits interactive viewer inclusion and simulation package integration.
- the invention may be embodied in software which converts engineering data from civil design software to a series of mathematically defined curves.
- Fig. 1 illustrates a traditional 3D TIN model from engineering data of an exemplar project.
- Fig. 2 illustrates a 3D model based on the same engineering data after implementation of the present invention.
- the invention is also useful not only as a visualization tool, but, because of its speed and accuracy, the invention can be used as a design tool during the design process. Because of the numerous steps involved in the prior art method of 3D modeling, creating multiple 3D models to use to assist in the design of a project was a lengthy, time consuming and costly process and was therefore not practical or feasible. Additionally, because the resulting 3D models were not mathematically accurate, they were not truly helpful in visualizing design changes.
- a primary function of a design manager is to analyze and refine project designs and construction phasing proposed by design consultants.
- the present invention can be implemented by the design manager to meet this requirement.
- the design manager or a project team can use the present invention to rapidly prototype photorealistic 3D models of a construction project at regular intervals to analyze if proposed designs are meeting project goals outside of design criteria. This type of review normally would not occur and would be part of a post evaluation process once the project was built, thus of no benefit to the current project.
- the resulting 3D models can be used not only as a design tool to aid in visualization during all phases of the project, but also as a tool to get the design owner or the public more involved.
- the streamlined and cost-effective process of the present invention make this feasible in a way never before possible.
- Figs. 3 illustrates an artist's rendering of the project which is the subject of the TIN model of Fig. 1.
- Fig. 4 illustrates a print out of a 3D model of the same project prepared by the present invention directly from its design data.
- the artist's subjective rendering of the bridge/retaining walls in Fig.3 implies that the structure fits pleasantly into its environment.
- the representation generated by the present invention shows that the retaining walls in the design would actually create a unpleasant canyon-like effect.
- This example illustrates how a design conforming to all pertinent design criteria can fail in implementation.
- the models used for design visualization can be re-used in a public project by incorporation into presentation boards, videos, web sites, print literature, interactive multimedia - almost any delivery method.
- the present invention permits the models to be used in connection with simulation data in a traffic modeling package to present, in a highly accurate form, the movement of vehicles through a project, such as a toll plaza or an interchange.
- the present invention permits engineering data to be converted and used in a plurality of commercially available software packages for the creation of a host of three-dimensional effects including drive-throughs and fly-bys, exterior-to-interior transitions, character modeling, creation of natural elements, surface textures and materials, and a host of special effects from explosions to neon light emissions all in a quantitatively accurate representation or duplication of the elements under study.
- the resulting accurate 3D models can then easily be animated and/or merged with digital video.
- the present invention is in no way limited to such an application.
- the present invention could be used in any setting where someone wishes to use available technically accurate engineering data generated in a computer aided design software application in a non-CAD software application, such as a 3D modeling software package to generate technically accurate photo realistic 3D models.
- the present invention could be implemented in the avionics industry to assist with wing design.
- FIG. 1 is a design illustrated as a triangulated irregular network model
- FIG. 2 is the same design illustrated after the engineering data associated with the design has been converted according to the present invention
- FIG. 3 is an artist's rendering of the same design
- FIG. 4 is a print out of a 3D model of the same design generated in a 3D modeling software package using the converted engineering data according to the present invention
- FIG. 5 is a schematic diagram of a suitable computing system environment for use in implementing the present invention.
- FIG. 6 is a schematic diagram of an embodiment of the overall method of the present invention.
- FIG. 7 is a flow diagram illustrating a method of selecting objects for conversion and transport
- FIG. 8 is a flow diagram illustrating a method of converting and transporting data
- FIG. 9 is a flow diagram illustrating a method of converting and transporting an object as a mathematical curve
- FIG. 10 is a flow diagram illustrating a method of converting and transporting an object as a railed surface
- FIG. 11 is a flow diagram illustrating a method of converting and transporting an object as a mathematical surface
- FIG. 12 is a flow diagram illustrating a method of converting and transporting an object as a mesh surface
- FIG. 13 is a flow diagram illustrating a method of converting and transporting an object as an entity replacement
- FIG. 14 is a flow diagram illustrating a method of erecting a Bezier curve set
- FIG. 15 is a flow diagram illustrating a method of erecting a NURBS curve
- FIG. 16A-H are schematic diagrams illustrating various steps in the disclosed embodiment of a method of erecting a Bezier curve set
- FIG. 17 is a flow diagram illustrating a method for sending data
- FIG. 18 is a flow diagram illustrating a method for receiving data
- FIG. 19 is a flow diagram illustrating a method for managing connection handlers
- FIG. 20 is a flow diagram illustrating a method for handling a connections communications
- FIG. 21A-F are schematic diagrams illustrating various steps in the disclosed embodiment of a method of handling communications between applications;
- FIG. 22 is a flow diagram illustrating a method of reading and parsing received data
- FIG. 23 is a flow diagram illustrating a method of handling a 3DObject creation request
- FIG. 24 is a flow diagram illustrating a method of managing a tag stack
- FIG. 25 is a flow diagram illustrating a method of appending components
- FIG. 26 is a flow diagram illustrating a method of handling an end tag request.
- numeral 10 generally designates a design or project.
- the project 10 is a sunken roadway 12 with an overpass 14.
- the project 10 is illustrated by way of a traditional triangulated irregular network ("TIN") model.
- TIN triangulated irregular network
- a TIN consists of a plurality of non-overlapping triangles 16 which connect a plurality of points 18.
- Each of the points 18 has data associated therewith representing the points X, Y and Z coordinates.
- the sizes of the associated triangles 16 decreases to permit the associated triangles 16 to represent the terrain changes. Consequently, as the level of changes in the terrain increases, the amount of data associated therewith increases.
- Each of the triangles 16 are wholly independent from one another in the respect that altering the orientation of one triangle does not change the orientation of a non-adjoining triangle.
- Fig. 2 is an illustration of the same project 10 illustrated in Fig.l.
- the model illustrated in Fig. 2 is based on the same engineering data that the model of Fig. 1 was based; however, the model of Fig. 2 was generated after the engineering data associated with the design was converted according to the present invention.
- Fig. 3 contains an artist's rendering of the same project 10.
- Fig. 3 illustrates how much an artist's interpretation of a project, which is usually formed after reviewing specifications and plan sets, can differ from the actual design.
- Fig. 4 is a print out of a 3D model of the same project 10; however, the 3D model was generated in a 3D modeling software package and used the engineering data which was converted according to the present invention.
- the illustrated computing system environment is only one possible embodiment of a suitable computing system environment, is provided only by way of an example, and is not intended to suggest any limitation as to the scope of use or functionality of the invention.
- the environment 20 includes a computer 22 which operates an engineering computer aided design ("CAD") software application.
- a second computer 26 operates a 3D modeling software application.
- the computers 22, 26 are linked through a communications network 30.
- the engineering CAD software application 24 in the 3D modeling software application 28 reside on and are operated by the same computer 32.
- Fig. 6 illustrates a schematic diagram of the overall method of the present invention.
- an embodiment of the present invention permits the use of data obtained from an engineering CAD software application 24 in a 3D modeling software application 28.
- step 34 an embodiment of the present invention is depicted as step 34. While alternate embodiments of the present invention are provided, step 34 is broken down into various steps in Fig. 6 for illustrative purposes.
- objects are selected from the engineering data associated with the design 10 for conversion and transport at step 36.
- Step 36 is discussed in greater detail below with reference to Fig. 7.
- the data associated with the selected objects is converted and prepared for transport.
- Step 38 is discussed in greater detail below with reference to Fig. 8.
- steps 36 and 38 are preferably performed within the engineering CAD software application 24. It should be readily understood that step 34 could easily be performed by an alternate dedicated software application.
- the resulting data after step 38 is then transported at step 40 to, in the present embodiment, the 3D modeling software application 28.
- the data transport step 40 is described in greater detail below with reference to Figs. 17 and 18.
- a program written to accomplish steps 36 and 38 is also written to establish a connection, via a communications network link, with a second program that is interfacing with the 3D modeling software application 28.
- the data is then sent via the link to the receiving application at step 40.
- the data could be transported to an alternate software application depending on the desired use of the data.
- step 42 the data is received and put into a format which is usable by the receiving software application, in this instance the 3D modeling software application 28, and objects are constructed as native objects from the received data in the 3D modeling environment. While step 42 has been illustrated in this embodiment to be performed within the 3D modeling software application 28, it should be readily understood that, in an alternate embodiment, step 42 is performed in a dedicated software application separate from or together with steps 36, 38. If steps 36, 38 and 42 were performed in a dedicated software application, it would be unnecessary to perform step 40 therein. Step 42 is discussed in greater detail below with reference to Fig. 22.
- Fig. 7 is a flow diagram illustrating in greater detail the steps in the illustrated embodiment for accomplishing step 36 in Fig. 6, namely, a system and method are provided for selecting objects to be converted and transported.
- the criterion is set to determine which object types may be selected in the selection scheme.
- the user would choose the selection criteria to match the desired object transmission scheme. For example, if the user desired an entity replacement scheme, the selection criteria would be set to entities.
- the user chooses the desired selection mode for selecting the objects to be converted and transported.
- One possible selection mode is via scanning and another possible selection mode is via a graphical interface. In the scanning mode, the data associated with the project 10 is scanned by the system for objects that meet the selection/scan criteria set in step 44.
- the user manually selects the desired objects to be converted and transported. This can be done by way of a selection device, such as a graphical user interface and a computer mouse.
- a selection device such as a graphical user interface and a computer mouse.
- the scanning mode is selected at 46, the engineering data associated with the project 10 is scanned at step 48, preferably from the start of the engineering data.
- the data is located in a computer aided design file and represents a plurality of objects.
- a first object is read at step 50.
- a decision is made at 52 whether or not the object read at step 50 meets the predetermined selection criteria set at 44. If the object meets the selection criteria, it is stored in a results list at 54.
- the file is checked at its current location at 56 to determine if the end of the file has been reached. If the end of the file has not been reached, the next object is read at 50 and the process is repeated.
- the user is presented with a results list at 58 preferably via a user interface.
- the user determines if they would like to select objects from the results list to be converted and transported. If objects are to be selected, the user selects the objects at step 62 and they are stored in memory at step 64. Once no further objects are to be selected, the selection process via the scanning method is done.
- the objects are selected at step 66.
- the objects can be selected graphically by using a program which is written to interface with an engineering computer aided design application and a selection device, such as a computer mouse.
- a determination is made at 68 as to whether the selected object meets the predetermined selection criteria, which was set at 44. If the object does not meet the selection criteria, the user is given the option to exit the routine at 70 or select another object at step 66. If the object is found to be within the selection criteria at 68, the system determines if the object can be partitioned or clipped at 72.
- a reference to the object will be stored in memory at step 74 and the user will be asked if they would like to exit the routine at 70.
- the user can dynamically define partial sections of the object, via the selection device, at step 76. A reference to each of these partial sections of the object is stored in memory at step 78. The user is then given the option, at 80, to dynamically define another section of the same object at 76, thereby repeating the procedure. If all of the sections of the object are selected and the user therefore wants to exit the section definition routine, the user has the option to exit the graphic selection routine at 70 or select another object at 66. Once all of the desired objects have been selected and stored in memory at 74 or 78, the selection process of the objects to be converted and transported via the graphic selection mode is complete.
- Fig. 8 illustrates a system and method for reading the resulting object transfer set from step 36 (as outlined in detail in Fig. 7) and handling the conversion and transport, and is a more detailed explanation of the steps necessary to accomplish step 38 in Fig. 6.
- the object transfer set contains references to objects of five different types. The method by which a particular object is converted and transported varies depending on its type.
- the object encapsulates a string of geometric points or line segments which are to be converted into a mathematical curve.
- the mathematical curve is preferably a non-uniform rational B-spline (NURBS) curve. It should be noted that other types of mathematical curves are within the scope of the present invention.
- the object also encapsulates a string of geometric points or line segments which are to be converted into a mathematical curve.
- this object also contains a geometric shape which will be used to extrude a surface along the generated curve or rail.
- An object of the second type will be transported as a railed surface.
- the object encapsulates sets of strings of geometric points or line segments which are to be converted into a mathematical curve set.
- the curve set can be used to create a mathematical surface.
- a NURBS surface will be created, as described in more detail below. It should be noted that while a NURBS surface is provided in the illustrated embodiment, other types of mathematical surfaces can be used within the scope of the present invention.
- the object encapsulates triangulated geometric data. This data will be used to generate a mesh surface.
- the object encapsulates a set of entity data.
- This set includes entity identifiers and attributes as well as 3D location and rotational data. This information will be used to reference models from 3D libraries and position them in a 3D modeling file.
- step 84 the set of objects to be transferred resulting from the selection process of step 36 (which is detailed in Fig. 7) are found at 82.
- An address marker is set at step 84 at the beginning of the object transfer set 82 and is held in memory.
- step 86 the reference for the first object is read.
- the system determines at 88 if the referenced object is to be converted and transported as a mathematical curve. If the determination is true, a mathematical curve object is created from the referenced object's data and the new object is transported, in the illustrated embodiment, to the receiving 3D modeling software application at step 90. Step 90 is described in more detail below and with reference to Fig. 9.
- the system determines at 92 if the referenced object is to be converted and transported as a railed surface. If it is, a mathematical curve object is created from the referenced object's data, the information regarding the geometric shape is appended and the new object is transported.
- the steps for converting and transporting the object as a railed surface in step 94 are set forth in greater detail below and with reference to Fig. 10.
- Step 98 is described in greater detail below and with reference to Fig. 11.
- Step 102 is set forth in greater detail below and with reference to Fig. 12.
- Step 106 is set forth in greater detail below and with reference to Fig. 13.
- Fig. 9 a system and method are provided for converting and transporting an object as a mathematical curve.
- Fig. 9 depicts one possible embodiment of steps which will accomplish step 90.
- the object to be converted to a mathematical curve is held in memory and found at 110.
- the system makes a determination at 112 if the object is to be converted to a NURBS curve. If the determination is true, a Bezier curve set is created from the objects own data at step 114. A method of creating the Bezier curve set at step 114 is discussed in greater detail below with reference to Fig. 14. A NURBS curve is then created at step 116 from the Bezier curve set of 114. A method of creating the NURBS curve of step 116 is set forth in greater detail below with reference to Fig. 15.
- a transfer set is generated at step 120 from the resulting NURBS curve object of 116 or alternate curve object of 118.
- the transfer set is preferably generated in XML format. It should be readily understood that alternate formats could be used and are within the scope of the present invention.
- Any additional curve attributes are appended to the transfer set, again preferably in XML format, at step 122. Such additional curve attributes could include the color or style the curve should have when it is generated in the 3D modeling application.
- the curve transfer set is then transported to a receiving program at step 124.
- the receiving program is a software component written to interface with a 3D modeling application.
- Fig. 10 sets forth an embodiment of a system and method for handling the conversion and transportation of a railed surface and provides a more detailed explanation of step 94.
- the object which is to be converted to a railed surface is held in memory at 126.
- the system determines at 128 if the object is slated for conversion to a NURBS curve. If the determination is true, a Bezier curve set is created from the object's own data at step 114.
- Step 114 in Fig. 10 is the same step as step 114 in Fig. 9.
- Step 114 is explained in greater detail below with reference to Fig. 14.
- the Bezier curve set from step 114 is used at step 116 to create a NURBS curve at 116.
- Step 116 is described in greater detail below with reference to Fig. 15.
- a transfer set is generated at 120 from the railed surface object which, at this point, encapsulates either a NURBS or alternative mathematical curved object.
- the transfer set is formatted in XML.
- the transfer set could be formatted in an alternate format.
- the geometric shape which will be used to extrude a surface along the generating curve or rail is appended to the transfer set. Again, this information is preferably appended to the transfer set in XML format. Additionally, additional attributes can be appended to the transfer set at 130.
- the curve transfer set is then transported at 124 to a receiving program.
- the receiving program is a software application written to interface with a 3D modeling software application.
- the transport step 124 is described in greater detail below with reference to Fig. 17.
- Fig. 11 describes step 98 of Fig. 8 in greater detail and provides an embodiment of a system and method for handling the conversion and transport of a mathematical surface.
- the object that is to be converted to a mathematical surface is held in memory at 132.
- the system determines, at 134, if the object 132 is slated for conversion to a NURBS surface. If the decision is true, an address marker is set at the beginning of the curve point data set which is encapsulated by the object 132 and held in memory at 136.
- a first curve point data set is read at step 138.
- a point stream object is then created from the data in the curve point data set at 140.
- a Bezier curve set is then created, at step 114, by evaluation of the point stream object.
- the system checks at 142 to see if there are any remaining curve point data sets. If there are items remaining, the procedure is repeated by reading the next curve point data set at 138. Once the end of the set has been realized, the number of control points across all of the Bezier curve sets is evaluated at 144 and, if necessary, adjustments are made to keep cardinality equal.
- An address marker is set at step 146 at the beginning of the first Bezier curve set which is held in memory.
- the first Bezier curve set is read at 148 and a NURBS curve object is created from the data in the Bezier curve set at 116.
- Step 116 is described in greater detail below with reference to Fig. 15.
- the system then checks at 150, to see if there are any remaining Bezier curve sets. If there are, the procedure is repeated by reading the next Bezier curve set at 148. This procedure is repeated until the system determines, at 150, that the last Bezier curve set has been converted to a NURBS curve at 116. If the system determines, at 134, that the object 132 is slated for conversion to a curve surface other than a NURBS surface, the alternate type of mathematical curve surface is generated from the object's own data at 118.
- a transfer set is generated at step 152, preferably formatted in XML, from the surface object which, at this point, encapsulates either a NURBS surface or alternative curve surface object. Additional attributes are appended to the transfer set, preferably in XML format, if necessary, at 154.
- the curve surface transfer set is then transported to a receiving program at step 124.
- the receiving program is a software application which interfaces with a 3D modeling application. Step 124 is described in greater detail below with reference to Fig. 17.
- Fig. 12 an embodiment of a system and method for handling the conversion and transport of a mesh surface is illustrated and is a more detailed explanation of step 102 of Fig. 8.
- the items of interest will be triangle objects which meet a previously established scan criteria.
- the initial scan collects information concerting the vertices of those triangles.
- a vertex which is referenced by multiple triangles is reduced to a single hash table entry.
- the hash table will be loaded with every vertex needed to generate the mesh surface.
- Each vertex entry is indexed in the hash table by a unique value.
- a second file scan is then conducted to match a particular triangle object with its vertex hash table indices. Because the amount of data associated with these mesh surfaces can be very large, in the illustrated embodiment, the data associated with the first scan is transmitted simultaneously while the second file scan is still in progress. By sending the data in parts, the amount of data is reduced to manageable chunks, thereby eliminating the possibility of exceeding the system's memory capability by trying to handle all of the data at once. Additionally, the amount of time required to complete the process is reduced significantly since the sending system is still scanning the file while the receiving system is already in process of constructing the surface in the 3D modeling application, as discussed in greater detail below.
- the selected object i.e. the object to be transported as a mesh surface
- the system evaluates the attributes of the mesh surface components 156 at step 158.
- the attributes are information concerning criteria that will be used to search for objects that will be used to construct a mesh surface.
- the initial scan is started by locating the beginning of the engineering computer aided design file at 160 and reading the contents of a first object.
- the system determines, at 162, if the object meets the scan criteria. If the determination is true, the object's vertices are stored in a hash table.
- the current file location is checked to determine if the end of the file has been reached at 166. If there are still objects remaining in the file, the next object is read at 160 and the routine is continued.
- a transfer set is generated at step 168.
- the transfer set contains a command header and a count of vertices and faces.
- the transfer set is preferably formatted in XML.
- the transfer set is then transported to a receiving program at 124.
- the receiving program preferably interfaces with a 3D modeling application and the steps associated therewith are discussed in greater detail below with reference to Fig. 17.
- the array of vertex information is generated from the information that was previously stored in the hash table.
- a transfer set containing a vertex array is then generated, preferably in XML format.
- the transfer set is then transported to the receiving program at 124.
- the second file scan is preferably initiated by locating the beginning of the engineering computer aided design file at step 172.
- the contents of the first object are read at step 174 and a determination is made, at 176, if the object meets the scan criteria. If the determination is true, the object's vertex indices are retrieved from the hash table at 178.
- a transfer set containing face information is generated at 180, preferably formatted in XML. This transfer set is transported to a receiving program at step 124. Once the face information has been transported, or if the object didn't meet the scan criteria at 176, the current file location is checked to determine if the file end has been reached at 182.
- a transfer set is generated at 184, preferably formatted in XML.
- the transfer set contains any additional mesh attributes which might be necessary.
- the transfer set is then transported at 124 to the receiving program.
- Fig. 13 illustrates an embodiment of a system and method for handling a conversion and transport of entity replacement commands and is a more detailed illustration of step 106 of Fig. 8.
- the object to be transferred as an entity replacement is found at 186 and is held in memory.
- the system evaluates the object 186.
- the object 186 holds information concerning criteria that will be used to search for other objects that will be used to construct the entity replacement commands.
- the file scan is preferably started at step 190 by locating the beginning of the engineering computer aided design file and reading the contents of the first object.
- the system determines, at step 192, if the object meets the scan criteria. If the determination is true, a transfer set containing the entity attributes is generated at 194, preferably formatted in XML.
- the transfer set is then transported to the receiving program at step 124.
- the receiving program preferably interfaces with a 3D modeling application in the illustrated embodiment of the present invention.
- the current file location is checked to determine if the file end has been reached at 196. If there are still items remaining in the file, the next object is read, at step 190, and the routine is continued until the file end is reached and the determination at 196 is true.
- Fig. 14 illustrates an embodiment of a system and method for creating a Bezier curve set and is a more detailed illustration of step 114.
- a point stream object 200 is created from a set of ordered points 202.
- the set of ordered points 202 are held in memory and are defined by the engineering data associated with the object 110, 126, 132 that is being converted.
- a proximate point evaluation is applied to the point stream object 200 to ensure that no two points 202 are within a specified minimum distance from each other. If a point 202 is found to be too close to another point, that point 202 will be deactivated. For example, in Fig.
- point 202b is found to be too close to point 202a (in the highlighted area) and is therefore eliminated from the point stream object 200 as illustrated in Fig. 16B.
- direction angles 208 are calculated for each vector 210 with respect to the previous vector 210.
- a vector 210 is the line formed connecting two sequential points 202, as best illustrated in the enlarged area of Fig. 16B.
- a first angle 208 is 6.818° and a second angle 208 is 6.831°.
- Two direction angles 208 are calculated for each vector 210. First is the angle formed in the XY plane and the second is the angle formed in the YZ plane.
- Fig. 16C illustrates two patterns which have been identified as 214a and 214b.
- a pattern is defined as a consistent direction change identified by changes in angles 208 being less than a minimum specified angle amount. In other words, the direction change angle is allowed to consistently increase or decrease only if it falls within a specified rate tolerance.
- Direction patterns are identified in both the XY and YZ planes. Each identified pattern represents a proposed curve 228. Based upon the patterns 214 that are identified, begin and end points 216, 218 (in Fig. 16D), respectively, or terminators are identified for each proposed curve in step 220.
- each proposed curve is determined at step 222, as illustrated in Fig. 16E.
- the length of each proposed curve its the distance between its terminators (i.e., the distance between the begin point 216 and end point 218 of each proposed curve 228).
- interior points 226 are located for each proposed curve 228.
- the proposed curves 228 are being created as cubic Bezier curves 229. Consequently, a total of four points 202 are needed for each Bezier curve 229.
- the points for each Bezier curve 229 are the beginning point 216, the end point 218 and two interior points 226. It should be noted that, while the illustrated embodiment uses cubic Bezier curves, alternate mathematical curves could be used.
- an address marker is set to the beginning of the proposed curves' data, which is held in memory.
- the data concerning the first proposed curve 228a is read.
- a Bezier curve 229a is interpolated at step 236 from this data, as illustrated in Fig. 16G.
- control points 237 exist.
- the control points 237 influence the shape of the Bezier curve 229a and produce a Bezier curve 229a which passes through the interior points 226. With the control points 237 present, the interior points 226 are no longer needed and are discarded.
- the new Bezier curve 229a is stored in memory at step 238.
- the system determines if there is any remaining curve data to be interpolated.
- Fig. 16H illustrates two Bezier curves 229, which have been used to construct a NURBS curve.
- Fig. 15 is a more detailed explanation of step 116 of Figs. 9, 10 and 11.
- a NURBS curve object is created which is void of any geometry information.
- an address marker is set to the beginning of the Bezier curve set which is held in memory.
- the first Bezier curve 228 of the Bezier curve set is read at step 246.
- the control point information is then extracted, at step 248, from the Bezier curve 228 and appended to the NURBS curve object.
- the system makes a decision at 250 if any unread Bezier curves 228 remain in the Bezier curve set.
- the next Bezier curve 228 in the set is read at 246.
- the process is repeated until the control points have been extracted from all of the Bezier curves 228 in the Bezier curve set.
- the NURBS curve knot vector is created at step 252, thus completing the generation of a NURBS curve that represents the object desired to be transferred and is based on the engineering data associated with the particular object.
- Fig. 17 illustrates an embodiment of a system and method for sending data.
- Fig. 17 is a more detailed explanation of steps which will accomplish part of step 124 of Figs. 9-13.
- a user provides a host name for the destination of the data.
- An IP address is then retrieved at step 254 for the requested host name.
- a stream socket is then created and a connection is made, at step 256, to a specified port at the requested IP address.
- Step 256 is illustrated schematically in Fig. 21A.
- a new print stream is created from the socket output stream.
- the system checks at 260 to see if any exceptions were thrown during the connection process. If there were exceptions, the user is notified at 262 and the process is terminated.
- a request to send data is received to send data. This request is accompanied by the data 268 to be sent. The request is generated during the execution of step 124 of Figs. 9-13.
- the data to be sent is held in memory at 268 and is sent to the print stream at step 270. Once the data is sent, the print stream is flushed at 272.
- the system then checks, at 274, for any exceptions that were thrown during the data transmission process. If there were exceptions, the user is notified at step 262 and the process is terminated. If the data transmission was successful, the system returns to step 264 and waits for specific events which will determine any further execution.
- Fig. 18 illustrates an embodiment of a system and method for receiving data. Fig. 18 is a more detailed explanation of part of step 40 and, in the illustrated embodiment, is part of a receiving program which interfaces with the 3D modeling software application 28. Initially, a listening service is created that will respond to client connection requests. To accomplish this, a connection handler pool is created at step 282 which will contain all of the connection handlers. Next, at step 284, the specified service name is mapped to a port number.
- the specified protocol name is mapped at 286 to a protocol number.
- a socket is then allocated at 288 and it is bound at 290.
- the system then waits for specific events which will determine any further execution at step 292.
- One possible event is a request to connect.
- a request is received to establish a connection with the receiving program.
- Step 294 is illustrated schematically in Fig. 21A.
- the connection request is accepted at step 296 and the connection handler pool is instructed to add a new connection at step 298.
- Step 298 is illustrated schematically in Fig. 21B.
- a new connection handler object is assigned to handle all of the communications for the new connection until the transmission is terminated.
- connection handler will run in a separate system thread so that once a new thread is created and started, the listening service of the receiving program can continue to listen for new events simultaneously while data is being received by this new connection handler.
- This operation is illustrated schematically in Fig. 21C.
- the connection handler pool is instructed to review the connection handler states (i.e. check for and clean up the inactive handlers) and the system returns to a state of waiting for specific events at step 292. Another possible event is a request to terminate the listener.
- the socket is disabled and at step 306 the socket is closed and all related resources are freed.
- the system checks for any remaining active threads at 308. If any active threads are found, the connection handler pool is instructed to review the connection handlers at step 310. The system will continue to check for active threads until none are remaining. At this point all connection transmissions have completed and the listening service is terminated.
- Fig. 19 illustrates an embodiment of a system and method for managing connection handlers. Initially, a connection handler pool object is created at step 312. At step 316, the system waits for specific events which will determine any further execution.
- Step 318 is illustrated schematically in Fig. 21A.
- a new connection handler is then created at step 320.
- Step 320 is illustrated schematically at Fig. 21B.
- Step 320 is also illustrated in greater detail at A in Fig. 20.
- the connection handler is then instructed to start the execution of a new thread as further illustrated at B in Fig. 20.
- a reference to the new connection handler is then stored in memory, at step 324, and the system resumes waiting for specific events at step 316.
- a request to review connections is a request to review connections.
- the system cleans up and deletes any inactive connection handlers in the pool.
- a request is received to review the connections.
- an address marker is set to the beginning of the connection handler pool, at step 328, which is held in memory.
- the first connection handler's data is then read at step 330.
- the system then makes a determination regarding the handler's activity status at 332. If the handler is found to be active, the system checks to see if there are any more remaining handlers in the connection handler pool at 334. If there are, the system reads the next connection handler at 330. If there are no more handlers in the pool, the system returns to the waiting state of step 316.
- the system determines, at 332, that the handler thread is inactive, the system is instructed, at step 336, to clean up the connection handler and the connection handler is then deleted at step 338. A determination is then made at 334 if there are any remaining connection handlers in the connection handler pool. This process is repeated until all connection handlers have been checked. Once all connection handlers have been checked, the system resumes waiting for events at step 316.
- Fig. 20 an embodiment of a system and method for handling a connection's communications is illustrated.
- a client connection After a client connection has been accepted, it is handed off to a connection handler object.
- the connection handler is assigned to a particular connection and manages all of the communications through the connection until it is terminated.
- Each connection handler executes in its own thread, thereby allowing multiple connection handlers to operate simultaneously to achieve the benefits noted above.
- a connection handler object is created at step 340.
- the system then waits, at step 342, for specific events which will determine any further execution.
- One possible event is a request to start a connection thread.
- a request is received from step 322 to start the connection thread.
- a new thread is generated and started at step 346.
- An XML reader is then created at step 348 and a socket input source is created at step 350.
- step 352 as data is streamed through the socket, it is parsed in segments.
- the thread is terminated at step 354 and the system resumes waiting for events at step 342.
- a request to clean up is received at step 356 from step 336.
- the system checks the thread for activity at step 358. If the thread is no longer alive, the thread handle is checked to see if it is still active at step 360. If the thread is still alive or if the thread handle is inactive, the system resumes waiting for events at step 342. If the thread handle is active, the socket is disabled at step 362. Once the socket is disabled, the socket is closed and all related resources are freed at step 364. The system then resumes waiting for events at step 342.
- Figs. 21A-F depict schematic diagrams of the steps used in the illustrated embodiment of a method of handling communications between applications.
- Fig. 21A illustrates a computer X having an engineering computer aided design software application 24 and a computer Z having a 3D modeling software application 28 and a connection handler pool 366.
- Computer X and computer Z are connected via a communications link 368.
- computer X first sends a connection request to computer Z via the communications link 368, as illustrated in Fig. 21A.
- Computer Z then accepts the connection, in Fig. 21B, and assigns a connection handler 370, that is added to the connection handler pool 366, to handle this connection.
- Computer X then begins to send streamed data to connection handler 370.
- Fig. 21C computer Y sends a connection request to computer Z.
- the data from computer X is illustrated in Fig. 21C as coming across in segments.
- computer Z accepts the connection and assigns a second connection handler 372, which has been added to the pool 366, to handle the connection with computer Y.
- Computer Z can then begin listening again for a new connection request while the connection handlers 370 and 372 receive the data.
- Computer Y begins to stream data to connection handler 372.
- computer X sends an end of transmission signal.
- Fig. 21E computer Z has parsed the end of transmission signal from the data received from computer X.
- the connection handler 370 assigned to computer X is terminated.
- the connection handler pool 366 recognizes that connection handler 370 has bee terminated and removes it from the pool 366.
- computer Y has now sent an end of transmission signal.
- computer Z has parsed the end of transmission signal from the data stream received from computer Y. Now the connection handler 372 assigned to computer Y has been terminated.
- the connection handler pool 366 has recognized the situation and removed connection handler 372 from the pool 366, thereby leaving the pool 366 empty.
- Fig. 22 illustrates a system and method for reading and parsing received data, which in the illustrated embodiment is an XML data stream.
- data is streamed through a socket input source and arrives at a parser in segments.
- the XML data segments are then parsed and tags are identified. These tags are used to drive events that are important to the construction of objects in the 3D modeling package.
- a SAX parser is used in the illustrated embodiment. Accordingly, each time that a tag is read by the parser, a message is sent to a parse handler which executes the requested event.
- the parse handler uses in processing the input stream, namely, a Tag Stack and a 3DObject.
- the Tag Stack is used to keep track of the current state of the parse handler and the tag that is currently being processed.
- the 3DObject is used to consolidate parsed data and then to construct objects native to the 3D modeling environment.
- a Tag Stack object is created. Data is then read, at step 376 from the XML data stream. The system then waits at step 378 for specific events which will determine any further execution.
- One possible specific event is a start element request.
- a request is made to start an element. This request is initiated when the parser recognizes a tag in the received data. In response to this request, the system determines at 382 if the tag name is "message". A message tag is used as an indicator that the present location is the beginning of a new message.
- step 376 the system returns to step 376 and again reads from the XML data stream and waits for events at 378. If the determination at 382 was false, the information is passed on to a 3DObject add tag method at step 384.
- step 384 the system checks to see if a 3DObject exists. If a 3DObject does not exist, a new 3DObject is created at step 386. Step 386 is described in greater detail below with reference to Fig. 23. If the system determines that a 3DObject already exists at 384, the system determines, at 388, if the Tag Stack is empty. If the Tag Stack is empty, the existing 3DObject is deleted at step 390 and a new 3DObject is created at step 386. After the creation of a new 3DObject at 386, or if the Tag Stack was found not to be empty at 388, the 3DObject is instructed by the parse handler to add the current tag at step 392. Step 392 is described in greater detail below with reference to Fig. 24. Following step 392, the system returns to step 376 and reads more data from the XML data stream and waits for events at 378.
- Another possible event is a characters request.
- This request is accompanied by characters that were read from the data stream. These characters are the content or value associated with an XML tag set. This character data is passed on to the current 3DObject which will handle it appropriately.
- the Tag Stack state is used to determine if the characters need to be read. The characters request is initiated by the parser regardless of whether it is needed or not. Inside the Tag Stack class, a Boolean flag is used to signify whether there will be characters to read.
- a characters request is made.
- the system determines at 396 if a 3DObject exists. If a 3DObject does exist, the system checks the Tag Stack state at 398. If the Tag Stack state is found to be false (i.e.
- step 400 the system returns to step 376 to read more data from the XML data stream. If the Tag Stack state was true (i.e. a Boolean flag was present indicating the existence of characters that need to be read), an append component instruction is sent to the 3DObject at step 400. Step 400 is described in greater detail below with reference to Fig. 25.
- the system then returns to step 376 to read more data and wait for events at 378.
- a third possible event is an end element request. This event signals the end of a data group. It also triggers an end tag event for the current 3DObject.
- an end element request is received from a tag in the data that was read at step 376.
- the system determines at 404 if the tag name is "message”. If the tag name is not message, the system determines, at step 406, if a 3DObject exists. If a 3DObject does exist, an end tag instruction is sent to the 3DObject at step 408. Step 408 is described in greater detail below with reference to Fig. 26.
- step 376 If the tag name was determined at 404 to be message or if it was determined at 406 that a 3DObject does not exist, the system returns to step 376 where more data is read from the XML data stream. The system also returns to step 376 after the end tag instruction is sent to the 3DObject at step 408.
- a fourth possible specific event is an end document request. This signals that the end of the message has been reached and causes the system to delete the current 3DObject. At step 410 an end document request is received. The current 3DObject is deleted at step 412 and the process is terminated.
- Fig. 23 illustrates an embodiment of a system and method for handling a 3DObject creation request and is a more detailed explanation of step 386.
- a request is received at step 414 from step 386 to create a new 3DObject.
- the system determines, in the present embodiment, if the request is one to generate one of the currently supported objects. In the illustrated embodiment, there are five supported object creation requests. However, in alternate embodiments, this number could be increased to accommodate different functionality.
- the system determines, based on metadata associated with the request (i.e. information in a tag associated with the request), if the request is a request to create a mathematical curve. If the determination at 416 is true, then a 3DObject of type mathematical curve is created at step 418. In the illustrated embodiment, a NURBS curve will typically be created. However, this system can support the creation of other types of curves.
- the newly created 3DObject is returned back to the parse handler at step 420 and the process is terminated.
- the system determines at 422 if the request is a request to create a railed surface, i.e. a request to extrude a surface along a generated curve or rail. If the determination is true, then a 3DObject of the type railed surface is created at step 424. The newly created railed surface 3DObject is returned to the parse handler at step 420 and the process is terminated.
- the system determines if the request is a request to create a mathematical surface at 426. If the determination is true, then a 3DObject of the type mathematical surface is created at step 428. In the illustrated embodiment, a NURBS surface will typically be created. However, this system can support the creation of other types of mathematical surfaces. The newly created mathematical surface 3DObject is then returned to the parse handler at step 420 and the process is terminated.
- the system determines at 430 if the request is a request to create a mesh surface. If the determination is true, then a 3DObject of the type mesh surface is created at step 432. The newly created mesh surface 3DObject is returned to the parse handler at step 420 and the process is terminated.
- the system determines, at 434, if the request is a request to place cells or models from 3D libraries (this would correspond with a selected object that was determined to be transported as an entity replacement at 104). If the determination at 434 is true, then a 3DObject of the type cell/model is created at step 436. The newly created cell/model 3DObject is returned to the parse handler at step 420 and the process is terminated. If the determination of step 334 is false, the system did not recognize the request as a handled request type and an error is returned to the user at step 438. The process is then terminated.
- Fig. 24 illustrates an embodiment of a system and method for managing a Tag Stack and provides a more detailed explanation of possible steps for performing step 392 of Fig. 22.
- a Tag Stack is used to keep track of the current state of the parser and the tag the parser is currently processing.
- a request is received at step 440 from step 392 to add a tag to the Tag Stack.
- a tag is then added to the Tag Stack at step 442 and the Tag Stack state is set (to true, if there are characters to evaluate, or to false, if there are no characters to evaluate) at step 444. The process is then terminated.
- Fig. 25 illustrates an embodiment of a system and method of appending components and is a more detailed explanation of possible steps for accomplishing step 400 in Fig. 22.
- a request is received at step 446 from step 400 to append a component to the 3DObject.
- the system reviews the most recent tag that was placed on the Tag Stack at step 448 and responds, at step 450, by appending data to the 3DObject as indicated by the tag's type.
- the tag's type may indicate that data which accompanies the request is to be appended as an X coordinate of a geometric location point used in a 3DObject.
- the process is then terminated.
- Fig. 26 illustrates an embodiment of a system and method for handling an end tag request and is a more detailed explanation of possible steps for accomplishing step 408 of Fig. 22 of the illustrated embodiment.
- An end tag request is received at step 452 from step 408.
- the system sets the Tag Stack to false at step 454 and removes and reviews the most recent tag that was placed on the Tag Stack at step 456.
- the system determines at 458 if the tag represents a command. If the determination is false, the process is terminated. However, if the determination at 458 is true, the create method is called at step 460 and the process is terminated.
- the create method is the command that actually results in the creation of the object in the 3D software application.
- step 460 the data has simply been stored in the 3DObject, which is a class that retains the information needed to construct the object.
- 3DObject is a class that retains the information needed to construct the object.
- Many variations can be made to the illustrated embodiment of the present invention without departing from the scope of the present invention. Such modifications are within the scope of the present invention.
- a stand alone program could used that encapsulates steps 36, 38, & 42 and manipulates the engineering computer aided design application 24 and the 3D modeling application 28 directly without the need for a user to open either software package.
- Another example would be to implement a custom format and parser for the transfer data in place of the illustrated XML scheme.
- Other modifications would be readily apparent to one of ordinary skill in the art, but would not depart from the scope of the present invention.
Landscapes
- Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Computer Graphics (AREA)
- Geometry (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Processing Or Creating Images (AREA)
- Stored Programmes (AREA)
Abstract
Priority Applications (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| EP04703081A EP1588233A4 (fr) | 2003-01-16 | 2004-01-16 | Procede et systeme pour convertir des donnees techniques en donnees de modelisation en 3d |
| CA002513732A CA2513732A1 (fr) | 2003-01-16 | 2004-01-16 | Procede et systeme pour convertir des donnees techniques en donnees de modelisation en 3d |
Applications Claiming Priority (4)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US44050703P | 2003-01-16 | 2003-01-16 | |
| US60/440,507 | 2003-01-16 | ||
| US10/653,479 | 2003-09-02 | ||
| US10/653,479 US7002573B2 (en) | 2003-01-16 | 2003-09-02 | Method and system for converting engineering data into 3D modeling data |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| WO2004066089A2 true WO2004066089A2 (fr) | 2004-08-05 |
| WO2004066089A3 WO2004066089A3 (fr) | 2008-01-10 |
Family
ID=42239947
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| PCT/US2004/001562 Ceased WO2004066089A2 (fr) | 2003-01-16 | 2004-01-16 | Procede et systeme pour convertir des donnees techniques en donnees de modelisation en 3d |
Country Status (4)
| Country | Link |
|---|---|
| US (3) | US7002573B2 (fr) |
| EP (1) | EP1588233A4 (fr) |
| CA (1) | CA2513732A1 (fr) |
| WO (1) | WO2004066089A2 (fr) |
Families Citing this family (63)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20040125143A1 (en) * | 2002-07-22 | 2004-07-01 | Kenneth Deaton | Display system and method for displaying a multi-dimensional file visualizer and chooser |
| US7497807B2 (en) * | 2003-07-15 | 2009-03-03 | Cube X Incorporated | Interactive computer simulation enhanced exercise machine |
| US7497812B2 (en) * | 2003-07-15 | 2009-03-03 | Cube X, Incorporated | Interactive computer simulation enhanced exercise machine |
| US20050054492A1 (en) * | 2003-07-15 | 2005-03-10 | Neff John D. | Exercise device for under a desk |
| US20050091016A1 (en) * | 2003-09-29 | 2005-04-28 | Autodesk, Inc. | Surface smoothing techniques |
| US7561990B2 (en) * | 2003-09-29 | 2009-07-14 | Autodesk, Inc. | Interactive triangulated irregular network (TIN) surfaces design |
| US7523396B2 (en) * | 2003-09-29 | 2009-04-21 | Autodesk, Inc. | Surface construction audit trail and manipulation |
| US20050131657A1 (en) * | 2003-12-16 | 2005-06-16 | Sean Mei Hsaio L. | Systems and methods for 3D modeling and creation of a digital asset library |
| US20050131659A1 (en) * | 2003-12-16 | 2005-06-16 | Mei Hsaio L.S. | Systems and methods for 3D modeling and asset management |
| US20050131658A1 (en) * | 2003-12-16 | 2005-06-16 | Mei Hsaio L.S. | Systems and methods for 3D assembly venue modeling |
| JP4102324B2 (ja) * | 2004-03-29 | 2008-06-18 | 株式会社トプコン | 測量データ処理システム、測量データ処理プログラム及び電子地図表示装置 |
| WO2007011748A2 (fr) | 2005-07-14 | 2007-01-25 | Molsoft, Llc | Documents structures et systemes, procedes et programmes informatiques pour la creation, la production et l'affichage d'objets en trois dimensions et autres informations connexes dans des documents structures |
| WO2007028090A2 (fr) * | 2005-09-02 | 2007-03-08 | Hntb Holdings Ltd | Systeme et procede de collecte et de modelisation de donnees de simulation d'objet |
| US20080062167A1 (en) * | 2006-09-13 | 2008-03-13 | International Design And Construction Online, Inc. | Computer-based system and method for providing situational awareness for a structure using three-dimensional modeling |
| JP2008281505A (ja) * | 2007-05-14 | 2008-11-20 | Japan Aerospace Exploration Agency | 3次元離散データのリサンプル方法、及び装置 |
| US20080297503A1 (en) * | 2007-05-30 | 2008-12-04 | John Dickinson | System and method for reconstructing a 3D solid model from a 2D line drawing |
| US7973707B2 (en) * | 2008-06-11 | 2011-07-05 | 2201028 Ontario Inc. | Method for geofencing |
| US20100049477A1 (en) * | 2008-08-19 | 2010-02-25 | Sivan Design D.S Ltd | Civil engineering simulation using quadtree data structures |
| US20100091015A1 (en) * | 2008-10-15 | 2010-04-15 | Robert Eric Heidel | Product, service, and market integration of three dimensional modeling/rendering software for the construction, remodeling, manufacturing, designing, buying, and/or selling of homes, businesses, structures, vehicles, and/or buildings |
| WO2012050960A2 (fr) * | 2010-09-29 | 2012-04-19 | Illinois Tool Works Inc. | Procédé, progiciel informatique et appareil de production d'une cartographie modèle pour l'intégration du déroulement des tâches |
| US8825458B2 (en) | 2011-09-23 | 2014-09-02 | Illinois Tool Works Inc. | Method, computer program product and apparatus for providing a model map for workflow integration |
| US8606652B2 (en) | 2010-12-20 | 2013-12-10 | Target Brands, Inc. | Topical page layout |
| US8630913B1 (en) | 2010-12-20 | 2014-01-14 | Target Brands, Inc. | Online registry splash page |
| US8606643B2 (en) | 2010-12-20 | 2013-12-10 | Target Brands, Inc. | Linking a retail user profile to a social network user profile |
| US8972895B2 (en) | 2010-12-20 | 2015-03-03 | Target Brands Inc. | Actively and passively customizable navigation bars |
| US8589242B2 (en) | 2010-12-20 | 2013-11-19 | Target Brands, Inc. | Retail interface |
| US8756121B2 (en) | 2011-01-21 | 2014-06-17 | Target Brands, Inc. | Retail website user interface |
| US9898862B2 (en) | 2011-03-16 | 2018-02-20 | Oldcastle Buildingenvelope, Inc. | System and method for modeling buildings and building products |
| EP2518445B1 (fr) * | 2011-04-29 | 2019-02-27 | Harman Becker Automotive Systems GmbH | Base de données pour dispositif de navigation, procédé de sortie d'une représentation tridimensionnelle d'un terrain et procédé de génération d'une base de données |
| US8965788B2 (en) | 2011-07-06 | 2015-02-24 | Target Brands, Inc. | Search page topology |
| US8687018B1 (en) | 2011-09-23 | 2014-04-01 | Google Inc. | Collection and confirmation of place metadata and graphic representations of fixed objects displayed in a mapping system |
| CN103092577A (zh) * | 2011-10-28 | 2013-05-08 | 鸿富锦精密工业(深圳)有限公司 | 三维影像量测程序生成系统及方法 |
| USD706793S1 (en) | 2011-12-28 | 2014-06-10 | Target Brands, Inc. | Display screen with graphical user interface |
| US9024954B2 (en) | 2011-12-28 | 2015-05-05 | Target Brands, Inc. | Displaying partial logos |
| USD715818S1 (en) | 2011-12-28 | 2014-10-21 | Target Brands, Inc. | Display screen with graphical user interface |
| USD701224S1 (en) | 2011-12-28 | 2014-03-18 | Target Brands, Inc. | Display screen with graphical user interface |
| USD703685S1 (en) | 2011-12-28 | 2014-04-29 | Target Brands, Inc. | Display screen with graphical user interface |
| USD705791S1 (en) | 2011-12-28 | 2014-05-27 | Target Brands, Inc. | Display screen with graphical user interface |
| USD711400S1 (en) | 2011-12-28 | 2014-08-19 | Target Brands, Inc. | Display screen with graphical user interface |
| USD705790S1 (en) | 2011-12-28 | 2014-05-27 | Target Brands, Inc. | Display screen with graphical user interface |
| USD712417S1 (en) * | 2011-12-28 | 2014-09-02 | Target Brands, Inc. | Display screen with graphical user interface |
| USD706794S1 (en) | 2011-12-28 | 2014-06-10 | Target Brands, Inc. | Display screen with graphical user interface |
| USD705792S1 (en) | 2011-12-28 | 2014-05-27 | Target Brands, Inc. | Display screen with graphical user interface |
| USD703686S1 (en) | 2011-12-28 | 2014-04-29 | Target Brands, Inc. | Display screen with graphical user interface |
| USD703687S1 (en) | 2011-12-28 | 2014-04-29 | Target Brands, Inc. | Display screen with graphical user interface |
| USD711399S1 (en) | 2011-12-28 | 2014-08-19 | Target Brands, Inc. | Display screen with graphical user interface |
| US10885235B2 (en) * | 2012-08-13 | 2021-01-05 | The Boeing Company | Multi-user virtual product development environment |
| EP2725323B1 (fr) * | 2012-10-29 | 2023-11-29 | Harman Becker Automotive Systems GmbH | Procédé et système de visualisation cartographique |
| WO2014145405A2 (fr) | 2013-03-15 | 2014-09-18 | Gaiter Felix R | Carte stratifiée tridimensionnelle |
| US9177418B1 (en) | 2013-03-15 | 2015-11-03 | Lockheed Martin Corporation | System and method for converting computer aided design data into a three dimensional model |
| CN104123309B (zh) * | 2013-04-28 | 2017-08-25 | 国际商业机器公司 | 用于数据管理的方法和系统 |
| EP2827303B1 (fr) * | 2013-07-18 | 2017-11-15 | Dassault Systèmes | Procédé mis en oeuvre par ordinateur pour déterminer un trajet éclaté d'une vue éclatée d'un ensemble d'objets modélisés tridimensionnels |
| CN103559314A (zh) * | 2013-11-22 | 2014-02-05 | 孙生强 | 一种三维图书数据查询系统 |
| CN104794316A (zh) * | 2015-05-20 | 2015-07-22 | 福州大学 | 一种3d模型拆分与组合的方法 |
| CN105718643A (zh) * | 2016-01-19 | 2016-06-29 | 武汉理工大学 | 一种基于最优化视角的船舶生产设计审图器实现方法 |
| US10706020B2 (en) * | 2016-04-14 | 2020-07-07 | Brigham Young University | Data sharing in CAx applications |
| WO2018071041A1 (fr) * | 2016-10-14 | 2018-04-19 | Hewlett-Packard Development Company, L.P. | Reconstruction de modèles tridimensionnels pour fournir des modèles tridimensionnels simplifiés |
| US12147736B2 (en) * | 2017-05-08 | 2024-11-19 | Physna Inc. | System and methods for 3D model evaluation using triangle mesh hashing |
| JP7127440B2 (ja) * | 2018-09-06 | 2022-08-30 | オムロン株式会社 | データ処理装置、データ処理方法及びデータ処理プログラム |
| CN109993832B (zh) * | 2019-04-11 | 2020-09-11 | 中国矿业大学 | 一种综采工作面煤层精细化三维模型的构建方法 |
| CN110223390B (zh) * | 2019-06-12 | 2023-02-17 | 辽宁工程技术大学 | 一种基于直线体素遍历原理的多段线嵌入tin算法 |
| US11373370B1 (en) | 2019-10-15 | 2022-06-28 | Bentley Systems, Incorporated | Techniques for utilizing an artificial intelligence-generated tin in generation of a final 3D design model |
| US11868353B1 (en) * | 2022-07-07 | 2024-01-09 | Hewlett Packard Enterprise Development Lp | Fingerprints for database queries |
Family Cites Families (24)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US4686634A (en) * | 1984-09-10 | 1987-08-11 | Allied Corporation | Method and apparatus for generating a set of signals representing a curve |
| US5999184A (en) * | 1990-10-30 | 1999-12-07 | 3D Systems, Inc. | Simultaneous multiple layer curing in stereolithography |
| JPH06507743A (ja) * | 1991-05-21 | 1994-09-01 | ケンブリッジ アニメーション システムズ リミテッド | 画像合成及び処理 |
| JPH07111721B2 (ja) * | 1992-06-05 | 1995-11-29 | 日本アイ・ビー・エム株式会社 | 線要素データの3次元変換装置及び方法 |
| EP0758470B1 (fr) * | 1994-05-05 | 2002-07-24 | Northrop Grumman Corporation | Procede et appareil de localisation et d'identification d'un objet a etudier dans une image complexe |
| US6307551B1 (en) * | 1997-01-15 | 2001-10-23 | International Business Machines Corporation | Method for generating and applying changes in the level of detail of a polygonal surface |
| US6057852A (en) * | 1997-04-30 | 2000-05-02 | Hewlett-Packard Company | Graphics accelerator with constant color identifier |
| US6064771A (en) * | 1997-06-23 | 2000-05-16 | Real-Time Geometry Corp. | System and method for asynchronous, adaptive moving picture compression, and decompression |
| US6075541A (en) * | 1997-11-07 | 2000-06-13 | Trimble Naviagtion Limited | Topographic triangulation in reduced time |
| US6124857A (en) * | 1998-08-12 | 2000-09-26 | International Business Machines Corporation | Meshing method and apparatus |
| US6552724B1 (en) * | 1999-05-06 | 2003-04-22 | Carl S. Marshall | Triangle strip merging for length maximization |
| US6496185B1 (en) * | 1999-06-29 | 2002-12-17 | Microsoft Corporation | Method and apparatus for processing a mesh of triangles |
| US6819318B1 (en) * | 1999-07-23 | 2004-11-16 | Z. Jason Geng | Method and apparatus for modeling via a three-dimensional image mosaic system |
| US6618759B1 (en) * | 2000-01-31 | 2003-09-09 | Hewlett-Packard Development Company, L.P. | Immediate mode computer graphics command caching |
| US6463344B1 (en) * | 2000-02-17 | 2002-10-08 | Align Technology, Inc. | Efficient data representation of teeth model |
| WO2001077987A1 (fr) * | 2000-04-06 | 2001-10-18 | Solid Terrain Modeling | Appareil de modelisation topographique tridimensionnelle de haute precision |
| US6628279B1 (en) * | 2000-11-22 | 2003-09-30 | @Last Software, Inc. | System and method for three-dimensional modeling |
| JP2002197166A (ja) * | 2000-12-27 | 2002-07-12 | Nec Corp | 仮想不動産取引方法及びそれに用いる端末並びにその制御プログラム記録媒体 |
| US6654690B2 (en) * | 2001-04-05 | 2003-11-25 | Harris Corporation | Automated method for making a topographical model and related system |
| JP4125673B2 (ja) * | 2001-07-04 | 2008-07-30 | オキーズ | 二次元あるいは三次元の幾何学的実体に結合したデータのエクスポートシステム |
| GB2381884A (en) * | 2001-07-16 | 2003-05-14 | Pablo D Cappellini | A search engine of flexibly-defined paths applicable to the search of transportation-related routes |
| US20030130040A1 (en) * | 2001-07-17 | 2003-07-10 | Jeffrey Thomas Dripps | Distributed video game system and method |
| AU2003252129A1 (en) * | 2002-07-23 | 2004-02-09 | Imagecom, Inc. | System and method for creating and updating a three-dimensional model and creating a related neutral file format |
| US20040236561A1 (en) * | 2003-05-21 | 2004-11-25 | Gary Smith | Component management engine |
-
2003
- 2003-09-02 US US10/653,479 patent/US7002573B2/en not_active Expired - Fee Related
-
2004
- 2004-01-16 WO PCT/US2004/001562 patent/WO2004066089A2/fr not_active Ceased
- 2004-01-16 EP EP04703081A patent/EP1588233A4/fr not_active Withdrawn
- 2004-01-16 CA CA002513732A patent/CA2513732A1/fr not_active Abandoned
-
2005
- 2005-12-19 US US11/313,145 patent/US7714860B2/en not_active Expired - Fee Related
-
2010
- 2010-02-26 US US12/713,407 patent/US8581903B2/en not_active Expired - Fee Related
Non-Patent Citations (1)
| Title |
|---|
| See references of EP1588233A4 * |
Also Published As
| Publication number | Publication date |
|---|---|
| WO2004066089A3 (fr) | 2008-01-10 |
| CA2513732A1 (fr) | 2004-08-05 |
| US7002573B2 (en) | 2006-02-21 |
| EP1588233A2 (fr) | 2005-10-26 |
| US20040140991A1 (en) | 2004-07-22 |
| US8581903B2 (en) | 2013-11-12 |
| EP1588233A4 (fr) | 2011-03-09 |
| US7714860B2 (en) | 2010-05-11 |
| US20060092156A1 (en) | 2006-05-04 |
| US20100149180A1 (en) | 2010-06-17 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US7002573B2 (en) | Method and system for converting engineering data into 3D modeling data | |
| US7492364B2 (en) | System and method for creating and updating a three-dimensional model and creating a related neutral file format | |
| JP3793115B2 (ja) | 3dコンピュータモデリング装置 | |
| US7639267B1 (en) | Systems and methods for modifying three dimensional geometry using an arbitrary cross-section plane | |
| US8612040B2 (en) | Automated derivative view rendering system | |
| US7737966B2 (en) | Method, apparatus, and system for processing geometric data of assembled parts | |
| KR100970790B1 (ko) | 컴퓨터 판독가능한 모델을 생성하는 방법 | |
| Batty et al. | GIS and urban design | |
| KR102346920B1 (ko) | 디지털 트윈 구축 장치 및 디지털 트윈 구축 방법 | |
| CA2294538A1 (fr) | Systeme et procede de modelisation informatique d'objets 3d et d'images 2d par structures maillees incorporant des donnees non spatiales telles que la couleur ou la texture | |
| KR100503789B1 (ko) | 렌더링시스템, 렌더링방법 및 그 기록매체 | |
| KR20090062729A (ko) | 엑스엠엘 기반의 입체 건물 입면 및 내부 자동 모델링 및내비게이션 시스템 및 그 방법 | |
| US20020175948A1 (en) | Graphical user interface method and apparatus for interaction with finite element analysis applications | |
| US10210668B2 (en) | Technique for extruding a 3D object into a plane | |
| US6885367B1 (en) | Three-dimensional model management system | |
| CN104851118A (zh) | ArcGIS共享CorelDraw点状符号方法 | |
| CN112231387A (zh) | 铁路数据可视化交互系统及方法、电子设备及存储介质 | |
| Batty et al. | Geographical information systems and urban design | |
| CN117934789B (zh) | 一种三维构件造型驱动参数表达与模型动态造型方法 | |
| CN113096255A (zh) | 一种基于WebGL三维视图同步融合非侵入式集成技术方法 | |
| CN116662435A (zh) | 一种云gis二三维一体可视化系统和二三维一体可视化方法 | |
| CN102339476A (zh) | 一种描述三维轻量化模型的方法 | |
| CN119963765A (zh) | 一种基于bim建筑模型的顶点数据处理方法、装置和设备 | |
| CN116452934A (zh) | 一种融合标注方法、装置、设备及存储介质 | |
| Hamri et al. | Computer aided design and finite element simulation consistency |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| AK | Designated states |
Kind code of ref document: A2 Designated state(s): AE AG AL AM AT AU AZ BA BB BG BR BW BY BZ CA CH CN CO CR CU CZ DE DK DM DZ EC EE EG ES FI GB GD GE GH GM HR HU ID IL IN IS JP KE KG KP KR KZ LC LK LR LS LT LU LV MA MD MG MK MN MW MX MZ NA NI NO NZ OM PG PH PL PT RO RU SC SD SE SG SK SL SY TJ TM TN TR TT TZ UA UG US UZ VC VN YU ZA ZM ZW |
|
| AL | Designated countries for regional patents |
Kind code of ref document: A2 Designated state(s): BW GH GM KE LS MW MZ SD SL SZ TZ UG ZM ZW AM AZ BY KG KZ MD RU TJ TM AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HU IE IT LU MC NL PT RO SE SI SK TR BF BJ CF CG CI CM GA GN GQ GW ML MR NE SN TD TG |
|
| 121 | Ep: the epo has been informed by wipo that ep was designated in this application | ||
| WWE | Wipo information: entry into national phase |
Ref document number: 2513732 Country of ref document: CA |
|
| NENP | Non-entry into the national phase |
Ref country code: DE |
|
| WWE | Wipo information: entry into national phase |
Ref document number: 2004703081 Country of ref document: EP |
|
| WWP | Wipo information: published in national office |
Ref document number: 2004703081 Country of ref document: EP |