X-Authentication-Warning: delorie.com: mail set sender to geda-help-bounces using -f X-Recipient: geda-help AT delorie DOT com Message-ID: <58F8E5B2.90503@xs4all.nl> Date: Thu, 20 Apr 2017 18:45:38 +0200 From: "Bert Timmerman (bert DOT timmerman AT xs4all DOT nl) [via geda-help AT delorie DOT com]" User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.1.19) Gecko/20110429 Fedora/2.0.14-1.fc13 SeaMonkey/2.0.14 MIME-Version: 1.0 To: geda-help AT delorie DOT com Subject: Re: [geda-help] g-code output References: <1525952036 DOT 65314 DOT 1492659528690 DOT ref AT mail DOT yahoo DOT com> <1525952036 DOT 65314 DOT 1492659528690 AT mail DOT yahoo DOT com> In-Reply-To: <1525952036.65314.1492659528690@mail.yahoo.com> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit Reply-To: geda-help AT delorie DOT com No Body (att80 AT att DOT net) [via geda-help AT delorie DOT com] wrote: > Hi, > > I have looked at the g-code output that geda-pcb offers. It appears > to provide code for what is called isolation milling which is what I > commonly see else where too. Does anyone know how additional g-code > can be generated to remove additional/remaining copper from a board? > This type of milling might be typically called pocket milling. > > Thanks. > > Al Hi, As amechanical engineer (day job) I happen to have looked into the subject of pocket milling ;-) Pocket milling: https://en.wikipedia.org/wiki/CNC_pocket_milling Requires a (non copper) polyline (or polygon) on a (designated (routing)) outside layer to define the area to be pocket milled (inside milled, outside milled) in pcb. Requires an algorithm to determine the required router minimum diameter, consider concave/convex curvatures, passing obstacles and bottle-necks and other quirks. Requires an algorithm for the optimum number of tool changes (large areas with large diameter router, corners and stubs with a small diameter router bit). Requires an algorithm for routing with the least router bit wear (cost function, Traveling Sales Person algorithm). Possible candidates are "zig tool path", "zig-zag tool path" algorithms, or a number algorithms based on a set of offsets of the polyline "curvilinear tool path" or "contour parallel tool path", some Voronoi based algorithms exist, there are several solutions possible here, caveats are Self Intersecting Polylines (SIP), Open Polylines, non continuous polylines .... you get the idea. Some algorithms give good results in detecting anomalies ... some are quite poor, YMMV. On a scale of 0 (no-brainers) .. 10 (skunk worx, hard rocket science) for complexity, this is somewhere in the 11 region ;-) Kind regards, Bert Timmerman. BTW: we could use someone with strong G-code fu for this one ;-)