discuss@lists.openscad.org

OpenSCAD general discussion

View all threads

Re: Need help creating a design similar with the pictures

SP
Sanjeev Prabhakar
Mon, May 9, 2022 10:15 AM

Idea is in this code:

include<dependencies.scad>

sec=m_points_so(cr(pts1([[0,10],[0,5],[12,0,5],[10,-5],[23,0]]),5),20,.1);
max_x=max(sec*[1,0]);
p_line(sec,.1);
echo(max_x);

sec1=[for(i=[0:len(sec)-1])[13cos(sec[i].x/max_x360),13sin(sec[i].x/max_x360),sec[i].y]];
sec2=[for(i=[0:len(sec)-1])[10cos(sec[i].x/max_x360),10sin(sec[i].x/max_x360),sec[i].y]];

sec3=cpo([sec1,sec2]);

surf_base(sec3);

On Mon, 9 May 2022 at 06:01, sorin vatasoiu via Discuss <
discuss@lists.openscad.org> wrote:

---------- Forwarded message ----------
From: sorin vatasoiu svatasoiu@yahoo.com
To: "discuss@lists.openscad.org" discuss@lists.openscad.org
Cc:
Bcc:
Date: Mon, 9 May 2022 00:31:07 +0000 (UTC)
Subject: [OpenSCAD] Need help creating a design similar with the pictures
Hi,

I'm trying to simulate this knob. I can handle everything but the circular
side with a channel on it.

I can do the flat circular side with the channel, but I cannot figure out
how to do the halt side that has an inclination.
the code I have for the side part it is:

$fn = 360;

outsideChannelFlat();
//channelProfile();

module outsideChannelFlat(){
rotate_extrude(angle = 180, convexity = 2) {
translate([57.5/2,0,0])
channelProfile();
}
}

module channelProfile(){
difference(){
square([7.2,16.5],center = false);
translate([7.2/2,16.5,0])
circle($fn = 180,  r = 4.5/2);
}
}

Any help with the inclined part it is welcomed.

Thank you,

Sorin

---------- Forwarded message ----------
From: sorin vatasoiu via Discuss discuss@lists.openscad.org
To: "discuss@lists.openscad.org" discuss@lists.openscad.org
Cc: sorin vatasoiu svatasoiu@yahoo.com
Bcc:
Date: Mon, 9 May 2022 00:31:07 +0000 (UTC)
Subject: [OpenSCAD] Need help creating a design similar with the pictures


OpenSCAD mailing list
To unsubscribe send an email to discuss-leave@lists.openscad.org

Idea is in this code: include<dependencies.scad> sec=m_points_so(cr(pts1([[0,10],[0,5],[12,0,5],[10,-5],[23,0]]),5),20,.1); max_x=max(sec*[1,0]); p_line(sec,.1); echo(max_x); sec1=[for(i=[0:len(sec)-1])[13*cos(sec[i].x/max_x*360),13*sin(sec[i].x/max_x*360),sec[i].y]]; sec2=[for(i=[0:len(sec)-1])[10*cos(sec[i].x/max_x*360),10*sin(sec[i].x/max_x*360),sec[i].y]]; sec3=cpo([sec1,sec2]); surf_base(sec3); On Mon, 9 May 2022 at 06:01, sorin vatasoiu via Discuss < discuss@lists.openscad.org> wrote: > > > > ---------- Forwarded message ---------- > From: sorin vatasoiu <svatasoiu@yahoo.com> > To: "discuss@lists.openscad.org" <discuss@lists.openscad.org> > Cc: > Bcc: > Date: Mon, 9 May 2022 00:31:07 +0000 (UTC) > Subject: [OpenSCAD] Need help creating a design similar with the pictures > Hi, > > I'm trying to simulate this knob. I can handle everything but the circular > side with a channel on it. > > I can do the flat circular side with the channel, but I cannot figure out > how to do the halt side that has an inclination. > the code I have for the side part it is: > > $fn = 360; > > outsideChannelFlat(); > //channelProfile(); > > > module outsideChannelFlat(){ > rotate_extrude(angle = 180, convexity = 2) { > translate([57.5/2,0,0]) > channelProfile(); > } > } > > module channelProfile(){ > difference(){ > square([7.2,16.5],center = false); > translate([7.2/2,16.5,0]) > circle($fn = 180, r = 4.5/2); > } > } > > Any help with the inclined part it is welcomed. > > Thank you, > > Sorin > > > > > > > > > > ---------- Forwarded message ---------- > From: sorin vatasoiu via Discuss <discuss@lists.openscad.org> > To: "discuss@lists.openscad.org" <discuss@lists.openscad.org> > Cc: sorin vatasoiu <svatasoiu@yahoo.com> > Bcc: > Date: Mon, 9 May 2022 00:31:07 +0000 (UTC) > Subject: [OpenSCAD] Need help creating a design similar with the pictures > _______________________________________________ > OpenSCAD mailing list > To unsubscribe send an email to discuss-leave@lists.openscad.org >
SP
Sanjeev Prabhakar
Mon, May 9, 2022 3:55 PM

