[semi-on-topic] print speed optimized sinus support material. integration interface possible??

classic Classic list List threaded Threaded
36 messages Options
12
Reply | Threaded
Open this post in threaded view
|

Re: [semi-on-topic] print speed optimized sinus support material. integration interface possible??

Neon22
@clothbot - that is a very nice solution. looking fwd to it...
Reply | Threaded
Open this post in threaded view
|

Re: [semi-on-topic] print speed optimized sinus support material. integration interface possible??

Ronaldo
@clothbot strategy may be nicely implemented without any extension to the last OpenSCAD version.



part_height = 50;

module up_hull(h){
  minkowski(){
    children();
    cylinder(r1=0,r2=h/100,h=h);
  }
}

module support_mask(ph){
  render(convexity=10)
    difference() {
      linear_extrude(height=ph)
        projection(cut=false)
          children();
      up_hull(ph)
        children();
  }
}

render(convexity = 4) part();
translate([150,0,0]) projection(cut=false) part();
translate([300,0,0]) linear_extrude(height=part_height) projection(cut=false) part();
translate([450,0,0]) up_hull(part_height) part();
translate([600,0,0]) support_mask(part_height) part();


2016-03-11 20:23 GMT-03:00 Neon22 <[hidden email]>:
@clothbot - that is a very nice solution. looking fwd to it...



--
View this message in context: http://forum.openscad.org/semi-on-topic-print-speed-optimized-sinus-support-material-integration-interface-possible-tp16383p16424.html
Sent from the OpenSCAD mailing list archive at Nabble.com.

_______________________________________________
OpenSCAD mailing list
[hidden email]
http://lists.openscad.org/mailman/listinfo/discuss_lists.openscad.org


_______________________________________________
OpenSCAD mailing list
[hidden email]
http://lists.openscad.org/mailman/listinfo/discuss_lists.openscad.org
Reply | Threaded
Open this post in threaded view
|

Re: [semi-on-topic] print speed optimized sinus support material. integration interface possible??

Peter
Ronaldo nice indeed,
but how would  you implement a _continuous_  sinus form?
any cut through a pre-made sinus filed block will produce many discontinuities which will slowdown the printing process  a lot.
there is no way i can think of of joining these together again in scad, many slow prints where my support was way slower than slic3rs, and inability to query existing geometry  were what made me turn to javascript.
it was not an easy decision.

actually i can see this this approach as a perfect complement to a an external sinus tool.
i will just have to export the step#2 as svg,fill it with sinus with the external tool (or half-circle which might turn out to be even faster)
 then extrude the result and cut it like  your last form
Peter

On 12.03.2016 04:01, Ronaldo Persiano wrote:
@clothbot strategy may be nicely implemented without any extension to the last OpenSCAD version.



part_height = 50;

module up_hull(h){
  minkowski(){
    children();
    cylinder(r1=0,r2=h/100,h=h);
  }
}

module support_mask(ph){
  render(convexity=10)
    difference() {
      linear_extrude(height=ph)
        projection(cut=false)
          children();
      up_hull(ph)
        children();
  }
}

render(convexity = 4) part();
translate([150,0,0]) projection(cut=false) part();
translate([300,0,0]) linear_extrude(height=part_height) projection(cut=false) part();
translate([450,0,0]) up_hull(part_height) part();
translate([600,0,0]) support_mask(part_height) part();


2016-03-11 20:23 GMT-03:00 Neon22 <[hidden email]>:
@clothbot - that is a very nice solution. looking fwd to it...



--
View this message in context: http://forum.openscad.org/semi-on-topic-print-speed-optimized-sinus-support-material-integration-interface-possible-tp16383p16424.html
Sent from the OpenSCAD mailing list archive at Nabble.com.

_______________________________________________
OpenSCAD mailing list
[hidden email]
http://lists.openscad.org/mailman/listinfo/discuss_lists.openscad.org



_______________________________________________
OpenSCAD mailing list
[hidden email]
http://lists.openscad.org/mailman/listinfo/discuss_lists.openscad.org


_______________________________________________
OpenSCAD mailing list
[hidden email]
http://lists.openscad.org/mailman/listinfo/discuss_lists.openscad.org
Reply | Threaded
Open this post in threaded view
|

Re: [semi-on-topic] print speed optimized sinus support material. integration interface possible??

Peter
In reply to this post by nophead
>Why not just fork your favourite open source slicer and modify the support material generation in that?

i was thinking about this but i see to many cons:
i consider forks harmful, i think if a project disintegrates into many forks, there is a good chance it will cease to exits all together soon.
i would be  stuck with the version of slicer which i have forked, redoing the same changes for every  new version and creating even more forks is not a trivial task. that means the changes will be obsolete quickly.
it is much more effort to study the complex inner working of the slicer to be able to implement stuff inside , compile it , test the whole thing. it is a much bigger project than creating a small script.
one could consider forking and extending openscad itself with the "call out to javascript" functionality  as well. at least this might limit the desire for even more forks. and it appears to me be an easier project(though i do not know really), but i do not want to create another f#rking f#rk of openscad anyway!
 i think getting along with other people and creating stuff together is a much harder project, than just doing it for yourself and forking, but in the end it should be better for everybody.(in theory at least)
 Peter
