POV-Ray : Newsgroups : povray.general : How to "solidify" edge of clipped mesh2 surface? Server Time
26 Nov 2024 07:46:40 EST (-0500)
  How to "solidify" edge of clipped mesh2 surface? (Message 1 to 8 of 8)  
From: David Borhani
Subject: How to "solidify" edge of clipped mesh2 surface?
Date: 30 Jan 2011 00:15:01
Message: <web.4d44f37b6c17394ca1623e690@news.povray.org>
I have a closed mesh2 surface (roughly spherical), clipped by a plane. Viewed
from a bit below the clipping plane, it looks sort of like an open hemisphere.

I would like to make a (CSG-like) solid band, or tube/pipe/cylinder, that runs
along the *edge* where the plane and the mesh2 intersect.

I've been able to get the slab corresponding to the opening (intersection with a
very thin box and the mesh2), and a plane-like slab with the opening hole
cut-out (difference), but I cannot get just the edge (with some thickness, so
you can see it!).

Suggestions? Thanks!
David


Post a reply to this message

From: Alain
Subject: Re: How to "solidify" edge of clipped mesh2 surface?
Date: 30 Jan 2011 16:13:36
Message: <4d45d480@news.povray.org>

> I have a closed mesh2 surface (roughly spherical), clipped by a plane. Viewed
> from a bit below the clipping plane, it looks sort of like an open hemisphere.
>
> I would like to make a (CSG-like) solid band, or tube/pipe/cylinder, that runs
> along the *edge* where the plane and the mesh2 intersect.
>
> I've been able to get the slab corresponding to the opening (intersection with a
> very thin box and the mesh2), and a plane-like slab with the opening hole
> cut-out (difference), but I cannot get just the edge (with some thickness, so
> you can see it!).
>
> Suggestions? Thanks!
> David
>
>
As your mesh is roughly spherical, you may be able to make a difference 
using it this way:

Add an inside vector to the mesh.

Use a difference of the mesh, a slightly scaled down copy of the mesh, 
using a scale statement, and a box or plane.

It can work as you seem so have a totaly convexe and relatively simple 
overall shape.



Alain


Post a reply to this message

From: David Borhani
Subject: Re: How to "solidify" edge of clipped mesh2 surface?
Date: 30 Jan 2011 18:20:01
Message: <web.4d45f2139b656e04a1623e690@news.povray.org>
Thanks, Alain.

> Use a difference of the mesh, a slightly scaled down copy of the mesh,
> using a scale statement, and a box or plane.

I do have already an inside vector (<0,0,1>) in my mesh2 declaration. I have
also tried various differences, with the noted results:

// Align clipping box at bottom of cut-off mesh2 surface:
#declare TestBox = box {<0.5,0.5,0.5>, <-0.5,-0.5,-0.5> scale <100,100,0.1>
translate Surface_ClipPlane + <0,0,-0.05>};

// The mesh2, with its bottom clipped off:
#declare test_clipped_surf = object {Committor_50_Volmap clipped_by
{MapBoundsPlane} bounded_by {MapBoundsBoxBig}};

// Texture for all TESTOBJ*
#declare T_TEST = texture { pigment { color rgb <0,0,1>}};

// RESULT: Slab filling just the bottom "opening" of surface:
#declare TESTOBJ = intersection {object {TestBox} object{test_clipped_surf}};

// RESULT: Slab with a hole in middle (inverse of TESTOBJ):
#declare TESTOBJ2 = difference {object {TestBox} object{test_clipped_surf}};

// RESULT: Adds a small ring at bottom edge of cut surface, I guess because
//         the (semi-transparent) surface is duplicated. Attempt to force
//         force the color to opaque dark blue fails (mesh2 has a texture
//         declared in it already).
#declare TESTOBJ3 = object{test_clipped_surf #local T_Committor_50_Surface =
texture { pigment { color rgb <0,0,1>}}; texture {T_Committor_50_Surface}
        clipped_by {TestBox} };

// RESULT: Looks like TESTOBJ2:
#declare TESTOBJ4 = intersection {object {TESTOBJ scale 1.001} object{TESTOBJ
scale 0.999}};
// RESULT: Just wierd edge effects:
#declare TESTOBJ5 = intersection {object {TESTOBJ scale 1.002} object{TESTOBJ2
scale 0.998}};

Am I doing the differencing wrong? Thanks!
Dave


Post a reply to this message

From: stbenge
Subject: Re: How to "solidify" edge of clipped mesh2 surface?
Date: 31 Jan 2011 15:33:30
Message: <4d471c9a@news.povray.org>
On 1/30/2011 1:13 PM, Alain wrote:
>> I would like to make a (CSG-like) solid band, or tube/pipe/cylinder,
>> that runs
>> along the *edge* where the plane and the mesh2 intersect.
>>
> As your mesh is roughly spherical, you may be able to make a difference
> using it this way:
>
> Add an inside vector to the mesh.
>
> Use a difference of the mesh, a slightly scaled down copy of the mesh,
> using a scale statement, and a box or plane.
>
> It can work as you seem so have a totaly convexe and relatively simple
> overall shape.

Although it won't produce a rounded edge, an extension to your idea 
could involve an intersection of several offset copies of the mesh, 
differenced from the original mesh. This would be similar to the 
"thicken" feature of some mesh modelers. Twelve copies could be used in 
an icosaherdal offset pattern, or better yet, a geodesic dome with many 
vertices. It would be slow, but would probably work even for non-convex 
meshes.



Sam


Post a reply to this message

