threadlib icon indicating copy to clipboard operation
threadlib copied to clipboard

SP-400 threads?

Open dholth opened this issue 5 years ago • 18 comments

Common American plastic & glass bottles seem to use these threads "SP-400", probably the "Modified Buttress Thread" for most plastic bottles. https://www.bevtech.org/threadspecs-downloads.asp

dholth avatar Aug 20 '19 19:08 dholth

See also http://www.gpi.org/industry-resources/finish-drawings

dholth avatar Aug 20 '19 19:08 dholth

["PCF-33P-ext", [6.35, 14.74, 29.49, [[0, 0.76], [0, -0.76], [1.195, -0.549], [1.195, 0.07]]]],


use <threadlib/threadlib.scad>

type = "PCF-33P";
turns = .6;
higbee_arc = 45;

union() {
    bolt(type, turns, higbee_arc=higbee_arc);
    // second thread start
    rotate([0,0,180]) { thread("PCF-33P-ext", turns, higbee_arc=higbee_arc);
    }
}

https://www.amazon.com/Motts-Apple-Juice-Pack/dp/B01IRHDZKY

dholth avatar Aug 21 '19 19:08 dholth

Sounds interesting. Thanks for this input. I'd like to add it but I would prefer to do it with some kind of test. Do you by any chance know the spec of the matching (internal) thread? I could then add both and the test would be to check for collisions between the two.

adrianschlatter avatar Oct 10 '19 13:10 adrianschlatter

No, as far as I know with bottle finishes the external thread on the bottle finish is standardized, but the caps are completely proprietary.

dholth avatar Oct 10 '19 13:10 dholth

Thanks for responding. This just tested that I properly receive notifications from Github (now ...).

Regarding SP400: That seems to be similar to PCO-1881 that also specifies the neck but not the cap. Maybe we could add a mating thread by hand and check for consistency. Did you produce a part with the code you posted above? Did it work?

adrianschlatter avatar Oct 10 '19 13:10 adrianschlatter

Yes I've printed lots of these now. They are working great.

dholth avatar Oct 10 '19 13:10 dholth

Aaah :) There is no better test than that! I'll gladly add it!

adrianschlatter avatar Oct 10 '19 13:10 adrianschlatter

Just make sure the cylinder supporting the threads is long enough that the bottle cap seals against the end of the tube, instead of ripping it off the object.

A nice feature of this kind of cap compared to the PCO-1881 apart from the larger size, is that the seal is flat instead of having to seal around a specific thickness of cylinder wall.

dholth avatar Oct 10 '19 13:10 dholth

One more question: I'm currently trying this and also checked the spec. From the spec I interpret that the pitch should be 3.18 mm but your code suggests 6.35 mm. What am I getting wrong?

adrianschlatter avatar Oct 10 '19 14:10 adrianschlatter

@dholth: Could you check whether PR #27 works for you?

adrianschlatter avatar Oct 10 '19 16:10 adrianschlatter

There's two thread starts! So you have to repeat the thread twice to make the screw. The distance between the two threads is half the distance between the same thread and itself.

On Thu, Oct 10, 2019, at 10:58 AM, Adrian Schlatter wrote:

One more question: I'm currently trying this and also checked the spec https://www.bevtech.org/assets/Threadspecs/pcf33p1.pdf. From the spec I interpret that the pitch should be 3.18 mm but your code suggests 6.35 mm. What am I getting wrong?

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/adrianschlatter/threadlib/issues/26?email_source=notifications&email_token=AABSZERDWRPP2XUAYQR2HSDQN47HRA5CNFSM4IN37ER2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEA4VE3Q#issuecomment-540627566, or unsubscribe https://github.com/notifications/unsubscribe-auth/AABSZEW2JZBUSM2EKLHK2HTQN47HRANCNFSM4IN37ERQ.

dholth avatar Oct 10 '19 17:10 dholth

Got it. I‘ll have to think about that. I‘m not sure I‘m ready yet to extend threadlib to multiple thread starts.

adrianschlatter avatar Oct 10 '19 18:10 adrianschlatter

Something like this?

for (i=[0:starts])
   rotate([0,0,i*(360/starts)])
        thread(str(designator, "-ext"), turns=turns, higbee_arc=higbee_arc, fn=fn, table=table);

dholth avatar Oct 10 '19 20:10 dholth

Yes. But what I need to think about is

  • does this belong in threadlib or is the user expected to write that loop? I think it belongs in threadlib.
  • in THREAD_TABLE: Add new column "number of starts"?
  • backwards compatibility: what will happen to those users having created their own private THREAD_TABLEs (without that "number of starts" column)? Will their code break? How many such users are there?
  • What about unit testing?

adrianschlatter avatar Oct 10 '19 20:10 adrianschlatter

I applaud your effort to produce high quality threads.

dholth avatar Oct 11 '19 15:10 dholth

Adding to the SP-400 thread thread. A few things for me have come together and I thought I would share and get feedback. I was looking to 3d print a neck my ketchup and shampoo bottles and stumbled upon the Glass Packaging Institute. First - the SP-400 designation seems to be a neck description: https://www.paramountglobal.com/knowledge/bottle-neck-thread-finish

I also found a few cap diagrams : https://www.thecarycompany.com/media/pdf/specs/68WF34.pdf

A previous project I had ws trying to redo a base for my Bud Light Goal light glasses - which I now know is an m63-410.

I have created 2 profiles - GPI-33 and GPI-63 for quick testing. The GPI-63 does work on my glass, but is a little tight. I will be making a PR for eary feedback. I'm using GPI - but that can also change. I'm not certain about the angles, and judging by the documents I found, there is some looseness - most likely since the threads are cast and not machined, and the standard originates from Glass manufacturing - so the Sharm angles are not there, like they could be in plastic.

I have written the awk tests et al. but would like to generate them rather than do it explicit as I have done now.

alainchiasson avatar Apr 10 '23 10:04 alainchiasson

Yes, they say the caps are not standardized, only the bottle's neck finish.

dholth avatar Apr 10 '23 13:04 dholth

I noticed that. I don't think that is "doable" in this lib beyond the thread, to me that's fine - someone else can do a "bottle neck" lib ;-)

alainchiasson avatar Apr 10 '23 15:04 alainchiasson