@@ -59,7 +59,9 @@ use <math.scad>
59
59
// thread_depth = Depth of the threads. Default=pitch/2
60
60
// thread_angle = The pressure angle profile angle of the threads. Default = 14.5 degree ACME profile.
61
61
// left_handed = If true, create left-handed threads. Default = false
62
- // bevel = if true, bevel the thread ends. Default: true
62
+ // bevel = if true, bevel the thread ends. Default: false
63
+ // bevel1 = if true, bevel the axis-negative end of the thread. Default: false
64
+ // bevel2 = if true, bevel the axis-positive end of the thread. Default: false
63
65
// starts = The number of lead starts. Default = 1
64
66
// internal = If true, make this a mask for making internal threads.
65
67
// slop = printer slop calibration to allow for tight fitting of parts. Default: `PRINTER_SLOP`
@@ -85,6 +87,8 @@ module trapezoidal_threaded_rod(
85
87
thread_depth= undef,
86
88
left_handed= false ,
87
89
bevel= false ,
90
+ bevel1= false ,
91
+ bevel2= false ,
88
92
starts= 1 ,
89
93
profile= undef,
90
94
internal= false ,
@@ -232,7 +236,11 @@ module trapezoidal_threaded_rod(
232
236
difference () {
233
237
polyhedron (points= poly_points, faces= poly_faces, convexity= threads* starts* 2 );
234
238
zspread(l+ 4 * pitch* starts) cube ([d+ 1 , d+ 1 , 4 * pitch* starts], center= true );
235
- if (bevel) cylinder_mask(d= d, l= l+ 0.01 , chamfer= depth);
239
+ if (bevel || bevel1 || bevel2) {
240
+ depth1 = (bevel || bevel1) ? depth : 0 ;
241
+ depth2 = (bevel || bevel2) ? depth : 0 ;
242
+ cylinder_mask(d= d, l= l+ 0.01 , chamfer1= depth1, chamfer2= depth2);
243
+ }
236
244
}
237
245
}
238
246
}
@@ -321,6 +329,8 @@ module trapezoidal_threaded_nut(
321
329
// pitch = Length between threads.
322
330
// left_handed = if true, create left-handed threads. Default = false
323
331
// bevel = if true, bevel the thread ends. Default: false
332
+ // bevel1 = if true, bevel the axis-negative end of the thread. Default: false
333
+ // bevel2 = if true, bevel the axis-positive end of the thread. Default: false
324
334
// internal = If true, make this a mask for making internal threads.
325
335
// slop = printer slop calibration to allow for tight fitting of parts. Default: `PRINTER_SLOP`
326
336
// orient = Orientation of the rod. Use the `ORIENT_` constants from `constants.scad`. Default: `ORIENT_Z`.
@@ -335,6 +345,8 @@ module threaded_rod(
335
345
d= 10 , l= 100 , pitch= 2 ,
336
346
left_handed= false ,
337
347
bevel= false ,
348
+ bevel1= false ,
349
+ bevel2= false ,
338
350
internal= false ,
339
351
slop= undef,
340
352
orient= ORIENT_Z,
@@ -363,6 +375,8 @@ module threaded_rod(
363
375
profile= profile,
364
376
left_handed= left_handed,
365
377
bevel= bevel,
378
+ bevel1= bevel1,
379
+ bevel2= bevel2,
366
380
internal= internal,
367
381
slop= slop,
368
382
orient= orient,
@@ -426,6 +440,8 @@ module threaded_nut(
426
440
// pitch = Length between threads.
427
441
// left_handed = if true, create left-handed threads. Default = false
428
442
// bevel = if true, bevel the thread ends. Default: false
443
+ // bevel1 = if true, bevel the axis-negative end of the thread. Default: false
444
+ // bevel2 = if true, bevel the axis-positive end of the thread. Default: false
429
445
// internal = If true, this is a mask for making internal threads.
430
446
// slop = printer slop calibration to allow for tight fitting of parts. default=0.2
431
447
// orient = Orientation of the rod. Use the `ORIENT_` constants from `constants.scad`. Default: `ORIENT_Z`.
@@ -440,6 +456,8 @@ module buttress_threaded_rod(
440
456
d= 10 , l= 100 , pitch= 2 ,
441
457
left_handed= false ,
442
458
bevel= false ,
459
+ bevel1= false ,
460
+ bevel2= false ,
443
461
internal= false ,
444
462
slop= undef,
445
463
orient= ORIENT_Z,
@@ -460,6 +478,8 @@ module buttress_threaded_rod(
460
478
profile= profile,
461
479
left_handed= left_handed,
462
480
bevel= bevel,
481
+ bevel1= bevel1,
482
+ bevel2= bevel2,
463
483
internal= internal,
464
484
orient= orient,
465
485
slop= slop,
@@ -536,6 +556,8 @@ module metric_trapezoidal_threaded_rod(
536
556
left_handed= false ,
537
557
starts= 1 ,
538
558
bevel= false ,
559
+ bevel1= false ,
560
+ bevel2= false ,
539
561
orient= ORIENT_Z,
540
562
align= V_CENTER
541
563
) {
@@ -546,6 +568,8 @@ module metric_trapezoidal_threaded_rod(
546
568
left_handed= left_handed,
547
569
starts= starts,
548
570
bevel= bevel,
571
+ bevel1= bevel1,
572
+ bevel2= bevel2,
549
573
orient= orient,
550
574
align= align
551
575
);
@@ -608,6 +632,8 @@ module metric_trapezoidal_threaded_nut(
608
632
// starts = The number of lead starts. Default = 1
609
633
// left_handed = if true, create left-handed threads. Default = false
610
634
// bevel = if true, bevel the thread ends. Default: false
635
+ // bevel1 = if true, bevel the axis-negative end of the thread. Default: false
636
+ // bevel2 = if true, bevel the axis-positive end of the thread. Default: false
611
637
// orient = Orientation of the rod. Use the `ORIENT_` constants from `constants.scad`. Default: `ORIENT_Z`.
612
638
// align = Alignment of the rod. Use the `V_` constants from `constants.scad`. Default: `V_CENTER`.
613
639
// Example(2D):
@@ -623,6 +649,8 @@ module acme_threaded_rod(
623
649
starts= 1 ,
624
650
left_handed= false ,
625
651
bevel= false ,
652
+ bevel1= false ,
653
+ bevel2= false ,
626
654
orient= ORIENT_Z,
627
655
align= V_CENTER
628
656
) {
@@ -633,6 +661,8 @@ module acme_threaded_rod(
633
661
starts= starts,
634
662
left_handed= left_handed,
635
663
bevel= bevel,
664
+ bevel1= bevel1,
665
+ bevel2= bevel2,
636
666
orient= orient,
637
667
align= align
638
668
);
@@ -696,6 +726,8 @@ module acme_threaded_nut(
696
726
// pitch = Length between threads.
697
727
// left_handed = if true, create left-handed threads. Default = false
698
728
// bevel = if true, bevel the thread ends. Default: false
729
+ // bevel1 = if true, bevel the axis-negative end of the thread. Default: false
730
+ // bevel2 = if true, bevel the axis-positive end of the thread. Default: false
699
731
// starts = The number of lead starts. Default = 1
700
732
// orient = Orientation of the rod. Use the `ORIENT_` constants from `constants.scad`. Default: `ORIENT_Z`.
701
733
// align = Alignment of the rod. Use the `V_` constants from `constants.scad`. Default: `V_CENTER`.
@@ -708,6 +740,8 @@ module square_threaded_rod(
708
740
d= 10 , l= 100 , pitch= 2 ,
709
741
left_handed= false ,
710
742
bevel= false ,
743
+ bevel1= false ,
744
+ bevel2= false ,
711
745
starts= 1 ,
712
746
orient= ORIENT_Z,
713
747
align= V_CENTER
@@ -717,6 +751,8 @@ module square_threaded_rod(
717
751
thread_angle= 0 ,
718
752
left_handed= left_handed,
719
753
bevel= bevel,
754
+ bevel1= bevel1,
755
+ bevel2= bevel2,
720
756
starts= starts,
721
757
orient= orient,
722
758
align= align
@@ -736,6 +772,8 @@ module square_threaded_rod(
736
772
// pitch = Length between threads.
737
773
// left_handed = if true, create left-handed threads. Default = false
738
774
// bevel = if true, bevel the thread ends. Default: false
775
+ // bevel1 = if true, bevel the axis-negative end of the thread. Default: false
776
+ // bevel2 = if true, bevel the axis-positive end of the thread. Default: false
739
777
// starts = The number of lead starts. Default = 1
740
778
// slop = printer slop calibration to allow for tight fitting of parts. default=0.2
741
779
// orient = Orientation of the nut. Use the `ORIENT_` constants from `constants.scad`. Default: `ORIENT_Z`.
@@ -747,6 +785,8 @@ module square_threaded_nut(
747
785
pitch= 3.175 ,
748
786
left_handed= false ,
749
787
bevel= false ,
788
+ bevel1= false ,
789
+ bevel2= false ,
750
790
starts= 1 ,
751
791
slop= undef,
752
792
orient= ORIENT_Z,
@@ -757,6 +797,8 @@ module square_threaded_nut(
757
797
thread_angle= 0 ,
758
798
left_handed= left_handed,
759
799
bevel= bevel,
800
+ bevel1= bevel1,
801
+ bevel2= bevel2,
760
802
starts= starts,
761
803
slop= slop,
762
804
orient= orient,
0 commit comments