Production Jobs, UnEven Panels, Mixed Jobs ...

Discussion/questions about software used with your CNC Shark and programming issues

Moderators: al wolford, sbk, Bob, Kayvon

Post Reply
McBuster
Posts: 185
Joined: Sat Aug 31, 2013 8:02 am

Production Jobs, UnEven Panels, Mixed Jobs ...

Post by McBuster »

I tried to make this a pretty good title, but probably failed.

In Sparky's Toy shop, we produce a product used by those who reload their own ammunition. It consists of a box, two plywood panels and a lid. Details can be found here. http://www.caseflipper.com/

We process plywood panels 8.25"x9.50" and drill pilot holes, then mill the finished holes, chamfer those holes then, we engrave some text. We do one or two or four per setup. We do other things as well, but these constitute the majority of where our -time- is spent. In addition, a secondary line of work involves plates half that size, 8.25"x4.75". And then we do two at a time for a total of eight per setup.

We have a total mix of seven different calibers in two sizes. A major problem is the mix. The Ideal World would be to make four-eight plates at a time, of various thicknesses, for various calibers. If we need one, we make one alongside others where we may need 2-3 of something and make the run more practical as the setups do take some time.

What I will attempt within this thread, is to describe the process, the problems and my solution. It is not meant to be perfect, but darn'ed good enough for my use. I am going to have multiple posts to prevent them form getting too long.

VCarve can produce multiples, but each has to be the same all over. Been there. Done that.

My Solution lies in having a Windows Program where I can select the panels to make, where to position them in the fixture, and what size holes/text etc to plow into them. After that, the next question becomes "What to do of warped panels, uneven fixtures/ etc?". This article is meant to serve as a guideline to my solution.

That solution revolves around a couple of premises. It must handle ...

- Panels with a warp - convex or concave
- Panels that may be twisted slightly
- Panels of varying thicknesses
- The reading of Z Axis variations must be easy and fast
- All Text carved will be uniform in execution anyplace on the panel

Also

- A warped panel will be assumed to describe the surface of a round cylinder. ie: Lay a straight edge parallel to the warp, and it will be flat to the straightedge.
- The Radius of the warp at the bottom edge of a panel does not have to equal the radius at the top edge. Each will be treated uniquely.
- The high spot of the warp, will be assumed to lie along the midpoint of each top/bottom edge. They can be different. Remember, we are describing a circle.

The solution will use VCarve, my program and the v1.5j Control Panel. It works for me, why change.

For surface unevenness, nine spots on each panel will be measured. Four corners, four edges in their middles, and the center. None of these measures need be "Spot On" in the X,Y Axis, just "Close Enough". The Z Axis measure has to be +/- 0.001". Four panels? 36 measures. A departure from this will be the smaller panels. Just reading the four corners and XAxis middles should be enough. If not, I will revise the code to do all nine.

A Sketch of each type of panel's warps will be selected so the code will be a bit "Smarter". See my v2.0 Suggestions for that. I will use the same thinking here.

The ToolPath created, will always be the same File Name. It is disposable and generated for each new set of panels. The Control Panel Software will always process the same ToolPath by File Name for whatever it needs to do. Always in the same spot too. Easier this way ...

Each generated ToolPath will be for a single router bit. ie: A sixty degree bit to chamfer holes and do the text.

To measure so many spots, grunting the Z Axis up and down with the Control Panel will take a long time. The Origin will always be read to be 0,0. A Dial Guage will be used for the measures and "Zero'ed" at the Origin and then positioned 0.500" above that spot. Then, move the gantry to the next spot to be read. It is still 0.500" above the surface. That does not change. Place a small block 0.500" thick under it and simply read any variation. Record the number for that spot. Etc ...

So, how to do all this ...

(To Be Continued)
.
Jon ...
Woodbury Mn

McBuster
Posts: 185
Joined: Sat Aug 31, 2013 8:02 am

Re: Production Jobs, UnEven Panels, Mixed Jobs ...

Post by McBuster »

The Proof

