pstemari / v-engrave-plugin

V-Engrave Plugin for CamBam
Apache License 2.0
4 stars 2 forks source link

Add Inside/Outside option #10

Open GoogleCodeExporter opened 9 years ago

GoogleCodeExporter commented 9 years ago
Enhancement Request:
Please add "V-Carve Side" to the MOP Option category with the pull-down options 
of "Inside" and "Outside".  Cut side is then determined by object direction (CW 
or CCW).  The cut side on individual objects could then be changed by using 
REVERSE.

Original issue reported on code.google.com by billtron...@yahoo.com on 13 Aug 2013 at 3:31

GoogleCodeExporter commented 9 years ago
I'm not sure that would work.  The way the depth of cut is determined is by 
plunging the cutter to a point where it's tangent to two sides of the outline 
at the same time, for example, if the opposite side is 0.1" away and the cutter 
is a 90 degree cutter, it will "slide" down 0.05" and in 0.05". 

Original comment by pstem...@google.com on 13 Aug 2013 at 5:19

GoogleCodeExporter commented 9 years ago
Thanks for the explanation -�the intersection of tangents produces the medial 
axis.
Maybe once a Depth Limit capability is working, the outside carve would be 
possible.
�
For Depth Limit you probably already have it figured out, if not here is a 
proposed concept.
The tangent lines are checked for length - if they are longer than the cutter 
radius then two cut points are created instead of one medial point.
For example a 1" wide path using a .5" diameter 90 degree cutter would have two 
points .25" along each tangent and at .25" depth.
�
For outside cutting I propose a concept�which uses�the depth�limit function.
It could be produced manually in CamBam as follows.
Draw a large bounding box around the full model - large enough so that no 
interior parts are close to the bounding box edge.
Join the bounding box and interior parts into a "region" and�create the V-carve 
MOP with depth limit.
This will create a V-carve path outside the interior model as well as a set of 
points just inside�the bounding box.
Manually delete the path points adjacent to the bounding box -�remove from the 
G-code using a text editor.
�
It could potentially be automated as follows if "outside" option is selected 
for the MOP.
Calculate and draw a large bounding box (but not displayed).
Run V-Carve with depth limit to create outside path points for the model.
Ignore or delete�all points created�on the bounding box tangents.
�
If I can be of any assistance, please let me know.
�
Thanks - Bill Trondsen
�

Original comment by billtron...@yahoo.com on 13 Aug 2013 at 2:09

GoogleCodeExporter commented 9 years ago
That sounds a lot like just doing a profile operation with the cutter diameter 
set based on the depth of cut and the cutter angle, i.e. cutter diameter = 
depth*tan(angle/2) + tip diameter.

How would it differ?

Original comment by pstem...@google.com on 13 Aug 2013 at 3:21

GoogleCodeExporter commented 9 years ago
Yes, Profile does work in simple cases.
CamBam provides a pseudo-V-carve feature, when�Corner Overcut and V-tool are 
selected a cut path is created into inside corners.
However the profile is not created if it detects a collision with another 
object that is closer than the cut width.
For instance, if you have letters that are close together and use a wide tool 
diameter, the profile will not be created.
A true�V-Carve MOP such as yours checks the distance to the nearest�object and 
would be able to adjust the cut depth if it is closer than the tool diameter.
Thanks - BillT

Original comment by billtron...@yahoo.com on 13 Aug 2013 at 4:42

GoogleCodeExporter commented 9 years ago
Ok, I understand what you're trying to accomplish. I'll have to think about 
that a bit.  Currently the max depth isn't implemented because you can't clean 
out a flat bottom with a sharp pointed v-bit. I might be able to generate a 
inner outline that you could then pocket out with a square end mill.

I'm thinking maybe generate an offset line around the perimeter at a distance 
of cutter width at max cutter depth, v-engrave between the perimeter and the 
offset perimeter, and then create a polyline that tracks the cutter center at 
max depth, which you could then use as a perimeter for a pocketing operation 
that isolates the lettering.

Λ-engraving instead of v-engraving :-)

Original comment by pstem...@google.com on 14 Aug 2013 at 6:52

GoogleCodeExporter commented 9 years ago
Hmm. I don't think a fixed offset distance based on max depth and then 
V-carving within this would work.
For instance if letters are close together this would result in cutting into 
the adjacent letter.
 
I suggest the intersecting tangents should be constructed first, and then 
using the tangent lengths the V-carve path points can be placed.
If the tangent length is shorter than the tool radius, then the one path point 
is placed at the intersection of the tangents.
If the tangent lengths are longer, then the depth must be limited by placing 
two path points an offset distance from each object.
For this to work for outside paths, I think a box is required to surround all 
of the objects, unless you can calculate the tangents using infinite rays.
I can try to post some sketched examples if it would be helpful.
 
As you suggest, clearing the areas beyond the V-carve would be accomplished 
using a separate pocketing mop.
The pocket offset can be accomplished using a roughing clearance value, so an 
extra polyline for the V-bit path should not be necessary.
The roughing clearance would be set to the radius of the V-bit for a 
flat-bottom end mill.
Or for a V-bit the offset can be set based on the depth of cut which gets the 
pocketing in close to match the V-profile.
I have used a V-bit to clear the background and it leaves a really cool pattern 
depending on how you set the region fill pattern.
For instance setting horizontal and then vertical hatching with a V-bit leaves 
a pattern of raised pyramid shapes.
Or a ball-end tool can be used to create randomized patterns to simulate wood 
grain (search forum for the texturize plugin by rodneyk).
 
Thanks again! - BillT

Original comment by billtron...@yahoo.com on 14 Aug 2013 at 1:46

GoogleCodeExporter commented 9 years ago

Original comment by pstem...@google.com on 15 Aug 2013 at 4:41