## 4 Requirements and Design Features for Graphic Interactive CAD Configuration
temporarily relax or transform driving parameters into driven ones or the possibility to determine, e.g., the position of a drag point by measuring its distances from the assembly origin and write this to the corresponding parameter. Thereby, it is necessary to abstract the control element position either to a given increment or restrict its movement by using a defined grid. Regarding processing components in an assembly document, it is necessary to control the visibility and suppression state of a component, to add, replace, and delete them. A special case is the addition of components from a part library such as the Inventor content center. When these are designed as part families controlled by a table or spreadsheet, addressing the corresponding variant may require a different query. Newly introduced components usually need to be constrained in the assembly to avoid unexpected behavior when components are moved. This involves two actions: first to declare the reference for mating and second the addition of the constraints themselves. With respect to the reference component, alternative ways of implementation include selecting the component by clicking in the 3D view or using the feature tree of the CAD system, selecting the reference from a list with the marker IDs or to query them from the user by input boxes. Automatic constraining can be performed via automatically adding constraints between the new component and the assembly origin, using the IDs from geometric elements such as face IDs (note that many parametric CAD system use a chaotic numbering of face IDs, which makes this option less convenient) or using predefined mate features like in the case study. \begin{table}
\begin{tabular}{c c c} \hline \hline
**Requirement** & **Design Feature** & **Implementation Variants** \\ \hline \multirow{5}{*}{Driving parameters by geometry change} & & Availability of driving and driven parameters and relating both by equations \\ \cline{2-3}  & Pass control element position or state to skeleton or component parameters & Possibility to relax/transform driving parameters into driven parameters temporarily \\ \cline{2-3}  & & Possibility to automatically determine or measure the position of a component related to the assembly origin and passing this automatically to driving parameters \\ \hline \multirow{5}{*}{Automatically adding assembly components} & Add component from document ID & Add by drag and drop from file system \\ \cline{2-3}  & Add library component by ID & Add component by CAD system library \\ \cline{2-3}  & & Add variant from part family \\ \hline \multirow{5}{*}{Automatically position newly added assembly components} & Declare reference component for mating & Select by pick (geometry or feature tree) \\ \cline{2-3}  & & Select by name (list containing marker IDs) \\ \cline{2-3}  & & Query name from user by input box \\ \cline{2-3}  & & Constrain component using assembly origin and reference coordinates \\ \cline{2-3}  & & Constrain component using IDs of geometric elements \\ \cline{2-3}  & & Constrain components using predefined mate features \\ \hline \multirow{5}{*}{Coupling of external parameter control} & Integrate external spreadsheet application & Link external spreadsheet file with assembly document \\ \cline{2-3}  & & Embed spreadsheet file with assembly document \\ \cline{1-1} \cline{2-3}  & & Integrate CAD remote control & Pass inputs from external application to the CAD system \\ \hline \hline \end{tabular}
\end{table} 
Table 2: Functional requirements and design features for interactive control elements. Coupling an external parameter control can involve, e.g., a spreadsheet application which needs to be linked or embedded with the assembly document or using an external application as remote control for the CAD system. When using spreadsheets as external parameter control, it is important to have the ability to retrieve and change cell values in addition to basic functions such as opening, saving, and closing spreadsheet documents.