Skip to content

zishun/LDNI-based-Solid-Modeling

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

19 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

LDNI-based Solid Modeling

This project provides a set of solid modeling tools which aims to help process 3D objects with complex topology and geometry that are widely used in many industrial applications (e.g., microstructure design and manufacturing, biomedical products and applications, jewelry products, reverse engineering).

The system is completely GPU-based and heavily based on an implicit representation named Layered-Depth-Normal-Image (LDNI).

Features

  • Input/Output : Obj files
  • Boolean Operations - Union, Intersection, and Subtraction
  • Offset
  • Scaffold
  • Super Union - union multiple meshes in one operation
  • 3D Printing
    • Generate tool path and supporting files for FDM
    • Generate stencil images for SLA

Links

Build

Requirements: GPU with compute capability above 2.0 and CUDA >=9.0.

  • Windows: using the sln file.
  • Linux: requires glut and glew.
git clone https://github.com/zishun/LDNI-based-Solid-Modeling --depth 1
cd LDNI-based-Solid-Modeling
mkdir build && cd build
cmake ..
make

Usage

Note: input file path in the terminal when opening/saving files on Linux.

Operation Description
1 Boolean (A Subtract B)
1) File > Open > Choose A.obj
2) File > Open > Choose B.obj
3) LDNI > Cuda Boolean Operations > input "d" for subtraction
4) Input sampling resolution e.g. 512, 1024, 2048

Boolean (A Subtract B Union C)
5) File > Open > Choose C.obj
6) LDNI > Cuda Boolean Operations > input "u" for union

Export LDNI to OBJ file
7) LDNI > Convert CUDA solid to mesh
8) Input resolution e.g. 512
2 Offset (A)
1) File > Open > Choose A.obj
2) LDNI > Cuda samlping (from B-rep) > input resolution e.g. 512, 1024, 2048
3) LDNI > Cuda Successive Offseting (with Normal) > input e.g. +10, -10
3 Scaffold (A)
1) File > Open > Choose A.obj
2) LDNI >CUDA Scaffold Making > input resolution e.g. 512, 1024, 2048
3) Input the repeated number of unit along x, y and z axis
4) Input the offset value (the interval distance between each unit along x, y and z axis)
5) Input the flipping flag for each direction ( 1- flip and 0 - no flip)

Example

e.g. repeated number < 2 1 1>
offset value <0 0 0>
flip flag <1 0 0>
4 Super Union (A + B + C....)
1) File > Open Folder > Choose folder which stored all the components
2) LDNI > Cuda Super Union > input resolution e.g. 1024, 2048, 4096
5 FDM (output toolpath file)
1) File > Open > Choose A.obj
2) Mesh > Shift To Origin
3) Mesh > Shift To Positive Coordinate System
4) LDNI > Cuda samlping (from B-rep) > input resolution e.g. 512, 1024, 2048
5) LDNI > Generate Contour and Support on CUDA (FDM) > input image sampling width [6] e.g. 0.005
6 SLA (output image file)
1) File > Open > Choose A.obj
2) Mesh > Shift To Origin
3) Mesh > Shift To Positive Coordinate System
4) LDNI > Cuda samlping (from B-rep) > input resolution e.g. 512, 1024, 2048
5) LDNI > Generate Contour and Support on CUDA (FDM) > input image sampling width e.g. 0.005

Input parameters for generate supporting structure [6]
6) input Thickness [thickness of layer] e.g. 0.004
7) input Anchor Radius [radius of support anchor] e.g. 0.2
8) input Threshold [self-support feature threshold] e.g. 0.2
9) input Cylinder Radius [radius of support cylinder] e.g. 1.0
10 input Pattern Thickness [thickness of the connection structure between support cylinder] e.g. 10
* the numbers are varied, depends upon the fabrication volume and the machine

References

  1. Charlie C.L. Wang, Yuen-Shan Leung, and Yong Chen, "Solid modeling of polyhedral objects by Layered Depth-Normal Images on the GPU", Computer-Aided Design, vol.42, no.6, pp.535-544, June 2010. [link]

  2. Yuen-Shan Leung, and Charlie C.L. Wang, "Conservative sampling of solids in image space", IEEE Computer Graphics and Applications, vol.33, no.1, pp.14-25, January/February, 2013. [link]

  3. Charlie C.L. Wang, and Dinesh Manocha, "GPU-based offset surface computation using point samples", Computer-Aided Design, Special Issue of 2012 Symposium on Solid and Physical Modeling, October 29-31, 2012, Dijon, France, vol.45, no.2, pp.321-330, February 2013. [link]

  4. Shengjun Liu, and Charlie C.L. Wang, "Fast intersection-free offset surface generation from freeform models with triangular meshes", IEEE Transactions on Automation Science and Engineering, vol.8, no.2, pp.347-360, April 2011. [link]

  5. Pu Huang, Charlie C.L. Wang, and Yong Chen, "Intersection-free and topologically faithful slicing of implicit solid", ASME Transactions - Journal of Computing and Information Science in Engineering, vol.13, no.2, 021009 (13 pages), June 2013. [link]

  6. Pu Huang, Charlie C.L. Wang, and Yong Chen, "Algorithms for layered manufacturing in image space", Book Chapter, ASME Advances in Computers and Information in Engineering Research, 2014. [link]

  7. Hanli Zhao, Charlie C.L. Wang, Yong Chen, and Xiaogang Jin, "Parallel and efficient Boolean on polygonal solids", The Visual Computer, Special Issue of Computer Graphics International 2011 (CGI 2011), vol.27, no.6-8, pp.507-517, Ottawa, Ontario, Canada, June 12-15, 2011. [link]

  8. Supplementary Technical Report - "Intersection-free dual contouring on uniform grids: an approach based on convex/concave analysis" [link]

About

Solid modeling with GPU and Layered-Depth-Normal-Image (LDNI).

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C++ 64.3%
  • C 23.0%
  • Cuda 12.4%
  • Other 0.3%