MoI discussion forum
MoI discussion forum

Full Version: Variable Width Line Offset Command - fatT Lines

Show messages:  1-20  21-40  41-48

From: AlexPolo
5 Sep 2015   [#1]
Hi All,

Once again amazing to see the script commands flowing love the new Voronoi command have been using Rhino and Grasshopper to do the same but this takes the same task to a new level of simplicity. Awesome Work!

To add to this or any grouped line work would be great to have a command in MOI to variably offset the width both sides, and weld all vertices with a choice of corner radius straight or round.

Currently I do lots of panelling based on linework - I use Illustrator by widening the path width then using pathfinder to weld it all together does a great job. But if this function could be replicated inside MOI would take workflow to another level. This in conjunction with the SubD Command can be used easily to create blended lace structures something currently TSplines is good for.

Here is an example.



I have placed sample 3dm File for review under this location.

https://drive.google.com/folderview?id=0BwzK5muLiElSTnVNU21KdmlsQWc&usp=sharing

Image Attachments:
fatT Lines.JPG 


From: bemfarmer
5 Sep 2015   [#2] In reply to [#1]
I've recently been reading several links about "exoskeleton."

http://www.grasshopper3d.com/profiles/blogs/introducing-exoskeleton-a-wireframe-thickening-tool

It requires convex hull3d,such as giftwrap3d, or quickhull 3d.
The latter have numerous javascript and java implementations, which I have begun to look at.
Similar quickhull 3d could be done with a Moi script. There is some relation to voronoi...

http://www.cise.ufl.edu/~ungor/courses/fall06/papers/QuickHull.pdf

- Brian

There is another paper, previously linked to...
From: Michael Gibson
5 Sep 2015   [#3] In reply to [#1]
Hi Alex, I'm not seeing where the "variable" part comes into play in your demo file - do you have any example of what kind of result you would be looking for with the variability and how you would control it?

You can currently get the same result as a variable offset on a line by doing Sweep using some perpendicular lines as the profile curves.

On a bendy curve you can use Flow to get a variable offset like this:





- Michael

Image Attachments:
variable_offset1.jpg  variable_offset2.jpg 


From: AlexPolo
5 Sep 2015   [#4] In reply to [#3]
Hi Michael,

This is more what I was thinking - if you select a large group of lines and try an offset to all MOI struggles with the output. You can see from the illustrator output that the offset is clean. What I mean from variable is able to change the width of the line. With this clean output it can be converted to a 3d object from which a lean nurbs model or mesh created. (Manual method to the grasshopper exoskeleton workflow)

Like the Voronoi generator another favourite of mine is the Taprats generator.

http://www.cgl.uwaterloo.ca/~csk/washington/taprats/applet.html

Its vector EPS outputs are of very high quality and great for creating repeat patterns.





Image Attachments:
llustrator Offset Output.JPG  Moi Line Offset.JPG  Moi Offset Multiple Lines.JPG 


From: Max Smirnov (SMIRNOV)
5 Sep 2015   [#5] In reply to [#1]
Hi Alex, try this simple script.
Unfortunatelly MoI's union factory doesn't work stable in some cases.
From: AlexPolo
5 Sep 2015   [#6] In reply to [#5]
thats excellent if somehow the Fillet and Chamfer can be worked into the script so that is controlled via that - makes it a really sharp chisel.

thanks again for the lightspeed.
From: Michael Gibson
5 Sep 2015   [#7] In reply to [#4]
Hi Alex - I guess one thing I'm confused about is what part is "variable width" - that's what you mentioned in the title, but what you show in your example seems to be uniform width, not variable width?

re:
> if you select a large group of lines and try an offset to all MOI struggles with the output.

Yes, the offset mechanism is not meant to be used for a case like that with "branching" in the line arrangement, it tries to form a single closed curve out of any lines you give it and if it instead ends up making some winding erratic path that will give strange results.

Unfortunately there is not currently a direct mechanism in the geometry library to handle a branched type offset like you are describing. It could be possible to create one but it would probably involve quite a bit of work and so it's not likely to happen anytime too soon.

Hopefully Max's script will help you in the meantime.

- Michael
From: AlexPolo
5 Sep 2015   [#8] In reply to [#5]
Hi Max,

Had a play works well one small issue if last value on the slider was large and you have a large selection Moi hangs - would be good each time you initiate the script, it defaults to zero.

Here is a quick play random curve - array 3d - fatlines.


Image Attachments:
fatlines.JPG 


From: BurrMan
6 Sep 2015   [#9] In reply to [#8]
""""""""""would be good each time you initiate the script, it defaults to zero.""""""""""

You can open FlatLines.htm and search for 50 and change that to zero if you want..

The slider is coded as a percentage, so you will only be able to slide to "10". But you can enter any exact number also, it will just default back to a 10 slide if you use the slider....

I usually handle these with 2 sets (or more) with a second named "FlatLines 50" or 100 etc..... If larger values are needed.

I set mine to min.1 mid 5 and max 50, default 0..... Because most of the stuff I work on will be smaller stuff. This gives me a .1 to 5 with half the slider and 5 to 50 with the other half.
From: Max Smirnov (SMIRNOV)
6 Sep 2015   [#10]
Fixed default value
From: AlexPolo
6 Sep 2015   [#11] In reply to [#10]
Hi Max,

Had a play with the FatLine Script for some reason when I apply to a line sequence generated out of the Voronoi Script does not weld the items - they are all sitting on the same plane.

I have included test file.

thanks

Alex.


Attachments:
Voronoi Fatlines.3dm

Image Attachments:
fatlines.JPG 


From: Max Smirnov (SMIRNOV)
6 Sep 2015   [#12] In reply to [#11]
Hi Alex,

There something wrong with Boolean Union factory. You need to deselect a border and run the script again.
From: AlexPolo
6 Sep 2015   [#13] In reply to [#12]
thanks AOK>
From: chippwalters
6 Sep 2015   [#14]
Max,

I really like the Fat Lines script. Much appreciated. Is there anyway to add filleting to the corners of FatLines OR is there a way to select a bunch of EDGES and filet them all at once? It appears the Fillet command will on only work on one edge group at a time, so it becomes overly tedious to fillet each and every edge at the same time.

See my Voronoi video at 11:30 on how and why I like to use Illustrator to do mass fillets: https://youtu.be/agEvJcirfUE

Thanks again for a great set of Tools!
From: chippwalters
6 Sep 2015   [#15] In reply to [#1]


Hey Alex, how did you do the subD version above? Is that in MoI. I thought it would only SubD solids made up entirely of quads?
From: AlexPolo
6 Sep 2015   [#16] In reply to [#15]
Hi Chip

YEP all in Moi - I exported the extruded shape from Inside Moi as OBJ traingles with division to lowest.

Re imported then ran the subD v6 Script.

Alex.
From: chippwalters
7 Sep 2015   [#17] In reply to [#16]
Thanks Alex for getting back. Interesting technique!
From: Frenchy Pilou (PILOU)
7 Sep 2015   [#18]
Very tricky method!
Adopted!



PS In fact i had make the same here in the past :) http://moiscript.weebly.com/subdivision.html
I don't know why i had use the OBJ of SKetchup ??? :D
SKetchup -->obj By Tig for free version of Sketchup
Import OBJ --> Moi by Max Smirnov
Export OBJ from Moi (Quad + Triangle) :) By Michael
Import OBJ --> Moi by Max Smirnov




From: Frenchy Pilou (PILOU)
7 Sep 2015   [#19]
French version of FatLines ;)
http://moiscript.weebly.com/scripts-de-max-smirnov.html


From: Metin Seven (SEVENSHEAVEN)
7 Sep 2015   [#20]
Hi guys,

Max, you create one great script after another, muchas gracias!

I was wondering if it would be possible to add an option to the Fat Lines script to taper each line (with options for start and/or end). That would be very useful for creating cartoony ink style lines.

Here's an example of how that would look:

Image Attachments:
Fat Lines with taper options.png 


Show messages:  1-20  21-40  41-48