On 11.03.2016 19:47, nop head wrote:


On 11 March 2016 at 18:21, Parkinbot <[hidden email]> wrote:
Peter,

from your answer I can guess you didn't fully unterstand, what I meant. I
did NOT mean to use a hull operation in OpenSCAD.
I meant to use JavaScript to
1. parse an STL export of your model
2. determine all surface parts that need support (using criteria like:
triangle inclination > min_support_angle)
3. close this surface against xy plane (z=0) into an object that describes
the full volume (=hull) of your support and write it out as STL.

This is more or less straight forward. Then continue with OpenSCAD
3. import this STL and use intersection() to cut the support from a generic
block of sine infill structure
4. combine your support with your model.

This is also straight forward.


Peter wrote
> i.e. just as you write creating a hull of the model and subtracting it
> from the support structures will help,
> if the Model is not convex it will not quite work, but one can
> "subdivide" the model using a small cube  "rastering" the Space
> containing your model, creating smaller Hulls in the intersection with
> this cube and then unioning them together and subtracting the whole
> thing from the support structure.





--
View this message in context: http://forum.openscad.org/semi-on-topic-print-speed-optimized-sinus-support-material-integration-interface-possible-tp16383p16417.html
Sent from the OpenSCAD mailing list archive at Nabble.com.

_______________________________________________
OpenSCAD mailing list
[hidden email]
http://lists.openscad.org/mailman/listinfo/discuss_lists.openscad.org



_______________________________________________
OpenSCAD mailing list
[hidden email]
http://lists.openscad.org/mailman/listinfo/discuss_lists.openscad.org


_______________________________________________
OpenSCAD mailing list
[hidden email]
http://lists.openscad.org/mailman/listinfo/discuss_lists.openscad.org
Reply | Threaded
Open this post in threaded view
|

Re: [semi-on-topic] print speed optimized sinus support material. integration interface possible??

Peter
In reply to this post by Parkinbot
ok i see now, yes.
these mechanisms ,whether you put them into openscad code, slicer or
JavaScript tool, are very nice to have.
but one could live without them at all in a great deal of cases, just
union the model with a support material block of the height you choose.
if you consider the angle to be steep enough , just do not do it.

the whole point of the tool was to produce the _continuous_ form inside
the support material block which fits the outline of the model, so that
you do not get many separate half waves at the outline. these
discontinuities  turned out very slow to print because of filament
retractions, deccelerations and "idle" head moves.
Peter
On 11.03.2016 19:21, Parkinbot wrote:

> Peter,
>
> from your answer I can guess you didn't fully unterstand, what I meant. I
> did NOT mean to use a hull operation in OpenSCAD.
> I meant to use JavaScript to
> 1. parse an STL export of your model
> 2. determine all surface parts that need support (using criteria like:
> triangle inclination > min_support_angle)
> 3. close this surface against xy plane (z=0) into an object that describes
> the full volume (=hull) of your support and write it out as STL.
>
> This is more or less straight forward. Then continue with OpenSCAD
> 3. import this STL and use intersection() to cut the support from a generic
> block of sine infill structure
> 4. combine your support with your model.
>
> This is also straight forward.
>
>
> Peter wrote
>> i.e. just as you write creating a hull of the model and subtracting it
>> from the support structures will help,
>> if the Model is not convex it will not quite work, but one can
>> "subdivide" the model using a small cube  "rastering" the Space
>> containing your model, creating smaller Hulls in the intersection with
>> this cube and then unioning them together and subtracting the whole
>> thing from the support structure.
>
>
>
>
> --
> View this message in context: http://forum.openscad.org/semi-on-topic-print-speed-optimized-sinus-support-material-integration-interface-possible-tp16383p16417.html
> Sent from the OpenSCAD mailing list archive at Nabble.com.
>
> _______________________________________________
> OpenSCAD mailing list
> [hidden email]
> http://lists.openscad.org/mailman/listinfo/discuss_lists.openscad.org
>



_______________________________________________
OpenSCAD mailing list
[hidden email]
http://lists.openscad.org/mailman/listinfo/discuss_lists.openscad.org
Reply | Threaded
Open this post in threaded view
|

Re: [semi-on-topic] print speed optimized sinus support material. integration interface possible??

Parkinbot
This post was updated on .
In reply to this post by Peter
The following code will create a box filled with cosine support. CGAL rendering is almost instantaneous.
Is it what you were asking for?



!!Updated!!
supportblock();

module supportblock(rows = 10, cols = 10, box = [100, 100, 10], thickness = .1)
{
  amplitude = box[1]/rows/2;
  wavelength = box[0]/cols;
  linear_extrude(height = box[2])
  for(i = [0:rows-1])
    Ty(i*amplitude*2)
    polygon(points = sine(cols, amplitude, wavelength, i%2, thickness));
}

