MoI discussion forum
MoI discussion forum

Full Version: Bottle Feed Screw

Show messages:  1-3  4-23  24-43  44-63  64-73

From: bemfarmer
19 May 2017   [#44]
Well done Pilou!

I would like to see a Boolean applied sequentially for each bottle, which would be much faster, I think. (?)
There could be an option checkbox for this? Maybe I'll try after work...

An elliptical bottle has much faster Boolean dif, than the rounded rectangle bottle.

Maybe the MoI Boolean dif command could have a sequential checkbox?

- Brian
From: bemfarmer
19 May 2017   [#45] In reply to [#44]
For oval bottle, Lofting the cut edges seems promising?

Finding the midpoint dip line of the cut edges, and lofting might work for smoothing?
The Iso's do not follow the ridges of the cuts.

- Brian
From: BurrMan
19 May 2017   [#46] In reply to [#44]
Bemfarmer,
Boolean issue?

What I would do is create a "profile" of my bottle (then run rebuild if it was segmented, like a rounded corner rectangle) then run the bottle array on the profile and choose a ridiculous amount of stations. Then loft those and do the Boolean diff with the new, single solid.

I have 1 question for Michael though.

Is there a way to set "an attachment point" to the bottle? If I have an elongated rectangle for a bottle for instance, and I want to set a "depth" of the bottles placement on the helix start point, the bottle "moves away" from the depth and helix as it rotates to the narrow side of the bottle/rectangle. So if I make a variable helix with a start radius of 5 and an end of 3, My resulting bottle at the minor radius' endpoint has moved out and away from the helix path.

Not sure if/how this could be done.

Attachments:
variable bottlefeed.zip

Image Attachments:
bottlefeed_attach_point.jpg 


From: Barry-H
19 May 2017   [#47]
Hi Michael,
I have tried to run the script on a reverse twist helix and it does not seem to work.
The get around was to produce one scroll with a positive bottle rotation 90 degrees
and to produce another scroll ( same helix ) with a negative bottle rotation minus
90 degrees and then mirror the result.
The subtraction from shaft required careful attention as Moi struggled when all bottles
or groups of bottles where selected so as Brian as suggested it would be good if they
could be subtracted one by one as they are produced I think this the way the Autodesk
Feed Screw Generator plugin works.
An way Michael again many thanks for your help much appreciated.

Barry


Image Attachments:
Twin Screws.png 


From: Nico-M
19 May 2017   [#48]
Hi,
Very interesting topic, it awakened my curiosity.
I reproduce the simulation of this screw conveyors in Algoryx Momentum.
https://www.youtube.com/watch?v=9OBpMFdMZ3g
I have one question, after the using this script, the result of the boolean operation generates many facets.
it's possible or not to generate directly one smooth profile for boolean operation?
I have TopSolid but not this function, it's seem generate one surface smooth with the profile cutting.
https://www.youtube.com/watch?v=U93EzIzA_Hk
Best Regards.
Nicolas.
From: bemfarmer
19 May 2017   [#49]
This is still a rich topic with many permutations.

The screw seems to be a bit short on the left.
The screw/cylinder can be length extended to the left.
The helix and reverse helix can be copied to the left, and FLIP applied to reverse start point.
The bottle can be arrayed to the left, with a negative rotation of -90 degrees...

(If Unflipped, array to the left created an expanding conical-ish spiral...)

I have yet to grasp the reverse screw. The script will work if ...

- Brian
From: Frenchy Pilou (PILOU)
19 May 2017   [#50]
Explicit videos!
From: Frenchy Pilou (PILOU)
19 May 2017   [#51]
So can we consider that BottleFeedArray2 is better than native Sweep ?
(Start and End caps are perpendicular in each case)
Caps in BottleFeedArray2 are not perpendicular to the helix!
http://moiscript.weebly.com/uploads/3/9/3/8/3938813/sweep_orientation.3dm

From: Barry-H
19 May 2017   [#52]
Hi Pilou,
Bottlefeedarray2 is a step in creating the profiles cut in
the shaft as it travels along the screw.
If you produce a screw from just the bottle profile
by sweeping the bottle profile along the helix only
and then place a bottle in the thread and do a
Boolean subtract you will see it cuts into the thread.
That's because the bottle is vertical and not at the helix
Angle of the screw.

Cheers
Barry
From: Michael Gibson
19 May 2017   [#53]
Replies to several people below:


@Brian,
> Maybe the MoI Boolean dif command could have a sequential checkbox?

Boolean diff does actually operate in a sequential manner internally, there's a loop and each cutting object is subtracted from the main object one at a time. It can be good sometimes to control the ordering specifically but probably in this case with each object being created in an array so all in that same order in the geometry database I'd think it would probably be the same as if the script did the boolean difference too.


@Burr,
> Is there a way to set "an attachment point" to the bottle?

Not currently, it's only currently designed to work on a fixed radius helix. The variable part that could be used currently is variable pitch where the spacing along the axis direction between each turn is not constant (like a changing "vertical step" in array circular) . You've got a variable radius one there, not variable pitch. It could be possible to make one that would work with variable radius, it just didn't sound like that was needed for what Barry was making, let me know if you need to manufacture one with variable radius.


@Barry,
> I have tried to run the script on a reverse twist helix and it does not seem to work.

Do you need this to be fixed in order to proceed or is the solution you came up with working ok?

> The subtraction from shaft required careful attention as Moi struggled when all bottles
> or groups of bottles where selected so as Brian as suggested it would be good if they
> could be subtracted one by one as they are produced I think this the way the Autodesk
> Feed Screw Generator plugin works.

Internally the regular boolean command already does subtract cutting objects one by one out of the base object, so I don't think there would be any change in doing it one by one in the script. It's just a lot of work doing so many booleans with pieces that are very close to one another, it's going to take some time to calculate. If it's getting a valid result instead of speed that you're worried about you may need to make it a little less dense so there aren't quite so many things barely grazing each other's edges and another possibility is to do a boolean union on all the bottles first before doing the difference. Actually doing the union in a controlled way in the script could have some potential to speed things up if say it unioned each sequential pair together first, then those pairs into quads, etc.. until it was done because that would do more boolean operations on simpler objects. But I think it might take a fair amount of development time to make that happen though.


@Nicolas,
> it's possible or not to generate directly one smooth profile for boolean operation?
> I have TopSolid but not this function, it's seem generate one surface smooth with the profile cutting.

I guess it's possible maybe with a couple months of work or so. It looks like TopSolid is generating profile curves to make cross sections for a loft to make one smooth surface. Unfortunately I just don't have enough time available myself to make such a detailed customized solution like that in MoI.

- Michael
From: BurrMan
20 May 2017   [#54] In reply to [#53]
@Michael,
No need the variable radius. I just saw some screws made like that. I don't see that's what Barry is looking for.

@Others,
I see now why the bottle needs to be a solid, as opposed to my suggestion of just lofting profiles to solve a long Boolean.

Another way to get around it is to just do chunks. So I do an array with 400 bottles. I basically window select little "5ths" of the lot. Each Boolean only took about 15 seconds. If you try with all 1 go, it can make the calc take a long time.

Anyway.....
From: Barry-H
20 May 2017   [#55]
Hi Michael,
Thanks for explaining the Boolean operation and yes reducing the amount of facets to the minimum will help.
Re: Reversing helix.
>Do you need this to be fixed in order to proceed or is the solution you came up with working ok?
I think it would be good to have a check box the same as in the helix creation to save confusion as
normally these screws are in pairs.
Regarding achieving a smooth scroll I have been lofting the facet edges.
Is it better to rebuild the bottle profile so there is only one seam for the Boolean operation and
to give a continuous facet edge to loft ?
I've attached photo's as reference to show how to easily select them.
Again many thanks have a nice weekend.
Barry







Image Attachments:
Select Face Edges.png 


From: Michael Gibson
20 May 2017   [#56] In reply to [#54]
Hi Burr, yeah that's a good idea to make the cylinder in a few sections to speed up the booleans. Anything that limits the number of faces on things will also limit the number of intersection checks. Then at the end to glue sections together it should be possible to do that by deleting the common end caps between pieces and using Join rather than boolean union.

- Michael
From: Michael Gibson
20 May 2017   [#57] In reply to [#55]
Hi Barry,

> I think it would be good to have a check box the same as in the helix
> creation to save confusion as normally these screws are in pairs.

I know it sounds simple to add in a checkbox but unfortunately it can take a surprising amount of time to make it work correctly with testing it. So unless you're blocked from being able to finish that's not something that I'd do right now anyway since it will probably take me much more time to do it than it would save you. I kind of thought that it should work ok on a reversed one, is it that the reversed one isn't centered on the origin maybe?


> Regarding achieving a smooth scroll I have been lofting the facet edges.
> Is it better to rebuild the bottle profile so there is only one seam for the Boolean operation and
> to give a continuous facet edge to loft ?

I'd think so - it would likely be good to reduce the number of edges and segments involved.

- Michael
From: Frenchy Pilou (PILOU)
20 May 2017   [#58]
Seems BottleFeedScrew follows only Helix not tapered ?


From: Michael Gibson
20 May 2017   [#59] In reply to [#58]
Hi Pilou, yes that's correct it only supports a fixed radius helix.

- Michael
From: Nico-M
20 May 2017   [#60] In reply to [#59]
Hi all,
Thank you Michael for your reply.
With the oval bottle, the results seem good, but more difficult to rectangular bottle and round corners.
I think the possibility to to run the script with a reverse twist helix option will be really good.
Best regards.
Nicolas.


Image Attachments:
Screw bottle.png 


From: Michael Gibson
20 May 2017   [#61] In reply to [#60]
Hi Nicolas,

re:
> I think the possibility to to run the script with a reverse twist helix option will be really good.

It's not really feasible to make a reverse twist helix option for this particular script because the script does not generate any twist of its own, the twist comes from the helix you give it. The script just generates points along whatever helix you've supplied. So a reverse twist helix should work ok, as long as it is following the requirements of the script which is that the helix axis should be positioned at the origin.

Is it possible your reverse twist helix is off to the side and not positioned at the origin like the script is expecting? If that's not it please post an example file.

- Michael
From: Nico-M
20 May 2017   [#62] In reply to [#61]
Hi Michael,
See attached files.


Attachments:
Screw bottle 3DM.rar

Image Attachments:
2017.05.20-15.02.46-[3D].png 


From: bemfarmer
20 May 2017   [#63] In reply to [#62]
The script will work fine on a left hand screw, if the initial setup is done in the proper way.
The key is to create the left hand helix (LH), just like the initial right hand helix (RH).
Then move the LH helix to the Left of the bottle, then FLIP the moved LH helix.
(It will be necessary to have a new blank screw/cylinder located to the left of the initial bottle.)
Then run Michaels script, with -90 rotation, because the array is done from left to right.
This preserves the Counterclockwise rotation of the bottle.
After the Boolean(s) have created the LH screw, in TOP view, rotate the entire LH screw clockwise about the center of the bottle, by -180 degrees.
This places the LH screw at "top of MoI screen."
The original RH screw is at "bottom of MoI screen."
(The above steps produce a LH screw which is equivalent to Barry's mirror method IHMO, (I think).)

Geometry remarks on LH, RH, CW and CCW, which may or may not depend upon the position of the person viewing:
A RH screw remains a RH screw, regardless of how it is rotated in MoI.
A LH screw remains a LH screw, regardless of how it is rotated in MoI.
The bottle needs to rotate Counterclockwise (CCW) from the TOP view, at all times.

If the bottleCutter and or either screw is rotated about the X-axis, from the TOP view, the bottleCutter will be rotating Clockwise (CW),
which is Opposite to what is desired.

But if the bottleCutter is rotated about the Z-axis, from the TOP view, the bottleCutter will still be rotating Counterclockwise (CCW),
which is what is desired.

- Brian

Additional remark:
The bottle needs to be pushed "gravity downwards" by each screw, or it could become airborne.
Looking from the Left side of the machine, the LH TopOfScreen screw should rotate CW.
Looking from the Left side of the machine, the RH BottoomOfScreen screw should rotate CCW.

(One UTube video has the bottle rotating CW from TOP view, which is opposite from our current models.)

Show messages:  1-3  4-23  24-43  44-63  64-73