ht-rohr.scad 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. // Create german HT pipe mount
  2. // based on https://ostendorf-osma.de/uploads/page/translation/de/catalog_pdf/85/DE_HT_KATALOG_OSMA_7_2019.pdf
  3. // (c) Volker Philippent 2025
  4. include <BOSL2/std.scad>
  5. function WallThickness(DN) = lookup(DN, [ [32, 1.8], [40, 1.8], [50, 1.8], [75, 1.9], [90, 2.2], [110, 2.7], [125, 3.1], [160, 3.9] ]);
  6. function SealOuterDiameter(DN) = lookup(DN, [ [32, 44], [40, 53], [50, 63], [75, 88], [90, 105], [110, 125], [125, 143], [160, 181] ]);
  7. function SealInnerHeight(DN) = lookup(DN, [ [32, 6], [40, 6], [50, 6], [70, 6], [90, 6], [110, 7], [125, 8], [160, 9] ]);
  8. function SleeveLenth(DN) = lookup(DN, [ [32, 40], [40, 55], [50, 56], [75, 61], [90, 68], [110, 76], [125, 82], [160, 100] ]);
  9. //DN90 in docs 58, not 68
  10. module HT_Sleeve(DN) {
  11. Wall=WallThickness(DN);
  12. Hdelta=SleeveLenth(DN)-5*Wall-SealInnerHeight(DN)*3/2;
  13. tube(od=DN, wall=Wall, h=Wall, anchor=BOTTOM)
  14. position(TOP) tube(od1=DN, id2=DN, wall=Wall, h=2*Wall, anchor=BOTTOM)
  15. position(TOP) tube(id=DN, wall=Wall, h=Hdelta, anchor=BOTTOM)
  16. position(TOP) tube(id1=DN, od2=SealOuterDiameter(DN), wall=Wall, h=2*Wall, anchor=BOTTOM)
  17. position(TOP) tube(od=SealOuterDiameter(DN), h=SealInnerHeight(DN)+Wall, wall=Wall, anchor=BOTTOM)
  18. ;
  19. }
  20. // module HT_Sleeve_Outer(DN) {
  21. // cylinder(d1=DN, d2=DN+2*WallThickness(DN), h=2*WallThickness(DN));
  22. // translate([0,0,2*WallThickness(DN)]) cylinder(d=DN+2*WallThickness(DN), h=SleeveLenth(DN)-2*WallThickness(DN));
  23. // translate([0,0,SleeveLenth(DN)-4*WallThickness(DN)-SealInnerHeight(DN)*3/2])
  24. // cylinder(d=SealOuterDiameter(DN), h=SealInnerHeight(DN)+2+2*WallThickness(DN));
  25. // }
  26. // module HT_Sleeve_Inner(DN) {
  27. // cylinder(d1=DN-2*WallThickness(DN), d2=DN, h=2*WallThickness(DN));
  28. // translate([0,0,2*WallThickness(DN)]) cylinder(d=DN, h=SleeveLenth(DN)-2*WallThickness(DN));
  29. // translate([0,0,SleeveLenth(DN)-3*WallThickness(DN)-SealInnerHeight(DN)*3/2])
  30. // cylinder(d=SealOuterDiameter(DN)-2*WallThickness(DN), h=SealInnerHeight(DN)+2);
  31. // }
  32. // module HT_Sleeve(DN) {
  33. // difference() {
  34. // HT_Sleeve_Outer(DN);
  35. // HT_Sleeve_Inner(DN);
  36. // }
  37. // }
  38. // module HT_Pipe(length=0, DN) {
  39. // SL = SleeveLenth(DN);
  40. // echo (SL);
  41. // Lpipe = (length<SL) ? 20 : length-SL;
  42. // difference() {
  43. // cylinder(d=DN, h=Lpipe);
  44. // cylinder(d=DN-2*WallThickness(DN), h=Lpipe);
  45. // }
  46. // translate([0,0,Lpipe]) HT_Sleeve(DN);
  47. // }
  48. // intersection(){
  49. // HT_Pipe(DN=50, length=150);
  50. // cube(200);
  51. // }
  52. back_half() HT_Sleeve(DN=50);