Solid modeling: Difference between revisions

Content deleted Content added
Tags: nowiki added Visual edit
Bender the Bot (talk | contribs)
 
(37 intermediate revisions by 32 users not shown)
Line 1:
{{Short description|Set of principles for modeling solid geometry}}
{{Technical|date=January 2021}}
{{Use dmy dates|date=February 2020}}
[[File:Jack-in-cube solid model, light background.gif|thumb|200px|right|The geometry in solid modeling is fully described in 3{{nbhyph}}D space; objects can be viewed from any angle.]]
 
[[File:Jack-in-cube solid model, light background.gif|thumb|200px|right|The geometry in solid modeling is fully described in 3{{nbhyph}}D space; objects can be viewed from any angle.]]
'''Solid modeling''' (or '''solid modelling''') is a consistent set of principles for mathematical and computer modeling of three-dimensional ''[[solid (mathematics)|solids]]''. Solid modeling is distinguished from related areas of [[geometric modeling]] and [[computer graphics]], such as ''[[3D modeling]]'', by its emphasis on physical fidelity.<ref name = "Solid Modeling">{{cite book |url=http://sal-cnc.me.wisc.edu/index.php?option=com_remository&Itemid=143&func=fileinfo&id=53 |title= Solid Modeling|author= Shapiro, Vadim |year= 2001 |publisher= Elsevier |access-date=20 April 2010}}</ref> Together, the principles of geometric and solid modeling form the foundation of [[3D modeling|3D]]-[[computer-aided design]] and in general support the creation, exchange, visualization, animation, interrogation, and annotation of digital models of physical objects.
 
'''Solid modeling''' (or '''solid modelling''') is a consistent set of principles for mathematical and computer modeling of three-dimensional shapes ''[[solid (mathematics)|(solids)]]''. Solid modeling is distinguished fromwithin the broader related areas of [[geometric modeling]] and [[computer graphics]], such as ''[[3D modeling]]'', by its emphasis on physical fidelity.<ref name = "Solid Modeling">{{cite book |url=http://sal-cnc.me.wisc.edu/index.php?option=com_remository&Itemid=143&func=fileinfo&id=53 |title= Solid Modeling|author= Shapiro, Vadim |year= 2001 |publisher= Elsevier |access-date=20 April 2010}}</ref> Together, the principles of geometric and solid modeling form the foundation of [[3D modeling|3D]]-[[computer-aided design]], and in general, support the creation, exchange, visualization, animation, interrogation, and annotation of digital models of physical objects.
 
== Overview ==
 
The use of solid modeling techniques allows for the automation process of several difficult engineering calculations that are carried out as a part of the design process. Simulation, planning, and verification of processes such as [[machining]] and [[Assembly line|assembly]] were one of the main catalysts for the development of solid modeling. More recently, the range of supported manufacturing applications has been greatly expanded to include [[sheet metal]] [[manufacturing]], [[injection molding]], [[welding]], [[Piping|pipe]] routing, etc. Beyond traditional manufacturing, solid modeling techniques serve as the foundation for [[rapid prototyping]], digital data archival and [[reverse engineering]] by reconstructing solids from sampled points on physical objects, mechanical analysis using [[finite elements]], [[motion planning]] and NC path verification, [[Kinematics|kinematic]] and [[Dynamics (physics)|dynamic analysis]] of [[Mechanism (engineering)|mechanisms]], and so on. A central problem in all these applications is the ability to effectively represent and manipulate three-dimensional geometry in a fashion that is consistent with the physical behavior of real artifacts. Solid modeling research and development has effectively addressed many of these issues, and continues to be a central focus of [[computer-aided engineering]].
 
== Mathematical foundations ==
The notion of solid modeling as practised today relies on the specific need for informational completeness in mechanical geometric modeling systems, in the sense that any computer model should support all geometric queries that may be asked of its corresponding physical object. The requirement implicitly recognizes the possibility of several computer representations of the same physical object as long as any two such representations are consistent. It is impossible to computationally verify informational completeness of a representation unless the notion of a physical object is defined in terms of computable mathematical properties and independent of any particular representation. Such reasoning led to the development of the modeling paradigm that has shaped the field of solid modeling as we know it today.<ref name = "First Principles">{{cite journal |title= Solid Modeling: Current Status and Research Directions|journal = IEEE Computer Graphics and Applications|volume = 3|issue = 7|pages = 25–37|author1=Requicha, A.A.G |author2=Voelcker, H. |name-list-style=amp |year= 1983 |publisher= IEEE Computer Graphics |doi= 10.1109/MCG.1983.263271|s2cid = 14462567}}</ref>
 
All manufactured components have finite size and well behaved [[Boundary (topology)|boundaries]], so initially the focus was on mathematically modeling rigid parts made of homogeneous [[isotropic]] material that could be added or removed. These postulated properties can be translated into properties of ''[[Region (geometry)|regions]]'', subsets of three-dimensional [[Euclidean space]]. The two common approaches to define "solidity" rely on ''[[point-set topology]]'' and ''[[algebraic topology]]'' respectively. Both models specify how solids can be built from simple pieces or cells.
 
[[File:Regularize1.png|thumb|right|450px|Regularization of a 2-d2D set by taking the closure of its interior]]
 
According to the continuum point-set model of solidity, all the points of any ''X'' ⊂ <supmath>\mathbb{R}^3</supmath> can be classified according to their ''[[Neighborhood (topology)|neighborhoods]]'' with respect to ''X'' as ''[[Interior (topology)|interior]]'', ''[[Exterior (topology)|exterior]]'', or ''[[Boundary (topology)|boundary]]'' points. Assuming <supmath>\mathbb{R}^3</supmath> is endowed with the typical [[Euclidean metric]], a neighborhood of a point ''p'' ∈''X'' takes the form of an [[Ball (mathematics)|open ball]]. For ''X'' to be considered solid, every neighborhood of any ''p'' ∈''X'' must be consistently three dimensional; points with lower-dimensional neighborhoods indicate a lack of solidity. Dimensional homogeneity of neighborhoods is guaranteed for the class of '''closed regular sets''', defined as sets equal to the ''[[Closure (topology)|closure]]'' of their interior. Any ''X'' ⊂ <supmath>\mathbb{R}^3</supmath> can be turned into a closed regular set or "regularized" by taking the closure of its interior, and thus the modeling space of solids is mathematically defined to be the space of closed regular subsets of <supmath>\mathbb{R}^3</supmath> (by the [[Heine–Borel theorem|Heine-Borel theorem]] it is implied that all solids are [[Compact space|compact]] sets). In addition, solids are required to be closed under the Boolean operations of set union, intersection, and difference (to guarantee solidity after material addition and removal). Applying the standard Boolean operations to closed regular sets may not produce a closed regular set, but this problem can be solved by regularizing the result of applying the standard Boolean operations.<ref name = "Regularized operations">{{citation|doi=10.1016/0010-4485(80)90025-1|title=Closure of Boolean operations on geometric entities|journal=Computer-Aided Design|volume=12|issue=5|pages=219–220|year=1980|last1=Tilove|first1=R.B.|last2=Requicha|first2=A.A.G.}}</ref> The regularized set operations are denoted ∪<sup>∗</sup>, ∩<sup>∗</sup>, and −<sup>∗</sup>.
 
The combinatorial characterization of a set ''X'' ⊂ <supmath>\mathbb{R}^3</supmath> as a solid involves representing ''X'' as an orientable [[CW complex|cell complex]] so that the cells provide finite spatial addresses for points in an otherwise innumerable continuum.<ref name="Solid Modeling"/> The class of [[semi-analytic]] [[Bounded set|bounded]] subsets of Euclidean space is closed under Boolean operations (standard and regularized) and exhibits the additional property that every semi-analytic set can be [[Stratification (mathematics)|stratified]] into a collection of disjoint cells of dimensions 0,1,2,3. A [[Triangulation (topology)|triangulation]] of a semi-analytic set into a collection of points, [[line segment]]s, triangular [[face (geometry)|faces]], and [[tetrahedral]] elements is an example of a stratification that is commonly used. The combinatorial model of solidity is then summarized by saying that in addition to being semi-analytic bounded subsets, solids are three-dimensional [[topological polyhedra]], specifically three-dimensional orientable manifolds with boundary.<ref name = "Representations">{{cite journal |title= Representations for Rigid Solids: Theory, Methods, and Systems|journal= ACM Computing Surveys|volume= 12|issue= 4|pages= 437–464|author= Requicha, A.A.G. |year= 1980 |doi= 10.1145/356827.356833|s2cid= 207568300}}</ref> In particular this implies the [[Euler characteristic]] of the combinatorial boundary<ref name = "Hatcher">{{cite book |url=httphttps://wwwpi.math.cornell.edu/~hatcher/AT/ATpage.html |title= Algebraic Topology|author= Hatcher, A. |year= 2002 |publisher= Cambridge University Press |access-date=20 April 2010}}</ref> of the polyhedron is 2. The combinatorial manifold model of solidity also guarantees the boundary of a solid separates space into exactly two components as a consequence of the [[Jordan curve theorem|Jordan-Brouwer]] theorem, thus eliminating sets with non-manifold neighborhoods that are deemed impossible to manufacture.
 
The point-set and combinatorial models of solids are entirely consistent with each other, can be used interchangeably, relying on continuum or combinatorial properties as needed, and can be extended to ''n'' dimensions. The key property that facilitates this consistency is that the class of closed regular subsets of <supmath>''\mathbb{R}^n''</supmath> coincides precisely with homogeneously ''n''-dimensional topological polyhedra. Therefore, every ''n''-dimensional solid may be unambiguously represented by its boundary and the boundary has the combinatorial structure of an ''n−1''-dimensional polyhedron having homogeneously ''n−1''-dimensional neighborhoods.
 
==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 booleanBoolean 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 common 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===
Line 34 ⟶ 36:
 
===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 3d3D [[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===
Line 41 ⟶ 43:
===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 newsjournal |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===
Line 48 ⟶ 50:
===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 booleanBoolean 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.
 
== History of solid modelers ==
{{Unreferenced section|date=January 2012}}
{{AdvertPromotional|section|date=June 2015}}
The historical development of solid modelers has to be seen in context of the whole [[Computer-aided design|history of CAD]], the key milestones being the development of the research system BUILD followed by its commercial spin-off [[Romulus (b-rep solid modeler)|Romulus]] which went on to influence the development of [[Parasolid]], [[ACIS]] and [[Solid Modeling Solutions]]. One of the first CAD developers in the [[Commonwealth of Independent States]] (CIS), ASCON began internal development of its own solid modeler in the 1990s.<ref>{{cite journal
|last = Yares
Line 83 ⟶ 85:
{{Main|Computer-aided design}}
{{More citations needed section|date=January 2012}}
The modeling of solids is only the minimum requirement of a [[Computer-aided design#Capabilities|CAD system's capabilities]]. Solid modelers have become commonplace in engineering departments in the last ten years{{When|date=December 2011}} due to faster computers and competitive software pricing. Solid modeling software creates a virtual 3D representation of components for machine design and analysis.<ref name="LaCourse Handbook">{{cite book|last=LaCourse|first=Donald|title=Handbook of Solid Modeling|publisher=McGraw Hill|year=1995|pages=2.5|chapter=2|isbn=978-0-07-035788-4}}</ref> A typical [[GUI|graphical user interface]] includes programmable macros, keyboard shortcuts and dynamic model manipulation. The ability to dynamically re-orient the model, in real-time shaded 3-D, is emphasized and helps the designer maintain a mental 3-D image.
 
A solid part model generally consists of a group of features, added one at a time, until the model is complete. Engineering solid models are built mostly with sketcher-based features; 2-D sketches that are swept along a path to become 3-D. These may be cuts, or extrusions for example. Design work on components is usually done within the context of the whole product using [[assembly modelling|assembly modeling]] methods. An assembly model incorporates references to individual part models that comprise the product.<ref name="LaCourse Handbook 11.3">{{cite book|last=LaCourse|first=Donald|title=Handbook of Solid Modeling|publisher=McGraw Hill|year=1995|pages=111.2|chapter=11|isbn=978-0-07-035788-4}}</ref>
Line 96 ⟶ 98:
Example: A shaft is created by extruding a circle 100&nbsp;mm. A hub is assembled to the end of the shaft. Later, the shaft is modified to be 200&nbsp;mm long (click on the shaft, select the length dimension, modify to 200). When the model is updated the shaft will be 200&nbsp;mm long, the hub will relocate to the end of the shaft to which it was assembled, and the engineering drawings and mass properties will reflect all changes automatically.
 
Related to parameters, but slightly different, are [[Constraint (computer-aided design)|constraints]]. Constraints are relationships between entities that make up a particular shape. For a window, the sides might be defined as being parallel, and of the same length. Parametric modeling is obvious and intuitive. But for the first three decades of CAD this was not the case. Modification meant re-draw, or add a new cut or protrusion on top of old ones. Dimensions on engineering drawings were ''created'', instead of ''shown''. Parametric modeling is very powerful, but requires more skill in model creation. A complicated model for an [[injection molding|injection molded]] part may have a thousand features, and modifying an early feature may cause later features to fail. Skillfully created parametric models are easier to maintain and modify. Parametric modeling also lends itself to data re-use. A whole family of [[Screw|capscrewcapscrews]]<nowiki/>s can be contained in one model, for example.
 
=== Medical solid modeling ===
Line 115 ⟶ 117:
===Engineering===
{{Unreferenced section|date=January 2012}}
{{Main|Computer-aided engineering}}
[[File:Cobalt Properties window.png|frame|right|484px|alt=Property window outlining the mass properties of a model in [[Cobalt (CAD program)|Cobalt]] | Mass properties window of a model in [[Cobalt (CAD program)|Cobalt]] ]]
Because CAD programs running on computers "understand" the true geometry comprising complex shapes, many attributes of/for a 3{{nbhyph}}D solid, such as its center of gravity, volume, and mass, can be quickly calculated. For instance, the cube with rounded edges shown at the top of this article measures 8.4&nbsp;mm from flat to flat. Despite its many radii and the shallow pyramid on each of its six faces, its properties are readily calculated for the designer, as shown in the screenshot at right.
 
== See also ==
 
* [[Wireframe modeling|Wire frame modelling]]
* [[Free-surface modelling]]
* [[Computational geometry]]
* [[Computer graphics]]
* [[Engineering drawing]]
* Euler [[boundary representation]]
* [[List of CAx companies]]
* [[PLaSM]] – Programming Language of Solid Modeling.
* [[Technical drawing]]
Line 138 ⟶ 143:
[[Category:Computer-aided design]]
[[Category:Euclidean solid geometry]]
 
[[mk:Solid Modeling]]