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$
  • $\begingroup$ Radius simplifies to $ \sqrt {2(1+\cosh x)},\;0<x<4$ $\endgroup$ – Narasimham Nov 23 at 20:03
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

| improve this answer | |
$\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

| improve this answer | |
$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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