3D CAD for Material Structure Modeling

2 minute read


3D CAD software for material structure modeling based on OpenGL and C++





  • Start interface Click start to start modeling, and click quit to exit the program. After entering the modeling interface, the initial state has two single-bonded atoms in the drawing scene. The user can choose to model on this basis or choose to clear Model from scratch after the screen;
  • Click the right mouse button to display a right-click menu, which is to clear the screen, add an atom, add a single bond, change the atom size, change the atom map, and zoom in / out. There is also a sidebar on the right side of the interface to implement screenshots. Exit the function of modeling; during the modeling process, you can drag the mouse to observe the modeled molecules from different perspectives, or you can click the left mouse button to select the atom and drag the atom position.
  • During the modeling process, IJKL button can be used to adjust the position of the light source and WASD button can be used to adjust the position of the angle of view, F button can take a screenshot of the current modeling molecule.


  • Construction and splicing of material structure * ball model *
  • Transformation of club material and transformation of light
  • Free control of bat size and position
  • Observation of three-dimensional material geometry (mouse drag)
  • Zoom In / Zoom Out
  • Export and save geometry model OBJ file
  • Screen capture of real-time application window


  • NURBS for double bond connection
    • The centerline of the soft pipe is a NURBS curve. Coordinates are obtained using the feedback mode, combined with the calculation of the angle between the vectors, and realized by using short cylindrical splicing.
  • Friendly UI interaction
    • Right-click menu maintained by GLUT, and sidebar implemented independently
  • Complex materials
    • Pick it with the mouse, select the object with the left button, and switch between different materials with the right-click menu (the picture for this project is the solar system map)
  • Collision detection
  • Object expression ability
    • Use depth, perspective, and other information to achieve occlusion between different objects to further form a combined body