Trying to go with the Flow

Next
 From:  ed (EDDYF)
4452.1 
Michael -

I created a hearts design by sweeping two "hearts" curves using two circle profiles.

Some time ago you mentioned these type of intersecting tubes can be difficult if the diameters are equal at the intersection, so my sweep of each heart curve was made using two different diameter profiles, resulting in a slight taper.

The design Flows onto the ring with no problem, but I can't get it to Boolean Diff to create a carved recess into the ring.

I don't care if the design matches up exactly on the opposite side of the ring as this is just for rendering.

3DM is attached. Any help is appreciated as I'll be making a lot of these type designs.

Ed


  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged

Previous
Next
 From:  Michael Gibson
4452.2 In reply to 4452.1 
Hi Ed - so it looks like your tube pattern before you flow it is not all the way cleaned up - it's got some pieces still on the interior portion of it making it a kind of self-intersecting object instead of an empty interior.

Here's an example area - check out this edge right here:



Note this edge here:



See how that edge is kind of sunken into the object - it's part of a surface that is on the inside area of the object, the outer pieces of the pre-flowed flat object are not all trimmed with one another, they've ended up only kind of partially cut with each other leaving various internal pieces still in there.

Once you have a self-intersecting object like that it will confuse the booleans quite a bit trying to use it as a cutting object.

So basically the flat object itself seems to need some tuneups before it is flowed.

- Michael

  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged

Previous
Next
 From:  Michael Gibson
4452.3 In reply to 4452.1 
Hi Ed, so I guess the initial sweep that you constructed actually sweeps around and loops back on itself - that's going to be a self intersecting result that will cause problems.

Instead you've got to get that initial sweep pattern made out of some separate surfaces that can get cut with each other to have the inside portions removed, it won't work properly to have just one single big surface that crosses itself.

- Michael
  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged

Previous
Next
 From:  Michael Gibson
4452.4 In reply to 4452.1 
Or you may be able to tune up the result by slicing it up into pieces in a few places so that you have some separate pieces to trim with each other.

Basically the inside areas of that cutting object need to be all removed and the surfaces intersected with one another instead of just having pieces that run through each other, especially when it's all one single surface running through itself.

- Michael
  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged

Previous
Next
 From:  Michael Gibson
4452.5 In reply to 4452.1 
Hi ed, a way that may be potentially easier but doesn't give you the exact same result is to do an extrusion of your pattern instead of making a tube out of it, then flow the extruded piece onto your ring, then fillet the final result to produce some rounding.

I've attached an example of that kind of process.


The tubular method is going to be problematic currently because you can't just make a long tube that criss-crosses over itself and then use that directly as a cutting object - the cutting object for a boolean can't intersect itself so that base piece needs quite a bit of work on it to clean it up before it would be ready to use as a cutter. You'd need to build it in several sections that can be intersected with one another and like you mentioned before, you probably need to have the pieces hit each other with slightly different radius values where they cross each other since the surface/surface intersector in the geometry library that MoI uses has problems with that particular case of dealing with 2 tubes of the exact same radius that cross each other.

I'll try to think about how that crossing tube problem can be improved.

- Michael

  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged

Previous
Next
 From:  ed (EDDYF)
4452.6 In reply to 4452.5 
Thanks Michael -

That looks like a good solution for this kind of Celtic design that loops back on itself.

I hadn't thought of doing an extrusion and fillet. It doesn't create that "X" pattern at the intersections that a circle profile sweep (or the actual ring) has, but this is not a detail that will get enlarged in the final render image.

I'll experiment with this technique and post a render.

Ed

Attachments:

  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged

Previous
Next
 From:  Michael Gibson
4452.7 In reply to 4452.6 
Hi Ed, so it looks like another possibility for tubular type shapes is instead of making a circle as the profile that you sweep, make some kind of semi-circle, something like this:



Then sweep that shape instead of sweeping a full circle profile.