In my travels with how to calculate the Z Axis Offsets across the surface of the panel, I believe the X,Y things are easy. But to find the center of the circle described by the warp? Another matter. Let's walk thru what I think is correct.

First off, we need to prove a simple concept.

We need to know that the angles Alpha and Theta are equal. Here is the Proof.
Calc_Included_Angle.JPG
Done.

Now, to use that to find the center of the circle and the length of the radius.
Calc_Diameter_II.JPG
We have several knowns for this Proof. Length of (be). Length of (eg). Midpoint (c).

Now we see why it is important we know Alpha and Theta. They were the key to find the Radius.

Done.

With that we can find the Offset (yy) for that location on the X Axis.
Calc_ZAxis_Offset_II.JPG
Simple Trig at this point.

Done.

Next, how about if we calculate what the additional Offset is along the Y Axis from the X Axis location.

(To be Continued)
.
Jon ...
Woodbury Mn

McBuster
Posts: 185
Joined: Sat Aug 31, 2013 8:02 am

Re: Production Jobs, UnEven Panels, Mixed Jobs ...

Post by McBuster »

Calculate Z Axis Offset at Y

Now that we can calc the warps on both ends, now it is time to get the Offset at Tool Location (Y).
Calc_ZAxis_At_Y.JPG
Probably the simplest of all the Trig. A simple Ratio.

+++

So far, the examples have been fairly simple. A convex warp at both ends where all four corners are even. Instead of making an attempt to resolve all the combinations, I would like to present the basis for calculating all the X.Y positions and also the generation of the Toolpath.

(To be continued ... )
Jon ...
Woodbury Mn

McBuster
Posts: 185
Joined: Sat Aug 31, 2013 8:02 am

Re: Production Jobs, UnEven Panels, Mixed Jobs ...

Post by McBuster »

The Basic Work Area

When defining the Work Area to the Program, it is totally "Soft". ie: We can define one or more areas to make on or more parts. Each can be different. All we need to define, is what operations to do to each.

The actual Work Area, for the busiest of Fixtures, has four Panels. There are three Oigins we are concerned with. The Origin of the Fixture, Panel and actual Work Area within the Panel.
Basic_Work_Area.JPG
Sometimes, Toolpaths from VCarve are not logical how they move form one area to another. We will resolve that by making Fixed Locations for any Panel we work on.
Basic_Work_Area _Tool_Rest Areas.JPG
Now, we have defined specific areas to do work, and how to get from one to the other easily, without too much inefficiency. Note the Travel Height from Panel to Panel.

(To be Continued ... )
.
Jon ...
Woodbury Mn

McBuster
Posts: 185
Joined: Sat Aug 31, 2013 8:02 am

Re: Production Jobs, UnEven Panels, Mixed Jobs ...

Post by McBuster »

File Definitions

For the Program to run, it has to know what to do. A number of Files will be described that will serve the basis for creating the ToolPath.
File_Definitions.JPG
User Interface
Here is where we use the Options and Selections to provide the basis for what we want to accomplish. What Fixture to use. Within the Fixture, what number of Panels and where. The Specifics for each Panel - Size, thickness, type. And, where we Click the BUtton to generate the (disposable) ToolPath. The selections made, can be stored in a File and retrieved as necessary.

Created Script
This is not an External File, but one inside the Program. It is a step by step description of what we want to do, and where.

Elements
These are generic Functions to Drill a hole, Mill a hole, engrave some Text etc. These are specialized samples of the Toolpath generated within VCarve. Just the specific process of Drilling the hole, etc, are used here. And, various Parameters like X. Y. Z. Feeds and so on. An "X" value would be specified as "Xx.xxxx" With the "x.xxxx" being substituted by the Real Value.

Grid
Used to create the Pattern for the holes in X.Y. Thus, a Grid of Holes 10x10 and 0.7976" apart, used in several finished Grids, can be easily modified only once.

Engine
The core Code that will munch everything into a finished TooolPath. Launched by Clicking a Button. The final Output is a temporary ToolPath the Control Box Software processes.

Generated ToolPath
As mentioned already, this File is only temporary. It will always be called the same Name, and only one will exist in the target Folder. The Control Box Software will always load the same named File.

