Open main menu
Home
Random
Recent changes
Special pages
Community portal
Preferences
About Wikipedia
Disclaimers
Incubator escapee wiki
Search
User menu
Talk
Dark mode
Contributions
Create account
Log in
Editing
Solid modeling
(section)
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
==Solid representation schemes== Based on assumed mathematical properties, any scheme of representing solids is a method for capturing information about the class of semi-analytic subsets of Euclidean space. This means all representations are different ways of organizing the same geometric and topological data in the form of a [[data structure]]. All representation schemes are organized in terms of a finite number of operations on a set of primitives. Therefore, the modeling space of any particular representation is finite, and any single representation scheme may not completely suffice to represent all types of solids. For example, solids defined via [[Constructive solid geometry|combinations of regularized Boolean operations]] cannot necessarily be represented as the [[Solid sweep|sweep]] of a primitive moving according to a space trajectory, except in very simple cases. This forces modern geometric modeling systems to maintain several representation schemes of solids and also facilitate efficient conversion between representation schemes. Below is a list of techniques used to create or represent solid models.<ref name="Representations"/> Modern modeling software may use a combination of these schemes to represent a solid. === Primitive instancing=== This scheme is based on notion of families of object, each member of a family distinguishable from the other by a few parameters. Each object family is called a ''generic primitive'', and individual objects within a family are called ''primitive instances''. For example, a family of bolts is a generic primitive, and a single bolt specified by a particular set of parameters is a primitive instance. The distinguishing characteristic of pure parameterized instancing schemes is the lack of means for combining instances to create new structures which represent new and more complex objects. The other main drawback of this scheme is the difficulty of writing [[algorithm]]s for computing properties of represented solids. A considerable amount of family-specific information must be built into the algorithms and therefore each generic primitive must be treated as a special case, allowing no uniform overall treatment. ===Spatial occupancy enumeration=== This scheme is essentially a list of spatial ''cells'' occupied by the solid. The cells, also called [[voxel]]s are cubes of a fixed size and are arranged in a fixed spatial grid (other polyhedral arrangements are also possible but cubes are the simplest). Each cell may be represented by the coordinates of a single point, such as the cell's centroid. Usually a specific scanning order is imposed and the corresponding ordered set of coordinates is called a ''spatial array''. Spatial arrays are unambiguous and unique solid representations but are too verbose for use as 'master' or definitional representations. They can, however, represent coarse approximations of parts and can be used to improve the performance of geometric algorithms, especially when used in conjunction with other representations such as [[constructive solid geometry]]. ===Cell decomposition=== This scheme follows from the combinatoric (algebraic topological) descriptions of solids detailed above. A solid can be represented by its decomposition into several cells. Spatial occupancy enumeration schemes are a particular case of cell decompositions where all the cells are cubical and lie in a regular grid. Cell decompositions provide convenient ways for computing certain [[topological properties]] of solids such as its [[Connected space|connectedness]] (number of pieces) and [[Genus (mathematics)|genus]] (number of holes). Cell decompositions in the form of triangulations are the representations used in 3D [[finite elements]] for the numerical solution of partial differential equations. Other cell decompositions such as a Whitney regular [[Topologically stratified space|stratification]] or Morse decompositions may be used for applications in robot motion planning.<ref name = "Complexity_planning">{{cite book |url=http://mitpress.mit.edu/catalog/item/default.asp?tid=4749&ttype=2 |title= The Complexity of Robot Motion Planning|author= Canny, John F. |year= 1987 |publisher= MIT press, ACM doctoral dissertation award |access-date=20 April 2010}}</ref> ===Surface mesh modeling=== Similar to boundary representation, the surface of the object is represented. However, rather than complex data structures and NURBS, a simple surface mesh of vertices and edges is used. Surface meshes can be structured (as in triangular meshes in [[STL (file format)|STL files]] or quad meshes with horizontal and vertical rings of quadrilaterals), or unstructured meshes with randomly grouped triangles and higher level polygons. ===Constructive solid geometry=== {{Main|Constructive Solid Geometry}} Constructive solid geometry (CSG) is a family of schemes for representing rigid solids as Boolean constructions or combinations of primitives via the regularized set operations discussed above. CSG and boundary representations are currently the most important representation schemes for solids. CSG representations take the form of ordered [[binary tree]]s where non-terminal [[Node (computer science)|nodes]] represent either rigid transformations ([[Orientation (mathematics)|orientation]] preserving [[Isometry|isometries]]) or regularized set operations. Terminal nodes are primitive leaves that represent closed regular sets. The semantics of CSG representations is clear. Each subtree represents a set resulting from applying the indicated transformations/regularized set operations on the set represented by the primitive leaves of the subtree. CSG representations are particularly useful for capturing design intent in the form of features corresponding to material addition or removal (bosses, holes, pockets etc.). The attractive properties of CSG include conciseness, guaranteed validity of solids, computationally convenient Boolean algebraic properties, and natural control of a solid's shape in terms of high level parameters defining the solid's primitives and their positions and orientations. The relatively simple data structure and elegant [[Recursion|recursive]] algorithms<ref name = "Recursivity">{{cite journal |doi=10.1002/malq.200310107 |title= Computable Operators on Regular Sets |author= Ziegler, M. |journal= Mathematical Logic Quarterly |year= 2004 |volume= 50 |issue= 45 |pages= 392β404 |publisher= Wiley|s2cid= 17579181 }}</ref> have further contributed to the popularity of CSG. ===Sweeping=== The basic notion embodied in sweeping schemes is simple. A set moving through space may trace or ''sweep'' out volume (a solid) that may be represented by the moving set and its trajectory. Such a representation is important in the context of applications such as detecting the material removed from a cutter as it moves along a specified trajectory, computing dynamic interference of two solids undergoing relative motion, motion planning, and even in computer graphics applications such as tracing the motions of a brush moved on a canvas. Most commercial CAD systems provide (limited) functionality for constructing swept solids mostly in the form of a two dimensional cross section moving on a space trajectory transversal to the section. However, current research has shown several approximations of three dimensional shapes moving across one parameter, and even multi-parameter motions. ===Implicit representation=== {{Main|Function representation}} A very general method of defining a set of points ''X'' is to specify a [[Predicate (mathematical logic)|predicate]] that can be evaluated at any point in space. In other words, ''X'' is defined ''implicitly'' to consist of all the points that satisfy the condition specified by the predicate. The simplest form of a predicate is the condition on the sign of a real valued function resulting in the familiar representation of sets by equalities and inequalities. For example, if <math>f= ax + by + cz + d</math> the conditions <math>f(p) =0</math>, <math> f(p) > 0</math>, and <math>f(p) < 0</math> represent, respectively, a plane and two open linear [[Half-space (geometry)|halfspaces]]. More complex functional primitives may be defined by Boolean combinations of simpler predicates. Furthermore, the theory of [[Rvachev function|R-functions]] allow conversions of such representations into a single function inequality for any closed semi analytic set. Such a representation can be converted to a boundary representation using polygonization algorithms, for example, the [[marching cubes]] algorithm. ===Parametric and feature-based modeling=== Features are defined to be parametric shapes associated with ''attributes'' such as intrinsic geometric parameters (length, width, depth etc.), position and orientation, [[geometric tolerance]]s, [[material properties]], and references to other features.<ref name = "Features">{{cite journal |title= Challenges in feature based manufacturing research |journal= Communications of the ACM |volume= 39 |issue= 2 |pages= 77β85 |author= Mantyla, M., Nau, D., and Shah, J.|year= 1996|doi= 10.1145/230798.230808 |s2cid= 3340804 |doi-access= free }}</ref> Features also provide access to related production processes and resource models. Thus, features have a semantically higher level than primitive closed regular sets. Features are generally expected to form a basis for linking CAD with downstream manufacturing applications, and also for organizing [[database]]s for design data reuse. Parametric feature based modeling is frequently combined with constructive binary solid geometry (CSG) to fully describe systems of complex objects in engineering.
Edit summary
(Briefly describe your changes)
By publishing changes, you agree to the
Terms of Use
, and you irrevocably agree to release your contribution under the
CC BY-SA 4.0 License
and the
GFDL
. You agree that a hyperlink or URL is sufficient attribution under the Creative Commons license.
Cancel
Editing help
(opens in new window)