code is here:

include<dependencies.scad>

sec=m_points_so(cr(pts1([[0,10],[0,5],[12,0,5],[10,-5],[23,0]]),5),40,.1);
max_x=max(sec*[1,0]);
//p_line(sec,.1);
echo(max_x);

sec1=[for(i=[0:len(sec)-1])[13cos(sec[i].x/max_x360),13sin(sec[i].x/max_x360),sec[i].y]];
sec2=[for(i=[0:len(sec)-1])[10cos(sec[i].x/max_x360),10sin(sec[i].x/max_x360),sec[i].y]];

sec3=cpo([sec1,sec2]);

sec4=loop(sec,44,131);

//p_lineo(sec4);

path=[for(i=[0:len(sec4)-1])[11.5cos(sec4[i].x/max_x360),11.5sin(sec4[i].x/max_x360),sec4[i].y]];
sec5=cir(.8,s=30);

prism=[for(i=[0:len(path)-2])let(
i_plus=i+1,
p0=path[i],
p1=path[i_plus],
v1=p1-p0,
v2=[p0.x,p0.y],
a1=ang(norm([v1.x,v1.y]),v1.z),
a2=ang(v2.x,v2.y)+90,
ang1=is_num(a1)?a1:0,
ang2=is_num(a2)?a2:0,
sec=q_rot(["x90","z-90"],sec5),
a_sec=trns(p0,q_rot([str("y",ang1),str("z",ang2)],sec))
)a_sec];
render()
difference(){
surf_base(sec3);
swp(prism);}

On Mon, 9 May 2022 at 15:45, Sanjeev Prabhakar sprabhakar2006@gmail.com
wrote:

Idea is in this code:

include<dependencies.scad>

sec=m_points_so(cr(pts1([[0,10],[0,5],[12,0,5],[10,-5],[23,0]]),5),20,.1);
max_x=max(sec*[1,0]);
p_line(sec,.1);
echo(max_x);

sec1=[for(i=[0:len(sec)-1])[13cos(sec[i].x/max_x360),13sin(sec[i].x/max_x360),sec[i].y]];

sec2=[for(i=[0:len(sec)-1])[10cos(sec[i].x/max_x360),10sin(sec[i].x/max_x360),sec[i].y]];

sec3=cpo([sec1,sec2]);

surf_base(sec3);

On Mon, 9 May 2022 at 06:01, sorin vatasoiu via Discuss <
discuss@lists.openscad.org> wrote:

---------- Forwarded message ----------
From: sorin vatasoiu svatasoiu@yahoo.com
To: "discuss@lists.openscad.org" discuss@lists.openscad.org
Cc:
Bcc:
Date: Mon, 9 May 2022 00:31:07 +0000 (UTC)
Subject: [OpenSCAD] Need help creating a design similar with the pictures
Hi,

I'm trying to simulate this knob. I can handle everything but the
circular side with a channel on it.

I can do the flat circular side with the channel, but I cannot figure out
how to do the halt side that has an inclination.
the code I have for the side part it is:

$fn = 360;

outsideChannelFlat();
//channelProfile();

module outsideChannelFlat(){
rotate_extrude(angle = 180, convexity = 2) {
translate([57.5/2,0,0])
channelProfile();
}
}

module channelProfile(){
difference(){
square([7.2,16.5],center = false);
translate([7.2/2,16.5,0])
circle($fn = 180,  r = 4.5/2);
}
}

Any help with the inclined part it is welcomed.

Thank you,

Sorin

---------- Forwarded message ----------
From: sorin vatasoiu via Discuss discuss@lists.openscad.org
To: "discuss@lists.openscad.org" discuss@lists.openscad.org
Cc: sorin vatasoiu svatasoiu@yahoo.com
Bcc:
Date: Mon, 9 May 2022 00:31:07 +0000 (UTC)
Subject: [OpenSCAD] Need help creating a design similar with the pictures


OpenSCAD mailing list
To unsubscribe send an email to discuss-leave@lists.openscad.org