Next, we will look at each of these Files in detail. It will take some time to get them prepared.

(To be Continued ... )
.
Jon ...
Woodbury Mn

McBuster
Posts: 185
Joined: Sat Aug 31, 2013 8:02 am

Re: Production Jobs, UnEven Panels, Mixed Jobs ...

Post by McBuster »

Elements ...

First, let's review for a bit. Here at Sparkies, we make parts. Repetitive, kinda the same, parts, in plywood. Drill, Mill, Chamfer and Text. We want to place as many parts as practical on the Fixture. Saves Setup time. VCarve can make 4-Up pieces, all the same, and that's the dilemma. All the same. Would be nice to have something to allow making any part I need, in any of the four/eight spots on the Fixture. Various sized holes, text or thickness. And, compensate for the warps, twists and tilts.

In the previous posts, I outlined methods for calculating plywood panels' variations and making minor adjustments in the Z Axis depths. Now we need to figure out how to make the parts.

Element Files will be the basic building blocks of The Program. Based on VCarve ToolPath Code, Let's tailor each to a very specific purpose.

One way to think of The Program, is a series of Routines that Call other Routines and eventually Call basic Functions. Each passing Parameters to the lower levels.

Here is original VCarve Code to drill a hole thru quarter inch plywood. Comments will be abbreviated. Note, the absence of the -size- of the hole.

++++++++++++++++++++++++++++++++++++++++++++++++++++++++

(|---------------------------------------)
(| Toolpath:- 'Dr_250' )
(|---------------------------------------)

G90
G20
F15.0
G64 P.01
S 2000
M3
G0 Z0.8000

F15.0
G00 X1.7500 Y2.2500 Z0.1250
F15.0
G00 X1.7500 Y1.2500 Z0.1000
F15.0
G1 X1.7500 Y1.2500 Z-0.2650
F15.0
G00 X1.7500 Y1.2500 Z0.1250

G00 Z0.8000
G00 X0.0000 Y0.0000
M02

++++++++++++++++++++++++++++++++++++++++++++++++++++++++

The first part are comments, prepping the machine and move the head 0.8000" above the work surface at the default X,Y (0,0). The second part moves the toolhead to X,Y (1.75, 2.25) while descending to 0.1250" from 0.8000", then fast descends to 0.1000". The hole is drilled to -0.2650" below the surface and the toolhead returned to 0.1250" above the surface. All the time, a feed rate of 15.0 is used. The third part lifts the toolhead 0.8000" above the surface, returns the toolhead to X,Y (0,0) and shuts the router motor off.

Note, the code has no idea what router bit was used.

The Element we want to create, will Drill a hole. Nothing more. Let's start with that code.

++++++++++++++++++++++++++++++++++++++++++++++++++++++++

F15.0
G00 X1.7500 Y2.2500 Z0.1250
F15.0
G00 X1.7500 Y2.2500 Z0.1000
F15.0
G1 X1.7500 Y2.2500 Z-0.2650
F15.0
G00 X1.7500 Y2.2500 Z0.1250

++++++++++++++++++++++++++++++++++++++++++++++++++++++++

There are some values we need to be concerned of.

- Feed Rate
- X Axis Position
- Y Axis Position
- Z Axis Position - Drilling Depth of Hole
- Z Axis Height while Travelling
- Z Axis Starting Height above the Surface

Let's replace these values with Parameters.

++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Fff.f
G00 Xx.xxxx Yy.yyyy Zh.hhhh
Fff.f
G00 Xx.xxxx Yy.yyyy Zs.ssss
Fff.f
G1 Xx.xxxx Yy.yyyy Zz.zzzz
Fff.f
G00 Xx.xxxx Yy.yyyy Zs.ssss

++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Here is how we would Call the Drill Function,

Drill ff.f=15 x.xxxx=1.7500 y.yyyy=2.25 z.zzzz=-.2650 h.hhhh=.125 s.ssss=.1

Or, shortened a bit ...

Drill f=15 h=.125 z=-.2650 s=.1 y=2.25 x=1.7500

