ArraycrvPLUS
 1-4  5-24  25-44  45-64  65-70

Previous
Next
 From:  Jesse
3034.45 In reply to 3034.42 
Hi Michael,

That's what I was thinking too.. the closest point between circles that represent the girdles of the stones.

Yup, the path curve is imaginary.. it's just used as a path for the array.

Your idea about using a perpendicular line stemming out from the closest point between two circles
would probably work well for stones along a straight or nearly straight path curve, (in fact I've done it that way before)
but I'm not sure about how it'd work for placing prongs along stones on a path curve with wide or tight bends..
I'm not on a computer with MoI right now, so I'll have to check that idea out later.

So if it used the two different-in-diameter circles to calculate an offset along a perpendicular line from a line drawn between the closest points of those circles,
would it replicate the same placement as you would if you took into account the curvature of the array?

I used the midpoint of a line I drew between the intersections of the two circles
and an offset parallel path curve, but that method entails too much user intervention to effectively automate, I would think.

Thanks,
Jesse

EDITED: 4 Nov 2009 by JESSE

  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:  Jesse
3034.46 In reply to 3034.40 
Hi Michael,

>So you would draw these circles on to the Top plane, and just arrange them in left to right order to control the sizing.


That seems like a simple and effective strategy.

Jesse
  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:  Jesse
3034.47 In reply to 3034.44 
Hi Michael,

>Hi David, yup that is always a problem when people are totally dependent on things like "wizards" that build things automatically for them. If you get into a situation where the wizard/guided-steps type thing is not able to do something then they get hosed.

David's experience with Matrix might serve as a cautionary example.

After several years of customized macros, scripts and even programming specific code for Rhino to do jewelry design,
there are still some things that go kaflooey and have to be tweaked manually in order to get them right.


>True, but if there is a way that gives you somewhat easier ways to experiment and tweak things really quickly then that can be helpful too...


Yep, having a system that automates certain functions can be a good thing if it takes into account that not everything can be automated. :-)

Not sure if I understand correctly about laying out 2d patterns, wouldn't you get some stretching and distortion when the curves slap down on the surface?
ArtCAM has a Z Height Distortion compensation tool that you have to apply to each closed curve so they don't get bent out of shape, but that's rather tedious
if you have a lot of stones and prongs.

Jesse
  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:  Jesse
3034.48 In reply to 3034.30 
Hi Michael,

I thought this might be worth looking at again.

The next development of ArraycrvPlus is online.

http://jarek-rhinoscripts.blogspot.com/search/label/Armadillo

A section showing spacing modes shows how it does consistent spacing
of varying sized objects.

Jesse

EDITED: 4 Nov 2009 by JESSE

  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:  Paolo (PAOLOLOBBIA)
3034.49 In reply to 3034.48 
Hi Jesse,

I didn't follow the whole threat but maybe this is what you are looking for:

http://sites.google.com/site/smart3dnet/

With this Rhino plugin you place the stones manually,and the system
detects if the virtual stone bounces with it's neighbours.

There's no demo but they give you online help.

EDITED: 4 Nov 2009 by PAOLOLOBBIA

  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
3034.50 In reply to 3034.45 
Hi Jesse,

quote:
So if it used the two different-in-diameter circles to calculate an offset along a perpendicular line from a line drawn between the closest points of those circles,
would it replicate the same placement as you would if you took into account the curvature of the array?

No, I guess not - the prong location would be more following just the line between 2 circles and not necessarily on the offset of the path curve.

It's more like it would be on the offset of a polyline going through the circle centers.

But I guess if your array was dense enough that there was not a lot of change in the path curve between each item it would be pretty close to the same thing.

quote:
I used the midpoint of a line I drew between the intersections of the two circles
and an offset parallel path curve, but that method entails too much user intervention to effectively automate, I would think.

Yeah an automated tool needs to have some relatively simple rules that it follows to generate the stuff.

It can't really do stuff like "just make the spacing look good" or something that requires judgment like that, it has to have the mechanics for how it works really nailed down.


Is there ever a case where you would move stones around in order to accomodate the location of a prong?

If not (if you always want to have the stone placement be primary), then I will probably focus on just the stone placement initially and see if it is possible to nail that down first before worrying about prongs.

- 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
3034.51 In reply to 3034.47 
Hi Jesse,

> Not sure if I understand correctly about laying out 2d
> patterns, wouldn't you get some stretching and distortion
> when the curves slap down on the surface?

Well, what I was thinking about was not such a literal "morphing" of the 2D pattern, but rather just using the 2D pattern to control the spacing between items.

Remember when I was talking about using several circles in left-to-right order to control the sizes of each generated item (when you did not want just a single size for each stone) ? Well, it would also be possible to use the spacing between each of those circles to control the spacing of each generated item in the array as well.

Each array item would still be placed by a "rigid body" transform of moving and rotating it into place rather than squishing it like Flow does though.

