evilmalus wrote:stock geometry: the material shape before it is cut even once. usually used for verification purposes in a virtual simulation of machining. i usually dont need any stock geometry for machining, just the finished dimensions.
Right. A lot (most?) operations do not need to define a stock geometry. For 3D milling however it will be required, as the final shape of the part is not enough to calculate roughing-paths. Also the stock-material may not always be a 3D bounding-box around the part (but that may be a good approximation/default).
Post Processing: some cam packages have a configuration file (simple programming script) with the generic standard g-codes implimented. That file is usually edited by the user to fit the machines specific needs. So a library, would have to be extensive if you took that approach, is unnecessary as all cnc machines follow basic universal standards (with some tweeks that do not interfere with your basic gcode lines, arcs, drills, rpms, feeds, work coordinates, etc. the tweeks are for manufacturer specific 'extras')
Tool-path generators should produce toolpaths in some machine-independent form which we store in the object-tree, and display in the 3D view.
IMO the post-processor can be a python class with genericly named methods that get called as we step through the program. Each method produces the appropriate text output to the g-code file.
You are correct in that most post-processors are just minor variations on a basic theme.
in my software packages...
Campat (ancient DOS based software i still run on a 486 pc) NO geometry is needed to create a tool path, and 2d drawings only, no solid geometry.
Mastercam 9, solid geometry/ basic surfaces are not needed to create a tool path. only a point, line, or arc is needed. mastercam also internally creates what it calls NCI code before sending to the post processor to be compiled to the g-code text file. NCI seems to be mastercam specific.
chaining of features (lines and arcs) are used in both programs to smooth the tool motion. you dont want the tool to move away from the part for every feature.
We should make it easy to do 2D work, since a large portion of what people use CNC-machines for is 2D or 2.5D work.
I don't know enough about freecad to say how easy this is, but it seems backward to first do a sketch, then extrude the sketch to create a solid, and then extract the edges from one face of the solid. Should there be a more direct way of defining 2D geometry that we can take as input to CAM?
Both come with an editable materials file (with SFM, IPT variables)
mastercam comes with a basic tools file, and both allow you to create a custom tool in one way or another. for example 45 degree, 4 flute chamfer tool with a .04 tip diameter, 1inch length of cut and .375 overall cutter width. Mastercam, you would tell it "chamfer tool" and set all variables. Campat you would set the .04 dia, number of flutes, and when programming toolpaths is where you would set your depth. feed and speed calculations in both programs are derived from the SFM, IPT, and diameter factors.
A materials-file that essentially is used for suggesting speeds/feeds for operations is useful but can come later after we have the basics in place.
An editable tool-library is a good idea also. The tool-library and materials definitions could be stored in separate files, not part-files.
sorry if i sound arrogant or covered things already figured out. i am a machinist and i have three leadwell 3 axis cnc machines with fanuc controls, one hurco cnc 3 axis mill, and a hurco tm6 lathe. and there is finally something here i may be able to help with so i'm a little excited.
This is good, we need people with experience. CAM is hard because it involves so many skills (geometry, math, programming, cnc-control, machining) and people who are good at everything are very very rare.
AW