After these Parameters are substituted in the Element Code, we would have the same result as VCarve gave us. Note the sequence of Parms does not matter. Just need one space between them. And The Program will create the same ToolPath as did VCarve.

+++

Next, how to create a Grid of Holes easily.

(To be continued... )
Jon ...
Woodbury Mn

McBuster
Posts: 185
Joined: Sat Aug 31, 2013 8:02 am

Re: Production Jobs, UnEven Panels, Mixed Jobs ...

Post by McBuster »

Grids

The Product uses Plates that have a series of holes drilled. There are basically two sizes. One with forty holes (4x10), the other with one hundred (10x10). we could make a list of Drill Coommands with Parms to create these, or, create a Function that will intercede between the Drill Call, and the Drill element. Let's call that a Grid.

And, we will make that Function as brief as possible. We need to tell it Where, How Many in X, How Many in Y, And Spacing in X, Spacing in Y.

Grid_100 x=.6310 y= 1.5 r=10 c=10 sx=.7976 sy=.7976

The actual Code will be a Loop, starting at Row0, Column0, incrementing and looping thru until Row and Column have exceeded 9. Why 0/9? Programming likes to make Arrays such as this, have a Basis of (0).

The actual Call would be ...

Grid100 Drill f=15 h=.125 z=-.2650 s=.1

As the Grid100 Function is Called, while interpreting the Parms, we would perform the Drill Element, creating one hundred sets of low level Drill instructions in the generated ToolPath. The X,Y values being calculated within the Grid100 Function.

There are many Plates with the spacing and such as we have defined here. Now, instead of laboriously going thru each in VCarve when a change is needed, we can make is once, in one line of Script, easily. And, as each ToolPath is generated for that job, the change will be picked up.

Next, the Calling Script we need ...

(To be Continued ... )
Jon ...
Woodbury Mn

McBuster
Posts: 185
Joined: Sat Aug 31, 2013 8:02 am

Re: Production Jobs, UnEven Panels, Mixed Jobs ...

Post by McBuster »

Oooops, we forgot another type of ToolPath. Specifically, any that do not drill a specific point, but meander about a specific point. Like Mill or Text or a 2D Profile.

Since all are kinda equal in the GCode, let's take an easy one. 2D Profile.

We do alot of chamfering of the holes in the first Plate. Let's modify the ToolPath of a single hole. Here is the result ...

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

*chamfer*
Fff.f
G00 Xx.xxxx Yy.yyyy-r.rrrr Zh.hhhh
Fff.f
G00 Xx.xxxx Yy.yyyy-r.rrrr Zs.ssss
Fff.f
G1 Xx.xxxx Yy.yyyy-r.rrrr Z-z.zzzz
Fff.f
G02 Xx.xxxx-r.rrrr Yy.yyyy I0.0000 Jr.rrrr
G02 Xx.xxxx Yy.yyyy+r.rrrr Ir.rrrr J0.0000
G02 Xx.xxxx+r.rrrr Yy.yyyy I0.0000 J-r.rrrr
G02 Xx.xxxx Yy-r.rrrr I-r.rrrr J0.0000
Fff.f
G00 Xx.xxxx Yy.yyyy-r.rrrr Zh.hhhh
*end*

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Here is the GCode for the actual Chamfer.

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

G02 Xx.xxxx-r.rrrr Yy.yyyy I0.0000 Jr.rrrr
G02 Xx.xxxx Yy.yyyy+r.rrrr Ir.rrrr J0.0000
G02 Xx.xxxx+r.rrrr Yy.yyyy I0.0000 J-r.rrrr
G02 Xx.xxxx Yy-r.rrrr I-r.rrrr J0.0000

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Note the addition of the "+" Signs. These will tell The Program to combine the x.xxxx or y.yyyy with the Radius r.rrrr. The other values will be treated normally.

Text

Text will be treated just a bit differently. Here, we will create a Phrase in Text and make it relative to X,Y = 0,0. The Text will be "380".

Note: Text creates a really large ToolPath. Here we will examine just the beginning portion. The Numeral "3" ...

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