- 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:  Jesse
3034.52 In reply to 3034.50 
Hi Michael,

Thanks for your follow up to my questions...
In regards to arraying prongs, the prongs always follow stone placement and never the other way around.
For this type of stone setting, most of the time we want side-by side stones to share a prong on each
side so you have the stones laid out as close as possible to each other along the path curve on a surface
with just enough room for prongs to hold the stones in securely without too much metal showing.
So the prongs need to be just large enough, but not so large that they would obscure the stone
at all.

Jesse
  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:  Jesse
3034.53 In reply to 3034.51 
Hi Michael,

I may have posted something confusing in my comment about David's idea of using 2d curves to lay out a pattern.
I understand that the 2d circles would only be used to determine the spacing and size.

Jesse
  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:  Jesse
3034.54 In reply to 3034.49 
Hi Paolo,

Thanks.. I took a look at it.. seems like an effective tool to customize Rhino
to do some jewelry specific modeling operations..I'm hoping Michael
can implement a few tools in MoI that will do similar things. :-)
Have you used Smart3d?

Jesse
  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:  Paolo (PAOLOLOBBIA)
3034.55 In reply to 3034.54 
Hi Jesse,

I proposed it to my colleague, expert modelist in the company where i work.
For years he was searcing for a program that does stonesetting in a traditional way.
I myself am not an expert of stonesetting.

It's not a miracle program but it saves you a lot of time because the only thing you have to do is to place the stones according to your experience.
The making of holes is special because the virtual dril shape is variable depending on your needs.

The programmer himself has livetime experience in stonesetting(Pavee) and decided to change his job,and produced this product.
They are working on a automatic version.


Here is a link to see some other opinions:
http://www.rhino3d.com/resources/display.asp?language=&listing=4613

EDITED: 5 Nov 2009 by PAOLOLOBBIA

  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:  Jesse
3034.56 In reply to 3034.55 
Hi Paolo,

Thanks, it looks interesting, but seems to be fairly pricey for what it does, compared to RhinoGold and RhinoJewel.

I prefer to work in MoI to create 3dm files to make jewelry models whenever I can, so I can wait for Michael to develop the array tools
to work more efficiently for jewelry design! :-)

Jesse
  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
3034.57 In reply to 3034.56 
Hi Jesse, I've been able to make some progress on a gem arraying function for the next v2 beta. Since I want the next beta release to be the last one for v2 this probably won't get refined any more until sometime into v3 but it seems like it should help out for the time being and is hopefully a good starting point.

You will have to set up a shortcut key to launch it, the command name will be: ArrayGem (to be similar to the other array commands like ArrayGrid, ArrayDir, etc..).

The way it works is pretty simple, you first select the objects that you want to duplicate and also select a previously drawn "base circle" along with them.

Then you run the command, and select the path curves (there can be multiple curves) and the surface for orientation.

Then the final stage is to enter a spacing value, either by clicking 2 points or by entering in a number value.

It looks like this:



Here's another view of that result:




The center point of the base circle defines the "water level point" - the circle center point will be the place that goes directly on the surface. So you can position the circle and objects in relation to one another to define how far you want stuff to stick up above or below the surface. Here's a closeup of the object and base circle from above:



You can choose to either move the object up, or the circle down to adjust that part.

Then the way the spacing works is the spacing you pick becomes the length of an invisible line segment that is constructed between each circle.

It's a little slow to compute everything, like the above one takes 16 seconds of calculation time to finish (but on a 6-year old slow computer though too). Anyway, if you have a big one it will probably take a few minutes but certainly a whole lot faster than placing them by hand! :)

Also it will probably not be able to work right if the curve wiggles around a whole bunch in between each instance. So you can't have something like a curve that bends back and forth a lot and then have a large spacing specified where it would have to cross a bunch of those bends in one step.

It seems to be working pretty well though, but there will probably need to be some tune-ups in v3.

Here's another example - here I drew one 2D curve, then offset it several times and then projected it on to the surface, then used ArrayGem:








There are also some other object orientation tools coming in addition to this, like PastePart (paste + set orientation as shown in a previous thread), and also a new Transform > Orient command as well.

So all together there should be a big boost in this area of getting stuff oriented to a surface normal in this next beta release, which was pretty painful to do before.

- 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
3034.58 In reply to 3034.57 
An example with a projected spiral:








It only guarantees the spacing of each instance from the one behind it along the curve though, if your curve comes too close together in different areas then the items between those areas can still get bunched up to one another.

But at least this avoids bunching of adjacent items along the curve though, which could be hard to avoid with the regular kind of curve array function that measures distance as traveled along the curve rather than the direct 3D distance between things like this new one.

- 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
3034.59 In reply to 3034.58 
Also this one won't really work very well on closed curves because the way it works is to simply use the given spacing to move each item from the previous one.

By the time you march all the way around a closed curve, there is not any guarantee that the last one placed is going to end up at that same distance away from the very first one placed at the start of the curve.