function sine(periods, amplitude, wavelength, mode, thickness = .01) =
  let(amp = amplitude-thickness/1.9)
  concat(
   [for(i=[0:10:360*periods]) [i * wavelength/360, amp*cos(i+mode*180)]],
   [for(i=[360*periods:-1:0]) [i * wavelength/360, amp*cos(i+mode*180)+thickness]]);
Rudolf
Reply | Threaded
Open this post in threaded view
|

clarification on the aim of the javascript tool was: Re: [semi-on-topic] print speed optimized sinus support material. integration interface possible??

Peter
i think i have problems explaining what this javascript tool is actually
about.
the starting point was a code in scad very similar to yours creating a
sine filled block.

but the tool does _not_ create a rectangular box filled with sinus.
cutting out a footprint of almost any model out of such block will
produce many discontinuities at the areas where the sinus wave is cut by
the outline of footprint of the model. it will create many standalone
"islands" of fractures of a sinewave. this will slow down the print.

what the javascript tool realy does, and i think it is impossible in
openscad without querieng the geometry, it tries to create a _continous_
sine or half-scircle wave in the footprint of the model, so that you do
not have to cut out the footprint out of a sine block, and printer can
(ideally) print the whole layer of support without deccelerating or idly
moving its head
Peter
On 12.03.2016 14:45, Parkinbot wrote:

> The following code will create a box filled with cosine support. CGAL
> rendering is almost instantaneous.
> Is it what you were asking for?
>
> <http://forum.openscad.org/file/n16438/sinecomb.png>
>
>
>> supportblock();
>>
>> module supportblock(rows = 10, cols = 10, box = [100, 100, 10], thickness
>> = .1)
>> {
>>   amplitude = box[1]/rows/2;
>>   wavelength = box[0]/cols *PI;
>>   linear_extrude(height = box[2])
>>   for(i = [0:rows-1])
>>     Ty(i*amplitude*2)
>>     polygon(points = sine(cols, amplitude, wavelength, i%2, thickness));
>> }
>>
>> function sine(periods, amplitude, wavelength, mode, thickness = .01) =
>>   let(amp = amplitude-thickness/1.9)
>>   concat(
>>    [for(i=[0:10:360*periods]) [i/wavelength, amp*cos(i+mode*180)]],
>>    [for(i=[360*periods:-1:0]) [i/wavelength,
>> amp*cos(i+mode*180)+thickness]]);
> Rudolf
>
>
>
>
> --
> View this message in context: http://forum.openscad.org/semi-on-topic-print-speed-optimized-sinus-support-material-integration-interface-possible-tp16383p16438.html
> Sent from the OpenSCAD mailing list archive at Nabble.com.
>
> _______________________________________________
> OpenSCAD mailing list
> [hidden email]
> http://lists.openscad.org/mailman/listinfo/discuss_lists.openscad.org
>



_______________________________________________
OpenSCAD mailing list
[hidden email]
http://lists.openscad.org/mailman/listinfo/discuss_lists.openscad.org
Reply | Threaded
Open this post in threaded view
|

Re: clarification on the aim of the javascript tool was: Re: [semi-on-topic] print speed optimized sinus support material. integration interface possible??

Parkinbot
My slicer does a nice path on that. If linewidth is not to thin jump don't occur often. Of course, there are jumps at the boundaries. Jump minimization is another task done by the slicer.

So, if path planning and GCODE optimization is your concern, OpenScad will not help you. Better follow nophead's proposal and fork out your own slic3r branch to solve your problems there. https://github.com/alexrj/Slic3r

Rudolf
Reply | Threaded
Open this post in threaded view
|

Re: clarification on the aim of the javascript tool was: Re: [semi-on-topic] print speed optimized sinus support material. integration interface possible??

Ronaldo
In reply to this post by Peter
I understand your point and agree that there is no way to do it entirely in OpenSCAD without geometry query tools. However, it would not be difficult to write a javascript code to process an OpenSCAD stl file of the linear_extrude() of the part projection. This code would generate a text file like this:
model=[
[[275,50,0],    [275,100,0],    [285,50,0]],
[[315,-50,0],    [325,-50,0],    [325,-100,0]],
[[315,50,0],    [325,100,0],    [325,50,0]],
[[315,50,0],    [275,100,0],    [325,100,0]],
[[285,-50,0],    [285,50,0],        [315,-50,0]],
[[315,-50,0],    [285,50,0],        [315,50,0]],
[[285,50,0],    [275,100,0],    [315,50,0]],
[[275,-100,0],    [285,-50,0],    [315,-50,0]],
[[275,-100,0],    [275,-50,0],    [285,-50,0]],
[[325,-100,0],    [275,-100,0],    [315,-50,0]]];

which could be inserted in a OpenSCAD code for further processing.

