Methodology for analysing digitised geometry.
It is the product's shape that interacts with the user. The shape is usually named. It can be a mathematical or a very specific name or names that come from animal world or are taken from well-known designs. We are talking about semantic value that is tightly connected to the shape.
But there are still shapes without names. Our goal is to research the nature of these surfaces and the so-called characteristic curves. Characteristic curves define the object's main shape and its expression. Stylists define these curves in their sketches.
There are two main ways of using characteristic curves. The first is the pure styling purpose and merely serves the aesthetic impression and the second is the feature purpose that serves both--the necessary practical purpose and aesthetics. This practical purpose can be construction, aerodynamics, ergonomics or economics.
In our study, we have proposed a procedure in Grasshopper[R]. Our procedure calculates curvature of analysed curve that can be drawn anywhere on the object. We have proposed several ways for analysing geometry. Various geometries were analysed, but only some illustrative objects are presented in this paper.
2. Materials and Methods
We are operating with geometry that mathematically describes real-world objects. Therefore approximation and simplification is needed for successful work. We can summarize that we will mainly use fair curves: a curve is fair if its curvature plot is continuous and consist of only a few monotone pieces (Farin, 2002).
Methods for analysing curves aesthetic impression have already been developed. Those curves are parts of logarithmic graphs. Researchers observed graph curvature in dependence of path--K(s) and K-vector in logarithmic curvature histogram (LCH) (Harada et al., 1999). Researchers (Kanaya et al., 2007) used this method to determine objects' impression. They found out that the Japanese observed objects have convergent impression and European objects divergent impression. Harada defined aesthetic curve as a curve whose LCH is a straight line. On the basis of LCHs he proposed five general classes for aesthetic curves: minus, zero, plus, plus-minus and minus-plus (Harada et al., 1999). Other authors also have observed and analysed spatial aesthetic curve segments (Yoshida, et al., 2009). They created graphs K(s) and LCHs of those curves.
Author Kanaya provided CAD system which can feel the same impression on curved surfaces like human designers can. On the base of LCH he proposed three types of surfaces by human impression: convergent, divergent and neutral (Kanaya et al., 2007).
Some leading researchers participated in the project FIORES II (Giannini, et al., 2004), (Giannini, et al., 2006), (Podehl, 2002). They proposed several terms for styling properties and features in CAID. By means of questions and observation of communication between stylists and engineers they built a list of terms that describes styling properties; these are:
--Acceleration (Giannini et al., 2004) (Giannini et al., 2006), (Podehl, 2002).
All researchers do not use all terms. Anyway, they agree this list is not complete or perfect. Some of the terms are similar or rather the same characteristic planar curve can be described with several terms (Giannini et al., 2006).
Grasshopper (GH) is a graphical algorithm editor tightly integrated with Rhino's 3D modelling tools (Scott Davidson, 2013), developed by David Rutten at Robert McNeel & Associates. Grasshopper runs within the Rhinoceros 3D CAD application. Procedures are created by dragging components on a canvas. outputs of these components are then connected to the inputs of subsequent components. Grasshopper is mainly used to build generative algorithms. Many of Grasshopper's components create 3D geometry. Procedures may also contain other types of algorithms, including numeric, textual, audio-visual or haptic applications (Wikipedia, 2013). Fig. 1 shows GH's procedure; on the left drawn geometry in RH can be seen.
The graphical interface of GH offers many mathematical tools. These can be logically connected; therefore we can create a procedure that computes points, which represent graphs of curvature--K(s). We can import any geometry, and connect it into the procedure to get an appropriate graph. Both, geometry and graph can be exported in many computer formats for further use. We will take these mathematical tools as they are and will not research how they get the results. We have confirmed procedures' correctness as seen on Fig. 2. Curves presented by Yoshida were drawn over the background image (Yoshida et al., 2010) with NURBS. Graph K(s) was calculated, using the GH procedure. LCHs are surrounded by rectangles. In our procedure we implemented scale sliders to be able to move and scale all calculated graphs and fit the result to the background image.
An existing geometry can be described as a 3D mesh or as NURBS surface. We can also observe overdrawn characteristic curves. So first we have to define how to analyse what kind of geometry we are dealing with. The workflow is shown in Fig. 3.
Input parameters depend on the type of analysis geometry and are discussed in the chapter Theory.
In Fig. 4 the input curve is connected to Length, Curvature and Divide Curve operators.
Several classifications of specific geometries were already done by some other researchers, e.g. (Poldermann, 1995), who seem to work especially with sheet metal design and do not attach our work. (Cheutet et al., 2005) made classification of fully freeform surfaces. This classification took in view progress of logarithmic histogram of curvature which was used on aesthetic curves by (Yoshida & Saito, 2006). (He et al., 2011) presented a new classification and parametric representation of freeform features. K(s) graphs show the curvature in dependence of path. Planar curve is given by Cartesian parametric equations:
x = x(t) and y = y(t) (1)
Then the curvature K, sometimes named the "first curvature", is defined by:
K = d[empty set]/ds = [d[empty set]/dt]/[ds/dt] = [d[empty set]/dt]/[square root of ([(dx/dt).sup.2] + [(dy/dt).sup.2])] = [d[empty set]/dt]/[square root of ([x'.sup.2] + [y'.sup.2])] (2)
where [empty set] is the tangential angle and s is the arc length. With some improvements we can write:
K = [x'y" - y'y"]/[([x'.sup.2] + [y'.sup.2]).sup.3/2] (3)
For two dimensional curve in the form, the equation of curvature becomes:
K = [[d.sup.2]y/d[x.sup.2]]/[(1 + [(dy/dx).sup.2]).sup.3/2] (4)
With considered circles that are tangent to the curve at given point:
x = [rho] cos t (5)
y = [rho] sin t (6)
the definition of curvature of surface curve equals:
K = 1/[rho] (7)
(Farin G., 2002), (WolframMathWorld, 2013-a), (Piegl & Tiller 1997).
LCH shows dependence log ([rho][absolute value of (ds/d[rho])]) from (log[rho]). Definition of LCHs, which was derived from the linearity of LCH, and works with aesthetic curves, is:
log ([rho][ds/d[rho]]) = [alpha] log [rho] + c (8)
(Yoshida & Saito, 2006).
3.1 Overdrawn Curve
The easiest way to analyse geometry is to overdraw the curve. A curve can be as accurate as needed. We can overdraw it by hand or automatically. A new curve shall be of proper degree and shall describe the main shape of the object as shown in Fig. 5. Irregularities from scanned mesh should be correctly smoothed.
An overdrawn curve shows main characteristic of the object and we get it from side, front, rear or top of the object. Rotated planes of views were rarely needed. We get the B-spline, which can be written as:
C(t) = [[summation].sup.n.sub.i = 0] [P.sub.i][N.sub.i,p](t) (9)
where are control points and is basis function (WolframMathWorld, 2013-b), (Piegl & Tiller 1997). This curve is analysed in the GH procedure later on.
3.2 Mesh Intersection
If mesh is clean, without any bulges or holes, we can use it as it is for further analysis. Otherwise we have to clean that mesh as seen in Fig. 6.
Two meshes were imported in the procedure for mesh intersection as shown in Fig. 7 in INPUT box on the left bottom. On the intersection we get polyline, interpolated in curve, which gets input for the rest of the procedure. This part of the procedure is useful if we have mesh objects like a 3D scan. The shape resulting graphs do not depend from the position and the scale of the 3D object. Therefore, interaction can be defined for two surfaces. We simply add a proper mesh for the intersection. This can be a simple plane or any other geometry. It is necessary to adjust a polyline with the reduce tool. This is later divided with points. Through these points a curve is interpolated and finally fitted. Parameters can be adjusted, and we have fitted the curve from 0 to 0.1.
A mesh intersection has a polyline as a result, in this case a two dimensional, as shown in Fig. 8.
A polyline has to be smoothed first. Then we have to interpolate a curve through this polyline. There is usually some smoothing needed as GH tool in Fig. 9 shows.
Tools Polyline Smoothing and Fit Curve are used for preparation of an intersected curve. Therefore mesh intersection should be used with care. A too rough mesh can cause an unclean charts flow. The best value is at 0.5. We adjust these values if irregularities appear on resulting graphs. even with changed parameters, the main course of flowchart does not change.
3.3 Projected Curve
A curve can be projected on a mesh or on any BREP (boundary representation) geometry. This part of procedure is shown in Fig. 10. By this means, we get curve for further analysis.
3.4 NURBS Surface
NURBS surface can be taken from the original CAD model or it can be reverse engineered out of a 3D scan. We usually do not have problems with original surfaces. on the other hand, the reverse engineered surfaces may contain irregularities that were scanned from real object, as Fig. 6 shows, where on the left is original scanned mesh and on the right the cleaned mesh. The cleaned surface can be then reverse engineered, Fig.11.
3.5 Series of curves
All hitherto listed types of analysis apply only one curve. With some improvements on the GH procedure, a series of curves can be used as seen in Fig. 12. Here we are able to change the input parameters and the number of points on the surface. the procedure does not calculate all the values for every partial piece of the surface, but rather prescribes the number of points in a row and a column. only at these points, K(s) and LCH are calculated.
In Tab. 1 several procedure operators, used in our GH procedure are shown.
Fig. 13 shows the curvature operator which obtains positions of dividing points on the curve, and the curve itself. Then the dividing points are drawn, lengths of curvature vectors are calculated and circles with their centres are calculated. These circles have dimensions and therefore the whole K(s) graph depends on the size of the curve.
We get curvature K and path s. These two parameters are needed for the K(s) graph. To be able to calculate LCH, it is necessary to use lists and its operations: Cull (remove) indexed element from the list, then subtraction of two lists. We remove the last element from this list to get dr. With Division ds/dr can be calculated. With further multiplication and logarithmations all calculations can be done.
Different output parameters are shown in Fig. 14. For K(s) we have drawn a polyline, which can be smoothed. Box and sphere are added to identify which point on the K(s) graph belongs to the point on the curve. For LCH points are drawn. Multiplication operators are used to resize resulting graphs. For now we do not observe numerical values of these graphs but merely their shapes. For the numerical evaluation we have normalized the input curve to get the same sizes of curves. Normalization means we can resize any geometry to the same size. After that, they can be compared.
5. Results and Discussion
We have tested procedure analysis on several shapes. Some of them were created with 3D Rhinoceros, others were 3D scanned. On Fig. 2 is shown that our results coincide with the results of (Yoshida et al., 2010). On the basis of some other tests, we can confirm the correctness of our procedure.
Fig. 15 shows some basic shapes: circle, ellipse, rectangle and parabola. Our procedure in GH reports an error at the rectangle, because of the infinite radius at the straight lines. A circle has only one radius and other shapes show the curvature changing over the curve.
We found out that for the clearest results it is best to analyse only one curve. So, from any type of geometry we try to get the most notable curve that defines the surface--the so-called characteristic curve already described by other researchers (Giannini et al., 2004), (Giannini et al., 2006), (Podehl, 2002). They have proposed definitions for several characteristic curves and curvature plot of the accelerated curve. We can easily draw plots with our procedure on these curves.
5.1 Computer Mouse Analysis
We used 3D scans of a human hand and a computer mouse from our base of scans. All objects were 3D scanned with 3D scanning system Gom Atos II 400. In this case, the middle measuring volume lenses were used with the following specifications: 350 x 280 x 280 mm and measuring point distance 0.27 mm. Atos is very precise and generally used for scanning inanimate solid objects. So the hand was first mould in silicone and then in plaster. The plaster cast was then 3D scanned. We oriented it like if using mouse in reality, Fig. 16.
The cut planes were created to produce section cuts on a thumb and a mouse shown in Fig. 17. So K(s) graph can be calculated with GH procedure as Fig. 18 shows.
As the results in Fig. 18 show, the curvatures of both graphs are similar in the middle area. That means that the cut-out on the mouse should be similar to the thumb. This is a logical conclusion and shows connection between our procedure and the real life solution in Fig. 19.
It is not a perfect fit for this thumb, because it is made for a wide range of users. It also shows wider deviations at the beginning and the end of the section cut. That comes from completion of surfaces that should not be too sharp. For a perfect fit, we should adjust the cut-out. In practice, this would be too expensive for such a product; with this illustrative example we just wanted to show the practical use of this methodology.
5.2 Human Nose Analysis
In Fig. 20, the position of the cut plane that goes through the middle of the nose is shown. This plane starts where the nose switches to forehead and ends where the curve on the nose starts to bend down to the mouth.
We took eight scans of human head and prepared cutting planes. one of the scans was Michelangelo's David; more precisely, his copy. Fig. 21 shows the results of all analysed scans. each scan is marked with initials. David is marked with DD. K(s) shows waved curve. If David presents classic aesthetic body, let us say it is a reference. Four other noses have similar graphs. So with proper limits we will be able to say who has aesthetic perfect nose and who does not--in relationship to classical canon/criterion. The results could be used as a helpful tool, for instance in consultations, related to aesthetic surgery.
5.3 Car Models Analysis
When analysing car models, we got strange K(s) graphs. For example, the characteristic curve on the roof has a kink as shown in Fig. 23. This can be explained with imprecise modelling as we found out on closer look at roof geometry. Both cars in Fig. 22 were downloaded from the Internet merely for quick comparison and cannot be used for serious research. Hereinafter we will use our base of exact scans.
Basic procedure in GH is shown in Fig. 24. Depending on our needs, we can add procedure elements at the start to get proper geometry data--the characteristic curve.
Fig. 24 shows complexity of the procedure. This is a disadvantage of GH. More complex procedure means more complex structure. But with appropriate arrangement it can be managed. We have input parameters that can be manipulated and main output parameters that can be exported as 3D graphics in rhinoceros or as numerical results in MS Excel.
The right side of the Fig. 25 shows the K(s) graph with a ball on the i-th point. This i-th point is also marked on the ellipsoid. These two objects can be synchronously moved along the path s. Consequently, we can observe a point on an object and its corresponding value on K(s).
6. Shape Classes
According to results of the researches provided by the project FIORES, we propose the framework of the following shape classes:
These classes can include surfaces and curves. convex/concave surface has typical K(s) graph procedure from line to convex curve. The line presents radius and other graphs the rest. They should be symmetrical within limits. An accelerated surface has falling K(s), a decelerated one has a growing graph. An organic surface has very irregular and distorted K(s) graph. A technical surface K(s) has horizontal lines and GH procedure usually produces errors because of straight lines that have infinite curvature. Solid/Slim describes surfaces that have ratio of their bounding box within predicted limits. Sharp/Soft indicates connection of surfaces and graphs that are also sharp or soft.
Recognizing characteristic surfaces is crucial in reverse engineering. Any complex shape can be disassembled into basic characteristic shapes and their surface properties could be determined.
We wanted to classify characteristic surfaces, but we realized that curve classification has to be done first because all known classifications are unsatisfactory.
Therefore, we have introduced the GH procedure for surfaces analysis. GH is a very flexible tool, useful for developing methodology where deep knowledge in mathematics is unnecessary, but it is possible to solve complex problems anyway.
We have tried to use series of curves for analysis as author Kanaya did (Kanaya et al., 2007). But distorted points were presented K(s) graph and LCH. Therefore, we have decided to use merely K(s) on just one curve. We have proposed a classification that conforms to previous researches, (Giannini et al., 2004). We still need to reaffirm it in the future work.
The analyses and methodology, we have been developing and are presented in this publication, can be estimated as very promising. They can be used for the purposes of digital geometry analysis and consequently for more efficient and precise industrial design for a wide variety of objects. It is also possible to analyse similarities of two shapes and determine whether they are compatible.
In our further studies and research work we intend to develop further the methodology for characterisation of shape classes using other illustrative examples from our rich database of digitised objects. As a result, we want to introduce a similar classification model as it already exists in the colour theory.
Cheutet, V., Catalano, C. E., Pernot, J. P., Falcidieno, B., Giannini, F., & Leon, J. C. (2005). 3D sketching for aesthetic design using fully free-form deformation features. Computers & Graphics, 29(6), 916-930. doi:10.1016/j.cag.2005.09.009
Farin G. (2002). Curves and Surfaces for CAGD:A Practical Guide, Morgan Kaufmann, San Francisco, CA, USA
Giannini, F., Monti, M., & Podehl, G. (2004). Styling properties and features in computer aided industrial design. Computer-Aided Design and Applications, 1(1-4), 321-330. Retrieved from http://puma.isti.cnr.it/linkdoc.php?icode=2004-A0 005&authority=cnr.imati.ge&collection=cnr.imati&langver=en
Giannini, F., Monti, M., & Podehl, G. (2006). Aesthetic-driven tools for industrial design. Journal of Engineering Design, 17(3), 193-215. doi: 10.1080/09544820500275396
Harada, T., Yoshimoto, F., & Moriyama, M. (1999). An Aesthetic Curve in the Field of Industrial Design. In Proceedings of the IEEE Symposium on Visual Languages. Washington, DC, USA: IEEE Computer Society. Retrieved from http://dl.acm.org/citation.cfm?id=832280.834518
He, K., Chen, Z., & Zhao, L. (2011). A new method for classification and parametric representation of freeform surface feature. International Journal of Advanced Manufacturing Technology, 57(1-4), 271-283. doi:10.1007/s00170-011-3271-0 http://en.wikipedia.org/wiki/Grasshopper_3d--Wikipedia. Grasshopper3d. Accessed on: 2013-08-27 http://mathworld.wolfram.com/B-Spline.html--WolframMathWorld. (2013-b). B-spline. Accessed on: 2013-09-10 http://mathworld.wolfram.com/Curvature.html--WolframMathWorld (2013-a). Curvature. Accessed on: 2013-09-10 http://www.grasshopper3d.com/--created by Scott Davidson. Grasshopper. Accessed on: 2013-08-02
Kanaya, I., Nakano, Y., & Sato, K. (2007). Simulated Designer's Eyes--Classification of Aesthetic Surfaces. Design Discourse, Vo.l II(No. 4)
Piegl L. A., Tiller, W. (1997). The NURBS book. Berlin; New York: Springer
Podehl, G. (2002). Terms and Measures for Styling Properties. INTERNATIONAL design conference--DESIGN 2002
Poldermann, B. & Horvath I. (1995). Surface design based on parametrized surface features. Budapest Technical University Press, Budapest
Yoshida, N., & Saito, T. (2006). Interactive aesthetic curve segments. The Visual Computer, 22(9-11), 896-905. doi:10.1007/s00371-006-0076-5
Yoshida, N., Fukuda, R., & Saito, T. (2009). Log-aesthetic space curve segments. 2009 SIAM/ACM Joint Conference on Geometric and Physical Modeling on--SPM '09, 35. doi:10.1145/1629255.1629261
Yoshida, N., Fukuda, R., & Saito, T. (2010). Logarithmic Curvature and Torsion Graphs. Lecture notes in computer science, no. 5862, 434-443
Authors' data: Univ.Dipl.-Ing. Cupar, A[ndrej]*; Assoc.Prof. Pogacar, V[ojko]*; Dr. Sc. Stjepanovic, Z[oran]**, *University of Maribor, Faculty of Mechanical Engineering Maribor, Department of Structures and Design, Laboratory for Design, Smetanova 17, 2000, Maribor, Slovenia, ** University of Maribor, Faculty of Mechanical Engineering Maribor, Department of Textile Materials and Design, Smetanova 17, 2000, Maribor, Slovenia, email@example.com, firstname.lastname@example.org, email@example.com
Tab. 1. Procedure operators The input curve for analysis is the Bezier curve, defined as: x(t) = [[[[omega].sub.0][b.sub.0][B.sup.n.sub.0](t) + ... + [[omega].sub.n][b.sub.n][B.sup.n.sub.n](t)]/[[[omega].sub.0] [B.sup.n.sub.0](t) + ... + [[omega].sub.n][B.sup.n.sub.n](t)]] x(t), [b.sub.i] [member of] [E.sup.3] (Farin, 2002) (10) Length of curve. Slider that defines the number of segments of input curve. 0 < i < 10000 (11) Mathematical division R = A/B Curve division in N segments with N + 1 points. The input is C--curve and t--points on a curve. Outputs are: P--points on a curve, K--curvature vectors and C--centres of curvature circles [kappa] = [absolute value of (r'(t) x r"(t))]/[[absolute value of (r'(t))].sup.3] [kappa] = 1/R (12) Length of the vector l = [absolute value of [??]] Point with three coordinates P = (x, y, z) Circle with centre P = (x, y, z) and radius r Vector with two points [MATHEMATICAL EXPRESSION NOT REPRODUCIBLE IN ASCII] Remove indexed element from list--Cull (i) Split list at (i). Subtraction A - B Logarithmic value y = logx Point from three coordinates (x), (y) and (z) Polyline P1 through vertices--V. C means closed polyline and is set to false in our procedure. Values that satisfy operator Larger Than or Equal to go to the second object that separates lists. One list goes further directly and the second goes in operator to get the absolute value. This step is necessary because of logarithmic histogram that does not have negative values. In the GH procedure are lists of intermediate calculations of logr an log r(ds/dr) for positive and negative values. The sign was chanced for negative values. The result is smoothed at the end. On the input curve, we add a cube, and on the calculated output points that present K(s) we add a ball. These two objects can be synchronously moved with a slider. In Fig. 27, a ball shows K(s) for point i at the box on the input curve. LCH is presented with collection of points defined by three coordinates. Coordinate Z is zero. Due to this we have a planar presentation of LCH.
|Printer friendly Cite/link Email Feedback|
|Title Annotation:||Chapter 56|
|Author:||Cupar, A.; Pogacar, V.; Stjepanovic, Z.|
|Publication:||DAAAM International Scientific Book|
|Date:||Jan 1, 2013|
|Previous Article:||New approach for OEE calculation of CNC machines based on OPC UA.|
|Next Article:||Improving open innovation: challenges for managing communication and creative ideation.|