That’s a really interesting design – but I mostly want to agree and +1 your sentiment.
It’s healthy to want to improve and change things – but there are things OpenSCAD can do and enable that would be far harder than other software, and I am very grateful to the developers for their hard work to make and keep it working!
Cheers,
Alex Gibson
admg consulting
edumaker limited
· Project management
· Operations & Process improvement
· 3D Printing
From: Discuss [mailto:discuss-bounces@lists.openscad.org] On Behalf Of fred via Discuss
Sent: 27 February 2021 16:18
To: OpenSCAD general discussion
Cc: fred
Subject: Re: [OpenSCAD] Openscad is often almost perfect
That's an interesting construct. I've not seen a radial fingerboard before.
How do you feel about converting it to a parametric version?
On Saturday, February 27, 2021, 10:46:07 AM EST, Ray West raywest@raywest.com wrote:
Sometimes, i look at what is possible using openscad, in just a few
lines I can produce something that using some other cad software, would
be tedious, to say the least. And then it can be 3D printed, giving a
'needed' functional item that would be tricky to make in some other way.
This is a feather board, if you are familiar with a table saw or router,
you will know what it is. It is clamped by an 8mm coach bolt, but it is
trivial to resize it to whatever size is required. It prints OK in Petg
(pla may be too brittle), with 4 walls or so, maybe 10% infill. It will
work with far fewer fingers, of course, but it will let you keep all
your fingers!
module arm(){
difference(){
union(){
difference(){
cylinder(15,50,50);
translate([5,0,0])cylinder(15,40,40);
translate([-80,0,0])cube(100);
}
translate([-43,0,0]) cylinder (15,12,12); //round end
}
translate([-43,0,0]) cube([9,9,115],true);// 9mm squarehole
}
}
//arm();
module finger(){
rotate([0,0,-130]){
translate([-1,0,0])cube([2,30 ,15]); //2mm thick fingers
}
}
//finger();
module fingers(){
for (i=[-90:4:70]){
rotate([0,0,i])translate([0,-48,0])finger();
}
}
$fn=100;
difference(){
union(){
arm();
fingers();
}
translate([35,-21,0])rotate([0,0,30])cube(100); // chop off end
difference(){ //'flatten' ends
cylinder (15,200,200);
cylinder(15,70,70);
}
}
OpenSCAD mailing list
Discuss@lists.openscad.org
http://lists.openscad.org/mailman/listinfo/discuss_lists.openscad.org
Virus-free. http://www.avg.com/email-signature?utm_medium=email&utm_source=link&utm_campaign=sig-email&utm_content=emailclient www.avg.com
I think the triangulation for linear extrude with twist has been improved
recently by the theHans.
On Sat, 27 Feb 2021 at 16:07, adrianv avm4@cornell.edu wrote:
That's a clever approach that I completely overlooked. I suppose I tend
to forget about the twist parameter for linear_extrude, perhaps in part
because it usually produces a bad result with how the shape is
triangulated. But in this case it's OK.
Parkinbot wrote
With all that advanced stuff, we shouldn't forget that there is a simple
solution with native means for this specific problem:
--
Sent from: http://forum.openscad.org/
OpenSCAD mailing list
[hidden email]
http:///user/SendEmail.jtp?type=email&email=Discuss%40.openscad
http://lists.openscad.org/mailman/listinfo/discuss_lists.openscad.org
Sent from the OpenSCAD mailing list archive http://forum.openscad.org/
at Nabble.com.
OpenSCAD mailing list
Discuss@lists.openscad.org
http://lists.openscad.org/mailman/listinfo/discuss_lists.openscad.org
Is that in a dev version? Because when I try
intersection(){
linear_extrude(15, twist=90, convexity=8)
square(10,center=true);
translate([50/2,0,0])cube(50,center=true);
}
I get this pretty terrible result:
http://forum.openscad.org/file/t2477/twisted3.png
Making this model well requires either a lot more horizontal slices (which I
find ugly) or resampling the square to have more than four points so that
you aren't trying to approximate the curved sides with long triangles.
http://forum.openscad.org/file/t2477/twisted2.png
nophead wrote
I think the triangulation for linear extrude with twist has been improved
recently by the theHans.
On Sat, 27 Feb 2021 at 16:07, adrianv <
avm4@
> wrote:
That's a clever approach that I completely overlooked. I suppose I tend
to forget about the twist parameter for linear_extrude, perhaps in part
because it usually produces a bad result with how the shape is
triangulated. But in this case it's OK.
Parkinbot wrote
With all that advanced stuff, we shouldn't forget that there is a simple
solution with native means for this specific problem:
--
Sent from: http://forum.openscad.org/
OpenSCAD mailing list
[hidden email]
<http:///user/SendEmail.jtp?type=email&email=Discuss%40.openscad>
http://lists.openscad.org/mailman/listinfo/discuss_lists.openscad.org
Sent from the OpenSCAD mailing list archive
<http://forum.openscad.org/>
at Nabble.com.
OpenSCAD mailing list
Discuss@.openscad
Discuss@.openscad
--
Sent from: http://forum.openscad.org/
I think the improvement was just picking the best diagonal to split the
quads, so yes, to twist something with few vertices you still need to add
some manually to get roughly square quads.
On Sat, 27 Feb 2021 at 18:39, adrianv avm4@cornell.edu wrote:
Is that in a dev version? Because when I try
intersection(){
linear_extrude(15, twist=90, convexity=8)
square(10,center=true);
translate([50/2,0,0])cube(50,center=true);
}
I get this pretty terrible result:
Making this model well requires either a lot more horizontal slices (which
I find ugly) or resampling the square to have more than four points so that
you aren't trying to approximate the curved sides with long triangles.
nophead wrote
I think the triangulation for linear extrude with twist has been improved
recently by the theHans.
On Sat, 27 Feb 2021 at 16:07, adrianv <[hidden email]
http:///user/SendEmail.jtp?type=email&email=avm4%40> wrote:
That's a clever approach that I completely overlooked. I suppose I tend
to forget about the twist parameter for linear_extrude, perhaps in part
because it usually produces a bad result with how the shape is
triangulated. But in this case it's OK.
Parkinbot wrote
With all that advanced stuff, we shouldn't forget that there is a simple
solution with native means for this specific problem:
--
Sent from: http://forum.openscad.org/
OpenSCAD mailing list
[hidden email]
http:///user/SendEmail.jtp?type=email&email=Discuss%40.openscad
http://lists.openscad.org/mailman/listinfo/discuss_lists.openscad.org
Sent from the OpenSCAD mailing list archive http://forum.openscad.org/
at Nabble.com.
OpenSCAD mailing list
[hidden email]
OpenSCAD mailing list
[hidden email]
http:///user/SendEmail.jtp?type=email&email=Discuss%40.openscad
http://lists.openscad.org/mailman/listinfo/discuss_lists.openscad.org
Sent from the OpenSCAD mailing list archive http://forum.openscad.org/
at Nabble.com.
OpenSCAD mailing list
Discuss@lists.openscad.org
http://lists.openscad.org/mailman/listinfo/discuss_lists.openscad.org
I guess, I, or anyone, could replace the values with a list of
variables. But that sort of defeats my quick and dirty solution for me.
The part that would give me the headache, would be calculating the angle
and location of the final cube which is used to 'chop off the end' . For
the various sizes I've printed this, I manually adjust it as needed. The
curved shape acts as a jamming cam, provided there is enough friction
between the wood and the plastic. Some commercial versions here
https://www.youtube.com/watch?v=jMiwsGaX2f4 (at about 6:50).
On 27/02/2021 16:58, Alex Gibson wrote:
That’s a really interesting design – but I mostly want to agree and +1
your sentiment.
It’s healthy to want to improve and change things – but there are
things OpenSCAD can do and enable that would be far harder than other
software, and I am very grateful to the developers for their hard work
to make and keep it working!
Cheers,
Alex Gibson
admgconsulting
edumaker limited
·Project management
·Operations & Process improvement
·3D Printing
*From:*Discuss [mailto:discuss-bounces@lists.openscad.org] *On Behalf
Of *fred via Discuss
Sent: 27 February 2021 16:18
To: OpenSCAD general discussion
Cc: fred
Subject: Re: [OpenSCAD] Openscad is often almost perfect
That's an interesting construct. I've not seen a radial fingerboard
before.
How do you feel about converting it to a parametric version?
On Saturday, February 27, 2021, 10:46:07 AM EST, Ray West
raywest@raywest.com wrote:
Sometimes, i look at what is possible using openscad, in just a few
lines I can produce something that using some other cad software, would
be tedious, to say the least. And then it can be 3D printed, giving a
'needed' functional item that would be tricky to make in some other way.
This is a feather board, if you are familiar with a table saw or router,
you will know what it is. It is clamped by an 8mm coach bolt, but it is
trivial to resize it to whatever size is required. It prints OK in Petg
(pla may be too brittle), with 4 walls or so, maybe 10% infill. It will
work with far fewer fingers, of course, but it will let you keep all
your fingers!
module arm(){
difference(){
union(){
difference(){
cylinder(15,50,50);
translate([5,0,0])cylinder(15,40,40);
translate([-80,0,0])cube(100);
}
translate([-43,0,0]) cylinder (15,12,12); //round end
}
translate([-43,0,0]) cube([9,9,115],true);// 9mm squarehole
}
}
//arm();
module finger(){
rotate([0,0,-130]){
translate([-1,0,0])cube([2,30 ,15]); //2mm thick fingers
}
}
//finger();
module fingers(){
for (i=[-90:4:70]){
rotate([0,0,i])translate([0,-48,0])finger();
}
}
$fn=100;
difference(){
union(){
arm();
fingers();
}
translate([35,-21,0])rotate([0,0,30])cube(100); // chop off end
difference(){ //'flatten' ends
cylinder (15,200,200);
cylinder(15,70,70);
}
}
OpenSCAD mailing list
Discuss@lists.openscad.org mailto:Discuss@lists.openscad.org
http://lists.openscad.org/mailman/listinfo/discuss_lists.openscad.org
http://lists.openscad.org/mailman/listinfo/discuss_lists.openscad.org
Virus-free. www.avg.com
http://www.avg.com/email-signature?utm_medium=email&utm_source=link&utm_campaign=sig-email&utm_content=emailclient
OpenSCAD mailing list
Discuss@lists.openscad.org
http://lists.openscad.org/mailman/listinfo/discuss_lists.openscad.org
No, the improvement is not the result of flipping the diagonals on the long
quads. The improvement is the result of using square quads instead of very
long narrow ones. I think OpenSCAD does the best it can under the
constraint of using long twisted quads. Long twisted quads are just
fundamentally bad. No matter how you pick the diagonal it's going to give
an irregular shape, a poor approximation to the curve you want. The way to
fix it is to subdivide them so they're not long, but more square-like, so
you have more facets to approximate the curve. (Or subdivide them sideways
so they are super narrow, which is what people more often do. I think this
requires more facets to achieve the same quality.)
nophead wrote
I think the improvement was just picking the best diagonal to split the
quads, so yes, to twist something with few vertices you still need to add
some manually to get roughly square quads.
On Sat, 27 Feb 2021 at 18:39, adrianv <
avm4@
> wrote:
Is that in a dev version? Because when I try
intersection(){
linear_extrude(15, twist=90, convexity=8)
square(10,center=true);
translate([50/2,0,0])cube(50,center=true);
}
I get this pretty terrible result:
Making this model well requires either a lot more horizontal slices
(which
I find ugly) or resampling the square to have more than four points so
that
you aren't trying to approximate the curved sides with long triangles.
nophead wrote
I think the triangulation for linear extrude with twist has been improved
recently by the theHans.
On Sat, 27 Feb 2021 at 16:07, adrianv <[hidden email]
<http:///user/SendEmail.jtp?type=email&email=avm4%40>> wrote:
That's a clever approach that I completely overlooked. I suppose I
tend
to forget about the twist parameter for linear_extrude, perhaps in part
because it usually produces a bad result with how the shape is
triangulated. But in this case it's OK.
Parkinbot wrote
With all that advanced stuff, we shouldn't forget that there is a
simple
solution with native means for this specific problem:
--
Sent from: http://forum.openscad.org/
OpenSCAD mailing list
[hidden email]
<http:///user/SendEmail.jtp?type=email&email=Discuss%40.openscad>
<http:///user/SendEmail.jtp?type=email&email=Discuss%40.openscad%3E>
http://lists.openscad.org/mailman/listinfo/discuss_lists.openscad.org
Sent from the OpenSCAD mailing list archive
<http://forum.openscad.org/>
at Nabble.com.
OpenSCAD mailing list
[hidden email]
<http:///user/SendEmail.jtp?type=email&email=Discuss%40.openscad>
OpenSCAD mailing list
[hidden email]
<http:///user/SendEmail.jtp?type=email&email=Discuss%40.openscad>
http://lists.openscad.org/mailman/listinfo/discuss_lists.openscad.org
Sent from the OpenSCAD mailing list archive
<http://forum.openscad.org/>
at Nabble.com.
OpenSCAD mailing list
Discuss@.openscad
Discuss@.openscad
--
Sent from: http://forum.openscad.org/
Yeah, that's the thing about parametric modeling. One attempts to keep the assignments relative to each other in an appropriate manner. Replacing the values with assignments isn't going to work well if one does not know the precise purpose of a specific value and/or assignment.
I've done a few models, far simpler than this, in which the assignments broke when I made a single change. It's worthwhile in the long run, for some models, allowing for scaling changes without problems appearing.
I've used hit-or-miss modeling in the past for the quick-and-dirty outputs as well.
On Saturday, February 27, 2021, 2:01:20 PM EST, Ray West <raywest@raywest.com> wrote:
I guess, I, or anyone, could replace the values with a list of variables. But that sort of defeats my quick and dirty solution for me. The part that would give me the headache, would be calculating the angle and location of the final cube which is used to 'chop off the end' . For the various sizes I've printed this, I manually adjust it as needed. The curved shape acts as a jamming cam, provided there is enough friction between the wood and the plastic. Some commercial versions here https://www.youtube.com/watch?v=jMiwsGaX2f4 (at about 6:50).
On 27/02/2021 16:58, Alex Gibson wrote:
_filtered {} _filtered {} _filtered {} _filtered {} _filtered {}#yiv8648966637 p.yiv8648966637MsoNormal, #yiv8648966637 li.yiv8648966637MsoNormal, #yiv8648966637 div.yiv8648966637MsoNormal {margin:0cm;margin-bottom:.0001pt;font-size:12.0pt;font-family:New;}#yiv8648966637 a:link, #yiv8648966637 span.yiv8648966637MsoHyperlink {color:blue;text-decoration:underline;}#yiv8648966637 a:visited, #yiv8648966637 span.yiv8648966637MsoHyperlinkFollowed {color:purple;text-decoration:underline;}#yiv8648966637 span.yiv8648966637EmailStyle17 {color:#1F497D;}#yiv8648966637 .yiv8648966637MsoChpDefault {font-size:10.0pt;}#yiv8648966637 div.yiv8648966637WordSection1 {}#yiv8648966637 ol {margin-bottom:0cm;}#yiv8648966637 ul {margin-bottom:0cm;}
That’s a really interesting design – but I mostly want to agree and +1 your sentiment.
It’s healthy to want to improve and change things – but there are things OpenSCAD can do and enable that would be far harder than other software, and I am very grateful to the developers for their hard work to make and keep it working!
Cheers,
Alex Gibson
admg consulting
edumaker limited
· Project management
· Operations & Process improvement
· 3D Printing
From: Discuss [mailto:discuss-bounces@lists.openscad.org] On Behalf Of fred via Discuss
Sent: 27 February 2021 16:18
To: OpenSCAD general discussion
Cc: fred
Subject: Re: [OpenSCAD] Openscad is often almost perfect
That's an interesting construct. I've not seen a radial fingerboard before.
How do you feel about converting it to a parametric version?
On Saturday, February 27, 2021, 10:46:07 AM EST, Ray West raywest@raywest.com wrote:
Sometimes, i look at what is possible using openscad, in just a few
lines I can produce something that using some other cad software, would
be tedious, to say the least. And then it can be 3D printed, giving a
'needed' functional item that would be tricky to make in some other way.
This is a feather board, if you are familiar with a table saw or router,
you will know what it is. It is clamped by an 8mm coach bolt, but it is
trivial to resize it to whatever size is required. It prints OK in Petg
(pla may be too brittle), with 4 walls or so, maybe 10% infill. It will
work with far fewer fingers, of course, but it will let you keep all
your fingers!
module arm(){
difference(){
union(){
difference(){
cylinder(15,50,50);
translate([5,0,0])cylinder(15,40,40);
translate([-80,0,0])cube(100);
}
translate([-43,0,0]) cylinder (15,12,12); //round end
}
translate([-43,0,0]) cube([9,9,115],true);// 9mm squarehole
}
}
//arm();
module finger(){
rotate([0,0,-130]){
translate([-1,0,0])cube([2,30 ,15]); //2mm thick fingers
}
}
//finger();
module fingers(){
for (i=[-90:4:70]){
rotate([0,0,i])translate([0,-48,0])finger();
}
}
$fn=100;
difference(){
union(){
arm();
fingers();
}
translate([35,-21,0])rotate([0,0,30])cube(100); // chop off end
difference(){ //'flatten' ends
cylinder (15,200,200);
cylinder(15,70,70);
}
}
OpenSCAD mailing list
Discuss@lists.openscad.org
http://lists.openscad.org/mailman/listinfo/discuss_lists.openscad.org
|
|
Virus-free. www.avg.com
|
OpenSCAD mailing list
Discuss@lists.openscad.org
http://lists.openscad.org/mailman/listinfo/discuss_lists.openscad.org
OpenSCAD mailing list
Discuss@lists.openscad.org
http://lists.openscad.org/mailman/listinfo/discuss_lists.openscad.org
On 2/27/2021 10:38 AM, adrianv wrote:
Making this model well requires either a lot more horizontal slices
(which I find ugly) or resampling the square to have more than four
points so that you aren't trying to approximate the curved sides with
long triangles.
I'm not understanding what you're meaning by resampling the square. I
tried changing the square to be a polygon with 11 points on each side,
and the result was exactly identical to the original square. (Which
surprises me a little, based on how I think linear_extrude works.)
I agree that this is more attractive, but I'm not immediately seeing how
you did it - or at least how you did it with linear_extrude.
I add the extra vertices to the square with minute offsets because exactly
co-linear segments get removed.
module squarish(s, n) {
polygon([
for(i = [0 : n]) [i * s.x / n, s.y + (i % 2) * eps],
for(i = [0 : n]) [s.x - i * s.x / n, (i % 2) * eps],
]);
}
On Sun, 28 Feb 2021 at 00:53, Jordan Brown openscad@jordan.maileater.net
wrote:
On 2/27/2021 10:38 AM, adrianv wrote:
Making this model well requires either a lot more horizontal slices (which
I find ugly) or resampling the square to have more than four points so that
you aren't trying to approximate the curved sides with long triangles.
I'm not understanding what you're meaning by resampling the square. I
tried changing the square to be a polygon with 11 points on each side, and
the result was exactly identical to the original square. (Which surprises
me a little, based on how I think linear_extrude works.)
I agree that this is more attractive, but I'm not immediately seeing how
you did it - or at least how you did it with linear_extrude.
OpenSCAD mailing list
Discuss@lists.openscad.org
http://lists.openscad.org/mailman/listinfo/discuss_lists.openscad.org
I think you understand what I mean. The problem is you cannot create a
square in OpenSCAD that has vertices along its sides because collinear
points are removed. Try making a square where you perturb the resampled
vertices a little bit off the square so it doesn't reduce back to an actual
square. Or say a slight bulge on each of the four sides? I would guess
something like that would work. (I haven't tried it.)
The point I am getting at is that linear_extrude with twist is fundamentally
broken because it doesn't resample the edges this way, or allow you to do
it. To get a model I think is good I had to use other methods. I created
my model in BOSL2 using skin(), which will accept any point list and doesn't
"simplify" away the collinear points.
JordanBrown wrote
On 2/27/2021 10:38 AM, adrianv wrote:
Making this model well requires either a lot more horizontal slices
(which I find ugly) or resampling the square to have more than four
points so that you aren't trying to approximate the curved sides with
long triangles.
I'm not understanding what you're meaning by resampling the square. I
tried changing the square to be a polygon with 11 points on each side,
and the result was exactly identical to the original square. (Which
surprises me a little, based on how I think linear_extrude works.)
I agree that this is more attractive, but I'm not immediately seeing how
you did it - or at least how you did it with linear_extrude.
OpenSCAD mailing list
Discuss@.openscad
--
Sent from: http://forum.openscad.org/