That approach doesn't avoid an external processing but the javascript code could be valuable to any application demanding geometric queries. And you may write then your support generation methods in OpenSCAD. :)

As a complement, would be nice also to have an OpenSCAD library to answer geometric queries about models generated this way.

2016-03-12 11:15 GMT-03:00 [hidden email] <[hidden email]>:
i think i have problems explaining what this javascript tool is actually
about.
the starting point was a code in scad very similar to yours creating a
sine filled block.

but the tool does _not_ create a rectangular box filled with sinus.
cutting out a footprint of almost any model out of such block will
produce many discontinuities at the areas where the sinus wave is cut by
the outline of footprint of the model. it will create many standalone
"islands" of fractures of a sinewave. this will slow down the print.

what the javascript tool realy does, and i think it is impossible in
openscad without querieng the geometry, it tries to create a _continous_
sine or half-scircle wave in the footprint of the model, so that you do
not have to cut out the footprint out of a sine block, and printer can
(ideally) print the whole layer of support without deccelerating or idly
moving its head
Peter
On 12.03.2016 14:45, Parkinbot wrote:
> The following code will create a box filled with cosine support. CGAL
> rendering is almost instantaneous.
> Is it what you were asking for?
>
> <http://forum.openscad.org/file/n16438/sinecomb.png>
>
>
>> supportblock();
>>
>> module supportblock(rows = 10, cols = 10, box = [100, 100, 10], thickness
>> = .1)
>> {
>>   amplitude = box[1]/rows/2;
>>   wavelength = box[0]/cols *PI;
>>   linear_extrude(height = box[2])
>>   for(i = [0:rows-1])
>>     Ty(i*amplitude*2)
>>     polygon(points = sine(cols, amplitude, wavelength, i%2, thickness));
>> }
>>
>> function sine(periods, amplitude, wavelength, mode, thickness = .01) =
>>   let(amp = amplitude-thickness/1.9)
>>   concat(
>>    [for(i=[0:10:360*periods]) [i/wavelength, amp*cos(i+mode*180)]],
>>    [for(i=[360*periods:-1:0]) [i/wavelength,
>> amp*cos(i+mode*180)+thickness]]);
> Rudolf
>
>
>
>
> --
> View this message in context: http://forum.openscad.org/semi-on-topic-print-speed-optimized-sinus-support-material-integration-interface-possible-tp16383p16438.html
> Sent from the OpenSCAD mailing list archive at Nabble.com.
>
> _______________________________________________
> OpenSCAD mailing list
> [hidden email]
> http://lists.openscad.org/mailman/listinfo/discuss_lists.openscad.org
>



_______________________________________________
OpenSCAD mailing list
[hidden email]
http://lists.openscad.org/mailman/listinfo/discuss_lists.openscad.org


_______________________________________________
OpenSCAD mailing list
[hidden email]
http://lists.openscad.org/mailman/listinfo/discuss_lists.openscad.org
tp3
Reply | Threaded
Open this post in threaded view
|

Re: clarification on the aim of the javascript tool was: Re: [semi-on-topic] print speed optimized sinus support material. integration interface possible??

tp3
On 03/12/2016 04:34 PM, Ronaldo Persiano wrote:
> As a complement, would be nice also to have an OpenSCAD library
> to answer geometric queries about models generated this way.
>
I agree, and this will hopefully come, but it's a fair amount of
work.

Although for the specific solution of producing better support
structures for 3d printing it would be greatly beneficial if that
would be implemented in one of the open source slicers. This would
then easily available for all people using the open source tool
chain for 3d printing.
In addition the slicer has some additional information that will
make support better fit the actual machine configuration.

Also in my view there is absolutely nothing wrong with forking a
project with the intention of contributing changes back.
The only bad kind of forking is to create a parallel project
if the main project is still alive and responsive to feedback.

ciao,
  Torsten.


_______________________________________________
OpenSCAD mailing list
[hidden email]
http://lists.openscad.org/mailman/listinfo/discuss_lists.openscad.org
-- Torsten
Reply | Threaded
Open this post in threaded view
|

Re: clarification on the aim of the javascript tool was: Re: [semi-on-topic] print speed optimized sinus support material. integration interface possible??

Peter
In reply to this post by Parkinbot
well what should i say? i am glad your slicer is working out well for
you, so you will probably have no need for similar tools and all the
export and import steps the process requires,
it was definitely not the case on my models with slic3r, that was the
very reason i interrupted the work on the part and took time to
implement the support.
first in .scad and redoing it in javascript for the reasons we have been
talking about. and it is actually working reasonably well for me (and i
am not going to say perfect no, but it is an obvios improvement in
support quality vs printing time in my case).
there are many reasons i am not going to f#rk (with) slicers source i
just have been discussing in the same thread  with nop-head. there were
many reasons to go the .js path, and it seems to work, and i hope others
who experience similar problems with slicers support, can use it as
well, that is why i put it on github, and in the process of this
discussion may be we will come up with a way of making openscad more
extensible and open for tools. thats it.