code is here: include<dependencies.scad> sec=m_points_so(cr(pts1([[0,10],[0,5],[12,0,5],[10,-5],[23,0]]),5),40,.1); max_x=max(sec*[1,0]); //p_line(sec,.1); echo(max_x); sec1=[for(i=[0:len(sec)-1])[13*cos(sec[i].x/max_x*360),13*sin(sec[i].x/max_x*360),sec[i].y]]; sec2=[for(i=[0:len(sec)-1])[10*cos(sec[i].x/max_x*360),10*sin(sec[i].x/max_x*360),sec[i].y]]; sec3=cpo([sec1,sec2]); sec4=loop(sec,44,131); //p_lineo(sec4); path=[for(i=[0:len(sec4)-1])[11.5*cos(sec4[i].x/max_x*360),11.5*sin(sec4[i].x/max_x*360),sec4[i].y]]; sec5=cir(.8,s=30); prism=[for(i=[0:len(path)-2])let( i_plus=i+1, p0=path[i], p1=path[i_plus], v1=p1-p0, v2=[p0.x,p0.y], a1=ang(norm([v1.x,v1.y]),v1.z), a2=ang(v2.x,v2.y)+90, ang1=is_num(a1)?a1:0, ang2=is_num(a2)?a2:0, sec=q_rot(["x90","z-90"],sec5), a_sec=trns(p0,q_rot([str("y",ang1),str("z",ang2)],sec)) )a_sec]; render() difference(){ surf_base(sec3); swp(prism);} On Mon, 9 May 2022 at 15:45, Sanjeev Prabhakar <sprabhakar2006@gmail.com> wrote: > Idea is in this code: > > include<dependencies.scad> > > sec=m_points_so(cr(pts1([[0,10],[0,5],[12,0,5],[10,-5],[23,0]]),5),20,.1); > max_x=max(sec*[1,0]); > p_line(sec,.1); > echo(max_x); > > > sec1=[for(i=[0:len(sec)-1])[13*cos(sec[i].x/max_x*360),13*sin(sec[i].x/max_x*360),sec[i].y]]; > > sec2=[for(i=[0:len(sec)-1])[10*cos(sec[i].x/max_x*360),10*sin(sec[i].x/max_x*360),sec[i].y]]; > > sec3=cpo([sec1,sec2]); > > surf_base(sec3); > > On Mon, 9 May 2022 at 06:01, sorin vatasoiu via Discuss < > discuss@lists.openscad.org> wrote: > >> >> >> >> ---------- Forwarded message ---------- >> From: sorin vatasoiu <svatasoiu@yahoo.com> >> To: "discuss@lists.openscad.org" <discuss@lists.openscad.org> >> Cc: >> Bcc: >> Date: Mon, 9 May 2022 00:31:07 +0000 (UTC) >> Subject: [OpenSCAD] Need help creating a design similar with the pictures >> Hi, >> >> I'm trying to simulate this knob. I can handle everything but the >> circular side with a channel on it. >> >> I can do the flat circular side with the channel, but I cannot figure out >> how to do the halt side that has an inclination. >> the code I have for the side part it is: >> >> $fn = 360; >> >> outsideChannelFlat(); >> //channelProfile(); >> >> >> module outsideChannelFlat(){ >> rotate_extrude(angle = 180, convexity = 2) { >> translate([57.5/2,0,0]) >> channelProfile(); >> } >> } >> >> module channelProfile(){ >> difference(){ >> square([7.2,16.5],center = false); >> translate([7.2/2,16.5,0]) >> circle($fn = 180, r = 4.5/2); >> } >> } >> >> Any help with the inclined part it is welcomed. >> >> Thank you, >> >> Sorin >> >> >> >> >> >> >> >> >> >> ---------- Forwarded message ---------- >> From: sorin vatasoiu via Discuss <discuss@lists.openscad.org> >> To: "discuss@lists.openscad.org" <discuss@lists.openscad.org> >> Cc: sorin vatasoiu <svatasoiu@yahoo.com> >> Bcc: >> Date: Mon, 9 May 2022 00:31:07 +0000 (UTC) >> Subject: [OpenSCAD] Need help creating a design similar with the pictures >> _______________________________________________ >> OpenSCAD mailing list >> To unsubscribe send an email to discuss-leave@lists.openscad.org >> >
SP
Sanjeev Prabhakar
Mon, May 9, 2022 4:04 PM

replace last difference command with following to avoid rendering issues:

