How can I generate a 3D annulus surface and mesh it using Meshes.jl?

xiaoming
Thu, 29 Feb 2024 12:34:07 +0000
Specific Domains

I have tried using PolyArea. Here is MME:

ring1=Meshes.Ring([(cos(t),sin(t),0) for t in 0.1:0.1:2pi])
ring2=Meshes.Ring([(2cos(t),2sin(t),0) for t in 0.1:0.1:2pi])
annulus = PolyArea([ring2, ring1])
discretize(annulus, FanTriangulation())

with error:

ERROR: DimensionMismatch: Sizes (Size(3,), Size(2,)) of input arrays do not match
Stacktrace:
  [1] _throw_size_mismatch(::Meshes.Vec3, ::Vararg{Any})
    @ StaticArrays C:\Users\Administrator\.julia\packages\StaticArrays\Uc4hE\src\traits.jl:113
  [2] same_size
    @ C:\Users\Administrator\.julia\packages\StaticArrays\Uc4hE\src\traits.jl:107
[inlined]
  [3] macro expansion
    @ C:\Users\Administrator\.julia\packages\StaticArrays\Uc4hE\src\mapreduce.jl:74 [inlined]
  [4] _map
    @ C:\Users\Administrator\.julia\packages\StaticArrays\Uc4hE\src\mapreduce.jl:40 [inlined]
  [5] map
    @ C:\Users\Administrator\.julia\packages\StaticArrays\Uc4hE\src\mapreduce.jl:37 [inlined]
  [6] +
    @ C:\Users\Administrator\.julia\packages\StaticArrays\Uc4hE\src\linalg.jl:12 [inlined]
  [7] +(A::Meshes.Point3, v::Meshes.Vec2)    @ Meshes C:\Users\Administrator\.julia\packages\Meshes\1sXKx\src\primitives\point.jl:95
  [8] bridge(rings::Vector{Meshes.Ring{…}}, rinds::Vector{Vector{…}}, δ::Float64)
    @ Meshes C:\Users\Administrator\.julia\packages\Meshes\1sXKx\src\transforms\bridge.jl:81
  [9] apply
    @ C:\Users\Administrator\.julia\packages\Meshes\1sXKx\src\transforms\bridge.jl:30 [inlined]
 [10] discretize(polygon::Meshes.PolyArea{3, Float64, Meshes.Ring{…}}, method::Meshes.FanTriangulation)
    @ Meshes C:\Users\Administrator\.julia\packages\Meshes\1sXKx\src\discretization.jl:52
 [11] top-level scope
    @ e:\Mesh the manifolds\MeshRing.jl:16

8 posts - 3 participants