Peter
On 12.03.2016 16:21, Parkinbot wrote:

> My slicer does a nice path on that. If linewidth is not to thin jump don't
> occur often. Of course, there are jumps at the boundaries. Jump minimization
> is another task done by the slicer.
>
> So, if path planning and GCODE optimization is your concern, OpenScad will
> not help you. Better follow nophead's proposal and fork out your own slic3r
> branch to solve your problems there. https://github.com/alexrj/Slic3r
>
> Rudolf
>
>
>
> --
> View this message in context: http://forum.openscad.org/semi-on-topic-print-speed-optimized-sinus-support-material-integration-interface-possible-tp16383p16443.html
> Sent from the OpenSCAD mailing list archive at Nabble.com.
>
> _______________________________________________
> OpenSCAD mailing list
> [hidden email]
> http://lists.openscad.org/mailman/listinfo/discuss_lists.openscad.org
>



_______________________________________________
OpenSCAD mailing list
[hidden email]
http://lists.openscad.org/mailman/listinfo/discuss_lists.openscad.org
Reply | Threaded
Open this post in threaded view
|

Re: clarification on the aim of the javascript tool was: Re: [semi-on-topic] print speed optimized sinus support material. integration interface possible??

Peter
In reply to this post by Ronaldo
Ronaldo i am not 100% sure i understand you right, but i think this i exactly what the current tool we are discussing is doing, it just skips the extrusion step and processes the2D  .svg of the projection directly. then it writes out the support path data as an openscad vector text file  supportPathData.scad which one can then extrude to any height needed.
comprende?
Peter
On 12.03.2016 16:34, Ronaldo Persiano wrote:
I understand your point and agree that there is no way to do it entirely in OpenSCAD without geometry query tools. However, it would not be difficult to write a javascript code to process an OpenSCAD stl file of the linear_extrude() of the part projection. This code would generate a text file like this:
model=[
[[275,50,0],    [275,100,0],    [285,50,0]],
[[315,-50,0],    [325,-50,0],    [325,-100,0]],
[[315,50,0],    [325,100,0],    [325,50,0]],
[[315,50,0],    [275,100,0],    [325,100,0]],
[[285,-50,0],    [285,50,0],        [315,-50,0]],
[[315,-50,0],    [285,50,0],        [315,50,0]],
[[285,50,0],    [275,100,0],    [315,50,0]],
[[275,-100,0],    [285,-50,0],    [315,-50,0]],
[[275,-100,0],    [275,-50,0],    [285,-50,0]],
[[325,-100,0],    [275,-100,0],    [315,-50,0]]];

which could be inserted in a OpenSCAD code for further processing.

That approach doesn't avoid an external processing but the javascript code could be valuable to any application demanding geometric queries. And you may write then your support generation methods in OpenSCAD. :)

As a complement, would be nice also to have an OpenSCAD library to answer geometric queries about models generated this way.

2016-03-12 11:15 GMT-03:00 [hidden email] <[hidden email]>:
i think i have problems explaining what this javascript tool is actually
about.
the starting point was a code in scad very similar to yours creating a
sine filled block.

but the tool does _not_ create a rectangular box filled with sinus.
cutting out a footprint of almost any model out of such block will
produce many discontinuities at the areas where the sinus wave is cut by
the outline of footprint of the model. it will create many standalone
"islands" of fractures of a sinewave. this will slow down the print.

what the javascript tool realy does, and i think it is impossible in
openscad without querieng the geometry, it tries to create a _continous_
sine or half-scircle wave in the footprint of the model, so that you do
not have to cut out the footprint out of a sine block, and printer can
(ideally) print the whole layer of support without deccelerating or idly
moving its head
Peter
On 12.03.2016 14:45, Parkinbot wrote:
> The following code will create a box filled with cosine support. CGAL
> rendering is almost instantaneous.
> Is it what you were asking for?
>
> <http://forum.openscad.org/file/n16438/sinecomb.png>
>
>
>> supportblock();
>>
>> module supportblock(rows = 10, cols = 10, box = [100, 100, 10], thickness
>> = .1)
>> {
>>   amplitude = box[1]/rows/2;
>>   wavelength = box[0]/cols *PI;
>>   linear_extrude(height = box[2])
>>   for(i = [0:rows-1])
>>     Ty(i*amplitude*2)
>>     polygon(points = sine(cols, amplitude, wavelength, i%2, thickness));
>> }
>>
>> function sine(periods, amplitude, wavelength, mode, thickness = .01) =
>>   let(amp = amplitude-thickness/1.9)
>>   concat(
>>    [for(i=[0:10:360*periods]) [i/wavelength, amp*cos(i+mode*180)]],
>>    [for(i=[360*periods:-1:0]) [i/wavelength,
>> amp*cos(i+mode*180)+thickness]]);
> Rudolf
>
>
>
>
> --
> View this message in context: http://forum.openscad.org/semi-on-topic-print-speed-optimized-sinus-support-material-integration-interface-possible-tp16383p16438.html
> Sent from the OpenSCAD mailing list archive at Nabble.com.
>
> _______________________________________________
> OpenSCAD mailing list
> [hidden email]
> http://lists.openscad.org/mailman/listinfo/discuss_lists.openscad.org
>



