Proposal: Add a split command

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

Proposal: Add a split command

jdawgaz
I have created lots of real-world items with the 3d printer, using OpenSCAD.
And I just love it.

A lot of the stuff I build, winds up having to be printed with "rafts" or "supports". It is ugly, and very time consuming to break off all that stuff to get the final product.

Proposal: If after building something fairly complicated (that I know will require rafts or supports), I could SPLIT it in half, I would in a lot of cases eliminate the need for rafts or supports at all. It could be split horizontally along the x-y plane, at some Z. Like split($children, z=4). Or split vertically along x-z plane, at some Y. Like split($children, y=6). Or something. I don't know if I am making any sense here. It has been a long day.

What I have been doing is building something, and then having to go back and try to "split" it up myself, painstakingly!

Am I wrong to want this? Or is there something that I have not seen, that is already there in openSCAD?

Thanks,

Jerry

--
Extra Ham Operator: K7AZJ
Registered Linux User: 275424
Raspberry Pi and Arduino developer

The most exciting phrase to hear in science - the one that heralds new discoveries - is not "Eureka!" but "That's funny...".
- Isaac. Asimov

If you give someone a program, you will frustrate them for a day; if you teach them how to program, you will frustrate them for a lifetime. 
- Anonymous

If writing good code requires very little comments, then writing really excellent code requires no comments at all!
- Ken Thompson


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

Re: Proposal: Add a split command

Tim Hawkins

I do this already. Just wrap an interstection() around a union() of everything in your model, and use a large cube to chop out the part you need. allows you to cut-up or split a model using any geometry mask you wish.

Example

// example split on yz plane, first part

intersection(){
        union(){
             ...... my model here .......
        }
        translate([-50,0,0])
                cube([100,200,200], center=yes);
}

// second part     

intersection(){
        union(){
             ...... my model here .......
        }
        translate([50,0,0])
                cube([100,200,200], center=yes);
}


On Sat, Oct 17, 2015, 09:20 Jerry Davis <[hidden email]> wrote:
I have created lots of real-world items with the 3d printer, using OpenSCAD.
And I just love it.

A lot of the stuff I build, winds up having to be printed with "rafts" or "supports". It is ugly, and very time consuming to break off all that stuff to get the final product.

Proposal: If after building something fairly complicated (that I know will require rafts or supports), I could SPLIT it in half, I would in a lot of cases eliminate the need for rafts or supports at all. It could be split horizontally along the x-y plane, at some Z. Like split($children, z=4). Or split vertically along x-z plane, at some Y. Like split($children, y=6). Or something. I don't know if I am making any sense here. It has been a long day.

What I have been doing is building something, and then having to go back and try to "split" it up myself, painstakingly!

Am I wrong to want this? Or is there something that I have not seen, that is already there in openSCAD?

Thanks,

Jerry

--
Extra Ham Operator: K7AZJ
Registered Linux User: 275424
Raspberry Pi and Arduino developer

The most exciting phrase to hear in science - the one that heralds new discoveries - is not "Eureka!" but "That's funny...".
- Isaac. Asimov

If you give someone a program, you will frustrate them for a day; if you teach them how to program, you will frustrate them for a lifetime. 
- Anonymous

If writing good code requires very little comments, then writing really excellent code requires no comments at all!
- Ken Thompson

_______________________________________________
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: Proposal: Add a split command

jdawgaz
oh really? its this easy? I will try this ASAP.
thanks!!!!!!

Jerry

On Fri, Oct 16, 2015 at 6:58 PM, Tim Hawkins <[hidden email]> wrote:

// example split on yz plane, first part

intersection(){
        union(){
             ...... my model here .......
        }
        translate([-50,0,0])
                cube([100,200,200], center=yes);
}

// second part     

intersection(){
        union(){
             ...... my model here .......
        }
        translate([50,0,0])
                cube([100,200,200], center=yes);
}





--
Extra Ham Operator: K7AZJ
Registered Linux User: 275424
Raspberry Pi and Arduino developer

The most exciting phrase to hear in science - the one that heralds new discoveries - is not "Eureka!" but "That's funny...".
- Isaac. Asimov

If you give someone a program, you will frustrate them for a day; if you teach them how to program, you will frustrate them for a lifetime. 
- Anonymous

If writing good code requires very little comments, then writing really excellent code requires no comments at all!
- Ken Thompson


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

Re: Proposal: Add a split command

jdawgaz
I tried it! beautiful solution! now I have found a use for the intersection().

$fn = 60;

module myobj() {
  difference() {
    cylinder(h=10, r=10, center=true);
    rotate([0,90,0]) cylinder(h=25, r=5, center=true);
  }
}

// put an explanation point just before the keyword "intersection" to
// display either the top half or the bottom half.

// top half
intersection() { 
    myobj();
    translate([0, 0, 25]) cube([200,50,50], center=true);
}

// bottom half
intersection() { 
    myobj();
    translate([0, 0, -25]) cube([200,50,50], center=true);
}



--
Extra Ham Operator: K7AZJ
Registered Linux User: 275424
Raspberry Pi and Arduino developer

The most exciting phrase to hear in science - the one that heralds new discoveries - is not "Eureka!" but "That's funny...".
- Isaac. Asimov

If you give someone a program, you will frustrate them for a day; if you teach them how to program, you will frustrate them for a lifetime. 
- Anonymous

If writing good code requires very little comments, then writing really excellent code requires no comments at all!
- Ken Thompson


On Sat, Oct 17, 2015 at 3:51 AM, Jerry Davis <[hidden email]> wrote:
oh really? its this easy? I will try this ASAP.
thanks!!!!!!

Jerry

On Fri, Oct 16, 2015 at 6:58 PM, Tim Hawkins <[hidden email]> wrote:

// example split on yz plane, first part

intersection(){
        union(){
             ...... my model here .......
        }
        translate([-50,0,0])
                cube([100,200,200], center=yes);
}

// second part     

intersection(){
        union(){
             ...... my model here .......
        }
        translate([50,0,0])
                cube([100,200,200], center=yes);
}





--
Extra Ham Operator: K7AZJ
Registered Linux User: 275424
Raspberry Pi and Arduino developer

The most exciting phrase to hear in science - the one that heralds new discoveries - is not "Eureka!" but "That's funny...".
- Isaac. Asimov

If you give someone a program, you will frustrate them for a day; if you teach them how to program, you will frustrate them for a lifetime. 
- Anonymous

If writing good code requires very little comments, then writing really excellent code requires no comments at all!
- Ken Thompson



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

Re: Proposal: Add a split command

ednisley
On 10/17/2015 07:13 AM, Jerry Davis wrote:
> a use for the intersection()

Now add holes for alignment pins, so you can glue the parts back
together with perfect registration:

http://softsolder.com/2013/11/12/improved-alignment-pin-hole-for-split-3d-prints/

Given a split parallel to the 3D printed layers and a deft glue job, you
probably won't even notice the joint...

--
Ed
softsolder.com

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