{'fraction_non_alphanumeric': 0.032818435046847304, 'fraction_numerical': 0.010027855153203343, 'mean_word_length': 5.168697282099344, 'pattern_counts': {'":': 0, '<': 0, '<?xml version=': 0, '>': 0, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
Parametric/direct CAD integration

In the history of computer-aided design (CAD), feature-based parametric modeling and boundary representation-based direct modeling are two of the most important CAD paradigms, developed respectively in the late 1980s and the late 2000s. They have complementary advantages and limitations, thereby offering huge potential for improvement towards an integrated CAD modeling scheme. Some believe that their integration will be the key characteristic of next generation CAD software. This paper provides a brief review on current parametric/direct integration approaches. Their basic ideas, advantages, and disadvantages will be discussed. The main result reads that existing integration approaches are far from being completed if seamless parametric/direct integration is desired. It is hoped that, by outlining what has already been made possible and what still remains problematic, more researchers will be attracted to work on this very important research topic of parametric/direct integration.


Introduction
A product is a physical artifact; a product model is a computerized representation of a product. Computer-aided design (CAD) is the use of computers to construct and edit product models. CAD has been the dominant tool used in industry to support engineering practices like modeling [1], analysis [2], optimization [3], manufacturing [4], maintenance [5], inspection [6] and design/processes reuse [7][8][9][10]. The notion of CAD may date back to the 1960s [11][12][13], which arose out of (1) a need to digitally describe products for downstream applications, e.g., numeric control machine tools [14] and (2) a goal to develop a human-computer cooperation system based on product models for solving engineering design problems [15], which may be summarized as human-machine communication.
CAD modeling, in its broadest sense, is concerned with modeling all aspects of a product's information needed to support processes throughout the product's life cycle. These aspects consist primarily of the product's spatial information, augmented with secondary, non-spatial information such as material, hardness, and so forth. In a narrow sense, CAD modeling focuses merely on modeling spatial information, which is sometimes called geometric modeling. This definition of CAD modeling is more commonly used. To date, major CAD modeling schemes may be classified into five categories: wireframe modeling, surface modeling, solid modeling, parametric modeling, and direct modeling.
Wireframe modeling, surface modeling, and solid modeling may be seen as the preliminary stage in CAD development. They focus on the mathematical representation of a product's spatial information. Solid modeling as the last and the most important representation scheme has the distinctive property of representational completeness, which can contribute to automatically answering any possible geometric queries [16]. It began in the 1970s with two competing approaches [17]: constructive solid geometry (CSG) and boundary representation (B-rep). They have respectively motivated parametric modeling in the late 1980s and direct modeling in the late 2000s.
Parametric modeling combines associative modeling and solid modeling to achieve the goal of automatic change propagation. Associative modeling allows specification of associativity between geometric entities in a solid model. A locally made change (taking the form of parameter changes) can then propagate automatically through the associativity network. With automatic change propagation come the benefits of geometry reuse and embedding of engineering knowledge with geometry [14]. There are, however, serious limitations of parametric modeling, including (1) managing modeling history requires considerable expertise, (2) updating models (i.e., regenerating modeling history) is often time-consuming, and (3) editing a model is difficult if the model was designed with an intention that conflicts with the desired changes [18][19][20].
Direct modeling, a very recent CAD modeling paradigm, is often presented as the opposite of parametric modeling. All direct modeling focuses on is to provide flexible model edits and fast model update. This is essentially achieved by discarding the use of associativity and making all geometric entities in a solid model free to change. Typically, users just need to grab, push, and pull the geometric entities of interest so as to make desired changes [21,22]. With this geometry-oriented strategy, users can directly edit the model as they see fit without considering how the model was constructed. This unprecedented model editing flexibility is, however, attained at a high price: without associativity, direct modeling barely supports parametric model edits.
Clearly, parametric and direct modeling have complementary advantages and limitations. Their integration can thus provide the best of both worlds [23,24], and will be one of the key characteristics of the next generation CAD software. Of course, some other directions are also promising, e.g., CAD for 3d printed parts [25][26][27], generative design [28], CAD+AI [29], to name a few. To date, there have been five integration approaches reported by industry and academia. However, none of the approaches meets the need of seamless parametric/direct integration. In what follows, a brief introduction to the basic notions of solid modeling, parametric modeling and direct modeling, and a review on

Dangling Portion
Non-Manifold parametric/direct integration are to be presented.

A brief on solid modeling
As already noted, spatial information has always played a fundamental role in mechanical design; but what exactly does spatial information mean in the domain of mechanical design? It is impossible to have effective CAD modelers unless the answer to this question is made precise. Solid modeling emerged as a response to this need, which was established by Requicha and Voelcker, then at University of Rochester, and Braid and Lang, then in Cambridge [30,31].
A solid is a physical object occupying certain volume in 3D Euclidean space R 3 . A volume is a subset of R 3 , but not all subsets of R 3 are volumes. A subset has to satisfy certain conditions that encapsulate the characteristics of "solidity" to be deemed a volume. A widely accepted set of conditions are given in [32]: a solid is a subset of R 3 that is bounded, closed, regular, and semianalytic, often referred to as a r-set. Let the subset be represented by s ⊂ R 3 . The "bounded" condition means that s must occupy a finite portion of space; the other three conditions require that the boundary between s and R 3 − s is well-behaved, where the operator − is set difference. To be more precise, the "closed" condition means that s contains its boundary, see Fig. 1 for a nonclosed example. The "regular" condition means that the boundary of s does not contain any dangling portions as shown in Fig. 1; mathematically, "regular" means that s equals to the closure of its interior. The "semi-analytic" condition means that the boundary of s is composed of piecewise analytic surfaces (which are surfaces that can be described by analytic functions). These conditions encompass the common attributes of most objects in mechanical design [33]. However, they allow non-manifold models, which are not manufacturable [34]. For this reason, many prefer a solid to be a r-set with a manifold boundary. A boundary is deemed manifold if, for each point on the boundary, there is an open neighborhood that can be continuously deformed to a 2D disk (mathematically, homogeneous to an open disk in R 2 ). Fig. 1 shows a counterexample to manifold boundary.
A solid model is a computerized representation of a solid. To date, several representation schemes for solids have been made available, as reviewed in [32]. Among them, the mainstream schemes are boundary representation (B-rep) and constructive solid geometry (CSG). B-rep, as the name indicates, describes a solid using the boundary between the solid and non-solid. A B-rep solid model is essentially a collection of interconnected faces comprising the solid's boundary (Fig. 2a). There exist various schemes for representing boundary faces. The basic scheme stores the boundary faces' carrying surfaces and connections between them [35]. Connections define how a carrying surface is intersected with other surfaces and trimmed to a bounded surface. Usually, we refer to the carrying surfaces as geometry and the connections as topology. Hereafter, surfaces default to carrying surfaces such as infinite planes; faces default to bounded surfaces. Alternative schemes have also been proposed for the purpose of speeding up specific algorithms [32]. They differ from the basic scheme in the redundant information stored. Typical redundant information takes the form of faces' bounding edges and vertices, as well as connections between them. CSG represents a solid as successive combinations of primitive shapes via (regularized) Boolean operations [36], as shown in Fig. 2b. CSG is often implemented as binary trees where leaves represent primitive shapes, and nodes Boolean operations. Different from B-rep that stores the solid's boundary explicitly, CSG is an implicit representation scheme: it does not store the solid's final spatial information but the construction history. Due to the use of Boolean operations, CSG guarantees model validity [36]; by contrast, B-rep does not have guaranteed validity.

A brief on parametric and direct modeling
When solid modeling-based CAD systems were introduced, it met with resistance from users due to the difficulty of use. It was not until the introduction of parametric modeling-based CAD systems that this resistance began to melt away [37]. The primary benefit of parametric modeling is to allow users to attain solid model variants through editing parameters embedded in the model [18]. The embedding is done by constructing associativity between geometric entities in the model; the associativity often takes the form of unidirectional and/or bidirectional geometric constraints. With the associativity, a parameter change will propagate automatically. Also, the user can design the propagation, the so-called design intent (user-defined admissible modifications of the model geometry). This shifted CAD from an instance modeler to an "electronic master" modeler.
The mainstream implementation approach of parametric modeling involves three major procedures [18,37]: (1) 2D sketching, (2) 3D sweeping, and (3) feature combining. The user defines a planar topology and specifies 2D bidirectional geometric constraints relating geometric entities on the 2D sketch. The 2D sketches are then used as sections for sweeping to be 3D solids, which are called features in most modelers. These features are similar to solid components in CSG. A new 2D sketch plane will be positioned relatively to features already specified by the user via 3D unidirectional geometric constraints. A newly generated feature is combined with preceding features through Boolean operations, which is again similar to CSG. The sequence of performing the above three steps by the user is conventionally referred to as model construction history. When a change is made, the 2D sketches are re-evaluated, then the construction history is replayed, and finally a new solid model is generated.
The construction history will restrict the user to what can be edited and will determine how changes are propagated, thereby defining a model variation space [37]. Flexibility can be said to model edits falling in the space as a simple parameter change can do the job, but cannot be said to those outside the space. Thus, parametric modeling requires careful preplanning about the space. However, many model edits are likely hard to plan in advance, especially for fine model tuning. Making such unplanned model edits would require structural alterations to the construction history, which is very difficult and time-consuming if there is no good understanding of the modeling principles parametric modeling follows and the model's construction history [18]. Updating it is time-consuming due to the complete model regeneration mechanism. All of these could lead to serious productivity issues in scenarios like collaborative design and editing others' designs [18][19][20].
The very recent direct modeling paradigm was proposed to achieve flexible model editing. "Direct" comes from this modeling scheme's main feature: interacting directly with the geometry of the model to make edits. Although initially introduced by industry, the direct modeling notion may be traced back to the local operations developed by the academic community in the 1980s [38][39][40]. Some widely used local operation examples in today's CAD systems are filleting and chamfering. The very local operation that direct modeling stemmed from is the tweaking operation, which is the predecessor of push-pull operations. The essential advance made is: tweaking does not allow any violations to the pre-edit model topology, while push-pulling allows such violations. With this relaxation, direct modeling achieves much improved modeling flexibility, refer to [21,22] for examples. The early version of direct modeling consisted primarily of push-pull operations. The recent version includes more operations, most of which are just specialized push-pull operations such as the make-face-parallel operation. Despite its powerfulness, direct modeling lacks the capability of parametric edits [23,41].

Parametric/direct integration
Some efforts, mostly from industry, have been made to allow users to have both direct and parametric capabilities in a same modeler. To the best of the authors' knowledge, there are five publicly reported integration approaches, as summarized below.

Pseudo-Features
This approach, proposed by industry, allows the user to simulate directmodeling within a history-based parametric modeler. The user can modify models utilizing direct modeling methods (e.g., pushing and pulling faces) or parameter modeling methods. User-specified direct edits will be added to the end of the model's construction history as pseudo-features, and the original history remains exactly as before. Fig. 3 shows an example of modeling a slot in this way (using Siemens NX). The zoomed-in view of the model's history shows clearly that the two Move-Face direct edits are just appended to the end of the history. This approach has been adopted by most CAD vendors. The primary advantage of this approach is that it is very easy to implement.
However, simply adding direct edits to the end of the model's history creates complex modeling history with questionable value to the CAD model. This could mess up the model's parametric information and lead to loss of meaningful parametric controls. Fig. 3 shows an example of this situation. Changing the P10 dimension from 33mm to 68mm leads to a failed history regeneration, as shown in the bottom-right subfigure. The perfect solution to this problem is not adding direct edits to the end of model history, but transforming them into appropriate redefinition of relevant features. For this example, we should modify the 2D sketch, from a rectangular slot to a slanted slot.

Dual Modes
This approach, proposed by industry as well, allows users to switch between direct and parametric modeling modes in a same modeler. When in the direct modeling mode, the user can modify geometries utilizing direct modeling techniques (e.g., pushing and pulling faces). When in the parametric modeling mode, the user can modify parameters using feature modeling techniques. Its implementation is very simple: when switching from the parametric mode to the direct mode, the parametric model is downgraded to a dumb B-rep model; then direct modeling becomes applicable. However, it cannot recover any parametrics when switching back from the direct mode to the parametric mode [42].

Synchronous Technology
This approach, again, proposed by industry (or more specifically, Siemens NX) can be viewed as an improvement to the above method. Instead of converting the whole parametric model to a B-rep model, it does a partial conversion. Features are separated into two types: direct-edit features and ordinary features. Only direct-edit features are converted to a B-rep model. Also, this approach places the direct-edit features before the ordinary features in the model history. The user can move an ordinary feature to the direct-edit feature set so to carry out direct modeling operations, but when one of those features is moved from the ordinary feature set to the direct-edit feature set, all ordinary features created prior to the feature being moved must also be moved (done automatically in the background) [43]. Clearly, this causes unnecessary loss of meaningful parametrics.
It should be noted that there was a time when synchronous technology also referred to 3D variational modeling [44,45], but this interpretation appears not have been implemented in the current Siemens NX software package.

Operation Translating
This approach, proposed by both academia and industry (Autodesk), translates direct edits into operations of parameter tuning and/or order rearrangement of the features already presented in the model history [24,46,47]. This way of working may help but cannot solve the problem altogether because not all direct edits are achievable through those feature operations. To make matters worse, feature parameter tuning for a given direct edit (if achievable) is usually not unique [23].

Constrained Direct Modeling
This approach allows users to apply direct edits while keeping all geometric constraints of the model in the background, through efficient geometric constraint solving [47]. The geometric constraints are applied directly to the boundary elements of a solid model (faces, edges, vertices). And those constraints are generated by automatic constraint recognition algorithms. The disadvantage of this method is that the recognized geometric constraints usually differ from the original design intent. Also, solving 3D geometric constraint systems remains an open issue in its own right [48,49]. Even worse, this method in its essence downgrades direct modeling to merely a graphical user interface (GUI) tool for making parametric modifications.

Conclusion
It can be concluded from the above review that, at the level of individual modeling techniques, substantial progress has been made for both parametric and direct modeling, but at the integration level, no satisfactory solution has been made available now if seamless parametric/direct integration is desired. Overall, current approaches/techniques attempting to address the integration problem are still at the early stage, and they all have inherent drawbacks.
Their failed attempts to seamlessly integrate parametric and direct modeling is due to the focus on indirect, conversion-based and easy-to-implement integration strategies, rather than working on strategies that can directly solve the challenges of parametric/direct integration. The primary challenge of integrating parametric and direct modeling lies in maintaining information consistency in a CAD model undergoing parametric/direct edits [50]. A CAD model consists of information on topology, geometry, and constraints. Parametric and direct edits work at different layers of information, i.e., the constraint layer and the geometry layer, respectively. Changes at a layer cannot be reflected in others by current model representation schemes. As a result, information inconsistencies are generated, and unpredictable modeling behavior and invalid models, is caused.