discuss@lists.openscad.org

OpenSCAD general discussion Mailing-list

View all threads

Proposal: Add a split command

JD
Jerry Davis
Sat, Oct 17, 2015 1:20 AM

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

I
*f 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

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 *I* *f 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
TH
Tim Hawkins
Sat, Oct 17, 2015 1:58 AM

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 jdawgaz@gmail.com 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

I
*f 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
Discuss@lists.openscad.org
http://lists.openscad.org/mailman/listinfo/discuss_lists.openscad.org

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 <jdawgaz@gmail.com> 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 > > *I* > *f 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 > Discuss@lists.openscad.org > http://lists.openscad.org/mailman/listinfo/discuss_lists.openscad.org >
JD
Jerry Davis
Sat, Oct 17, 2015 10:51 AM

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

Jerry

On Fri, Oct 16, 2015 at 6:58 PM, Tim Hawkins tim.thawkins@gmail.com 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

I
*f 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

oh really? its this easy? I will try this ASAP. thanks!!!!!! Jerry On Fri, Oct 16, 2015 at 6:58 PM, Tim Hawkins <tim.thawkins@gmail.com> 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 *I* *f 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
JD
Jerry Davis
Sat, Oct 17, 2015 11:13 AM

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

I
*f 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 jdawgaz@gmail.com wrote:

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

Jerry

On Fri, Oct 16, 2015 at 6:58 PM, Tim Hawkins tim.thawkins@gmail.com
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

I
*f 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

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 *I* *f 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 <jdawgaz@gmail.com> wrote: > oh really? its this easy? I will try this ASAP. > thanks!!!!!! > > Jerry > > On Fri, Oct 16, 2015 at 6:58 PM, Tim Hawkins <tim.thawkins@gmail.com> > 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 > > *I* > *f 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 >
EN
Ed Nisley
Wed, Oct 21, 2015 7:27 PM

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

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