Geometry Smoothing Software:
|
|
Following are several outlined steps that show how each model piece was built true to scale...
Break Apart CAD Into Workable Pieces
Process DXF through a program to generate CNC Roughing code.
Process DXF through a program to generate CNC Finishing code.
Process Finishing Code through a smoothing algorythm.
CAD Block Closeup:This CAD depiciton shows a close up of a single foam block in the CAD. This block is 24"x36". For ease of processing, the software allows an 'X' & 'Y' offset to be provided on the command line so that each successive block does not need to be rotate & translated to the [0,0,0] corrdinate first. This saves much post processing setup time.
CNC Roughing Program:Here you can see a graphical depiction of the CNC program used to rough the model out. As you can see, the roughing program uses vertical plunges to remove material. Note, in processing the dxf model the user had to specify the diameter of the cutter used to do the actual machining, in order to make sure that the center-line of the cutter stopped so that it's edges would not gogue into rising or falling hillsides.
Code generation was facilitated through the use of a custom program I wrote in C that read in the DXF output from AutoCAD and performed calculations to generate the NC file output.
It is very hard to see through the tool path for plunge routing in the image above. Below, I've cut away all of the G-Code, overlaid only one pass of the plunge routing along the back edge of the foam block. Notice, it is set with a clearance height of 0.5" for a later finishing pass. Just for checking purposes, I've drawn in the 1.5" diameter plunge routing tool in a few places. If the reader looks very close, they can see the single finish pass drawn in in dark green below it.
CNC Finishing Program:In this frame, the first CNC finishing program is depicted. This program follows along the contours drawing straight line segments between calculated points on 1/4" centers. Here to, the radius of the ball end mill used to contour the foam must be entered. This is because the center of the ball must be offset tangentially from any close points. Further complicating the writing of the software to generate the CNC path was the fact that the data underneath the cutter was sparse and irregular, so specialized weighting functions had to be constructed.
The next two frames show a before and after of the CNC filtering program...
|
CNC Program #82 Before filtering:This graphic depiction of a CNC program shows the file generated from the finishing program above before beign processed through a specialized filtering algorithm I wrote to post process CNC files.
CNC Program #82 After filtering:The filtering program I wrote reads in the Gerber formatted CNC files and calculates 3-D Curvature through every end point on the model in order to provide lookahead smoothing. Additional, height mapping and slope corelation are applied to every output point to ensure that no degredation of geometry takes place.
In this program a user supplied elevation is used to determine at what 'Z' levels to stop processing the file. This is done to keep the steep drop off into the river channel.
And a quick shot of the output of this process:
Code: ROUGH2.CPP#include
The argument passed in is the name of a DXF file |
File: Foam8_2.DAT3393 36 24
The format is 3 numbers, 1-number of entrys, 2-number of inches in X to process, 3-number of inches in Y to process. |
File format (snippet): Foam8_2.MID; FILE:FOAM8_2.MID temp file in X
|
More To Come:
This section is ever evolving. I'll post updates from time to time as new equipment and toys are moved into and out of the shop.
|
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]()
![]() |