I'm not completely sure what to do about that, I guess that probably you would want the spacing tweaked slightly so that the last step ended up back right on the first one. But that's going to be extremely time consuming to calculate.

- 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:  Frenchy Pilou (PILOU)
3034.60 
What is the difference with array curve?
---
Pilou
Is beautiful that please without concept!
My Gallery
  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:  Jesse
3034.61 In reply to 3034.57 
Hi Michael,

This looks really great so far! I especially like the work you've done on positioning with the "base circle"
and that it can work with multiple curves.

Is it because it has history enabled that it's a little slow to calculate? If so, that's OK, since it
will allow the user to adjust positioning rather easily.

> Also it will probably not be able to work right if the curve wiggles around a whole bunch in between each instance. So you can't have something like a curve that bends back and forth a lot and then have a large spacing specified where it would have to cross a bunch of those bends in one step.

This will probably not even be a problem, if I understand correctly. The array curves typically do not wiggle radically in relation to the size of the stone and most gemstone arrays pack the stones as close together as practically possible, often allowing the stone setter to secure adjacent stones with a pair of common prongs. Could prong placement relative to gemstone placement be something for future development?

Perhaps the prongs would be off to the side like the way you have the gemstone now, except there would be two stones sharing prongs and the function would array it in such a way that the stones will share a pair of common prongs? I can do an example later today to illustrate this idea.

Looking forward to trying out the new tool...

Thanks,

Jesse
  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:  Jesse
3034.62 In reply to 3034.59 
>By the time you march all the way around a closed curve, there is not any guarantee that the last one placed is going to end up at that same distance >away from the very first one placed at the start of the curve.

>I'm not completely sure what to do about that, I guess that probably you would want the spacing tweaked slightly so that the last step ended up back right >on the first one. But that's going to be extremely time consuming to calculate.

Hi Michael,

Most of the closed curve arrays typically used in jewelry design for gemstones are on rings, so the regular circle array function, works for that.
I suppose it would be nice to have the option to be able to start and stop at the same place along a closed curve on a free-form surface, but I don't think it's a priority. If it's not exact we can play with the numbers of stones and distance between and probably get it close enough...and then tweak it with the Paste Part tool if we have to.

Jesse
  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
3034.63 In reply to 3034.60 
Hi Pilou,

> What is the difference with array curve?

The way it handles spacing of the items is different from the regular array curve command.

The array curve command works by traveling the given distance along the curve.

This new function instead places things so the spacing between each base circle is of the given distance, like this:



That distance is measured directly between each circle rather than it being a distance measured as walking directly along the curve. The way the curve is involved is that the center points of the circles are placed on the curve.

I thought some about possibly making this version as an option in the regular array curve command, but I think that I'll wait for a while into v3 to see how it turns out with more stuff added to it. If it gets a lot of stuff specifically for jewelry in it like including prongs, stuff like that, then it would probably be better to keep it separate.

- Michael

EDITED: 9 Dec 2009 by MICHAEL GIBSON

  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
3034.64 In reply to 3034.61 
Hi Jesse,

> I especially like the work you've done on positioning with the "base circle"

Yeah that part seems to be working really well, a bunch of parameters such as diameter, center point, vertical offset are basically derived from that circle and it seems to be easier to just be able to pick the circle to get all that stuff rather than making them parameters that you would have to enter one by one.

This also allows to have some files set up that are basically "libraries" of stones that have their base circles included so they are all ready to select and place.

If you want to include another circle as an object to duplicate (like the actual girdle circle or whatever), then just select the base circle by clicking on it first before selecting the other circle. So if there are multiple circles, the one that was selected first gets taken as the base circle.


> Could prong placement relative to gemstone placement
> be something for future development?

Yeah, I think so - prong placement and also some way to control changes in size sound like areas that would be useful to add to this tool in v3.

I think I'd probably like to focus on stone placement first though, and try to get that nailed down before attempting something for prongs.

The first step will be to see if the current one gives you the result you would want for uniform sized stone placement or if there needs to be some tune-ups just for that part to start with. Then next after that (in v3) I think would be to talk more about changing sizes of stones and get something for that, and then after that would be prongs I think.



> Is it because it has history enabled that it's a little slow to calculate?

No, it's not because of that - it's just due to the nature of the problem that is being solved. There is not a simple immediate way to find the solution for this case, it has to be done with what is called an "iterative solver", which basically repeatedly tests a whole bunch of points along the curve and gradually narrows in to find the right spot. Right now my iterative solver mechanism is not tuned up so much to be fast, it's more tuned up to try to get an answer and to be accurate.

This function won't work with history currently, but it is still tweakable because it works like Fillet, where you stay in the command and can alter the spacing to different values and see the results update until you hit "Done" (or right-click) to signal you are finished.

- 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

 

 
Show messages:  1-4  5-24  25-44  45-64  65-70