flatcam

Open full view…

Nice to have features

Marius Stanciu
Sun, 22 Mar 2015 22:10:18 GMT

First I want to thank you for your efforts in creating this wonderful program. Recently I moved from Eagle to Altium and found myself in a need for a tool to covert Gerber/Excellon files to GCode, something like the .ulp pcbgcode from Eagle. I think your software is the best around. I would like to see a feature like search for a Gcode command in the resulted GCode and replace it with a code block. In other words I need a sort of replication of the function of pcbgcode ulp from Eagle, in such a way that when an M6 tool change command it is encountered, then the spindle goes to X0-Y0 location at a certain Z and stay there. After I change the tool, I press continue and the spindle will be lowered to Z0 with a low feedrate (the tool is not tightened on the chuck). After the spindle is in the X0-Y0-Z0 position, I can adjust the tool position in order to touch the material and then press continue and the spindle will raise to a safe Z and resume the operation with the previous feedrate. Also, could be of interest adding a dwell setting. Another thing of interest could be to make the setting of the offset more graphical. Instead of getting the coordinates and entering them into the offset setting, it will be nice to just click somewhere on the main screen where we want the X0-Y0 to be set (get somehow the coordinates and then copying them into the offset setting). In this way we could choose an "origin" faster. Sorry if I was not very clear, I know just what I need to see my PCB's done :) Best regards, Marius

jpcaram
Tue, 24 Mar 2015 19:45:41 GMT

Hi! Thanks for the nice comments. I see the value behind being able to replace certain commands in the G-Code. The problem right now is that at this point in the development there a too many flexibility options that can be added. I wouldn't know when I would get to work on it. You are welcome to add this idea as a feature request in the issue tracker. With regards to setting the offset with a click, it's almost exactly like that. When you click on the plot, the coordinates get copied to the clipboard. You just have to paste them back to the "offset" input and change the sign. Thanks, JP

Marius Stanciu
Tue, 24 Mar 2015 21:01:41 GMT

Hi JP, There are a few other ideas that I have. I will list them here and you choose what it's doable and/or is worth coding. This is a sort of wish list not "requests". 1. Persistent default values that after being modified get loaded every time FlatCAM starts. Also, they get converted into the current units. 2. When creating a new geometry, in the Create CNC Job, we should have 4 options to select from: default cut (through the center, as it is right now) , cut outside, cut inside, cut at an offset (negative or positive). Those can be calculated from the current tool dimensions. Right now it cuts through the center of the draw lines, paths. 3. When we load a Gerber file, we should have the possibility to select the format of the Gerber (how many decimals, if there is leading or trailing zero suppression, absolute or relative reference etc). 4. A "Undo/Redo" system. 5. In the View section, have a simultaneous fine grid and a rough grid (different colors) 6. In the View section, when Snap to grid is selected, the mouse pointer should snap also to the grid. In this way the coordinates read in the lower part of the screen will match the selected resolution of the snap to grid. 7. A way to select multiple objects, cut and paste them into a offseted location. Or move them. 8. Define a work space (like a box that surrounds our work). Like A4, A3 dimensions. Useful to have a visual reference on how big are actually the objects drawn or loaded. 9. And the most important, please if it can be done, a "pan" system. The current system with ALT and CTRL keys is killing me :) It is just much easier to have a mouse button clicked and then moving everything around. Thank you for having the patience to read this big list. Those came to me as I was using FlatCam, so I thought to list them here to be evaluated. I truly appreciate this piece of software of yours but having those will be so much better. Best regards, Marius

Marius Stanciu
Tue, 24 Mar 2015 21:36:55 GMT

At point 1 above, I meant that modified default values don't get saved on exit.

jpcaram
Wed, 25 Mar 2015 20:49:26 GMT

Hi Marius, My comments to your suggestions: 1. Application defaults get saved automatically every 20 seconds. You cal also do it manually from the file menu. 2. Why would you like to cut anywhere but along your lines? Wouldn't you create your lines where you want to cut? 3. The Gerber format is self descriptive. It contains all the information required to be correctly interpreted. 4. Undo/Redo... There is an item in the issue tracker. See: https://bitbucket.org/jpcgt/flatcam/issue/73/undo-mechanism This is a difficult one. Will require a lot of work. 5. Grids: The plots are based on the library MatPlotLib. Please see if there is a simple option to enable fine/coarse grid. 6. Snapping. See: https://bitbucket.org/jpcgt/flatcam/issue/75/measurement-tool-does-not-snap Snapping only works on the drawing tool at this time. That's why I added a separate "dot" that snaps. It might take some investigation on how to take control of the real cursor. 7. Moving in the drawing tool? Hold the "control" key and click each to select (Maybe it was "shift"). I know, that can become quite tedious. 8. You can draw an A-4 size rectangle yourself :-) 9. I'm a keyboard person :-) I would love to add all these features, but I get very little help coding. Less that 1% of the whole code has come from other developers. I'd be happy to guide others on how to implement certain features, but FlatCAM has grown beyond a 1-developer piece of software. Will keep all these ideas in mind anyhow. Thanks, JP

Weland Treebark
Thu, 26 Mar 2015 14:32:43 GMT