*text_380*
Fff.f
G00 Xx.xxxx+0.2250 Yy.yyyy+0.0862 Zh.hhhh
Fff.f
G00 Xx.xxxx+0.2250 Yy.yyyy+0.0862 Zs.ssss
Fff.f
G1 Xx.xxxx+0.2250 Yy.yyyy+0.0862 Z-z.zzzz


Fff.f
G01 Xx.xxxx+0.2245 Yy.yyyy+0.0768 Z-z.zzzz
G01 Xx.xxxx+0.2231 Yy.yyyy+0.0676 Z-z.zzzz
G01 Xx.xxxx+0.2208 Yy.yyyy+0.0588 Z-z.zzzz
G01 Xx.xxxx+0.2177 Yy.yyyy+0.0503 Z-z.zzzz
G01 Xx.xxxx+0.2138 Yy.yyyy+0.0422 Z-z.zzzz
G01 Xx.xxxx+0.2092 Yy.yyyy+0.0346 Z-z.zzzz
G01 Xx.xxxx+0.2039 Yy.yyyy+0.0274 Z-z.zzzz
G01 Xx.xxxx+0.1979 Yy.yyyy+0.0209 Z-z.zzzz
G01 Xx.xxxx+0.1913 Yy.yyyy+0.0149 Z-z.zzzz
G01 Xx.xxxx+0.1842 Yy.yyyy+0.0096 Z-z.zzzz
G01 Xx.xxxx+0.1766 Yy.yyyy+0.0049 Z-z.zzzz
G01 Xx.xxxx+0.1685 Yy.yyyy+0.0010 Z-z.zzzz
G01 Xx.xxxx+0.1600 Yy.yyyy-0.0021 Z-z.zzzz
G01 Xx.xxxx+0.1511 Yy.yyyy-0.0044 Z-z.zzzz
G01 Xx.xxxx+0.1420 Yy.yyyy-0.0058 Z-z.zzzz
G01 Xx.xxxx+0.1325 Yy.yyyy-0.0063 Z-z.zzzz
G01 Xx.xxxx+0.1213 Yy.yyyy-0.0063 Z-z.zzzz
G01 Xx.xxxx+0.1110 Yy.yyyy-0.0058 Z-z.zzzz
G01 Xx.xxxx+0.1009 Yy.yyyy-0.0046 Z-z.zzzz
G01 Xx.xxxx+0.0910 Yy.yyyy-0.0026 Z-z.zzzz
G01 Xx.xxxx+0.0814 Yy.yyyy+0.0002 Z-z.zzzz
G01 Xx.xxxx+0.0720 Yy.yyyy+0.0037 Z-z.zzzz
G01 Xx.xxxx+0.0630 Yy.yyyy+0.0079 Z-z.zzzz
G01 Xx.xxxx+0.0544 Yy.yyyy+0.0128 Z-z.zzzz
G01 Xx.xxxx+0.0462 Yy.yyyy+0.0184 Z-z.zzzz
G01 Xx.xxxx+0.0384 Yy.yyyy+0.0245 Z-z.zzzz
G01 Xx.xxxx+0.0311 Yy.yyyy+0.0313 Z-z.zzzz
G01 Xx.xxxx+0.0244 Yy.yyyy+0.0386 Z-z.zzzz
G01 Xx.xxxx+0.0182 Yy.yyyy+0.0464 Z-z.zzzz
G01 Xx.xxxx+0.0126 Yy.yyyy+0.0547 Z-z.zzzz
G01 Xx.xxxx+0.0077 Yy.yyyy+0.0636 Z-z.zzzz
G01 Xx.xxxx+0.0035 Yy.yyyy+0.0728 Z-z.zzzz
G01 Xx.xxxx Yy.yyyy+0.0825 Z-z.zzzz

Fff.f
G00 Xx.xxxx+0.5849 Yy.yyyy+0.1195 Zh.hhhh
*end*

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

The same technique will be used to adjust the X,Y values.

We can place this Text anywhere we want by providing the X.Y values of the lower left of the Phrase. That was the reason for making the original ToolPath relative to X,Y = 0,0.