_______________________________________________
OpenSCAD mailing list
[hidden email]
http://lists.openscad.org/mailman/listinfo/discuss_lists.openscad.org



_______________________________________________
OpenSCAD mailing list
[hidden email]
http://lists.openscad.org/mailman/listinfo/discuss_lists.openscad.org


_______________________________________________
OpenSCAD mailing list
[hidden email]
http://lists.openscad.org/mailman/listinfo/discuss_lists.openscad.org
Reply | Threaded
Open this post in threaded view
|

Re: clarification on the aim of the javascript tool was: Re: [semi-on-topic] print speed optimized sinus support material. integration interface possible??

nophead
In my simple mind OpenScad is as simple tool for describing geometry, not querying it. Slicers take geometry and produce tool paths. If you don't like the tool path modify the slicer. Don't advocate making OpenScad more more complicated. Make the slicer more sophisticated.

Support material doesn't need to be sinusoidal, but it could benefit from rounded corners (as could all tool paths) because above a certain radius the x and y accelerations are capable of turning the corner without slowing down at all.

I must admit I do make support structures myself in Openscad but I export them separately and slice them separately and combine the gcode with the appropriate z offset. See http://hydraraptor.blogspot.co.uk/2012/08/peel-able-support.html. Support needs a solid interface layer less than a layer height below the object, so you can't export it in the same file as the object and expect the slicer to make it peelable.

One day I will write my own slicer to do this automatically.

On 12 March 2016 at 16:00, [hidden email] <[hidden email]> wrote:
Ronaldo i am not 100% sure i understand you right, but i think this i exactly what the current tool we are discussing is doing, it just skips the extrusion step and processes the2D  .svg of the projection directly. then it writes out the support path data as an openscad vector text file  supportPathData.scad which one can then extrude to any height needed.
comprende?
Peter

On 12.03.2016 16:34, Ronaldo Persiano wrote:
I understand your point and agree that there is no way to do it entirely in OpenSCAD without geometry query tools. However, it would not be difficult to write a javascript code to process an OpenSCAD stl file of the linear_extrude() of the part projection. This code would generate a text file like this:
model=[
[[275,50,0],    [275,100,0],    [285,50,0]],
[[315,-50,0],    [325,-50,0],    [325,-100,0]],
[[315,50,0],    [325,100,0],    [325,50,0]],
[[315,50,0],    [275,100,0],    [325,100,0]],
[[285,-50,0],    [285,50,0],        [315,-50,0]],
[[315,-50,0],    [285,50,0],        [315,50,0]],
[[285,50,0],    [275,100,0],    [315,50,0]],
[[275,-100,0],    [285,-50,0],    [315,-50,0]],
[[275,-100,0],    [275,-50,0],    [285,-50,0]],
[[325,-100,0],    [275,-100,0],    [315,-50,0]]];

which could be inserted in a OpenSCAD code for further processing.

That approach doesn't avoid an external processing but the javascript code could be valuable to any application demanding geometric queries. And you may write then your support generation methods in OpenSCAD. :)

As a complement, would be nice also to have an OpenSCAD library to answer geometric queries about models generated this way.

2016-03-12 11:15 GMT-03:00 [hidden email][hidden email] <[hidden email]>:
i think i have problems explaining what this javascript tool is actually
about.
the starting point was a code in scad very similar to yours creating a
sine filled block.

but the tool does _not_ create a rectangular box filled with sinus.
cutting out a footprint of almost any model out of such block will
produce many discontinuities at the areas where the sinus wave is cut by
the outline of footprint of the model. it will create many standalone
"islands" of fractures of a sinewave. this will slow down the print.

what the javascript tool realy does, and i think it is impossible in
openscad without querieng the geometry, it tries to create a _continous_
sine or half-scircle wave in the footprint of the model, so that you do
not have to cut out the footprint out of a sine block, and printer can
(ideally) print the whole layer of support without deccelerating or idly
moving its head
Peter
On 12.03.2016 14:45, Parkinbot wrote:
> The following code will create a box filled with cosine support. CGAL
> rendering is almost instantaneous.
> Is it what you were asking for?
>
> <http://forum.openscad.org/file/n16438/sinecomb.png>
>
>
>> supportblock();
>>
>> module supportblock(rows = 10, cols = 10, box = [100, 100, 10], thickness
>> = .1)
>> {
>>   amplitude = box[1]/rows/2;
>>   wavelength = box[0]/cols *PI;
>>   linear_extrude(height = box[2])
>>   for(i = [0:rows-1])
>>     Ty(i*amplitude*2)
>>     polygon(points = sine(cols, amplitude, wavelength, i%2, thickness));
>> }
>>
>> function sine(periods, amplitude, wavelength, mode, thickness = .01) =
>>   let(amp = amplitude-thickness/1.9)
>>   concat(
>>    [for(i=[0:10:360*periods]) [i/wavelength, amp*cos(i+mode*180)]],
>>    [for(i=[360*periods:-1:0]) [i/wavelength,
>> amp*cos(i+mode*180)+thickness]]);
> Rudolf
>
>
>
>
> --
> View this message in context: http://forum.openscad.org/semi-on-topic-print-speed-optimized-sinus-support-material-integration-interface-possible-tp16383p16438.html
> Sent from the OpenSCAD mailing list archive at Nabble.com.
>
> _______________________________________________
> OpenSCAD mailing list
> [hidden email]
> http://lists.openscad.org/mailman/listinfo/discuss_lists.openscad.org
>