The surface/surface intersector seems to be able to deal with this kind of surface at crossing locations much better than with fully closed surfaces crossing each other. But it still should work just as well as far as cutting a groove into your ring goes.

The technique for creating the shape will be to make sure your rail curve is built in segments that have endpoints at the junctures, then when you do the sweep it will build one surface for each of those segments.

See the bottom object in the attached file for how the result of the sweep should be configured with separate surface pieces instead of one long single surface that crosses itself.

Then you need to select 2 pieces at a time and use the Edit > Trim command to slice them with one another and remove the excess inside crossing pieces. Using Trim mode = Keep can be a bit easier for this since it is kind of easier to select the pieces you want to keep rather than the ones you want to throw away. If you see that a trim did not produce a clean looking cut, you may need to select the 2 surfaces and use Construct > Curve > Isect to generate an intersection curve between them and then trim the surfaces with that curve instead. I had to do that in a couple of spots in this case. Anyway when you're done with that trimming you want to have the result like the middle object.

Then you can make that into a solid by drawing in a couple of lines at the ends and using Construct > Planar to make a plane for that end semi-circle piece, then join all those pieces together, then run Construct > Planar to cap off the top, that's how I made the top piece.

Since it is a fair amount of work to do the trimming, you want to only construct one heart section with this method, and then copy that one finished piece over to make the sequence longer. You'll need to make sure the starting curves have a good horizontal end tangent on them so that the pieces will align well.

At any rate, it looks like it would be more feasible to create a tube result using this kind of semi-circle profile shape rather than a full circle tube.

You also might try building things at a bit larger scale, the pieces are getting pretty small in scale in your original size and it is possible to run into some tolerance problems when you've got pretty small sized details. Building this at about 10 times larger scale than your original one may be a good idea.

- Michael

  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged

Previous
Next
 From:  Michael Gibson
4452.8 In reply to 4452.7 
Hi Ed, here's another screenshot to help explain what you would need to do for building a tube result.

After you build some surfaces with the right segmentation on the rail curve, you'll have pairs of pieces that will look like this:



Then you want to use the Edit > Trim command to slice off that inside area where they poke through each other.

The regular way that you would do this would be to select both surfaces, then run Edit > Trim, then at the cutting objects prompt you just right-click or push "Done" (or hit the Enter key) without picking anything else - that signals to trim that you want to do a "Mutual trim" where each object is both being cut and also acting as a cutter to other objects as well.

Then you would either pick the little pieces that you want to discard, or you can pick the bigger pieces that you want to keep if you set the Mode option to Mode = Keep.

It's still a bit tricky because for some reason the mutual trim in a couple of cases can have a somewhat messy intersection with a bit of a gap between the pieces. You want to be zoomed in a bit so that you can see the intersection fairly well when you are doing the trim and if you run into one that does not look good, then bail out of trim and select both surfaces and run Construct > Curve > Isect which seems to be able to generate a good intersection curve between them. Then use that curve as the cutting object in Trim to cut the surfaces.

Anyway, the thing is that when you've got 2 closed circular tubes that cross each other like this, there is a bug in the surface/surface intersector that tends to miss one of the 4 possible intersection curves. But when you are dealing with open surfaces like this instead of totally closed ones that avoids that bug and that makes it a lot more feasible to make it work.

- Michael
Attachments:

  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged

Previous
Next
 From:  ed (EDDYF)
4452.9 In reply to 4452.8 
Michael -

Thanks for the additional info on working with crossed tubular designs.

After experimenting with the extrusion & fillet method, I decided it works very well for my needs. Plus it's fast and nothing needs to be tweaked. See render below.

Your comment about increasing my ring model size x10 is well taken. The fillet did not work until I scaled everything up x10. It's easier to work with actual dimensions (even though mentally dividing by 10 is not a deal breaker). Is there a way to apply a scale factor so that I can work in actual dimensions, yet have the model larger so these kinds of issues can be avoided? If not, I guess I can work in feet rather than inches.

