I'm trying to improve how Eagle BRD widget handles holes,

I’m trying to improve how Eagle BRD widget handles holes, at some point I need to send a warning message to the user if there are holes that cannot be drilled or milled with the selected diameters of drill/mill tools.

What is the best way to send the warning message?

You do a publish to the flashmsg element. That’s how those white notification boxes in the workspace work.

There’s a macro that shows how to do the flashmsg Ray is talking about. There’s also lines of code in the Eagle BRD widget that already do it.

Also, I like better how my solder mask tab shows it’s rendering now and generating Gcode, so you could borrow from that idea. It also shows an error inline when it can’t calculate paths for a pad cuz the end mill is too big. So you could borrow from that approach too where I just put a Bootstrap alert box above the box you’re likely playing with that generated the error.

I’ll try to mimic same behavior of alert of solder mask tabs.
I finished working on drilling/milling holes, we can now cut large holes in Helical tool paths, check it out here: http://www.chilipeppr.com/ameen

missing/deleted image from Google+

This is looking pretty amazing. One thing I’m wondering though is, I tend to do my isolation traces with an expensive $22 0.1mm stub end mill. I can’t use that end mill to mill holes. What I’d rather use on my holes is actual drill bits for the small ones like 0.4mm and 0.6mm. On the large holes I tend to do a 3rd tool change to a 1, 1.5, or 2mm chip breaker end mill that’s good for cutting lots of fiberglass. I’ll tend to cut out the dimensions with whatever I drill the holes out with. That would make me think we need a way to offset those hole drills with more choices in the UI for what tool to use.

@jlauer That’s exactly what I had in mind when I made this update. But here I’m relying on the same cutting tool that cuts the board to cut the large holes.

Ok, I think that works then. So are you saying that vias and pad holes will use center line drill bits and any “holes” from Eagle will use your helical path?

I’m trating all holes exactly the same, I’m selecting the tool (drill or cutter) based on hole diameter, if it’s smaller or equel to maximum drill size then I uses a drill, if it’s larger than cutter diameter I use the cutter with hilical path.
If diameter is in between the two it will niether be drilled nor cut, this is where the use get an alert and hole color will change to red, so we can see which holes are skipped.
This is applicable to vias, pads and Eagle holes.

In above screenshot, there are four helical paths on the right, the two in the middle are pads of USB connector.

BTW, something looks weird on dimensions on the Uno sample board. It’s as if the last points on the dimensions get double drawn? I think the final board dimension Gcode looks ok though.

missing/deleted image from Google+

I noticed that earlier, but I was busy digging the through holes :slight_smile:
I probably forgot to mirror first vertex when closing the wire, I’ll fix that tonight.

Oh, I just noticed that the board in your screen shot is not mirrored, so it must be something else is causing this extra line to appear, I’ll check it later.

Hmm. Good point. Maybe that bug has always been there. It could be the product of how Three.js requires points at the end of an array, and clipper doesn’t, or vice versa. I can’t recall.

Eagle lists wires in .brd file in the order drawn by the user, while the code in draw3dDimension assumes that wires are placed in order.
So that bug is not new, I checked xpix ws and it’s exactly the same.
Following screenshots from xpix ws. Gcode is also incorrect.
missing/deleted image from Google+

Hmm. Ok, that’s kind of a tough one then. I suppose we need an algorithm to match up the start and ends of each wire. There may also be a method in the Clipper.js library that puts points in the correct order, but I’m not sure.

@jlauer I noticed few other issues/bugs in rendering the board, If you don’t mind I will add them as issues to github so we can track them and find solutions.

Yeah, great idea.

Should the widget be able to render/drill classic “holes” in eagle files?
i did create my first own eagle Board and only vias got rendered but not holes.
I think i screwed the settings up, right?

@Andre_S We just added this feature an hour ago, holes are suppoted now.