discuss@lists.openscad.org

OpenSCAD general discussion Mailing-list

View all threads

Managing Variations and Revisions

F
fouroh-llc
Sat, Jan 23, 2021 12:07 AM

Greetings all, my first post.

I use OpenSCAD to create assemblies from 3D printed PLA plastic,
off-the-shelf steel screws, pipes, plates (see images). The basic idea is to
print everything in plastic, but design so they are ready for CNC, mold,
punch-press. The aluminum extrusion in the bottom image is one example,
printed in white plastic now but ready to be replaced with the real thing.

These are reference designs and I script everything with ASTM standard
values - then I fine-tune the model both in OpenSCAD and in Cura during
slicing, to make them fit together. A lot of parts are not standard - Nylon
6/6 hex heads come in all sizes, and even when they are standard - 1/2 inch
PVC pipe and a 1/2 inch metal conduit are not the same inner and outer dia.

While the ASMT values (the actual CAD data) must be preserved, the tweaked
values also must be preserved as I need to reprint damaged and broken parts.

Question: If this is familiar to you - how do you deal with all these
complexities?

OpenSCAD and 3D printing is something I started doing recently, and I have
some basic skills but I never really had to deal with revision control. I am
thinking to use git - but no idea if that's the right tool, or even if I
need it for this.

All I did so far is experiments. I love OpenSCAD, I think I understand
"parametric" design, and I was able to build some sophisticated stuff very
close to the way I expected them to work. But I need to find a way to deal
with those complexities.

Thanks for any feedback!
(If this is off-topic I apologize).
http://forum.openscad.org/file/t3101/FourOh-LUG-Banner_%281%29.jpg
http://forum.openscad.org/file/t3101/InitRails_%281%29.jpg


Cheers!
Mr. Sandor Kunyik
Founder, Technology Evangelist
Factory 4.0 Open Initiative, LLC.
https://hubzilla.factoryfouroh.net/channel/fouroh-llc

Sent from: http://forum.openscad.org/

Greetings all, my first post. I use OpenSCAD to create assemblies from 3D printed PLA plastic, off-the-shelf steel screws, pipes, plates (see images). The basic idea is to print everything in plastic, but design so they are ready for CNC, mold, punch-press. The aluminum extrusion in the bottom image is one example, printed in white plastic now but ready to be replaced with the real thing. These are reference designs and I script everything with ASTM standard values - then I fine-tune the model both in OpenSCAD and in Cura during slicing, to make them fit together. A lot of parts are not standard - Nylon 6/6 hex heads come in all sizes, and even when they are standard - 1/2 inch PVC pipe and a 1/2 inch metal conduit are not the same inner and outer dia. While the ASMT values (the actual CAD data) must be preserved, the tweaked values also must be preserved as I need to reprint damaged and broken parts. Question: If this is familiar to you - how do you deal with all these complexities? OpenSCAD and 3D printing is something I started doing recently, and I have some basic skills but I never really had to deal with revision control. I am thinking to use git - but no idea if that's the right tool, or even if I need it for this. All I did so far is experiments. I love OpenSCAD, I think I understand "parametric" design, and I was able to build some sophisticated stuff very close to the way I expected them to work. But I need to find a way to deal with those complexities. Thanks for any feedback! (If this is off-topic I apologize). <http://forum.openscad.org/file/t3101/FourOh-LUG-Banner_%281%29.jpg> <http://forum.openscad.org/file/t3101/InitRails_%281%29.jpg> ----- Cheers! Mr. Sandor Kunyik Founder, Technology Evangelist Factory 4.0 Open Initiative, LLC. https://hubzilla.factoryfouroh.net/channel/fouroh-llc -- Sent from: http://forum.openscad.org/
JL
John Lussmyer
Sat, Jan 23, 2021 12:33 AM

On Fri Jan 22 16:07:14 PST 2021 postmaster@factoryfouroh.net said:

While the ASMT values (the actual CAD data) must be preserved, the tweaked
values also must be preserved as I need to reprint damaged and broken parts.

Question: If this is familiar to you - how do you deal with all these
complexities?

I use a standard Revision Control system like Perforce or Git.

--

Bobcats and Cougars, oh my!  http://john.casadelgato.com/Pets

