G
gounthar
Fri, Jul 26, 2019 9:04 PM
Hi,
as I'm coming from onShape, I'm kind of lost sometimes.
I design boxes for hosting hardware. Most of the time, some small parts
don't fit that well (because I made errors when taking measurements, or the
printer is not that accurate), so I modify the small part of the big box,
and print once more everything.
If I ever want to add or modify something, I have to do the same again.
Print the whole box, and not the small part of the box.
Time, resource, and energy consuming.
I thought I had found the perfect tool with OpenSCAD, because I can define
my small parts in different files, use functions and modules, so that my
small parts can be printed more quickly, and modified if needed.
I'm getting used to it, but I'm not sure I am following the right path,
embracing the right phylosophy.
For example, I'm still struggling with translate in order to replicate lots
of small parts which are symmetrical to a construction line... I should
maybe get with mirror().
But let's say it's ok, mostly ok.
How am I supposed to integrate those small parts in the bigger part?
Just with translate() followed by the call to my module (with some
parameters maybe)?
Is there any other way that would be easier, or more OpenSCAD-like?
Thanks.
Bruno
--
Sent from: http://forum.openscad.org/
Hi,
as I'm coming from onShape, I'm kind of lost sometimes.
I design boxes for hosting hardware. Most of the time, some small parts
don't fit that well (because I made errors when taking measurements, or the
printer is not that accurate), so I modify the small part of the big box,
and print once more everything.
If I ever want to add or modify something, I have to do the same again.
Print the whole box, and not the small part of the box.
Time, resource, and energy consuming.
I thought I had found the perfect tool with OpenSCAD, because I can define
my small parts in different files, use functions and modules, so that my
small parts can be printed more quickly, and modified if needed.
I'm getting used to it, but I'm not sure I am following the right path,
embracing the right phylosophy.
For example, I'm still struggling with translate in order to replicate lots
of small parts which are symmetrical to a construction line... I should
maybe get with mirror().
But let's say it's ok, mostly ok.
How am I supposed to integrate those small parts in the bigger part?
Just with translate() followed by the call to my module (with some
parameters maybe)?
Is there any other way that would be easier, or more OpenSCAD-like?
Thanks.
Bruno
--
Sent from: http://forum.openscad.org/
F
fred
Fri, Jul 26, 2019 9:19 PM
What you're describing is not just restricted to OpenSCAD, although it's a great reference point.
Consider to adopt a consistent practice when creating modules. The focus for a module should be a location in the module with which you will always be familiar. Add the notation in comments in the file if necessary, but at the very least, attempt to be consistent with the location.
If, for example, you always center the primitives when constructing a module, then translate within the module to create the aggregate object, you may find it useful to use a center reference for calling the module.
It's not always practical to use a center reference, but even without that reference point, you can manage your modules. The cube primitive will always be at ([0, 0, 0]) and you can use that to direct your module use, if needed.
There are complications with either reference point, but if your focus is on that reference point, you can adjust as you build.
Just my two cents.
On Friday, July 26, 2019, 5:04:58 PM EDT, gounthar <gounthar@gmail.com> wrote:
Hi,
as I'm coming from onShape, I'm kind of lost sometimes.
I design boxes for hosting hardware. Most of the time, some small parts
don't fit that well (because I made errors when taking measurements, or the
printer is not that accurate), so I modify the small part of the big box,
and print once more everything.
If I ever want to add or modify something, I have to do the same again.
Print the whole box, and not the small part of the box.
Time, resource, and energy consuming.
I thought I had found the perfect tool with OpenSCAD, because I can define
my small parts in different files, use functions and modules, so that my
small parts can be printed more quickly, and modified if needed.
I'm getting used to it, but I'm not sure I am following the right path,
embracing the right phylosophy.
For example, I'm still struggling with translate in order to replicate lots
of small parts which are symmetrical to a construction line... I should
maybe get with mirror().
But let's say it's ok, mostly ok.
How am I supposed to integrate those small parts in the bigger part?
Just with translate() followed by the call to my module (with some
parameters maybe)?
Is there any other way that would be easier, or more OpenSCAD-like?
Thanks.
Bruno
--
Sent from: http://forum.openscad.org/
OpenSCAD mailing list
Discuss@lists.openscad.org
http://lists.openscad.org/mailman/listinfo/discuss_lists.openscad.org
What you're describing is not just restricted to OpenSCAD, although it's a great reference point.
Consider to adopt a consistent practice when creating modules. The focus for a module should be a location in the module with which you will always be familiar. Add the notation in comments in the file if necessary, but at the very least, attempt to be consistent with the location.
If, for example, you always center the primitives when constructing a module, then translate within the module to create the aggregate object, you may find it useful to use a center reference for calling the module.
It's not always practical to use a center reference, but even without that reference point, you can manage your modules. The cube primitive will always be at ([0, 0, 0]) and you can use that to direct your module use, if needed.
There are complications with either reference point, but if your focus is on that reference point, you can adjust as you build.
Just my two cents.
On Friday, July 26, 2019, 5:04:58 PM EDT, gounthar <gounthar@gmail.com> wrote:
Hi,
as I'm coming from onShape, I'm kind of lost sometimes.
I design boxes for hosting hardware. Most of the time, some small parts
don't fit that well (because I made errors when taking measurements, or the
printer is not that accurate), so I modify the small part of the big box,
and print once more everything.
If I ever want to add or modify something, I have to do the same again.
Print the whole box, and not the small part of the box.
Time, resource, and energy consuming.
I thought I had found the perfect tool with OpenSCAD, because I can define
my small parts in different files, use functions and modules, so that my
small parts can be printed more quickly, and modified if needed.
I'm getting used to it, but I'm not sure I am following the right path,
embracing the right phylosophy.
For example, I'm still struggling with translate in order to replicate lots
of small parts which are symmetrical to a construction line... I should
maybe get with mirror().
But let's say it's ok, mostly ok.
How am I supposed to integrate those small parts in the bigger part?
Just with translate() followed by the call to my module (with some
parameters maybe)?
Is there any other way that would be easier, or more OpenSCAD-like?
Thanks.
Bruno
--
Sent from: http://forum.openscad.org/
_______________________________________________
OpenSCAD mailing list
Discuss@lists.openscad.org
http://lists.openscad.org/mailman/listinfo/discuss_lists.openscad.org
A
adrianv
Fri, Jul 26, 2019 9:20 PM
I don't understand your goal. Do you want to print 20 copies of the same
part? Or 20 copies of the same part but with variations in part parameters?
And your question is how to arrange them on a line?
This code will put 20 identical parts on the X axis. The BOSL library is
here: https://github.com/revarbat/BOSL
include <BOSL/constants.scad>
use <BOSL/transforms.scad>
xspread(spacing=5, n=20) part();
You can do something like
xspread(spacing=5, n=20) part(partpos=$pos);
which will modify the part depending on its position to create 20 different
parts.
Is this the kind of thing you're looking for? If not, please clarify.
Maybe give a specific example of what you're doing.
gounthar wrote
Hi,
as I'm coming from onShape, I'm kind of lost sometimes.
I design boxes for hosting hardware. Most of the time, some small parts
don't fit that well (because I made errors when taking measurements, or
the
printer is not that accurate), so I modify the small part of the big box,
and print once more everything.
If I ever want to add or modify something, I have to do the same again.
Print the whole box, and not the small part of the box.
Time, resource, and energy consuming.
I thought I had found the perfect tool with OpenSCAD, because I can define
my small parts in different files, use functions and modules, so that my
small parts can be printed more quickly, and modified if needed.
I'm getting used to it, but I'm not sure I am following the right path,
embracing the right phylosophy.
For example, I'm still struggling with translate in order to replicate
lots
of small parts which are symmetrical to a construction line... I should
maybe get with mirror().
But let's say it's ok, mostly ok.
How am I supposed to integrate those small parts in the bigger part?
Just with translate() followed by the call to my module (with some
parameters maybe)?
Is there any other way that would be easier, or more OpenSCAD-like?
Thanks.
Bruno
--
Sent from: http://forum.openscad.org/
OpenSCAD mailing list
I don't understand your goal. Do you want to print 20 copies of the same
part? Or 20 copies of the same part but with variations in part parameters?
And your question is how to arrange them on a line?
This code will put 20 identical parts on the X axis. The BOSL library is
here: https://github.com/revarbat/BOSL
include <BOSL/constants.scad>
use <BOSL/transforms.scad>
xspread(spacing=5, n=20) part();
You can do something like
xspread(spacing=5, n=20) part(partpos=$pos);
which will modify the part depending on its position to create 20 different
parts.
Is this the kind of thing you're looking for? If not, please clarify.
Maybe give a specific example of what you're doing.
gounthar wrote
> Hi,
>
> as I'm coming from onShape, I'm kind of lost sometimes.
> I design boxes for hosting hardware. Most of the time, some small parts
> don't fit that well (because I made errors when taking measurements, or
> the
> printer is not that accurate), so I modify the small part of the big box,
> and print once more everything.
> If I ever want to add or modify something, I have to do the same again.
> Print the whole box, and not the small part of the box.
> Time, resource, and energy consuming.
>
> I thought I had found the perfect tool with OpenSCAD, because I can define
> my small parts in different files, use functions and modules, so that my
> small parts can be printed more quickly, and modified if needed.
> I'm getting used to it, but I'm not sure I am following the right path,
> embracing the right phylosophy.
> For example, I'm still struggling with translate in order to replicate
> lots
> of small parts which are symmetrical to a construction line... I should
> maybe get with mirror().
> But let's say it's ok, mostly ok.
>
> How am I supposed to integrate those small parts in the bigger part?
> Just with translate() followed by the call to my module (with some
> parameters maybe)?
> Is there any other way that would be easier, or more OpenSCAD-like?
>
> Thanks.
>
> Bruno
>
>
>
> --
> Sent from: http://forum.openscad.org/
>
> _______________________________________________
> OpenSCAD mailing list
> Discuss@.openscad
> http://lists.openscad.org/mailman/listinfo/discuss_lists.openscad.org
--
Sent from: http://forum.openscad.org/
MM
Matt Maggio
Fri, Jul 26, 2019 10:12 PM
Put your part into a module, run a for loop and have a translate statement
to space them out.
But reading your problem again is confusing, do you want to print just the
changed part? how would you then integrate it with the whole, like
physically? I guess you could hack up a print and glue another piece on,
but the whole point of printing is that it makes the object without you
fiddling around with a file a or chainsaw or whatever.
In woodworking it's measure twice, cut once. In 3D printing it's more like
spend 100 x more time on CAD than you ever do interacting with the printer.
On Fri, Jul 26, 2019 at 4:21 PM adrianv avm4@cornell.edu wrote:
I don't understand your goal. Do you want to print 20 copies of the same
part? Or 20 copies of the same part but with variations in part
parameters?
And your question is how to arrange them on a line?
This code will put 20 identical parts on the X axis. The BOSL library is
here: https://github.com/revarbat/BOSL
include <BOSL/constants.scad>
use <BOSL/transforms.scad>
xspread(spacing=5, n=20) part();
You can do something like
xspread(spacing=5, n=20) part(partpos=$pos);
which will modify the part depending on its position to create 20 different
parts.
Is this the kind of thing you're looking for? If not, please clarify.
Maybe give a specific example of what you're doing.
gounthar wrote
Hi,
as I'm coming from onShape, I'm kind of lost sometimes.
I design boxes for hosting hardware. Most of the time, some small parts
don't fit that well (because I made errors when taking measurements, or
the
printer is not that accurate), so I modify the small part of the big box,
and print once more everything.
If I ever want to add or modify something, I have to do the same again.
Print the whole box, and not the small part of the box.
Time, resource, and energy consuming.
I thought I had found the perfect tool with OpenSCAD, because I can
my small parts in different files, use functions and modules, so that my
small parts can be printed more quickly, and modified if needed.
I'm getting used to it, but I'm not sure I am following the right path,
embracing the right phylosophy.
For example, I'm still struggling with translate in order to replicate
lots
of small parts which are symmetrical to a construction line... I should
maybe get with mirror().
But let's say it's ok, mostly ok.
How am I supposed to integrate those small parts in the bigger part?
Just with translate() followed by the call to my module (with some
parameters maybe)?
Is there any other way that would be easier, or more OpenSCAD-like?
Thanks.
Bruno
--
Sent from: http://forum.openscad.org/
OpenSCAD mailing list
--
Matt Maggio
Senior Research Technologist
Resuscitation Institute (Rm. 1.380)
Department of Medicine
Rosalind Franklin University of Medicine and Science
3333, Green Bay Rd, North Chicago, IL - 60064.
Office: 224-570-7954
Cell: 815-703-2879
"Take chances, make mistakes, and get messy!!" - Mrs. Frizzle, pHd
Put your part into a module, run a for loop and have a translate statement
to space them out.
But reading your problem again is confusing, do you want to print just the
changed part? how would you then integrate it with the whole, like
physically? I guess you could hack up a print and glue another piece on,
but the whole point of printing is that it makes the object without you
fiddling around with a file a or chainsaw or whatever.
In woodworking it's measure twice, cut once. In 3D printing it's more like
spend 100 x more time on CAD than you ever do interacting with the printer.
On Fri, Jul 26, 2019 at 4:21 PM adrianv <avm4@cornell.edu> wrote:
> I don't understand your goal. Do you want to print 20 copies of the same
> part? Or 20 copies of the same part but with variations in part
> parameters?
> And your question is how to arrange them on a line?
>
> This code will put 20 identical parts on the X axis. The BOSL library is
> here: https://github.com/revarbat/BOSL
>
> include <BOSL/constants.scad>
> use <BOSL/transforms.scad>
>
> xspread(spacing=5, n=20) part();
>
> You can do something like
>
> xspread(spacing=5, n=20) part(partpos=$pos);
>
> which will modify the part depending on its position to create 20 different
> parts.
>
> Is this the kind of thing you're looking for? If not, please clarify.
> Maybe give a specific example of what you're doing.
>
>
> gounthar wrote
> > Hi,
> >
> > as I'm coming from onShape, I'm kind of lost sometimes.
> > I design boxes for hosting hardware. Most of the time, some small parts
> > don't fit that well (because I made errors when taking measurements, or
> > the
> > printer is not that accurate), so I modify the small part of the big box,
> > and print once more everything.
> > If I ever want to add or modify something, I have to do the same again.
> > Print the whole box, and not the small part of the box.
> > Time, resource, and energy consuming.
> >
> > I thought I had found the perfect tool with OpenSCAD, because I can
> define
> > my small parts in different files, use functions and modules, so that my
> > small parts can be printed more quickly, and modified if needed.
> > I'm getting used to it, but I'm not sure I am following the right path,
> > embracing the right phylosophy.
> > For example, I'm still struggling with translate in order to replicate
> > lots
> > of small parts which are symmetrical to a construction line... I should
> > maybe get with mirror().
> > But let's say it's ok, mostly ok.
> >
> > How am I supposed to integrate those small parts in the bigger part?
> > Just with translate() followed by the call to my module (with some
> > parameters maybe)?
> > Is there any other way that would be easier, or more OpenSCAD-like?
> >
> > Thanks.
> >
> > Bruno
> >
> >
> >
> > --
> > Sent from: http://forum.openscad.org/
> >
> > _______________________________________________
> > OpenSCAD mailing list
>
> > Discuss@.openscad
>
> > http://lists.openscad.org/mailman/listinfo/discuss_lists.openscad.org
>
>
>
>
>
> --
> Sent from: http://forum.openscad.org/
>
> _______________________________________________
> OpenSCAD mailing list
> Discuss@lists.openscad.org
> http://lists.openscad.org/mailman/listinfo/discuss_lists.openscad.org
>
--
Matt Maggio
Senior Research Technologist
Resuscitation Institute (Rm. 1.380)
Department of Medicine
Rosalind Franklin University of Medicine and Science
3333, Green Bay Rd, North Chicago, IL - 60064.
Office: 224-570-7954
Cell: 815-703-2879
"Take chances, make mistakes, and get messy!!" - Mrs. Frizzle, pHd
FV
Frank van der Hulst
Fri, Jul 26, 2019 10:55 PM
I also use OnShape, and don't understand how that forces you to print all
the parts every time. In OnShape you can export individual parts to STL
files for printing individually.
In Slic3r you can split a multi-part STL into separate parts and delete the
parts you don't want to print.
Getting back to OpenSCad, you can use if() statements to only generate a
part if a variable or condition is true.
On Sat, 27 Jul 2019, 10:15 Matt Maggio, mattmaggio19@gmail.com wrote:
Put your part into a module, run a for loop and have a translate statement
to space them out.
But reading your problem again is confusing, do you want to print just the
changed part? how would you then integrate it with the whole, like
physically? I guess you could hack up a print and glue another piece on,
but the whole point of printing is that it makes the object without you
fiddling around with a file a or chainsaw or whatever.
In woodworking it's measure twice, cut once. In 3D printing it's more like
spend 100 x more time on CAD than you ever do interacting with the printer.
On Fri, Jul 26, 2019 at 4:21 PM adrianv avm4@cornell.edu wrote:
I don't understand your goal. Do you want to print 20 copies of the same
part? Or 20 copies of the same part but with variations in part
parameters?
And your question is how to arrange them on a line?
This code will put 20 identical parts on the X axis. The BOSL library is
here: https://github.com/revarbat/BOSL
include <BOSL/constants.scad>
use <BOSL/transforms.scad>
xspread(spacing=5, n=20) part();
You can do something like
xspread(spacing=5, n=20) part(partpos=$pos);
which will modify the part depending on its position to create 20
different
parts.
Is this the kind of thing you're looking for? If not, please clarify.
Maybe give a specific example of what you're doing.
gounthar wrote
Hi,
as I'm coming from onShape, I'm kind of lost sometimes.
I design boxes for hosting hardware. Most of the time, some small parts
don't fit that well (because I made errors when taking measurements, or
the
printer is not that accurate), so I modify the small part of the big
and print once more everything.
If I ever want to add or modify something, I have to do the same again.
Print the whole box, and not the small part of the box.
Time, resource, and energy consuming.
I thought I had found the perfect tool with OpenSCAD, because I can
my small parts in different files, use functions and modules, so that my
small parts can be printed more quickly, and modified if needed.
I'm getting used to it, but I'm not sure I am following the right path,
embracing the right phylosophy.
For example, I'm still struggling with translate in order to replicate
lots
of small parts which are symmetrical to a construction line... I should
maybe get with mirror().
But let's say it's ok, mostly ok.
How am I supposed to integrate those small parts in the bigger part?
Just with translate() followed by the call to my module (with some
parameters maybe)?
Is there any other way that would be easier, or more OpenSCAD-like?
Thanks.
Bruno
--
Sent from: http://forum.openscad.org/
OpenSCAD mailing list
I also use OnShape, and don't understand how that forces you to print all
the parts every time. In OnShape you can export individual parts to STL
files for printing individually.
In Slic3r you can split a multi-part STL into separate parts and delete the
parts you don't want to print.
Getting back to OpenSCad, you can use if() statements to only generate a
part if a variable or condition is true.
On Sat, 27 Jul 2019, 10:15 Matt Maggio, <mattmaggio19@gmail.com> wrote:
> Put your part into a module, run a for loop and have a translate statement
> to space them out.
>
> But reading your problem again is confusing, do you want to print just the
> changed part? how would you then integrate it with the whole, like
> physically? I guess you could hack up a print and glue another piece on,
> but the whole point of printing is that it makes the object without you
> fiddling around with a file a or chainsaw or whatever.
>
> In woodworking it's measure twice, cut once. In 3D printing it's more like
> spend 100 x more time on CAD than you ever do interacting with the printer.
>
>
> On Fri, Jul 26, 2019 at 4:21 PM adrianv <avm4@cornell.edu> wrote:
>
>> I don't understand your goal. Do you want to print 20 copies of the same
>> part? Or 20 copies of the same part but with variations in part
>> parameters?
>> And your question is how to arrange them on a line?
>>
>> This code will put 20 identical parts on the X axis. The BOSL library is
>> here: https://github.com/revarbat/BOSL
>>
>> include <BOSL/constants.scad>
>> use <BOSL/transforms.scad>
>>
>> xspread(spacing=5, n=20) part();
>>
>> You can do something like
>>
>> xspread(spacing=5, n=20) part(partpos=$pos);
>>
>> which will modify the part depending on its position to create 20
>> different
>> parts.
>>
>> Is this the kind of thing you're looking for? If not, please clarify.
>> Maybe give a specific example of what you're doing.
>>
>>
>> gounthar wrote
>> > Hi,
>> >
>> > as I'm coming from onShape, I'm kind of lost sometimes.
>> > I design boxes for hosting hardware. Most of the time, some small parts
>> > don't fit that well (because I made errors when taking measurements, or
>> > the
>> > printer is not that accurate), so I modify the small part of the big
>> box,
>> > and print once more everything.
>> > If I ever want to add or modify something, I have to do the same again.
>> > Print the whole box, and not the small part of the box.
>> > Time, resource, and energy consuming.
>> >
>> > I thought I had found the perfect tool with OpenSCAD, because I can
>> define
>> > my small parts in different files, use functions and modules, so that my
>> > small parts can be printed more quickly, and modified if needed.
>> > I'm getting used to it, but I'm not sure I am following the right path,
>> > embracing the right phylosophy.
>> > For example, I'm still struggling with translate in order to replicate
>> > lots
>> > of small parts which are symmetrical to a construction line... I should
>> > maybe get with mirror().
>> > But let's say it's ok, mostly ok.
>> >
>> > How am I supposed to integrate those small parts in the bigger part?
>> > Just with translate() followed by the call to my module (with some
>> > parameters maybe)?
>> > Is there any other way that would be easier, or more OpenSCAD-like?
>> >
>> > Thanks.
>> >
>> > Bruno
>> >
>> >
>> >
>> > --
>> > Sent from: http://forum.openscad.org/
>> >
>> > _______________________________________________
>> > OpenSCAD mailing list
>>
>> > Discuss@.openscad
>>
>> > http://lists.openscad.org/mailman/listinfo/discuss_lists.openscad.org
>>
>>
>>
>>
>>
>> --
>> Sent from: http://forum.openscad.org/
>>
>> _______________________________________________
>> OpenSCAD mailing list
>> Discuss@lists.openscad.org
>> http://lists.openscad.org/mailman/listinfo/discuss_lists.openscad.org
>>
>
>
> --
> Matt Maggio
> Senior Research Technologist
> Resuscitation Institute (Rm. 1.380)
> Department of Medicine
> Rosalind Franklin University of Medicine and Science
> 3333, Green Bay Rd, North Chicago, IL - 60064.
> Office: 224-570-7954
> Cell: 815-703-2879
> "Take chances, make mistakes, and get messy!!" - Mrs. Frizzle, pHd
> _______________________________________________
> OpenSCAD mailing list
> Discuss@lists.openscad.org
> http://lists.openscad.org/mailman/listinfo/discuss_lists.openscad.org
>
NH
nop head
Sat, Jul 27, 2019 7:01 AM
I also use OnShape, and don't understand how that forces you to print all
the parts every time. In OnShape you can export individual parts to STL
files for printing individually.
In Slic3r you can split a multi-part STL into separate parts and delete
the parts you don't want to print.
Getting back to OpenSCad, you can use if() statements to only generate a
part if a variable or condition is true.
On Sat, 27 Jul 2019, 10:15 Matt Maggio, mattmaggio19@gmail.com wrote:
Put your part into a module, run a for loop and have a translate
statement to space them out.
But reading your problem again is confusing, do you want to print just
the changed part? how would you then integrate it with the whole, like
physically? I guess you could hack up a print and glue another piece on,
but the whole point of printing is that it makes the object without you
fiddling around with a file a or chainsaw or whatever.
In woodworking it's measure twice, cut once. In 3D printing it's more
like spend 100 x more time on CAD than you ever do interacting with the
printer.
On Fri, Jul 26, 2019 at 4:21 PM adrianv avm4@cornell.edu wrote:
I don't understand your goal. Do you want to print 20 copies of the same
part? Or 20 copies of the same part but with variations in part
parameters?
And your question is how to arrange them on a line?
This code will put 20 identical parts on the X axis. The BOSL library is
here: https://github.com/revarbat/BOSL
include <BOSL/constants.scad>
use <BOSL/transforms.scad>
xspread(spacing=5, n=20) part();
You can do something like
xspread(spacing=5, n=20) part(partpos=$pos);
which will modify the part depending on its position to create 20
different
parts.
Is this the kind of thing you're looking for? If not, please clarify.
Maybe give a specific example of what you're doing.
gounthar wrote
Hi,
as I'm coming from onShape, I'm kind of lost sometimes.
I design boxes for hosting hardware. Most of the time, some small parts
don't fit that well (because I made errors when taking measurements, or
the
printer is not that accurate), so I modify the small part of the big
and print once more everything.
If I ever want to add or modify something, I have to do the same again.
Print the whole box, and not the small part of the box.
Time, resource, and energy consuming.
I thought I had found the perfect tool with OpenSCAD, because I can
my small parts in different files, use functions and modules, so that
small parts can be printed more quickly, and modified if needed.
I'm getting used to it, but I'm not sure I am following the right path,
embracing the right phylosophy.
For example, I'm still struggling with translate in order to replicate
lots
of small parts which are symmetrical to a construction line... I should
maybe get with mirror().
But let's say it's ok, mostly ok.
How am I supposed to integrate those small parts in the bigger part?
Just with translate() followed by the call to my module (with some
parameters maybe)?
Is there any other way that would be easier, or more OpenSCAD-like?
Thanks.
Bruno
--
Sent from: http://forum.openscad.org/
OpenSCAD mailing list
I sometimes print a small section of a part if it has I detail I want to
test. I use this <https://github.com/nophead/NopSCADlib#Clip> module to cut
out the bit I want.
On Fri, 26 Jul 2019 at 23:56, Frank van der Hulst <drifter.frank@gmail.com>
wrote:
> I also use OnShape, and don't understand how that forces you to print all
> the parts every time. In OnShape you can export individual parts to STL
> files for printing individually.
>
> In Slic3r you can split a multi-part STL into separate parts and delete
> the parts you don't want to print.
>
> Getting back to OpenSCad, you can use if() statements to only generate a
> part if a variable or condition is true.
>
> On Sat, 27 Jul 2019, 10:15 Matt Maggio, <mattmaggio19@gmail.com> wrote:
>
>> Put your part into a module, run a for loop and have a translate
>> statement to space them out.
>>
>> But reading your problem again is confusing, do you want to print just
>> the changed part? how would you then integrate it with the whole, like
>> physically? I guess you could hack up a print and glue another piece on,
>> but the whole point of printing is that it makes the object without you
>> fiddling around with a file a or chainsaw or whatever.
>>
>> In woodworking it's measure twice, cut once. In 3D printing it's more
>> like spend 100 x more time on CAD than you ever do interacting with the
>> printer.
>>
>>
>> On Fri, Jul 26, 2019 at 4:21 PM adrianv <avm4@cornell.edu> wrote:
>>
>>> I don't understand your goal. Do you want to print 20 copies of the same
>>> part? Or 20 copies of the same part but with variations in part
>>> parameters?
>>> And your question is how to arrange them on a line?
>>>
>>> This code will put 20 identical parts on the X axis. The BOSL library is
>>> here: https://github.com/revarbat/BOSL
>>>
>>> include <BOSL/constants.scad>
>>> use <BOSL/transforms.scad>
>>>
>>> xspread(spacing=5, n=20) part();
>>>
>>> You can do something like
>>>
>>> xspread(spacing=5, n=20) part(partpos=$pos);
>>>
>>> which will modify the part depending on its position to create 20
>>> different
>>> parts.
>>>
>>> Is this the kind of thing you're looking for? If not, please clarify.
>>> Maybe give a specific example of what you're doing.
>>>
>>>
>>> gounthar wrote
>>> > Hi,
>>> >
>>> > as I'm coming from onShape, I'm kind of lost sometimes.
>>> > I design boxes for hosting hardware. Most of the time, some small parts
>>> > don't fit that well (because I made errors when taking measurements, or
>>> > the
>>> > printer is not that accurate), so I modify the small part of the big
>>> box,
>>> > and print once more everything.
>>> > If I ever want to add or modify something, I have to do the same again.
>>> > Print the whole box, and not the small part of the box.
>>> > Time, resource, and energy consuming.
>>> >
>>> > I thought I had found the perfect tool with OpenSCAD, because I can
>>> define
>>> > my small parts in different files, use functions and modules, so that
>>> my
>>> > small parts can be printed more quickly, and modified if needed.
>>> > I'm getting used to it, but I'm not sure I am following the right path,
>>> > embracing the right phylosophy.
>>> > For example, I'm still struggling with translate in order to replicate
>>> > lots
>>> > of small parts which are symmetrical to a construction line... I should
>>> > maybe get with mirror().
>>> > But let's say it's ok, mostly ok.
>>> >
>>> > How am I supposed to integrate those small parts in the bigger part?
>>> > Just with translate() followed by the call to my module (with some
>>> > parameters maybe)?
>>> > Is there any other way that would be easier, or more OpenSCAD-like?
>>> >
>>> > Thanks.
>>> >
>>> > Bruno
>>> >
>>> >
>>> >
>>> > --
>>> > Sent from: http://forum.openscad.org/
>>> >
>>> > _______________________________________________
>>> > OpenSCAD mailing list
>>>
>>> > Discuss@.openscad
>>>
>>> > http://lists.openscad.org/mailman/listinfo/discuss_lists.openscad.org
>>>
>>>
>>>
>>>
>>>
>>> --
>>> Sent from: http://forum.openscad.org/
>>>
>>> _______________________________________________
>>> OpenSCAD mailing list
>>> Discuss@lists.openscad.org
>>> http://lists.openscad.org/mailman/listinfo/discuss_lists.openscad.org
>>>
>>
>>
>> --
>> Matt Maggio
>> Senior Research Technologist
>> Resuscitation Institute (Rm. 1.380)
>> Department of Medicine
>> Rosalind Franklin University of Medicine and Science
>> 3333, Green Bay Rd, North Chicago, IL - 60064.
>> Office: 224-570-7954
>> Cell: 815-703-2879
>> "Take chances, make mistakes, and get messy!!" - Mrs. Frizzle, pHd
>> _______________________________________________
>> OpenSCAD mailing list
>> Discuss@lists.openscad.org
>> http://lists.openscad.org/mailman/listinfo/discuss_lists.openscad.org
>>
> _______________________________________________
> OpenSCAD mailing list
> Discuss@lists.openscad.org
> http://lists.openscad.org/mailman/listinfo/discuss_lists.openscad.org
>
G
gounthar
Sat, Jul 27, 2019 9:23 PM
Sorry for not being clear at all.
Discuss
http://forum.openscad.org/Making-a-whole-of-small-parts-tp27057p27058.html
got it right despite my bad explanations.
I have several problems. For "big" boxes
https://github.com/gounthar/MerryKombo/blob/CAD/big.png , I have small
sections https://github.com/gounthar/MerryKombo/blob/CAD/usb2uart.png
(which are not parts but a part of the box) which have lots of symmetry.
My first problem/question was: what is the correct way to code that
symmetry? Should I use mirror, or translate?
I guess I should use mirror, and that leads to the second question: does it
change anything to use mirror or translate, knowing that this section will
be inserted in the final part, and maybe in other parts later on? It should
be "agnostic", like a component in classic development, but easily inserted
wherever its final position in the part may be.
Another example would be the camera hole
https://github.com/gounthar/MerryKombo/blob/CAD/camera_view.png for the
same part
https://github.com/gounthar/MerryKombo/blob/CAD/big%20with%20camera%20view.png
The problem I have with onShape regarding this sections is that I don't know
how to cut them in order to only print them to see if they fit, and not the
whole big part with them included. I guess I could do that with parts
studios and parts assembly, but I already have way too many tabs for that
project. That's why I was pretty happy to find OpenSCAD with modules so that
I can refine those small sections before integrating them into the big part.
Yes, I'm measuring more than twice before printing, but there are still some
errors or improvements after the first print (especially with OpenSCAD, as
I'm used to rely on the tool just by using constraints to get things right,
in comparison with OpenSCAD where I have to work out the right numbers by
myself).
I hope I did not muddy the water more than in my previous message...
Thanks.
--
Sent from: http://forum.openscad.org/
Sorry for not being clear at all.
Discuss
<http://forum.openscad.org/Making-a-whole-of-small-parts-tp27057p27058.html>
got it right despite my bad explanations.
I have several problems. For "big" boxes
<https://github.com/gounthar/MerryKombo/blob/CAD/big.png> , I have small
sections <https://github.com/gounthar/MerryKombo/blob/CAD/usb2uart.png>
(which are not parts but a part of the box) which have lots of symmetry.
My first problem/question was: what is the correct way to code that
symmetry? Should I use mirror, or translate?
I guess I should use mirror, and that leads to the second question: does it
change anything to use mirror or translate, knowing that this section will
be inserted in the final part, and maybe in other parts later on? It should
be "agnostic", like a component in classic development, but easily inserted
wherever its final position in the part may be.
Another example would be the camera hole
<https://github.com/gounthar/MerryKombo/blob/CAD/camera_view.png> for the
same part
<https://github.com/gounthar/MerryKombo/blob/CAD/big%20with%20camera%20view.png>
The problem I have with onShape regarding this sections is that I don't know
how to cut them in order to only print them to see if they fit, and not the
whole big part with them included. I guess I could do that with parts
studios and parts assembly, but I already have way too many tabs for that
project. That's why I was pretty happy to find OpenSCAD with modules so that
I can refine those small sections before integrating them into the big part.
Yes, I'm measuring more than twice before printing, but there are still some
errors or improvements after the first print (especially with OpenSCAD, as
I'm used to rely on the tool just by using constraints to get things right,
in comparison with OpenSCAD where I have to work out the right numbers by
myself).
I hope I did not muddy the water more than in my previous message...
Thanks.
--
Sent from: http://forum.openscad.org/
A
adrianv
Sat, Jul 27, 2019 10:08 PM
The referenced message suggests creating parts with standardized locations.
This is not unreasonable, but I think it is inflexible and messy, in the
end. (If you want to place the part on something, how do you do it? You
have to know the part dimensions.) In BOSL2 the author has been working on
giving parts a set of "anchors", and I think this is a great idea. You can
have standard anchors such as the left side and right side or top and bottom
of a part, but you can also add special anchors for screw holes or other
special locations on each part. Then you can have your modules place the
specified anchor point at the origin. This is much better than having to
move parts around based on knowing that they start with their centers at the
origin or something like that. I find it always seems a remarkable struggle
to get a part that appears in the first quadrant, for example, rotated and
positioned correctly.
I think also the Relativity library does something similar, and the obiscad
attachment library was also an inspiration for this approach.
With regards to creating a part, you should use whichever is easier of
mirror or translate, or makes the construction easier to understand. Once
the geometry has been created, it won't make a difference which commands you
used to create it. I did run into a gotcha with mirror---my part had
chirality (screw threads) and mirror changed its handedness.
gounthar wrote
Sorry for not being clear at all.
Discuss
<http://forum.openscad.org/Making-a-whole-of-small-parts-tp27057p27058.html>
got it right despite my bad explanations.
I have several problems. For "big" boxes
<https://github.com/gounthar/MerryKombo/blob/CAD/big.png> , I have
small
sections
<https://github.com/gounthar/MerryKombo/blob/CAD/usb2uart.png>
(which are not parts but a part of the box) which have lots of symmetry.
My first problem/question was: what is the correct way to code that
symmetry? Should I use mirror, or translate?
I guess I should use mirror, and that leads to the second question: does
it
change anything to use mirror or translate, knowing that this section will
be inserted in the final part, and maybe in other parts later on? It
should
be "agnostic", like a component in classic development, but easily
inserted
wherever its final position in the part may be.
Another example would be the camera hole
<https://github.com/gounthar/MerryKombo/blob/CAD/camera_view.png>
for the
same part
<https://github.com/gounthar/MerryKombo/blob/CAD/big%20with%20camera%20view.png>
The problem I have with onShape regarding this sections is that I don't
know
how to cut them in order to only print them to see if they fit, and not
the
whole big part with them included. I guess I could do that with parts
studios and parts assembly, but I already have way too many tabs for that
project. That's why I was pretty happy to find OpenSCAD with modules so
that
I can refine those small sections before integrating them into the big
part.
Yes, I'm measuring more than twice before printing, but there are still
some
errors or improvements after the first print (especially with OpenSCAD, as
I'm used to rely on the tool just by using constraints to get things
right,
in comparison with OpenSCAD where I have to work out the right numbers by
myself).
I hope I did not muddy the water more than in my previous message...
Thanks.
--
Sent from: http://forum.openscad.org/
OpenSCAD mailing list
The referenced message suggests creating parts with standardized locations.
This is not unreasonable, but I think it is inflexible and messy, in the
end. (If you want to place the part on something, how do you do it? You
have to know the part dimensions.) In BOSL2 the author has been working on
giving parts a set of "anchors", and I think this is a great idea. You can
have standard anchors such as the left side and right side or top and bottom
of a part, but you can also add special anchors for screw holes or other
special locations on each part. Then you can have your modules place the
specified anchor point at the origin. This is much better than having to
move parts around based on knowing that they start with their centers at the
origin or something like that. I find it always seems a remarkable struggle
to get a part that appears in the first quadrant, for example, rotated and
positioned correctly.
I think also the Relativity library does something similar, and the obiscad
attachment library was also an inspiration for this approach.
With regards to creating a part, you should use whichever is easier of
mirror or translate, or makes the construction easier to understand. Once
the geometry has been created, it won't make a difference which commands you
used to create it. I did run into a gotcha with mirror---my part had
chirality (screw threads) and mirror changed its handedness.
gounthar wrote
> Sorry for not being clear at all.
> Discuss
> <http://forum.openscad.org/Making-a-whole-of-small-parts-tp27057p27058.html>
> got it right despite my bad explanations.
>
> I have several problems. For "big" boxes
> <https://github.com/gounthar/MerryKombo/blob/CAD/big.png> , I have
> small
> sections
> <https://github.com/gounthar/MerryKombo/blob/CAD/usb2uart.png>
> (which are not parts but a part of the box) which have lots of symmetry.
> My first problem/question was: what is the correct way to code that
> symmetry? Should I use mirror, or translate?
> I guess I should use mirror, and that leads to the second question: does
> it
> change anything to use mirror or translate, knowing that this section will
> be inserted in the final part, and maybe in other parts later on? It
> should
> be "agnostic", like a component in classic development, but easily
> inserted
> wherever its final position in the part may be.
> Another example would be the camera hole
> <https://github.com/gounthar/MerryKombo/blob/CAD/camera_view.png>
> for the
> same part
> <https://github.com/gounthar/MerryKombo/blob/CAD/big%20with%20camera%20view.png>
>
> The problem I have with onShape regarding this sections is that I don't
> know
> how to cut them in order to only print them to see if they fit, and not
> the
> whole big part with them included. I guess I could do that with parts
> studios and parts assembly, but I already have way too many tabs for that
> project. That's why I was pretty happy to find OpenSCAD with modules so
> that
> I can refine those small sections before integrating them into the big
> part.
> Yes, I'm measuring more than twice before printing, but there are still
> some
> errors or improvements after the first print (especially with OpenSCAD, as
> I'm used to rely on the tool just by using constraints to get things
> right,
> in comparison with OpenSCAD where I have to work out the right numbers by
> myself).
>
> I hope I did not muddy the water more than in my previous message...
>
> Thanks.
>
>
>
> --
> Sent from: http://forum.openscad.org/
>
> _______________________________________________
> OpenSCAD mailing list
> Discuss@.openscad
> http://lists.openscad.org/mailman/listinfo/discuss_lists.openscad.org
--
Sent from: http://forum.openscad.org/
M
MichaelAtOz
Sun, Jul 28, 2019 5:48 AM
My first problem/question was: what is the correct way to code that
symmetry? Should I use mirror, or translate?
Mirror may seem convenient to position items which have symmetry.
But will the item always be symmetrical?
If you later wish to adapt your code such that it loses symmetry it will be
complicated.
Just because two rectangles are equally spaced from a centre line doesn't
make them mirrors.
For example if you wanted to add a text imprint, the opposite side would be
inverted.
I rarely use mirror, and reserve it for where actual inversion is needed, ie
when you want the left side to become the right side (or top/bottom).
http://forum.openscad.org/file/t359/Mirror-x.png
Admin - email* me if you need anything, or if I've done something stupid...
- click on my MichaelAtOz label, there is a link to email me.
Unless specifically shown otherwise above, my contribution is in the Public Domain; to the extent possible under law, I have waived all copyright and related or neighbouring rights to this work. Obviously inclusion of works of previous authors is not included in the above.
The TPP is no simple “trade agreement.” Fight it! http://www.ourfairdeal.org/ time is running out!
Sent from: http://forum.openscad.org/
gounthar wrote
> My first problem/question was: what is the correct way to code that
> symmetry? Should I use mirror, or translate?
Mirror may seem convenient to position items which have symmetry.
But will the item always be symmetrical?
If you later wish to adapt your code such that it loses symmetry it will be
complicated.
Just because two rectangles are equally spaced from a centre line doesn't
make them mirrors.
For example if you wanted to add a text imprint, the opposite side would be
inverted.
I rarely use mirror, and reserve it for where actual inversion is needed, ie
when you want the left side to become the right side (or top/bottom).
<http://forum.openscad.org/file/t359/Mirror-x.png>
-----
Admin - email* me if you need anything, or if I've done something stupid...
* click on my MichaelAtOz label, there is a link to email me.
Unless specifically shown otherwise above, my contribution is in the Public Domain; to the extent possible under law, I have waived all copyright and related or neighbouring rights to this work. Obviously inclusion of works of previous authors is not included in the above.
The TPP is no simple “trade agreement.” Fight it! http://www.ourfairdeal.org/ time is running out!
--
Sent from: http://forum.openscad.org/
NH
nop head
Sun, Jul 28, 2019 8:13 AM
Yes I rarely use mirror but I have for(side = [-1, 1]) all over the place
with a translate( side * ) ... and possibly rotate( side * ...). That makes
my parts symmetrical but I can always have and if(side > 0) to break
symmetry.
On Sun, 28 Jul 2019 at 06:49, MichaelAtOz oz.at.michael@gmail.com wrote:
My first problem/question was: what is the correct way to code that
symmetry? Should I use mirror, or translate?
Mirror may seem convenient to position items which have symmetry.
But will the item always be symmetrical?
If you later wish to adapt your code such that it loses symmetry it will be
complicated.
Just because two rectangles are equally spaced from a centre line doesn't
make them mirrors.
For example if you wanted to add a text imprint, the opposite side would be
inverted.
I rarely use mirror, and reserve it for where actual inversion is needed,
ie
when you want the left side to become the right side (or top/bottom).
http://forum.openscad.org/file/t359/Mirror-x.png
Admin - email* me if you need anything, or if I've done something stupid...
- click on my MichaelAtOz label, there is a link to email me.
Unless specifically shown otherwise above, my contribution is in the
Public Domain; to the extent possible under law, I have waived all
copyright and related or neighbouring rights to this work. Obviously
inclusion of works of previous authors is not included in the above.
The TPP is no simple “trade agreement.” Fight it!
http://www.ourfairdeal.org/ time is running out!
Sent from: http://forum.openscad.org/
OpenSCAD mailing list
Discuss@lists.openscad.org
http://lists.openscad.org/mailman/listinfo/discuss_lists.openscad.org
Yes I rarely use mirror but I have for(side = [-1, 1]) all over the place
with a translate( side * ) ... and possibly rotate( side * ...). That makes
my parts symmetrical but I can always have and if(side > 0) to break
symmetry.
On Sun, 28 Jul 2019 at 06:49, MichaelAtOz <oz.at.michael@gmail.com> wrote:
> gounthar wrote
> > My first problem/question was: what is the correct way to code that
> > symmetry? Should I use mirror, or translate?
>
> Mirror may seem convenient to position items which have symmetry.
> But will the item always be symmetrical?
> If you later wish to adapt your code such that it loses symmetry it will be
> complicated.
>
>
> Just because two rectangles are equally spaced from a centre line doesn't
> make them mirrors.
> For example if you wanted to add a text imprint, the opposite side would be
> inverted.
>
> I rarely use mirror, and reserve it for where actual inversion is needed,
> ie
> when you want the left side to become the right side (or top/bottom).
> <http://forum.openscad.org/file/t359/Mirror-x.png>
>
>
>
> -----
> Admin - email* me if you need anything, or if I've done something stupid...
>
> * click on my MichaelAtOz label, there is a link to email me.
>
> Unless specifically shown otherwise above, my contribution is in the
> Public Domain; to the extent possible under law, I have waived all
> copyright and related or neighbouring rights to this work. Obviously
> inclusion of works of previous authors is not included in the above.
>
> The TPP is no simple “trade agreement.” Fight it!
> http://www.ourfairdeal.org/ time is running out!
> --
> Sent from: http://forum.openscad.org/
>
> _______________________________________________
> OpenSCAD mailing list
> Discuss@lists.openscad.org
> http://lists.openscad.org/mailman/listinfo/discuss_lists.openscad.org
>