difference(){
surf_base(flip(sec3));
swp(flip(prism));}

On Mon, 9 May 2022 at 21:25, Sanjeev Prabhakar sprabhakar2006@gmail.com
wrote:

code is here:

include<dependencies.scad>

sec=m_points_so(cr(pts1([[0,10],[0,5],[12,0,5],[10,-5],[23,0]]),5),40,.1);
max_x=max(sec*[1,0]);
//p_line(sec,.1);
echo(max_x);

sec1=[for(i=[0:len(sec)-1])[13cos(sec[i].x/max_x360),13sin(sec[i].x/max_x360),sec[i].y]];

sec2=[for(i=[0:len(sec)-1])[10cos(sec[i].x/max_x360),10sin(sec[i].x/max_x360),sec[i].y]];

sec3=cpo([sec1,sec2]);

sec4=loop(sec,44,131);

//p_lineo(sec4);

path=[for(i=[0:len(sec4)-1])[11.5cos(sec4[i].x/max_x360),11.5sin(sec4[i].x/max_x360),sec4[i].y]];
sec5=cir(.8,s=30);

prism=[for(i=[0:len(path)-2])let(
i_plus=i+1,
p0=path[i],
p1=path[i_plus],
v1=p1-p0,
v2=[p0.x,p0.y],
a1=ang(norm([v1.x,v1.y]),v1.z),
a2=ang(v2.x,v2.y)+90,
ang1=is_num(a1)?a1:0,
ang2=is_num(a2)?a2:0,
sec=q_rot(["x90","z-90"],sec5),
a_sec=trns(p0,q_rot([str("y",ang1),str("z",ang2)],sec))
)a_sec];
render()
difference(){
surf_base(sec3);
swp(prism);}

On Mon, 9 May 2022 at 15:45, Sanjeev Prabhakar sprabhakar2006@gmail.com
wrote:

Idea is in this code:

include<dependencies.scad>

sec=m_points_so(cr(pts1([[0,10],[0,5],[12,0,5],[10,-5],[23,0]]),5),20,.1);
max_x=max(sec*[1,0]);
p_line(sec,.1);
echo(max_x);

sec1=[for(i=[0:len(sec)-1])[13cos(sec[i].x/max_x360),13sin(sec[i].x/max_x360),sec[i].y]];

sec2=[for(i=[0:len(sec)-1])[10cos(sec[i].x/max_x360),10sin(sec[i].x/max_x360),sec[i].y]];

sec3=cpo([sec1,sec2]);

surf_base(sec3);

On Mon, 9 May 2022 at 06:01, sorin vatasoiu via Discuss <
discuss@lists.openscad.org> wrote:

---------- Forwarded message ----------
From: sorin vatasoiu svatasoiu@yahoo.com
To: "discuss@lists.openscad.org" discuss@lists.openscad.org
Cc:
Bcc:
Date: Mon, 9 May 2022 00:31:07 +0000 (UTC)
Subject: [OpenSCAD] Need help creating a design similar with the pictures
Hi,

I'm trying to simulate this knob. I can handle everything but the
circular side with a channel on it.

I can do the flat circular side with the channel, but I cannot figure
out how to do the halt side that has an inclination.
the code I have for the side part it is:

$fn = 360;

outsideChannelFlat();
//channelProfile();

module outsideChannelFlat(){
rotate_extrude(angle = 180, convexity = 2) {
translate([57.5/2,0,0])
channelProfile();
}
}

module channelProfile(){
difference(){
square([7.2,16.5],center = false);
translate([7.2/2,16.5,0])
circle($fn = 180,  r = 4.5/2);
}
}

Any help with the inclined part it is welcomed.

Thank you,

Sorin

---------- Forwarded message ----------
From: sorin vatasoiu via Discuss discuss@lists.openscad.org
To: "discuss@lists.openscad.org" discuss@lists.openscad.org
Cc: sorin vatasoiu svatasoiu@yahoo.com
Bcc:
Date: Mon, 9 May 2022 00:31:07 +0000 (UTC)
Subject: [OpenSCAD] Need help creating a design similar with the pictures


OpenSCAD mailing list
To unsubscribe send an email to discuss-leave@lists.openscad.org

