I'm trying to create a diamond drill surface trace line (arrow) from a point (collar) along a given azimuth with a given length from a csv file. This actually stems from a problem of projecting a surface trace from a drill string in Diamond Drilling. I've used trig to define the surface trace on a flat surface but would love to tie this to a DEM in the future!
IMO in 3D GIS/CAE, to give the buzzwords, you could/should make some own calculations.
The border between CAE and GIS espacially in route desing and planning is floating. Traditionally GIS, and that is QGIS mainly dealing with, comes from mapping and handles 2D/3D related surface objects in different in a geometric fashion (Vectors, Rasters, Triangulates and Routes) and sometimes real 3D for drilling in combination of two spatial scenarions (landscape + drillhole) as you see in GIS.SE context.
IMO if you want to design a real 3D object like a drilling path, you will need some CGS embedded in a spatial data context, combined with 3D routing elements. To do so you could use CGAL for example, because deals with data structures and algorithms in both worlds (GIS, CAE).
Especially for your problem you could use:
Point direction context in CGAL called ray
Construct a trajectory using the additional z info from surface, the operational depth and the drilling radius to create points for the tunnel hull mesh.
and display the stuff in a 3D viewer.
This could also be done in python (here a 2D trinagulation).