_______________________________________________
OpenSCAD mailing list
[hidden email]
http://lists.openscad.org/mailman/listinfo/discuss_lists.openscad.org



_______________________________________________
OpenSCAD mailing list
[hidden email]
http://lists.openscad.org/mailman/listinfo/discuss_lists.openscad.org


_______________________________________________
OpenSCAD mailing list
[hidden email]
http://lists.openscad.org/mailman/listinfo/discuss_lists.openscad.org



_______________________________________________
OpenSCAD mailing list
[hidden email]
http://lists.openscad.org/mailman/listinfo/discuss_lists.openscad.org
Reply | Threaded
Open this post in threaded view
|

Re: clarification on the aim of the javascript tool was: Re: [semi-on-topic] print speed optimized sinus support material. integration interface possible??

doug.moen
@nophead That blog post is quite interesting, thanks.

This makes it clear why you need a special feature in the slicer to do user defined peelable support. The support object would have to be imported as a separate STL. Or, if we implement multiple colours/materials using a single AMF file, as discussed in other threads, then the support object could be included in the AMF file as a separate labeled object.

On 12 March 2016 at 20:06, nop head <[hidden email]> wrote:
In my simple mind OpenScad is as simple tool for describing geometry, not querying it. Slicers take geometry and produce tool paths. If you don't like the tool path modify the slicer. Don't advocate making OpenScad more more complicated. Make the slicer more sophisticated.

Support material doesn't need to be sinusoidal, but it could benefit from rounded corners (as could all tool paths) because above a certain radius the x and y accelerations are capable of turning the corner without slowing down at all.

I must admit I do make support structures myself in Openscad but I export them separately and slice them separately and combine the gcode with the appropriate z offset. See http://hydraraptor.blogspot.co.uk/2012/08/peel-able-support.html. Support needs a solid interface layer less than a layer height below the object, so you can't export it in the same file as the object and expect the slicer to make it peelable.

One day I will write my own slicer to do this automatically.

On 12 March 2016 at 16:00, [hidden email] <[hidden email]> wrote:
Ronaldo i am not 100% sure i understand you right, but i think this i exactly what the current tool we are discussing is doing, it just skips the extrusion step and processes the2D  .svg of the projection directly. then it writes out the support path data as an openscad vector text file  supportPathData.scad which one can then extrude to any height needed.
comprende?
Peter

On 12.03.2016 16:34, Ronaldo Persiano wrote:
I understand your point and agree that there is no way to do it entirely in OpenSCAD without geometry query tools. However, it would not be difficult to write a javascript code to process an OpenSCAD stl file of the linear_extrude() of the part projection. This code would generate a text file like this:
model=[
[[275,50,0],    [275,100,0],    [285,50,0]],
[[315,-50,0],    [325,-50,0],    [325,-100,0]],
[[315,50,0],    [325,100,0],    [325,50,0]],
[[315,50,0],    [275,100,0],    [325,100,0]],
[[285,-50,0],    [285,50,0],        [315,-50,0]],
[[315,-50,0],    [285,50,0],        [315,50,0]],
[[285,50,0],    [275,100,0],    [315,50,0]],
[[275,-100,0],    [285,-50,0],    [315,-50,0]],
[[275,-100,0],    [275,-50,0],    [285,-50,0]],
[[325,-100,0],    [275,-100,0],    [315,-50,0]]];

which could be inserted in a OpenSCAD code for further processing.

That approach doesn't avoid an external processing but the javascript code could be valuable to any application demanding geometric queries. And you may write then your support generation methods in OpenSCAD. :)

As a complement, would be nice also to have an OpenSCAD library to answer geometric queries about models generated this way.

2016-03-12 11:15 GMT-03:00 [hidden email][hidden email] <[hidden email]>:
i think i have problems explaining what this javascript tool is actually
about.
the starting point was a code in scad very similar to yours creating a
sine filled block.

but the tool does _not_ create a rectangular box filled with sinus.
cutting out a footprint of almost any model out of such block will
produce many discontinuities at the areas where the sinus wave is cut by
the outline of footprint of the model. it will create many standalone
"islands" of fractures of a sinewave. this will slow down the print.