replace last difference command with following to avoid rendering issues: difference(){ surf_base(flip(sec3)); swp(flip(prism));} On Mon, 9 May 2022 at 21:25, Sanjeev Prabhakar <sprabhakar2006@gmail.com> wrote: > code is here: > > include<dependencies.scad> > > sec=m_points_so(cr(pts1([[0,10],[0,5],[12,0,5],[10,-5],[23,0]]),5),40,.1); > max_x=max(sec*[1,0]); > //p_line(sec,.1); > echo(max_x); > > > sec1=[for(i=[0:len(sec)-1])[13*cos(sec[i].x/max_x*360),13*sin(sec[i].x/max_x*360),sec[i].y]]; > > sec2=[for(i=[0:len(sec)-1])[10*cos(sec[i].x/max_x*360),10*sin(sec[i].x/max_x*360),sec[i].y]]; > > sec3=cpo([sec1,sec2]); > > sec4=loop(sec,44,131); > > //p_lineo(sec4); > > > path=[for(i=[0:len(sec4)-1])[11.5*cos(sec4[i].x/max_x*360),11.5*sin(sec4[i].x/max_x*360),sec4[i].y]]; > sec5=cir(.8,s=30); > > prism=[for(i=[0:len(path)-2])let( > i_plus=i+1, > p0=path[i], > p1=path[i_plus], > v1=p1-p0, > v2=[p0.x,p0.y], > a1=ang(norm([v1.x,v1.y]),v1.z), > a2=ang(v2.x,v2.y)+90, > ang1=is_num(a1)?a1:0, > ang2=is_num(a2)?a2:0, > sec=q_rot(["x90","z-90"],sec5), > a_sec=trns(p0,q_rot([str("y",ang1),str("z",ang2)],sec)) > )a_sec]; > render() > difference(){ > surf_base(sec3); > swp(prism);} > > On Mon, 9 May 2022 at 15:45, Sanjeev Prabhakar <sprabhakar2006@gmail.com> > wrote: > >> Idea is in this code: >> >> include<dependencies.scad> >> >> sec=m_points_so(cr(pts1([[0,10],[0,5],[12,0,5],[10,-5],[23,0]]),5),20,.1); >> max_x=max(sec*[1,0]); >> p_line(sec,.1); >> echo(max_x); >> >> >> sec1=[for(i=[0:len(sec)-1])[13*cos(sec[i].x/max_x*360),13*sin(sec[i].x/max_x*360),sec[i].y]]; >> >> sec2=[for(i=[0:len(sec)-1])[10*cos(sec[i].x/max_x*360),10*sin(sec[i].x/max_x*360),sec[i].y]]; >> >> sec3=cpo([sec1,sec2]); >> >> surf_base(sec3); >> >> On Mon, 9 May 2022 at 06:01, sorin vatasoiu via Discuss < >> discuss@lists.openscad.org> wrote: >> >>> >>> >>> >>> ---------- Forwarded message ---------- >>> From: sorin vatasoiu <svatasoiu@yahoo.com> >>> To: "discuss@lists.openscad.org" <discuss@lists.openscad.org> >>> Cc: >>> Bcc: >>> Date: Mon, 9 May 2022 00:31:07 +0000 (UTC) >>> Subject: [OpenSCAD] Need help creating a design similar with the pictures >>> Hi, >>> >>> I'm trying to simulate this knob. I can handle everything but the >>> circular side with a channel on it. >>> >>> I can do the flat circular side with the channel, but I cannot figure >>> out how to do the halt side that has an inclination. >>> the code I have for the side part it is: >>> >>> $fn = 360; >>> >>> outsideChannelFlat(); >>> //channelProfile(); >>> >>> >>> module outsideChannelFlat(){ >>> rotate_extrude(angle = 180, convexity = 2) { >>> translate([57.5/2,0,0]) >>> channelProfile(); >>> } >>> } >>> >>> module channelProfile(){ >>> difference(){ >>> square([7.2,16.5],center = false); >>> translate([7.2/2,16.5,0]) >>> circle($fn = 180, r = 4.5/2); >>> } >>> } >>> >>> Any help with the inclined part it is welcomed. >>> >>> Thank you, >>> >>> Sorin >>> >>> >>> >>> >>> >>> >>> >>> >>> >>> ---------- Forwarded message ---------- >>> From: sorin vatasoiu via Discuss <discuss@lists.openscad.org> >>> To: "discuss@lists.openscad.org" <discuss@lists.openscad.org> >>> Cc: sorin vatasoiu <svatasoiu@yahoo.com> >>> Bcc: >>> Date: Mon, 9 May 2022 00:31:07 +0000 (UTC) >>> Subject: [OpenSCAD] Need help creating a design similar with the pictures >>> _______________________________________________ >>> OpenSCAD mailing list >>> To unsubscribe send an email to discuss-leave@lists.openscad.org >>> >>