The patent application Ser. No. 12/462,715 discloses a method for converting a drawing into multiple matrices that enable extracting information related to the drawing or its objects in an automated manner. The prior art of the aforementioned patent application doesn't disclose in details converting a 3D model into multiple matrices to extract information related to the 3D model or its objects in an automated manner. Such automated extraction of information from a 3D model can serve a variety of medical, engineering, architectural, industrial, and gaming applications as will be described subsequently.
The present invention discloses a method for converting a 3D model into multiple matrices. The 3D model can be represented by a variety of techniques such as constructive solid geometry (CSG) technique; Non-Uniform Rational B-Spline (NURBS) modeling; polygonal modeling; or point cloud technique. The constructive solid geometry technique is based on creating a 3D model for an object by combining or de-combining a set of simple objects such as spheres, cylinders, or cubs. The NURBS modeling technique is based on generating a plurality of curves to represent a freeform surface. The polygonal modeling technique is based on representing or approximating the surfaces of a 3D model using a collection of polygons. The point cloud technique is based on representing a 3D model by a set of data points in some coordinate system.
The present invention discloses a method for converting a 3D model into multiple matrices to extract information about the 3D model or its objects in an automated manner. In one embodiment of the present invention, the information extracted from the 3D model represents the identity of the 3D model or its objects. In another embodiment of the present invention, the information extracted from the 3D model represents numerical information such as dimensions, areas, or volumes related to the 3D model or its objects. In one embodiment of the present invention, the information extracted from the 3D model represents positional information describing the locations of the objects of a 3D model relative to each other. In yet another embodiment of the present invention, the extracted information represents checking the compliance of the 3D model against certain rules, codes, or requirements.
Accordingly, by using the present invention it becomes possible to automate various tasks that were used to be only done by professionals. For example, aiding physicians in planning their medical surgeries in a structured and comprehensive manner; helping engineers to accurately analyze the structural designs of buildings against potential disasters such as earthquakes, hurricanes, or explosions; assisting architects in reaching optimized building designs according to the project requirements or constrains, and serving software developers in creating more intelligent 3D virtual environments for real-life motion pictures or gaming applications.
In one embodiment, the present invention discloses a method for converting a 3D model into multiple matrices to extract information related to the 3D model or its objects in an automated manner, the method comprising seven steps.
The first step is; converting the surfaces of the 3D model into polygons wherein each polygon is assigned one or more IDs representing the objects of the 3D model that the polygon is located in. The second step is; dividing the 3D model with groups of lines intersecting with each other in intersection points located in layers. The third step is; determining the intersection nodes between the polygons and the lines of the groups of lines wherein each intersection node is assigned the IDs of the polygon that is located in. The fourth step is; conveying the IDs of each intersection node in a layer to the closest intersection point located in a same layer. The fifth step is; forming a group of individual matrices for each layer wherein each individual matrix represents one type of polygons that are assigned the same ID and each cell of an individual matrix represents one of the intersection points and contains one ID corresponding to the intersection points. The sixth step is; forming a collective matrix for each layer representing all types of polygons that carry different IDs wherein each cell of a collective matrix represents one of the intersection points and contains one or more IDs corresponding to the intersection points. The seventh step is; accessing the cells of the groups of the individual matrices or the cells of the collective matrices to automatically extract information related to the objects of the 3D model.
To clarify the seven steps of the present invention,
In
In
Generally, the individual matrices and the collective matrix are generated for each horizontal layer and each vertical layer of intersection between the three groups of lines. Accessing the cells of the individual matrices and the collective matrices of the entire 3D model enables extracting useful information related to the 3D model or its objects in an automated manner. For example, to automatically locate the shared surfaces or common surfaces between the sphere and the cylinder, the cells of the collective matrix, in each layer, that contains the two identifiers “S” and “C” will be determined. These cells represent specific intersection points in each layer, which lead to the closest intersection nodes of the sphere and cylinder that already conveyed their identifiers to these intersection points. Identifying such intersection nodes on the sphere and the cylinder identifies common points between the sphere and the cylinder. Connecting between these points determines the common polygons or surfaces between the sphere and the cylinder.
In another example, if it is required to automatically calculate the volume of the part of the sphere that appears in the 3D mode. In this case, the intersection nodes of the sphere in each layer are identified by finding the intersection points in the cells of all individual matrices cells that contains “S”. As mentioned previously, such intersection points lead to the intersection nodes that already conveyed theirs IDs to these intersection points. Connecting between each two successive intersection nodes in a layer forms a boundary line of a section for the sphere at each layer. Calculating the perimeter of each boundary lines of a section at each layer then multiplying this perimeter by a unit value leads to obtaining the volume of the sphere, whereas the unit value is the height between each two successive layers. Generally, it is important to note that the same algorithm used for finding the sphere volume can be used to calculate the volume of the cylinder or any other object in a 3D model. In other words, similar requests can be achieved using similar algorithms, regardless the difference of the 3D models.
In another example, if it is required to determine the points of the sphere that has a direct horizontal or vertical view to the cylinder. In other words, the sphere points that can directly get connected to a cylinder point by a horizontal line or a vertical line. To achieve this, first determine the cells of the collective matrix, in each horizontal layer and vertical layer, that contain “S” followed by one or more empty cells then followed by a cell containing “C” in the up, down, left, or right directions. Identifying such cells identifies the corresponding intersection points which lead to identifying the corresponding intersection nodes of these intersection points. Such intersection nodes and other points located in between them on the sphere surface allocate the points of the sphere that has a direct horizontal or vertical view to the cylinder.
In yet another example, if it is required to determine the points of the sphere and the cylinder that has a direct view to the West direction, wherein the West direction is assumed to be located on the left side of the 3D model or the figure. In this case, first determine the cells in each collective matrix of a horizontal layer that contain “S” or “C” and have empty cells on their left sides up to the first column of the collective matrix. Identifying these cells identifies the corresponding intersection points which consequently identifies the corresponding intersection nodes. The list of such intersection nodes on the sphere surface, in addition to, the points on the sphere surface that are located between them allocates the points on the sphere that have a direct view to the West. Also the list of such intersection nodes on the cylinder surface, in addition to, the points on the cylinder surface that are located between them allocates the points on the cylinder that have a direct view to the West. Using a similar algorithm, the points that have a direct view to the North, South, or East or to any other specific directions can be identified.
Generally, the analysis of the individual matrices and/or the collective matrices of the 3D model enables extracting information related to the 3D model or its objects in an automated manner regardless the simplicity or complexity of the 3D model. For example,
In another embodiment of the present invention, assigning the IDs to the polygons is done manually or automatically. To achieve that manually, the user selects a polygon or a group of polygons on the computer screen and assign a unique ID to them. To achieve that automatically, either each object that forms an enclosure is automatically given a unique ID, or each group of attached polygons that form a certain configuration are automatically given a unique ID. Such a certain configuration can be listed in a database that assigns and stores a unique ID to each unique configuration of attached polygons. Using this database enables assigning a unique ID to each object in the 3D model.
In one embodiment of the present invention, the ID or identifier of a polygon may represent multiple classifications. For example, in a 3D model representing a plurality of buildings where each building contains a plurality of rooms, and each room contains a number of different walls. In this case, if each building has a number, and each room has a name, and each wall has a type, then the ID of a polygon in this 3D model will represents the building number, the room name, and the wall type. This way, the method of the present invention can simply extract classified information related to the buildings, rooms, or walls of the 3D model.
In another embodiment of the present invention, dividing the 3D model is achieved by three groups of lines parallel to the x-axis, y-axis, and z-axes, or achieved by three or more groups of lines parallel to other directions than the x-axis, y-axis, and z-axes. For example,
In all such cases, the individual matrices and the collective matrixes are formed to match the pattern of the intersecting lines. This is to facilitate the analysis of the matrices cells relative to the 3D model. For example,
Accessing or analyzing the cells of the individual matrices and/or the cells of the collective matrices is done to extract information related to the 3D model of its objects. In one embodiment of the present invention, the extracted information represents the identity of the 3D model or its objects. In another embodiment of the present invention, the extracted information represents numerical values for lengths, perimeters, areas, or volumes related to the 3D model or its objects. In one embodiment of the present invention, the extracted information represents positional information describing the locations of the objects of a 3D model relative to each other. In yet another embodiment of the present invention, the extracted information represents checking the compliance of the 3D model against certain rules, codes, or requirements.
It is important to note that, in some cases of 3D models, slicing the 3D model by a plurality of horizontal layers only, or by a plurality of vertical layers only is enough to apply the method of the present invention on the 3D model. For example,
According to such cases, in one embodiment, the present invention discloses a method for converting a 3D model into multiple matrices to extract information related to the 3D model or its objects in an automated manner, the method comprising five steps. The first step is slicing the 3D model into multiple sections parallel to each other to create a plurality of lines, in each section, represented according to a vector graphics format. The second step is assigning an ID to each line representing the object of the 3D model that the line is located in. The third step is forming a group of individual matrices for each section wherein each individual matrix represents one type of lines that are assigned the same ID and located at the same section, and each cell of the individual matrix represents a point of a line and contains one ID corresponding to the line that the point is located in. The fourth step is forming a collective matrix for each sections representing all types of lines that are located at the same section and carry different IDs, wherein each cell of the collective matrix represents a point of a line and contains one or more IDs corresponding to the lines that the point is located in. The fifth step is-accessing the cells of the individual matrices or the cells of the collective matrices to extract specific information about the 3D model or the objects of the 3D model.
Generally, the 3D models described in the previous examples are represented according to a vector graphics format, wherein none of the polygons of the 3D models contains a colored pixel, and no colored pixels present between the boundary lines of the polygons. However, in case of the 3D model is represented by a set of points using the point cloud technique, in this case, the set of points are converted into a plurality of triangles, as known in the art, where then the method of the present invention can be utilized with the triangles. Also if the 3D model is represented according to a raster graphics format, then an edge detection program is utilized to detect the edges of the 3D model and convert them into lines where each two lines that meet at one point are converted into a triangle. Accordingly, the 3D model can be recreated by a plurality of triangles where then the method of the present invention be utilized with the triangles.
Conclusively, while a number of exemplary embodiments have been presented in the description of the present invention, it should be understood that a vast number of variations exist, and these exemplary embodiments are merely representative examples, and are not intended to limit the scope, applicability or configuration of the disclosure in any way. Various of the above-disclosed and other features and functions, or alternative thereof, may be desirably combined into many other different systems or applications. Various presently unforeseen or unanticipated alternatives, modifications variations, or improvements therein or thereon may be subsequently made by those skilled in the art which are also intended to be encompassed by the claims, below. Therefore, the foregoing description provides those of ordinary skill in the art with a convenient guide for implementation of the disclosure, and contemplates that various changes in the functions and arrangements of the described embodiments may be made without departing from the spirit and scope of the disclosure defined by the claims thereto.
This application is a Continuation-in-Part of co-pending U.S. patent application Ser. No. 12/462,715, filed Aug. 7, 2009, titled “Converting A Drawing Into Multiple Matrices”.
Number | Date | Country | |
---|---|---|---|
Parent | 12462715 | Aug 2009 | US |
Child | 13935491 | US |