On Fri Jan 22 16:07:14 PST 2021 postmaster@factoryfouroh.net said: >While the ASMT values (the actual CAD data) must be preserved, the tweaked >values also must be preserved as I need to reprint damaged and broken parts. > >Question: If this is familiar to you - how do you deal with all these >complexities? I use a standard Revision Control system like Perforce or Git. -- Bobcats and Cougars, oh my! http://john.casadelgato.com/Pets
A
adrianv
Sat, Jan 23, 2021 12:39 AM

You can manage this particular complexity by having your part modules accept
a "slop" argument or arguments that specify how to vary the part size.  So
for example, you have a module that makes pipe and maybe it has

module pipe(nominal_size, id_delta, od_delta)

and the id_delta and od_delta are changes from the basic nominal size.  The
nominal size preserves your standard dimensions.

fouroh-llc wrote

While the ASMT values (the actual CAD data) must be preserved, the tweaked
values also must be preserved as I need to reprint damaged and broken
parts.

Question: If this is familiar to you - how do you deal with all these
complexities?

You can manage this particular complexity by having your part modules accept a "slop" argument or arguments that specify how to vary the part size. So for example, you have a module that makes pipe and maybe it has module pipe(nominal_size, id_delta, od_delta) and the id_delta and od_delta are changes from the basic nominal size. The nominal size preserves your standard dimensions. fouroh-llc wrote > While the ASMT values (the actual CAD data) must be preserved, the tweaked > values also must be preserved as I need to reprint damaged and broken > parts. > > Question: If this is familiar to you - how do you deal with all these > complexities? -- Sent from: http://forum.openscad.org/
NH
nop head
Sat, Jan 23, 2021 12:44 AM

I model everything the size I want it to be and calibrate my printers to
print it accurately. I don't have any slop parameters but I do add
clearances when parts need to mate easily unless I want a press fit.

On Sat, 23 Jan 2021 at 00:40, adrianv avm4@cornell.edu wrote:

You can manage this particular complexity by having your part modules
accept
a "slop" argument or arguments that specify how to vary the part size.  So
for example, you have a module that makes pipe and maybe it has

module pipe(nominal_size, id_delta, od_delta)

and the id_delta and od_delta are changes from the basic nominal size.  The
nominal size preserves your standard dimensions.

fouroh-llc wrote

While the ASMT values (the actual CAD data) must be preserved, the

tweaked

values also must be preserved as I need to reprint damaged and broken
parts.

Question: If this is familiar to you - how do you deal with all these
complexities?

I model everything the size I want it to be and calibrate my printers to print it accurately. I don't have any slop parameters but I do add clearances when parts need to mate easily unless I want a press fit. On Sat, 23 Jan 2021 at 00:40, adrianv <avm4@cornell.edu> wrote: > You can manage this particular complexity by having your part modules > accept > a "slop" argument or arguments that specify how to vary the part size. So > for example, you have a module that makes pipe and maybe it has > > module pipe(nominal_size, id_delta, od_delta) > > and the id_delta and od_delta are changes from the basic nominal size. The > nominal size preserves your standard dimensions. > > > fouroh-llc wrote > > While the ASMT values (the actual CAD data) must be preserved, the > tweaked > > values also must be preserved as I need to reprint damaged and broken > > parts. > > > > Question: If this is familiar to you - how do you deal with all these > > complexities? > > > > > > -- > Sent from: http://forum.openscad.org/ > > _______________________________________________ > OpenSCAD mailing list > Discuss@lists.openscad.org > http://lists.openscad.org/mailman/listinfo/discuss_lists.openscad.org >
F
fouroh-llc
Sat, Jan 23, 2021 1:22 AM

One issue I did not include to keep my post brief:

The dovetails are central to most of what I do, and they are CNC candidates.
I print them on Ender 5 with the build plate lowering (vertical), and the
dimensions are going to differ from the CAD data one particular way.. when I
print them horizontal the dimensions and the deviation from CAD data going
to differ another way.

1.) Deployment: To give the printed plastic the best chance of survival (so
it wont peel to pieces during testing), the dovetail should be printed
according to deployment - surface, wall and ceiling mount - so the dovetail
angle changes. This is by the way going to be the same in steel, a dovetail
mounted horizontal is different from the one mounted to the ceiling.

2.) Print: to allow the dovetail to work, the layers must be aligned -
mating surfaces with creases from the layers are sticking and noisy, but
after sanding them smooth the dimension also changes.

I have a really difficult time to find and use the same values, with the
same deployment and print parameters on top of all the other complexities.
Its something I need to share with others so I am working on this, and this
post is just to share more details,.

