Here's the whole thing.
I can preview if I turn off the calls to Bolt and Antenna.
Either one will give me recursion.
// Cap for antennas
//
//**********************************************************************************
$fn = 360;
Inch = 24.5; // Barbarian units work too.
// Antenna base thread is M6
// Need to find M6 Brass spacers (Dims?)
// M6 brass bolt (Dims?)
// Drill center of bolt for piano wire (Dia?)
// This file will create a plastic overcap.
Standoff_Size = 10; // All WAGs aat the moment
Standoff_Len = 25; //
Bolt_Len = 6; //
Bolt_Size = 10; //
BoltZ = (Standoff_Len + 0.5); // How far up the bolt head is.
Ant_Dia = 2; //
Ant_Len = 200; //
//**************************************************************************************
// The basic blocks
//**************************************************************************************
module Standoff(){
cylinder(Standoff_Len,d=Standoff_Size,$fn=6);
}
module Bolt(){
cylinder(Bolt_Len,d=Bolt_Size,$fn=6);
}
module Antenna(){
cylinder(h=AntLen, d=AntDia, center=true);
}
//**************************************************************************************
// The cap
//**************************************************************************************
//**************************************************************************************
// The antenna
//**************************************************************************************
module Antenna() {
union(){
Standoff();
translate([0,0,BoltZ]){
rotate([0,0,13]){
Bolt();
}// end of rotate
}// end of translate
translate([0,(0 + BoltZ),5]){
Antenna();
}// end of translate
}// end of union
}// end of module
//**************************************************************************************
Antenna();
--
K1FZY (WA4TPW) SK 9/29/37-4/13/15
On 16.07.24 21:43, david vanhorn via Discuss wrote:
//**************************************************************************************
// The antenna
//**************************************************************************************
module Antenna() {
union(){
Standoff();
translate([0,0,BoltZ]){
rotate([0,0,13]){
Bolt();
}// end of rotate
}// end of translate
translate([0,(0 + BoltZ),5]){
Antenna(); <<<------------ here?
}// end of translate
}// end of union
}// end of module
Antenna looks like it's calling Antenna, as noted. Rename the highest
level module Antenna1 and see if that helps. Antenna 1 can call
Antenna, which should not call Antenna at all. Ever... <grin>
Harvey
On 7/16/2024 3:43 PM, david vanhorn via Discuss wrote:
Here's the whole thing.
I can preview if I turn off the calls to Bolt and Antenna.
Either one will give me recursion.
// Cap for antennas
//
//**********************************************************************************
$fn = 360;
Inch = 24.5; // Barbarian units work too.
// Antenna base thread is M6
// Need to find M6 Brass spacers (Dims?)
// M6 brass bolt (Dims?)
// Drill center of bolt for piano wire (Dia?)
// This file will create a plastic overcap.
Standoff_Size = 10; // All WAGs aat the moment
Standoff_Len = 25; //
Bolt_Len = 6; //
Bolt_Size = 10; //
BoltZ = (Standoff_Len + 0.5); // How far up the bolt head is.
Ant_Dia = 2; //
Ant_Len = 200; //
//**************************************************************************************
// The basic blocks
//**************************************************************************************
module Standoff(){
cylinder(Standoff_Len,d=Standoff_Size,$fn=6);
}
module Bolt(){
cylinder(Bolt_Len,d=Bolt_Size,$fn=6);
}
module Antenna(){
cylinder(h=AntLen, d=AntDia, center=true);
}
//**************************************************************************************
// The cap
//**************************************************************************************
//**************************************************************************************
// The antenna
//**************************************************************************************
module Antenna() {
union(){
Standoff();
translate([0,0,BoltZ]){
rotate([0,0,13]){
Bolt();
}// end of rotate
}// end of translate
translate([0,(0 + BoltZ),5]){
Antenna();
}// end of translate
}// end of union
}// end of module
//**************************************************************************************
Antenna();
--
K1FZY (WA4TPW) SK 9/29/37-4/13/15
OpenSCAD mailing list
To unsubscribe send an email to discuss-leave@lists.openscad.org
Among other things, you appear to define module Antenna() twice.
Unfortunately, OpenSCAD does not warn about such things.
On 7/16/2024 3:43 PM, david vanhorn via Discuss wrote:
Here's the whole thing.
I can preview if I turn off the calls to Bolt and Antenna.
Either one will give me recursion.
// Cap for antennas
//
//**********************************************************************************
$fn = 360;
Inch = 24.5; // Barbarian units work too.
// Antenna base thread is M6
// Need to find M6 Brass spacers (Dims?)
// M6 brass bolt (Dims?)
// Drill center of bolt for piano wire (Dia?)
// This file will create a plastic overcap.
Standoff_Size = 10; // All WAGs aat the moment
Standoff_Len = 25; //
Bolt_Len = 6; //
Bolt_Size = 10; //
BoltZ = (Standoff_Len + 0.5); // How far up the bolt head is.
Ant_Dia = 2; //
Ant_Len = 200; //
//**************************************************************************************
// The basic blocks
//**************************************************************************************
module Standoff(){
cylinder(Standoff_Len,d=Standoff_Size,$fn=6);
}
module Bolt(){
cylinder(Bolt_Len,d=Bolt_Size,$fn=6);
}
module Antenna(){
cylinder(h=AntLen, d=AntDia, center=true);
}
//**************************************************************************************
// The cap
//**************************************************************************************
//**************************************************************************************
// The antenna
//**************************************************************************************
module Antenna() {
union(){
Standoff();
translate([0,0,BoltZ]){
rotate([0,0,13]){
Bolt();
}// end of rotate
}// end of translate
translate([0,(0 + BoltZ),5]){
Antenna();
}// end of translate
}// end of union
}// end of module
//**************************************************************************************
Antenna();
--
K1FZY (WA4TPW) SK 9/29/37-4/13/15
OpenSCAD mailing list
To unsubscribe send an email todiscuss-leave@lists.openscad.org
--
This email has been checked for viruses by AVG antivirus software.
www.avg.com
DOH! :) Sometimes you just need another pair of eyes.
Thanks!
On Tue, Jul 16, 2024 at 1:47 PM Torsten Paul via Discuss <
discuss@lists.openscad.org> wrote:
On 16.07.24 21:43, david vanhorn via Discuss wrote:
//**************************************************************************************
// The antenna
//**************************************************************************************
module Antenna() {
union(){
Standoff();
translate([0,0,BoltZ]){
rotate([0,0,13]){
Bolt();
}// end of rotate
}// end of translate
translate([0,(0 + BoltZ),5]){
Antenna(); <<<------------ here?
}// end of translate
}// end of union
}// end of module
OpenSCAD mailing list
To unsubscribe send an email to discuss-leave@lists.openscad.org
--
K1FZY (WA4TPW) SK 9/29/37-4/13/15
Hi!
Others have already pointed out the recursion issue, but there's another issue you need to look at...
you have 1" as 24.5mm while it's supposed to be 25.4mm.
M6 bolts are 6mm thick on the thickest part, from top of thread to top of thread on the other side, or any unthreaded area before the head.
Spacers usually have 6.1 or 6.2mm Inner Diameter (that's just under 1/4", which is 6.35mm) and typically 10mm outer diameter.
Larger ID allows for slop and that's often not desirable.Washers tends to have larger holes, though.
Trygve
Den 16. juli 2024 kl. 21.43.38 +02.00 skrev david vanhorn via Discuss discuss@lists.openscad.org:
Here's the whole thing.
I can preview if I turn off the calls to Bolt and Antenna.
Either one will give me recursion.
// Cap for antennas
//
//**********************************************************************************
$fn = 360;
Inch = 24.5; // Barbarian units work too.
// Antenna base thread is M6
// Need to find M6 Brass spacers (Dims?)
// M6 brass bolt (Dims?)
// Drill center of bolt for piano wire (Dia?)
// This file will create a plastic overcap.
It's not the shaft diameter of the M6 that I need, but rather the outer
"diameter" of a brass M6 Threaded spacer and bolt.
Still got to source those. I need to be able to solder the three parts
together.
In the end, the purpose of all this is to create a printable shell that
goes over the assembly.
Good catch on the barbarian units conversion! Back in my Vivid (pre
POVray) raytracing days, I built a units conversion for a large project
that handled every unit of length I could find, from microns to light
years. Included furlongs.
Current state of project:
// Cap for antennas
//
//**********************************************************************************
$fn = 360;
Inch = 25.4; // Barbarian units work too.
// Antenna base thread is M6
// Need to find M6 Brass spacers (Dims?)
// M6 brass bolt (Dims?)
// Drill center of bolt for piano wire (Dia?)
// This file will create a plastic overcap.
Standoff_Size = 10; // All WAGs aat the moment
Standoff_Len = 25; //
Bolt_Len = 6; //
Bolt_Size = 10; //
BoltZ = (Standoff_Len + 0.5); // How far up the bolt head is.
Ant_Dia = 2; //
Ant_Len = 200; //
Cap_Dia = (Standoff_Size + 7);
Cap_Len = (Standoff_Len + 7);
Top_Dia = Cap_Dia;
//**************************************************************************************
// The basic blocks
//**************************************************************************************
module Standoff(){
cylinder(Standoff_Len,d=Standoff_Size,$fn=6);
}
module Bolt(){
cylinder(Bolt_Len,d=Bolt_Size,$fn=6);
}
module Antenna(){
cylinder(h=Ant_Len, d=Ant_Dia, center=true);
}
module CapShell (){
cylinder(h=Cap_Len, d=Cap_Dia, center=true);
}// end of module
module CapTop (){
sphere (d=Cap_Dia);
}// end of module
//**************************************************************************************
// The Paraboloid From https://www.thingiverse.com/thing:84564
//**************************************************************************************
module paraboloid (y=10, f=5, rfa=0, fc=1, detail=44){
// y = height of paraboloid
// f = focus distance
// fc : 1 = center paraboloid in focus point(x=0, y=f); 0 = center
paraboloid on top (x=0, y=0)
// rfa = radius of the focus area : 0 = point focus
// detail = $fn of cone
hi = (y+2f)/sqrt(2); // height and radius of the cone -> alpha = 45° ->
sin(45°)=1/sqrt(2)
x =2f*sqrt(y/f); // x = half size of parabola
translate([0,0,-f*fc]) // center on focus
rotate_extrude(convexity = 10,$fn=detail ) // extrude paraboild
translate([rfa,0,0]) // translate for fokus area
difference(){
union(){ // adding square for focal area
projection(cut = true) // reduce from 3D cone to 2D parabola
translate([0,0,f2]) rotate([45,0,0])// rotate cone 45° and translate for
cutting
translate([0,0,-hi/2])cylinder(h= hi, r1=hi, r2=0, center=true,
$fn=detail); // center cone on tip
translate([-(rfa+x ),0]) square ([rfa+x , y ]); // focal area square
}
translate([-(2rfa+x ), -1/2]) square ([rfa+x ,y +1] ); // cut of half at
rotation center
}
}
//**************************************************************************************
// The cap
//**************************************************************************************
module Cap(){
union(){
CapShell();
translate([0,0,29.7]){
rotate([180,0,0]){
paraboloid (y=15,f=1.2,rfa= 0,fc=1,detail=120);
}// end of rotate
//CapTop();
}// end of translate
}// end of union
}// End of module
//**************************************************************************************
// The antenna
//**************************************************************************************
module Ant() {
union(){
Standoff();
translate([0,0,BoltZ]){
rotate([0,0,13]){
Bolt();
}// end of rotate
}// end of translate
translate([0,0,(Ant_Len/2)]){
Antenna();
}// end of translate
}// end of union
}// end of module
//**************************************************************************************
// The actual top
//**************************************************************************************
module Full_Top(){
difference(){
Cap();
translate([0,0,-16.1]){
scale([1.05, 1.05, 1.1]){
#Ant();
}// end of scale
}// end of translate
}// end of difference
}
//**************************************************************************************
//
//**************************************************************************************
Full_Top();
On Tue, Jul 16, 2024 at 2:09 PM Gadgetman! via Discuss <
discuss@lists.openscad.org> wrote:
Hi!
Others have already pointed out the recursion issue, but there's another
issue you need to look at...
you have 1" as 24.5mm while it's supposed to be 25.4mm.
M6 bolts are 6mm thick on the thickest part, from top of thread to top of
thread on the other side, or any unthreaded area before the head.
Spacers usually have 6.1 or 6.2mm Inner Diameter (that's just under 1/4",
which is 6.35mm) and typically 10mm outer diameter.
Larger ID allows for slop and that's often not desirable.
Washers tends to have larger holes, though.
Trygve
Den 16. juli 2024 kl. 21.43.38 +02.00 skrev david vanhorn via Discuss <
discuss@lists.openscad.org>:
Here's the whole thing.
I can preview if I turn off the calls to Bolt and Antenna.
Either one will give me recursion.
// Cap for antennas
//
//**********************************************************************************
$fn = 360;
Inch = 24.5; // Barbarian units work too.
// Antenna base thread is M6
// Need to find M6 Brass spacers (Dims?)
// M6 brass bolt (Dims?)
// Drill center of bolt for piano wire (Dia?)
// This file will create a plastic overcap.
OpenSCAD mailing list
To unsubscribe send an email to discuss-leave@lists.openscad.org
--
K1FZY (WA4TPW) SK 9/29/37-4/13/15