what the javascript tool realy does, and i think it is impossible in
openscad without querieng the geometry, it tries to create a _continous_
sine or half-scircle wave in the footprint of the model, so that you do
not have to cut out the footprint out of a sine block, and printer can
(ideally) print the whole layer of support without deccelerating or idly
moving its head
Peter
On 12.03.2016 14:45, Parkinbot wrote:
> The following code will create a box filled with cosine support. CGAL
> rendering is almost instantaneous.
> Is it what you were asking for?
>
> <http://forum.openscad.org/file/n16438/sinecomb.png>
>
>
>> supportblock();
>>
>> module supportblock(rows = 10, cols = 10, box = [100, 100, 10], thickness
>> = .1)
>> {
>>   amplitude = box[1]/rows/2;
>>   wavelength = box[0]/cols *PI;
>>   linear_extrude(height = box[2])
>>   for(i = [0:rows-1])
>>     Ty(i*amplitude*2)
>>     polygon(points = sine(cols, amplitude, wavelength, i%2, thickness));
>> }
>>
>> function sine(periods, amplitude, wavelength, mode, thickness = .01) =
>>   let(amp = amplitude-thickness/1.9)
>>   concat(
>>    [for(i=[0:10:360*periods]) [i/wavelength, amp*cos(i+mode*180)]],
>>    [for(i=[360*periods:-1:0]) [i/wavelength,
>> amp*cos(i+mode*180)+thickness]]);
> Rudolf
>
>
>
>
> --
> View this message in context: http://forum.openscad.org/semi-on-topic-print-speed-optimized-sinus-support-material-integration-interface-possible-tp16383p16438.html
> Sent from the OpenSCAD mailing list archive at Nabble.com.
>
> _______________________________________________
> OpenSCAD mailing list
> [hidden email]
> http://lists.openscad.org/mailman/listinfo/discuss_lists.openscad.org
>



_______________________________________________
OpenSCAD mailing list
[hidden email]
http://lists.openscad.org/mailman/listinfo/discuss_lists.openscad.org



_______________________________________________
OpenSCAD mailing list
[hidden email]
http://lists.openscad.org/mailman/listinfo/discuss_lists.openscad.org


_______________________________________________
OpenSCAD mailing list
[hidden email]
http://lists.openscad.org/mailman/listinfo/discuss_lists.openscad.org



_______________________________________________
OpenSCAD mailing list
[hidden email]
http://lists.openscad.org/mailman/listinfo/discuss_lists.openscad.org



_______________________________________________
OpenSCAD mailing list
[hidden email]
http://lists.openscad.org/mailman/listinfo/discuss_lists.openscad.org
Reply | Threaded
Open this post in threaded view
|

Re: clarification on the aim of the javascript tool was: Re: [semi-on-topic] print speed optimized sinus support material. integration interface possible??

Parkinbot
In reply to this post by nophead
nophead wrote
In my simple mind OpenScad is as simple tool for describing geometry, not querying it.
Beyond paradigm discussion and the fact that no function can operate over geometry by now: By design of OpenSCAD there is also a severe technical restriction to query geometry. CSG (F5) representation is rendered only implicitly by OpenGL. Explict geometry (which may be queried) is only known after CGAL rendering (F6).

But as already has been discussed in other threads there is no reason to NOT offer a query on STL imports - at least from an implementation point of view - which I hope will be coming with the next major release.  

Rudolf

Reply | Threaded
Open this post in threaded view
|

Re: clarification on the aim of the javascript tool was: Re: [semi-on-topic] print speed optimized sinus support material. integration interface possible??

nophead
Yes getting info from imported geometry is useful and has no impact on the declarative nature. It effectively becomes part of the description, another form of source code. Similarly getting info from a polygon or polyhedron as the mesh is available during preview.

On 13 March 2016 at 12:49, Parkinbot <[hidden email]> wrote:
nophead wrote
> In my simple mind OpenScad is as simple tool for describing geometry, not
> querying it.

Beyond paradigm discussion and the fact that no function can operate over
geometry by now: By design of OpenSCAD there is also a severe technical
restriction to query geometry. CSG (F5) representation is rendered only
implicitly by OpenGL. Explict geometry (which may be queried) is only known
after CGAL rendering (F6).

But as already has been discussed in other threads there is no reason to NOT
offer a query on STL imports - at least from an implementation point of view
- which I hope will be coming with the next major release.

Rudolf





--
View this message in context: http://forum.openscad.org/semi-on-topic-print-speed-optimized-sinus-support-material-integration-interface-possible-tp16383p16458.html
Sent from the OpenSCAD mailing list archive at Nabble.com.

_______________________________________________
OpenSCAD mailing list
[hidden email]
http://lists.openscad.org/mailman/listinfo/discuss_lists.openscad.org


_______________________________________________
OpenSCAD mailing list
[hidden email]
http://lists.openscad.org/mailman/listinfo/discuss_lists.openscad.org
12