Thanks for the responses.


Cheers!
Mr. Sandor Kunyik
Founder, Technology Evangelist
Factory 4.0 Open Initiative, LLC.
https://hubzilla.factoryfouroh.net/channel/fouroh-llc

Sent from: http://forum.openscad.org/

One issue I did not include to keep my post brief: The dovetails are central to most of what I do, and they are CNC candidates. I print them on Ender 5 with the build plate lowering (vertical), and the dimensions are going to differ from the CAD data one particular way.. when I print them horizontal the dimensions and the deviation from CAD data going to differ another way. 1.) Deployment: To give the printed plastic the best chance of survival (so it wont peel to pieces during testing), the dovetail should be printed according to deployment - surface, wall and ceiling mount - so the dovetail angle changes. This is by the way going to be the same in steel, a dovetail mounted horizontal is different from the one mounted to the ceiling. 2.) Print: to allow the dovetail to work, the layers must be aligned - mating surfaces with creases from the layers are sticking and noisy, but after sanding them smooth the dimension also changes. I have a really difficult time to find and use the same values, with the same deployment and print parameters on top of all the other complexities. Its something I need to share with others so I am working on this, and this post is just to share more details,. Thanks for the responses. ----- Cheers! Mr. Sandor Kunyik Founder, Technology Evangelist Factory 4.0 Open Initiative, LLC. https://hubzilla.factoryfouroh.net/channel/fouroh-llc -- Sent from: http://forum.openscad.org/
JB
Jordan Brown
Sat, Jan 23, 2021 3:16 AM

It seems to me that you have two largely-orthogonal problems.

First, revisions.  You made a design yesterday.  You want to update it
today, but you want to keep track of the changes so that you can back
them out if they don't work, or so you can remember what you tried (and
discarded) yesterday.  That's what source management tools like git are
for.  They will mostly just work, though you might want to find a slicer
that likes to keep its "projects" in a textual form.  (I don't know if
any do.)  Source management tools can often deal with binary files, but
usually poorly.