From: Thomas de Groot
Subject: Re: How to "solidify" edge of clipped mesh2 surface?
Date: 1 Feb 2011 03:11:56
Message: <4d47c04c@news.povray.org>
"David Borhani" <dav### [at] alummitedu> schreef in bericht 
news:web.4d44f37b6c17394ca1623e690@news.povray.org...
>I have a closed mesh2 surface (roughly spherical), clipped by a plane. 
>Viewed
> from a bit below the clipping plane, it looks sort of like an open 
> hemisphere.
>
> I would like to make a (CSG-like) solid band, or tube/pipe/cylinder, that 
> runs
> along the *edge* where the plane and the mesh2 intersect.
>

Maybe you should have a look at Poseray 3.13.7 beta. There is an 
experimental feature in there which does exactly that. Look under 
Groups>Lines, and experiment with "Add thickness to free mesh edges"

You can find Poseray at: http://mysite.verizon.net/sfg0000/

Thomas


Post a reply to this message

From: Alain
Subject: Re: How to "solidify" edge of clipped mesh2 surface?
Date: 1 Feb 2011 11:56:13
Message: <4d483b2d$1@news.povray.org>

> Thanks, Alain.
>
>> Use a difference of the mesh, a slightly scaled down copy of the mesh,
>> using a scale statement, and a box or plane.
>
> I do have already an inside vector (<0,0,1>) in my mesh2 declaration. I have
> also tried various differences, with the noted results:
>
> // Align clipping box at bottom of cut-off mesh2 surface:
> #declare TestBox = box {<0.5,0.5,0.5>,<-0.5,-0.5,-0.5>  scale<100,100,0.1>
> translate Surface_ClipPlane +<0,0,-0.05>};
>
> // The mesh2, with its bottom clipped off:
> #declare test_clipped_surf = object {Committor_50_Volmap clipped_by
> {MapBoundsPlane} bounded_by {MapBoundsBoxBig}};
>
> // Texture for all TESTOBJ*
> #declare T_TEST = texture { pigment { color rgb<0,0,1>}};
>
> // RESULT: Slab filling just the bottom "opening" of surface:
> #declare TESTOBJ = intersection {object {TestBox} object{test_clipped_surf}};
>
> // RESULT: Slab with a hole in middle (inverse of TESTOBJ):
> #declare TESTOBJ2 = difference {object {TestBox} object{test_clipped_surf}};
>
> // RESULT: Adds a small ring at bottom edge of cut surface, I guess because
> //         the (semi-transparent) surface is duplicated. Attempt to force
> //         force the color to opaque dark blue fails (mesh2 has a texture
> //         declared in it already).
> #declare TESTOBJ3 = object{test_clipped_surf #local T_Committor_50_Surface =
> texture { pigment { color rgb<0,0,1>}}; texture {T_Committor_50_Surface}
>          clipped_by {TestBox} };
>
> // RESULT: Looks like TESTOBJ2:
> #declare TESTOBJ4 = intersection {object {TESTOBJ scale 1.001} object{TESTOBJ
> scale 0.999}};
> // RESULT: Just wierd edge effects:
> #declare TESTOBJ5 = intersection {object {TESTOBJ scale 1.002} object{TESTOBJ2
> scale 0.998}};
>
> Am I doing the differencing wrong? Thanks!
> Dave
>
>

difference{
  object {Committor_50_Volmap}
  object {Committor_50_Volmap scale 0.95}
  object{MapBoundsBoxBig}
  texture{Your_texture}
  rotate Some_Rotation
  translate Somewhere
}

NO clipped_by
NO bounded_by

If you use clipped_by on a sphere, you'll also get an infinitely this 
edge, like this:
sphere{0,1 clipped_by{box{0,1}} // extremely thin wall
Cuts a quadrant out of the SURFACE of the sphere leaving the cut open.

Compare to:
difference{ // wall with thickness
  sphere{0,1} // you can replace the sphere by your mesh
  sphere{0,0.9}// ...and your mesh scaled by 0.9
  box{0,1}
  pigment{rgb 1}
}



Alain


Post a reply to this message

From: Alain
Subject: Re: How to "solidify" edge of clipped mesh2 surface?
Date: 1 Feb 2011 11:58:39
Message: <4d483bbf@news.povray.org>

> "David Borhani"<dav### [at] alummitedu>  schreef in bericht
> news:web.4d44f37b6c17394ca1623e690@news.povray.org...
>> I have a closed mesh2 surface (roughly spherical), clipped by a plane.
>> Viewed
>> from a bit below the clipping plane, it looks sort of like an open
>> hemisphere.
>>
>> I would like to make a (CSG-like) solid band, or tube/pipe/cylinder, that
>> runs
>> along the *edge* where the plane and the mesh2 intersect.
>>
>
> Maybe you should have a look at Poseray 3.13.7 beta. There is an
> experimental feature in there which does exactly that. Look under
> Groups>Lines, and experiment with "Add thickness to free mesh edges"
>
> You can find Poseray at: http://mysite.verizon.net/sfg0000/
>
> Thomas
>
>

It seems that the mesh is closed but he was using clipped_by where he 
should have used a difference.


Alain


Post a reply to this message

From: Thomas de Groot
Subject: Re: How to "solidify" edge of clipped mesh2 surface?
Date: 2 Feb 2011 03:28:00
Message: <4d491590$1@news.povray.org>
"Alain" <aze### [at] qwertyorg> schreef in bericht 
news:4d483bbf@news.povray.org...
> It seems that the mesh is closed but he was using clipped_by where he 
> should have used a difference.

Indeed. I see that now....

Thomas


Post a reply to this message

Copyright 2003-2023 Persistence of Vision Raytracer Pty. Ltd.