Again, Flow works very well and I'm looking forward to using it.

Ed

EDITED: 28 Aug 2011 by EDDYF


  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged

Previous
Next
 From:  Michael Gibson
4452.10 In reply to 4452.9 
Hi Ed, that's a nice looking result!

> Is there a way to apply a scale factor so that I can work
> in actual dimensions, yet have the model larger so these
> kinds of issues can be avoided? If not, I guess I can work
> in feet rather than inches.

No there's nothing quite exactly like that - usually the closest thing is to work in a different unit system that will give you larger numeric values instead of small number values.

I am generally trying to make things adapt themselves to smaller sized objects though, by adjusting the tolerance to be a fraction of the object's size instead of having it at a fixed value. Some things are on that system already and some other things still need to be switched over.

The relative tolerance system still needs a bit of adjusting for it to work better on smaller sized objects - I think it needs to be tightened down a little bit more than where it is currently. It's a kind of finicky area to get right - if the tolerance is too tight things will produce too dense of results making for large file sizes and long calculation times. If it's too loose things sag too much and that causes problems.

- Michael
  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged

Previous
Next
 From:  shayno
4452.11 In reply to 4452.1 
Hi Ed
I am very impressed with what you are trying to achieve , its very sinple but elegant.
Can you tell me how you bend the finished profiles around onto the ring surface
I am new to moi and this could work well with lettering also

thanks
shayne
  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged

Previous
Next
 From:  ed (EDDYF)
4452.12 In reply to 4452.11 
Shayno -

The hearts design is formed around the ring using the Flow command that is new to the just-released Version 3 Beta of Moi. See:

http://moi3d.com/forum/index.php?webtag=MOI&msg=4438.1

The design was extruded, flowed onto ring, Boolean Diff, and fillet applied to round all edges.

Ed

Attachments:

  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged

Previous
Next
 From:  shayno
4452.13 In reply to 4452.12 
Thanks Ed
I just figured that out (having just downloaded v3 beta)
So the rectangular box you drew aligns to the ring surface leaving 1/2 of the pattern intersecting into the ring (like the gem array command) Thats a clever feature

I just now need to figure how to import all my settings and shortcuts from moi2 so I don't have to set up from scratch

cheers
shayne
  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged

Previous
Next
 From:  ed (EDDYF)
4452.14 In reply to 4452.13 
Yes - The rectangle plane (called the Base Surface) is the width of the ring and its length is pi x diameter of the ring.

The extruded hearts design must intersect the Base Surface so that it will intersect the Target Surface (the ring surface) by the same amount.

Apply the Flow command and Boolean Diff the wrapped design leaving the design recessed into the ring. Finally, apply Fillet to the ring.

Ed
  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged

Previous
Next
 From:  shayno
4452.15 In reply to 4452.14 
Thanks Ed
How do you control the direction the flow goes on
I did a test word that insists on flowing across the ring not around it (no matter where I select the parts)
I'm stumped

ps for Michael
After assigning objects a name you cannot click on their name in the object area to select them

thanks
shayne




  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged

Previous
 From:  Michael Gibson
4452.16 In reply to 4452.15 
Hi shayne,

> How do you control the direction the flow goes on
> I did a test word that insists on flowing across the ring
> not around it (no matter where I select the parts)
> I'm stumped

Right now it always maps from the built-in UV direction of one surface to the UV direction of the other surface.

In your particular case the U and V directions on the revolved piece are reversed from what you need.

To fix this currently you need to alter your base surface - try squishing it to be narrow and tall and then rotate it 90 degrees and then use it as the base surface.

I am working on a way to control how the surfaces relate to one another more easily for the next v3 beta.


> After assigning objects a name you cannot click on their
> name in the object area to select them

There's a new selection indicator area at the right-hand side of the name - click there now to do the selection. See here for an example:
http://moi3d.com/forum/index.php?webtag=MOI&msg=4438.21

- Michael
  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged
 

Reply to All Reply to All