Second, variations.  You have two parts that are based on the same
model, but differ in some way.  It isn't that one is newer than the
other... they're just different.  There I would think in terms of
parametric design - writing one program that will generate both results,
when fed different inputs.  One good trick for that is the Customizer;
you can have one OpenSCAD program and several JSON sets of values to
drive it.  (You can do the same thing in pure OpenSCAD using inclusion,
but it's a bit more awkward.)

It seems to me that you have two largely-orthogonal problems. First, revisions.  You made a design yesterday.  You want to update it today, but you want to keep track of the changes so that you can back them out if they don't work, or so you can remember what you tried (and discarded) yesterday.  That's what source management tools like git are for.  They will mostly just work, though you might want to find a slicer that likes to keep its "projects" in a textual form.  (I don't know if any do.)  Source management tools can often deal with binary files, but usually poorly. Second, variations.  You have two parts that are based on the same model, but differ in some way.  It isn't that one is newer than the other... they're just different.  There I would think in terms of parametric design - writing one program that will generate both results, when fed different inputs.  One good trick for that is the Customizer; you can have one OpenSCAD program and several JSON sets of values to drive it.  (You can do the same thing in pure OpenSCAD using inclusion, but it's a bit more awkward.)
F
fouroh-llc
Sat, Jan 23, 2021 4:06 AM

At this point I am thinking of the people who are going to inherit my
designs, and the responsibilities that comes with advancing them.

I am seriously considering a wiki, where each page going to show the picture
of the part (or the animation of the assembly) to make it clearly
recognizable, then just post the entire OpenSCAD script and link the STL or
STEP or whatever to build it. To me this looks really appealing. The text in
the wiki would keep the whole thing updated. Versions and variations would
be separate wiki pages.

Until of course a real pro comes along pointing out the obvious, the effort
it would take to place the whole thing under version control done right.
Then I am going to kick myself for not doing the right thing and learn to do
it the right way when I still had a blank slate.

Now as I am writing this, management and ownership also going to prefer wiki
pages with some rich media to text-only version control.

Just brainstorming here.


Cheers!
Mr. Sandor Kunyik
Founder, Technology Evangelist
Factory 4.0 Open Initiative, LLC.
https://hubzilla.factoryfouroh.net/channel/fouroh-llc

Sent from: http://forum.openscad.org/

At this point I am thinking of the people who are going to inherit my designs, and the responsibilities that comes with advancing them. I am seriously considering a wiki, where each page going to show the picture of the part (or the animation of the assembly) to make it clearly recognizable, then just post the entire OpenSCAD script and link the STL or STEP or whatever to build it. To me this looks really appealing. The text in the wiki would keep the whole thing updated. Versions and variations would be separate wiki pages. Until of course a real pro comes along pointing out the obvious, the effort it would take to place the whole thing under version control done right. Then I am going to kick myself for not doing the right thing and learn to do it the right way when I still had a blank slate. Now as I am writing this, management and ownership also going to prefer wiki pages with some rich media to text-only version control. Just brainstorming here. ----- Cheers! Mr. Sandor Kunyik Founder, Technology Evangelist Factory 4.0 Open Initiative, LLC. https://hubzilla.factoryfouroh.net/channel/fouroh-llc -- Sent from: http://forum.openscad.org/
JB
Jordan Brown
Sat, Jan 23, 2021 4:21 AM

Look at github.  They have wiki, source control, issue tracking, et
cetera.  Users can fork their own copies and develop on them, then feed
back to you for merging.

Look at github.  They have wiki, source control, issue tracking, et cetera.  Users can fork their own copies and develop on them, then feed back to you for merging.
F
fouroh-llc
Sat, Jan 23, 2021 4:44 AM

Gitea on YunoHost it is then. I suspected git was the candidate, but now
git+wiki+fork+unlimited accounts on self-hosting do make more sense, thanks!


Cheers!
Mr. Sandor Kunyik
Founder, Technology Evangelist
Factory 4.0 Open Initiative, LLC.
https://hubzilla.factoryfouroh.net/channel/fouroh-llc

Sent from: http://forum.openscad.org/

Gitea on YunoHost it is then. I suspected git was the candidate, but now git+wiki+fork+unlimited accounts on self-hosting do make more sense, thanks! ----- Cheers! Mr. Sandor Kunyik Founder, Technology Evangelist Factory 4.0 Open Initiative, LLC. https://hubzilla.factoryfouroh.net/channel/fouroh-llc -- Sent from: http://forum.openscad.org/
HL
Hans L
Sat, Jan 23, 2021 7:00 AM

For small designs which don't require a whole source tree of scripts, I
often just put the script on gist.github.com, which is their simplified
pastebin-like interface (but with revisioning).  What's also nice is that
it supports upload and 3D view of STL files.
So if you are thinking about having a separate page for each part, that
could be one way to go.

One example of mine with STL included:
https://gist.github.com/thehans/072005c68e5fcef3394b8c08e37d1c35

-Hans

On Fri, Jan 22, 2021 at 10:44 PM fouroh-llc postmaster@factoryfouroh.net
wrote:

Gitea on YunoHost it is then. I suspected git was the candidate, but now
git+wiki+fork+unlimited accounts on self-hosting do make more sense,
thanks!


Cheers!
Mr. Sandor Kunyik
Founder, Technology Evangelist
Factory 4.0 Open Initiative, LLC.
https://hubzilla.factoryfouroh.net/channel/fouroh-llc

Sent from: http://forum.openscad.org/


OpenSCAD mailing list
Discuss@lists.openscad.org
http://lists.openscad.org/mailman/listinfo/discuss_lists.openscad.org

For small designs which don't require a whole source tree of scripts, I often just put the script on gist.github.com, which is their simplified pastebin-like interface (but with revisioning). What's also nice is that it supports upload and 3D view of STL files. So if you are thinking about having a separate page for each part, that could be one way to go. One example of mine with STL included: https://gist.github.com/thehans/072005c68e5fcef3394b8c08e37d1c35 -Hans On Fri, Jan 22, 2021 at 10:44 PM fouroh-llc <postmaster@factoryfouroh.net> wrote: > Gitea on YunoHost it is then. I suspected git was the candidate, but now > git+wiki+fork+unlimited accounts on self-hosting do make more sense, > thanks! > > > > ----- > Cheers! > Mr. Sandor Kunyik > Founder, Technology Evangelist > Factory 4.0 Open Initiative, LLC. > https://hubzilla.factoryfouroh.net/channel/fouroh-llc > -- > Sent from: http://forum.openscad.org/ > > _______________________________________________ > OpenSCAD mailing list > Discuss@lists.openscad.org > http://lists.openscad.org/mailman/listinfo/discuss_lists.openscad.org >