Abstract
User-friendliness such as ease of creation and modification and system-friendliness such as space and time complexities, accuracy etc. are two important criteria for the selection of a solid representation scheme. No single solid representation scheme fully meets all the requirements of user-friendliness and system-friendliness. Hence, any practical CAD/CAM system maintains the geometry of the objects in more than one solid representation scheme simultaneously. Therefore, it is often required to convert one solid representation scheme to the other. The authors have developed a volumetric NC simulation system in which the instantaneous blank is represented as an octree as its space and time complexities are independent of the number of NC blocks. However, since octree does not lend itself readily for operations such as arbitrary transformations, rendered display etc., it is not directly usable for downstream applications such as animated display, verification and optimization. Boundary representation is suitable for these downstream applications. Therefore, it is required to convert octree of the instantaneous blank into BRep. An efficient algorithm for this conversion is presented in this paper. This algorithm essentially splits the octree into three quadtrees that store the geometry along the three principal directions. This algorithm is fast as it involves only tree-traversals.
Similar content being viewed by others
Abbreviations
- root:
-
Root node of the octree of the object
- quad_proj[0]:
-
Root node of the quadtree for storing the boundary faces of FULL cubes that are perpendicular to Z axis (i.e, parallel to XY plane)
- quad_proj[1]:
-
Root node of the quadtree for storing the boundary faces of FULL cubes that are perpendicular to X axis (i.e, parallel to YZ plane)
- quad_proj[2]:
-
Root node of the quadtree for storing the boundary faces of FULL cubes that are perpendicular to Y axis (i.e, parallel to ZX plane)
- fill_status:
-
Array of 4 bytes or 32 bits to store fill status of siblings. 4 bits are assigned for each sibling of the octree/ quadtree
- sons:
-
Array of PARTIAL nodes of the octree/quadtree node
- U:
-
Size of universe
- s:
-
Size of the node
- [x0 y0 z0]:
-
Point in the octree
- [xq yq zq]:
-
Point in the quadtree
- [xoffset yoffset zoffset]:
-
Boolen offset values of 0 or 1 used to identify the reference of any sibling
- [nx ny nz]:
-
Normal of a face
- fill_flag:
-
The field that stores the fill status of a node as either EMPTY, FULL or PARTIAL
- prev_fill_flag:
-
Fill status of the parent node
- ZList:
-
The array that stores the elevation values of the faces at any FULL node of the quadtree
- Prev_ZList:
-
ZList of the parent node of the quadtree
References
Mortenson ME (1985) Geometric modeling. Wiley, New York
Mantyla M (1988) Solid modeling. Computer Science Press, Rockville, MD
Robert JA, Sole J (1995) Constructing face octrees from voxel-based volume representations. Comput Aided Des 27(10):783–791
Tiede U, Schiemann T, Karl HH (1996) Visualizing the visible human. IEEE CG&A 16(1):7–9
Roy U, Xu Y (1999) Computation of geometric model of a machined part from its NC machining program. Comput Aided Des 31(6):401–411
Montani C, Scopigno R (1991) Quadtree/octree-to-boundary conversion. In: Arvo J (ed.) Graphics gems II Academic, San Diego, pp 202–218
Raghothama S, Shapiro V (2000) Consistent updates in dual representation systems. Comput Aided Des 32(8–9):463–477
Karunakaran KP, Shringi R, Singh AK (2004) Virtual machining. Modern Mach Tools 1(3):62–68
Chappel IT (1983) Use of vectors to simulate material removed by NC milling. Comput Aided Des 15(3):156–158
Drysdale RL, Jerard RB, Schaudt B, Hauck K(1998) Discrete simulation of NC machining. Algorithmica 4(1):33–60
Oliver JH, Goodman ED (1990) Direct dimensional NC verification. Comput Aided Des 22(1):3–10
Andreas HK, Groeller E (1998) Real time simulation and verification of NC milling processes for inhomogeneous materials on low-end graphics hardware. Proc CGI 98, IEEE Computer Society, Hannover, Germany 22–26 June, pp 338–349
Chonglin L, Esterling DM, Josep F, Mosel E (1996) Dimensional of NC machining profiles using extended quadtrees Comput Aided Des 28(11):845–852
Samet H, Webber RE (1988) Hierarchical data structures and algorithms for computer graphics: Part I fundamentals. IEEE CG&A 8(4):48–68
Doctor L, Torborg JG (1981) Display techniques for octree-encoded objects. IEEE CG&A 1(1):29–38
Carlborm I, Chakravarty I, Vanderschel D (1985) A hierarchical data structure for representing the spatial decomposition of 3D objects. IEEE CG&A 5(4):24–31
Navazo I (1989) Extended octree representation of general solids with plane faces: model structure and algorithms. Comput Graph 13(1):5–16
Koistinen P, Tamminen M, Samet H (1985) Viewing solid models by bintree conversion. In: Vandoni CE (ed) Proc Eurographics 85 conf. North-Holland, pp 147–157
Gargantini I (1982) Linear octree for fast processing of 3D objects. IEEE CG&IP 20(4):365–374
Sheng X, Blunck M (1991) Parallel NC simulation based on discrete solid models. Applications of transputers 3. IOS, Amsterdam, pp 798–803
Kunii TL, Satoh T, Yamaguchi K (1985) Generation of topological boundary representations from octree encoding. IEEE CG&A 5(3):29–38
Dyer CR, Rosen A, Samet H (1980) Region representation: Boundary codes from quadtrees. Comm ACM 23(3):171–179
Samet H (1982) Neighbor finding in image represented by quadtrees. IEEE CG&IP 19:37–57
Montani C (1984) Region representation: Parallel connected strips. IEEE CG&IP 28:139–165
Author information
Authors and Affiliations
Corresponding author
Rights and permissions
About this article
Cite this article
Karunakaran, K.P., Shringi, R. Octree-to-BRep conversion for volumetric NC simulation. Int J Adv Manuf Technol 32, 116–131 (2007). https://doi.org/10.1007/s00170-005-0310-8
Received:
Accepted:
Published:
Issue Date:
DOI: https://doi.org/10.1007/s00170-005-0310-8