Hi JP, Marius and I work at the same company and he asked me to have a look at some of these issues earlier today. My knowledge of CAM can basically be summed up as "I know what the acronym stands for" but there are a handful of things I can do. 1. Snapping: I'm not sure if Qt *portably* allows me to take control of the mouse cursor. However, a quick change that can be implemented here is displaying the coordinates of the "dot" in the lower-right corner of the screen. I actually tried this (it's a trivial patch) and it looks a lot more intuitive. I can certainly understand the issue there (when you're drawing, with snap-to-grid activated, you're more interested in where you're *actually* going to start drawing from, i.e. the position of the dot, rather than where your mouse is :-) ). I already have a patch for this. If you think it helps, or just want to test it out, I can fork your repo on Bitbucket and submit pull requests (or whatever other method you prefer for this!) I'll look into snapping the cursor as well. I'd be surprised if Qt didn't allow this in a pretty trivial manner. 2. Another feature I could probably jump into with relative ease is implementing a "drill tool set" feature. Right now, the drill diameters are selected as equal to the diameter of the drill hole. I presume this is typically not always the case -- e.g. a 0.550 hole would be drilled using a 0.500 or 0.600 drill. Marius showed me a tool (I forgot its name?) which could hold a description of the available drill tools, with records of the form: (drill-diameter diam-min diam-max length) which one would basically read as "Holes between diam-min and diam-max get drilled with the drill-diameter tool". Selection rules (e.g. "drill with tool of the next higher diameter" or "drill with tool of the closest diameter") would be pretty easy to implement, and I have a reasonable idea about a GUI to define and manage drill tool sets. I'm not sure if my description makes much sense, I'm piecing together information I got six hours ago; Marius can certainly tell you more. Is this a feature you, or any user, is interested in? 3. You mentioned there is value in replacing certain G-Code commands. Marius showed me his workflow earlier -- he was interested in appending some additional commands to what seems to me to be a standard command sequence for tool replacement (M6 -- I'm not familiar with G-Code but I get the concept). Since including M6 commands in the output file is enabled/disabled via a checkbox, I think implementing a "custom G-Code" feature for this particular case is easy (read: "I can sort of get how it's done and I'd be happy to do it"). I propose we add a "Custom M6 Sequence" button which, when pressed, would open an editor window allowing the user to edit the snippet that gets inserted in the output file (it looks pretty standard to me -- it's M6, then a message prompt and some other stuff that seems constant to me?) Again -- if this is a feature that you, or any other user would be interested in, I'd be happy to add it. 4. Persistence of settings: Marius showed me a couple of issues (e.g. switching units from inches to mm still leaves already input data unchanged instead of converting it) and I think settings remain unsaved on his system. It might be a bug but we didn't look into it, since he was more interested in showing me what features he's missing. If you want, I can look into this matter as well -- at the very least to confirm whether it's a real bug or there's something wrong with his system (he *is* using Windows after all...) I'm unfamiliar with the FlatCAM codebase but I don't mind spending time to get to know it. I have to say I'm impressed with how clean and well-structured it is. It literally took me five minutes to make the changes I described at #1. I came here expecting gibberish and ended up convinced meeting your code quality standards will be a challenge (and a pleasure :-) ) in itself!

Marius Stanciu
Thu, 26 Mar 2015 17:48:08 GMT

Hi JP, Cutting inside or outside of the drawing in a geometry could be useful when doing cuts inside a board (slots, etc). In this way you just the draw the shape of the cutout at whatever dimensions you need and then you just specify "cut inside". Taking into consideration the tool diameter will allow to use not only one tool, but a couple of near diameters so you are not bound to one tool (if it is exactly "that" tool that you need to use, and you see that just broke you will have a solution until you buy another one). It will be also useful if you don't want to use CAD software just for a simple front panel that you want to use into a case you are milling for that wonderful design you just finished. :) Making holes for encoders, pot's, connectors, LCD's and whatever. Cutting outside it is also useful if you want to mill custom cases that fits together like Lego. You just draw what you need and don't worry about the end-mills that you have on hand.

Marius Stanciu
Thu, 26 Mar 2015 17:56:19 GMT

I also took notice of your mention about being one developer for a program that maybe surpassed the initial design inputs. I myself I am not a programmer (I do some embedded but nothing fancy) so I asked my colleague Alex for help. He is a highly skilled programmer and I am glad he agreed to give help if and where it's needed.

Weland Treebark
Fri, 27 Mar 2015 12:06:56 GMT

Hi JP, I just created two pull requests -- one with the change I mentioned above (displaying the coordinates of the snapped dot in the infobar) and one for an older issue that was open in the issue tracker. I didn't want to jump into implementing any other feature mentioned here before hearing your feedback/suggestions.

jpcaram
Sat, 28 Mar 2015 22:37:41 GMT

Hi, I already approved and pulled in one of them. Commented on the other. Did you not see my comments? Maybe we are out of sync. By the way. You contribution is highly appreciated!

jpcaram
Sat, 28 Mar 2015 22:38:36 GMT

Marius, thanks to you too for introducing Alex to the project! JP

Marius Stanciu
Sun, 29 Mar 2015 06:14:00 GMT

Hi JP, We live in a different timezone, there is a difference of about 5...6 hours between us (today we just went to summer hour, it is about 9 AM when writing). I think that the overlapping active hours are between 8 AM and 4...5 PM, your time. Marius

Weland Treebark
Sun, 29 Mar 2015 11:35:28 GMT

Oops! Sorry, bitbucket didn't confirm my e-mail for some reason, so I got no notification from your comment on the pull request. I'll have a look in a few hours.