This is an illustration of how we will modify various ToolPaths we at Sparkies need to do our production.

Now, to proceed with the higher levels of The Program ...

The Calling Script ...

(To be Continued)
Jon ...
Woodbury Mn

McBuster
Posts: 185
Joined: Sat Aug 31, 2013 8:02 am

Re: Production Jobs, UnEven Panels, Mixed Jobs ...

Post by McBuster »

Time to knit all this together into a solution.

I have been busy cleaning the basement in preparation for moving the CNC "Thingy" down there. And now, took time to describe the User Interface and resulting Scripts.

At this writing, I am the only one who will be using this. As such, shortcuts can be taken that normally would be present in a Public Version.

User Interface

I prefer to present just the necessary parts at first and then "paint" the Screen as we proceed. Each Control will have dependance on the prior. Values will be populated for other Controls as needed depending on what was chosen in the current Control. This way, by narrowing what we can select, fewer mistakes will be made.
Main_00.JPG
Job Description

If, there are jobs that recur, we can Save them and Load them again. Just making it far more convenient to process in a Production Environment.

Panel Selection

This will load the Jig required for this Series of Parts. Our first step must define what Jig will be mounted and used. I will illustrate the jig that can produce four or eight panels. Its Origin will be the (0,0) of the Bed. An offset from there will be used to anchor the Origins for the four panels. In the case of eight panels being described, each second panel will be an offset from the first.

Quantity

If, the Jig can produce multiple, identical parts, the number to produce is entered here.

Panel_00 - Panel_03

Any number of DropDowns can be used.
Main_01.JPG
Let's select the Plate_Pistol_4Up jig.

This will provide the Offset to the first panel, paint four other drop downs default a Quantity of (1) and drop down the first list.
Main_02.JPG
Now, all the parts we will make have been selected. Each of their Offsets from the first panel have been provided and the Generate Button has been presented.

Note, on two drop downs, the smaller panel has been selected which results in presentation of the secondary panel for each position of the jig. Also note, these secondary panels will be offset 4.75" higher than the first.

Panel _00 will produce a part that is 3/8" thick and has one hundred holes with chamfers and text. Panel_01 will produce two parts. The first panel will be 3/8" thick with forty holes, chamfers and text, the second, 1/2", forty holes, chamfers and text. . Panel_02 will produce the Lid. A part 1/4" thick with Text. And, Panel_03 will produce a part 3/8" thick. forty holes, chamfers and text. And, another Lid, 1/4" thick with text.

(Continued)
.
Jon ...
Woodbury Mn

McBuster
Posts: 185
Joined: Sat Aug 31, 2013 8:02 am

Re: Production Jobs, UnEven Panels, Mixed Jobs ...

Post by McBuster »

(Submitted here because of 3 pix Rule)
Main_03.JPG
Once the Parts we will make are selected, the Z Axis Offsets will be entered. Note, only those selected on the previous Screen will be used here.
Main_05.JPG
This Selection illustrates making ten identical Parts.
Main_04.JPG
Next, I will illustrate the Files and Content the Program will create. And, that will about do it for this Thread.

+++

On a personal note, I have been cleaning the basement in order to have an area set aside for the CNC "Thingy". I will also make a Tank for it as well. Baltic Birch ply will be used. Heavily supported and braced for stability.

Dust Collection will be present. I am not concerned with the big chunklets, but the fine dust that chokes a guy up. To that end, I also want it quiet. In Grainger's, I found a 450 cubic feet per minute squirrel cage version, with totally enclosed motor. Very quiet. It will not produce much suction nor does the output side have a great deal of pressure. Hence, the focus on fine dust. A puzzlement that has been rolling around for me, is how to construct the actual cyclone and yet, keep it somewhat small. The entire works will be located under the bench without a plethora of hoses which for me, is kinda exciting. The final air will be filtered thru a 3M Filtrete furnace filter before being returned to the room.

Looking forward to having a working unit soon, followed by Production Software to make all this alot easier and flexible.
.
Jon ...
Woodbury Mn

Post Reply