ArraycrvPLUS
 1-16  17-36  37-56  57-70

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

Previous
Next
 From:  Frenchy Pilou (PILOU)
3034.65 
  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:  www.smart3d.net (SMART3D)
3034.66 
sorry

EDITED: 10 Feb 2010 by SMART3D

  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:  eric (ERICCLOUGH)
3034.67 In reply to 3034.66 
Well,
It does frankly disturb me somewhat. Rhino is the nurbs elephant and MoI is the innovative alternative but smaller and more streamlined.
Advertising a plug in for the elephant (and therefore the elephant) on this site does not seem ethical to me.
eric
  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:  www.smart3d.net (SMART3D)
3034.68 In reply to 3034.67 
So... i'm sorry,

i've removed the post,
  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.69 In reply to 3034.68 
Hi Andrea, no problem!

Your Smart3d Pave' looks very interesting for jewelers, it would be cool in the future if you wanted to do something similar for MoI, but it will probably be a while yet before I'll be ready to support 3rd party development inside of MoI.

It takes quite a bit of time to document and support extension mechanisms. Also once a lot of additional developers are relying on something it can tend to get kind of "frozen" in place and difficult to make changes to the infrastructure. I'm still currently doing too much work on more of the basic modeling function type stuff first.

I will probably be adding in some additional basic stone placement tools directly into MoI but not anywhere near as sophisticated as what you are working on.

- 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
 From:  www.smart3d.net (SMART3D)
3034.70 In reply to 3034.69 
Thanks Michael,

We will be happy to do something in MoI.

We greatly appreciate the intuitive interface of MoI.

We are never able to achieve the simplicity of use that has MoI, which we believe is a great value.

When MoI will be ready to support 3rd party development, we will be happy to collaborate.
  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-16  17-36  37-56  57-70