fix multi-diameter edge case

This commit is contained in:
bakedpotatolord 2025-05-01 10:10:01 -06:00
commit 3692a532cf

View file

@ -507,8 +507,9 @@ CAM.holes = async function(settings, widget, diam) {
} }
for (let poly of inner) { for (let poly of inner) {
let center = poly.calcCircleCenter(); let center = poly.calcCircleCenter();
center.area = poly.area();
// console.log("center",center) // console.log("center",center)
center.selected = (!individual && poly.circularity() >= 0.985 && Math.abs(poly.area() - area) <= areaDelta ); center.selected = (!individual && poly.circularity() >= 0.985 && Math.abs(center.area - area) <= areaDelta );
if (center.isInPolygon(slice.shadow)) { if (center.isInPolygon(slice.shadow)) {
// if shadowed, don't add, and inform client // if shadowed, don't add, and inform client
shadowedDrills = true; shadowedDrills = true;
@ -517,7 +518,8 @@ CAM.holes = async function(settings, widget, diam) {
let overlap = false; let overlap = false;
for (let [i,drill] of drills.entries()) { for (let [i,drill] of drills.entries()) {
let dist = drill.distTo2D(center) let dist = drill.distTo2D(center)
if (dist <= centerDiff) { // too close //if on the same xy point, and both have the same selection value
if (dist <= centerDiff && drill.selected == center.selected) {
// console.log("overlap",center,drill); // console.log("overlap",center,drill);
if(center.z > drill.z) { //if current is higher than old if(center.z > drill.z) { //if current is higher than old
drills[i] = center; //replace with top point drills[i] = center; //replace with top point