4
$\begingroup$

I have the following 3D-model:

RevolutionPlot3D[Sqrt[E^-x (1 + E^x)^2], {x, 0, 4}, 
 RevolutionAxis -> {1, 0, 0}]

Is there a way to make this model into a solid so that I can export it to let it be printed by a 3D printer. Now it is kind of hollow from the inside but I want it to be filled.

$\endgroup$
1
  • $\begingroup$ Radius simplifies to $ \sqrt {2(1+\cosh x)},\;0<x<4$ $\endgroup$
    – Narasimham
    Nov 23, 2020 at 20:03

2 Answers 2

5
$\begingroup$

Revolve three parametric curves. {x, f[x]} , {0, y} and {4, y}

SetOptions[RevolutionPlot3D, Mesh -> False];
f[x_] := Sqrt[E^-x (1 + E^x)^2];
a = RevolutionPlot3D[{x, f[x]}, {x, 0, 4}, 
   RevolutionAxis -> {1, 0, 0}, PlotStyle -> Red];
b = RevolutionPlot3D[{0, y}, {y, 0, f[0]}, 
   RevolutionAxis -> {1, 0, 0}, PlotStyle -> Yellow];
c = RevolutionPlot3D[{4, y}, {y, 0, f[4]}, 
   RevolutionAxis -> {1, 0, 0}, PlotStyle -> Cyan];
Show[a, b, c, Boxed -> False, Axes -> False, 
 ViewPoint -> {0.76, -1.39, 2.98}]

enter image description here

$\endgroup$
4
$\begingroup$

Here's another way to do it using ImplicitRegion and the finite element method package.

Needs["NDSolve`FEM`"]
ℛ = 
  ImplicitRegion[y^2 + z^2 <= (Sqrt[E^-x (1 + E^x)^2])^2, {x, y, z}];
(bmesh = ToBoundaryMesh[ℛ, {{0, 4}, {-8, 8}, {-8, 
      8}}])["Wireframe"]

Boundary element mesh

One possible advantage of using this approach is that the mesh will likely be free of defects, as shown below:

FindMeshDefects[MeshRegion[bmesh]]

Find defects

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.