Skip to main content
3 of 4
deleted 46 characters in body
Greg Hurst
  • 39.3k
  • 1
  • 101
  • 147

With a bit more work, we can take a similar approach to J.M.'s answer to build a (water tight) model with a base.

text = BoundaryDiscretizeGraphics[Text["Hello"], _Text] 

enter image description here

elongate[{a_, b_}] := With[{d = 0.05 (b - a)}, {a - d, b + d}] full = DiscretizeGraphics[Rectangle @@ Transpose[elongate /@ RegionBounds[text]]] 

enter image description here

diff = RegionDifference[full, text] 

enter image description here

etext = RegionProduct[RegionBoundary[text], Line[{{0.}, {2.}}]] 

enter image description here

final = DiscretizeGraphics @ Show[ etext, RegionProduct[text, Point[{2.}]], RegionProduct[diff, Point[{0.}]], RegionProduct[full, Point[{-1.}]], RegionProduct[RegionBoundary[full], Line[{{-1.}, {0.}}]] ] 

enter image description here

The only defects here are misoriented faces (which can be fixed with RepairMesh), but this is indeed a water tight model:

FindMeshDefects[final] 

enter image description here

Greg Hurst
  • 39.3k
  • 1
  • 101
  • 147