[OpenSCAD] Maths problem = finding corners of an intersection of 2 polygons
Michael Marx
michael.marx at tpg.com.au
Sat Jul 20 22:27:18 EDT 2019
> But I'm still interested in solving with maths,
Plus https://rosettacode.org/wiki/Find_the_intersection_of_two_lines should be hints enough?
p1=[[378.546,352.217],[458.698,272.065],[384.642,252.783],[324.204,313.221]];
p2=[[379.141,252.143],[470.219,343.221],[403.88,370.221],[301.294,267.635]];
intersection()
{
%polygon(p1);
#polygon(p2);
}
plot(p1,size=1.5);
plot(p2,size=2,c="green");
line(p1[0], p1[1]);
line(p2[0], p2[1], c="green");
module line(a,b,thick=1,c="blue") {
color(c)
hull() {
translate(a) circle(thick);
translate(b) circle(thick);
}
}
module plot(v,size=1,c="blue") { // v=[ [x,y,z] or [x,y], ... ]
d3=(len(v[0])==3);
for(j=[0:len(v)-1]) {
i=v[j];
translate([i.x,i.y,d3 ? i.z : 0]) { //echo(i,j);
color(c)
if (d3)
sphere(size,$fn=12);
else
circle(size,$fn=8);
%color("black")
translate([0,-1,0.1])
if (d3)
linear_extrude(height=1)
text(str(j),size=size*4);
else
text(str(j),size=size*4);
}
}
}
_____
From: Discuss [mailto:discuss-bounces at lists.openscad.org] On Behalf Of Alex Gibson
Sent: Sun, 21 Jul 2019 11:12
To: 'OpenSCAD general discussion'
Subject: Re: [OpenSCAD] Maths problem = finding corners of an intersection of 2 polygons
.so that's my problem solved for this time.
But I'm still interested in solving with maths, with the idea of making a post-processing tool...
Alex Gibson
admg consulting
edumaker limited
* Project management
* Operations & Process improvement
* 3D Printing
From: Discuss [mailto:discuss-bounces at lists.openscad.org] On Behalf Of Alex Gibson
Sent: 21 July 2019 02:05
To: 'OpenSCAD general discussion'
Subject: Re: [OpenSCAD] Maths problem = finding corners of an intersection of 2 polygons
Yep - playing the GCODE back in Simplify3D gets a perfect square:
That is:
G92 E0
G1 X378.546 Y352.217
G1 X458.698 Y272.065 E76.6848 ;
G1 X457.434 Y271.615
G1 X384.642 Y252.783
G1 X324.204 Y313.221 E144.1098 ;
G1 X323.103 Y312.381
G1 X379.141 Y252.143
G1 X470.219 Y343.221 E58.8828 ;
G1 X469.321 Y343.146
G1 X403.880 Y370.221
G1 X301.294 Y267.635 E129.3704 ;
; layer 717, Z = 359.250
G1 Z359.250
G1 X382.211 Y348.552
G1 X428.88 Y301.883 E76.6848 ;
G1 X382.211 Y255.214 E144.1098 ;
G1 X335.542 Y301.883 E58.8828 ;
G1 X382.211 Y348.552 E129.3704 ;
Now I just have to make a couple of versions of this, one repeating 3 times with no extrusion and
one just once with extrusion, and jog the printer in between until I find the perfect offset!
Thanks again
Alex Gibson
admg consulting
edumaker limited
* Project management
* Operations & Process improvement
* 3D Printing
From: Discuss [mailto:discuss-bounces at lists.openscad.org] On Behalf Of Alex Gibson
Sent: 21 July 2019 01:49
To: 'OpenSCAD general discussion'
Subject: Re: [OpenSCAD] Maths problem = finding corners of an intersection of 2 polygons
Fantastic, thanks Torsten, I was just thinking on similar lines...
I remembered an online STL to OpenSCAD converter.
So I did a Linear_extrude of my intersection and got:
Then used this dead useful tool https://jsfiddle.net/Riham/yzvGD/ to get:
module object1(scale) {polyhedron(
points=[[382.211,348.552,0],[428.88,301.883,0],[382.211,255.214,0],[382.211,348.552,0],[382.211,255
.214,0],[335.542,301.883,0],[382.211,255.214,10],[428.88,301.883,10],[382.211,348.552,10],[335.542,
301.883,10],[382.211,255.214,10],[382.211,348.552,10],[382.211,348.552,0],[428.88,301.883,10],[428.
88,301.883,0],[382.211,348.552,0],[382.211,348.552,10],[428.88,301.883,10],[335.542,301.883,0],[382
.211,348.552,10],[382.211,348.552,0],[335.542,301.883,0],[335.542,301.883,10],[382.211,348.552,10],
[382.211,255.214,0],[335.542,301.883,10],[335.542,301.883,0],[382.211,255.214,0],[382.211,255.214,1
0],[335.542,301.883,10],[428.88,301.883,0],[382.211,255.214,10],[382.211,255.214,0],[428.88,301.883
,0],[428.88,301.883,10],[382.211,255.214,10] ],
faces=[[0,1,2],[3,4,5],[6,7,8],[9,10,11],[12,13,14],[15,16,17],[18,19,20],[21,22,23],[24,25,26],[27
,28,29],[30,31,32],[33,34,35]]);}
translate([200,0,0])
object1(1);
Which if I strip it down a bit gets:
module object4(scale) {polyhedron(
points=[[382.211,348.552,0],
[428.88,301.883,0],
[382.211,255.214,0],
[335.542,301.883,0]],
faces=[[0,1,2,3]]);}
object4(1);
.which are exactly the same co-ordinates you got with rounding error of 0.001mm so that's verified
nicely via 2 methods!
Thanks very much!!!
Now I can use these co-ordinates to make a GCODE file that plays repeats of a square movement
between those co-ordinates, and finally one that extrudes plastic for when I think I've jogged X
and Y successfully!
Alex Gibson
admg consulting
edumaker limited
. Project management
. Operations & Process improvement
. 3D Printing
-----Original Message-----
From: Discuss [mailto:discuss-bounces at lists.openscad.org] On Behalf Of Torsten Paul
Sent: 21 July 2019 01:39
To: discuss at lists.openscad.org
Subject: Re: [OpenSCAD] Maths problem = finding corners of an intersection of 2 polygons
On 21.07.19 02:20, Alex Gibson wrote:
> 2) A way to get OpenSCAD to output the corner co-ordinates?
Export as SVG, that gives:
M 428.88,-301.882 L 382.211,-348.552 L 335.542,-301.883 L 382.212,-255.214 z
Note that the Y coordinates are negated due to SVG coordinate
system having the origin top left.
ciao,
Torsten.
_______________________________________________
OpenSCAD mailing list
Discuss at lists.openscad.org
http://lists.openscad.org/mailman/listinfo/discuss_lists.openscad.org
---
This email has been checked for viruses by AVG.
https://www.avg.com
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.openscad.org/pipermail/discuss_lists.openscad.org/attachments/20190721/07a75ea8/attachment.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: image005.jpg
Type: image/jpeg
Size: 3958 bytes
Desc: not available
URL: <http://lists.openscad.org/pipermail/discuss_lists.openscad.org/attachments/20190721/07a75ea8/attachment.jpg>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: image004.jpg
Type: image/jpeg
Size: 3249 bytes
Desc: not available
URL: <http://lists.openscad.org/pipermail/discuss_lists.openscad.org/attachments/20190721/07a75ea8/attachment-0001.jpg>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: image001.jpg
Type: image/jpeg
Size: 27792 bytes
Desc: not available
URL: <http://lists.openscad.org/pipermail/discuss_lists.openscad.org/attachments/20190721/07a75ea8/attachment-0002.jpg>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: image002.jpg
Type: image/jpeg
Size: 15760 bytes
Desc: not available
URL: <http://lists.openscad.org/pipermail/discuss_lists.openscad.org/attachments/20190721/07a75ea8/attachment-0003.jpg>
More information about the Discuss
mailing list