make bottom clear configurable

This commit is contained in:
bakedpotatolord 2025-07-13 20:26:32 -06:00
commit edf0a8ceb8
5 changed files with 24 additions and 20 deletions

View file

@ -59,6 +59,7 @@
"camHelicalDownSpeed": 250, "camHelicalDownSpeed": 250,
"camHelicalSpeed": 1000, "camHelicalSpeed": 1000,
"camHelicalDown": 5, "camHelicalDown": 5,
"camHelicalBottomFinish":true,
"camHelicalThru": 0, "camHelicalThru": 0,
"camHelicalOffset": "auto", "camHelicalOffset": "auto",
"camHelicalForceStartAngle": false, "camHelicalForceStartAngle": false,

View file

@ -522,6 +522,7 @@ export const conf = {
camHelicalDownSpeed: 250, camHelicalDownSpeed: 250,
camHelicalSpeed: 1000, camHelicalSpeed: 1000,
camHelicalDown: 5, camHelicalDown: 5,
camHelicalBottomFinish: true,
camHelicalThru: 0, camHelicalThru: 0,
camHelicalOffset: "auto", camHelicalOffset: "auto",
camHelicalForceStartAngle: false, camHelicalForceStartAngle: false,

View file

@ -525,15 +525,16 @@ export function createPopOps() {
createPopOp('helical', { createPopOp('helical', {
tool: 'camHelicalTool', tool: 'camHelicalTool',
offset: 'camHelicalOffset',
spindle: 'camHelicalSpindle', spindle: 'camHelicalSpindle',
rate: 'camHelicalDownSpeed', rate: 'camHelicalDownSpeed',
feed: 'camHelicalSpeed', feed: 'camHelicalSpeed',
down: 'camHelicalDown', down: 'camHelicalDown',
thru: 'camHelicalThru', finish: 'camHelicalBottomFinish',
offset: 'camHelicalOffset',
forceStartAng:'camHelicalForceStartAngle',
startAng:'camHelicalStartAngle', startAng:'camHelicalStartAngle',
offOver: 'camHelicalOffsetOverride', offOver: 'camHelicalOffsetOverride',
thru: 'camHelicalThru',
forceStartAng:'camHelicalForceStartAngle',
fromTop: 'camHelicalFromStockTop', fromTop: 'camHelicalFromStockTop',
}).inputs = { }).inputs = {
tool: UC.newSelect(LANG.cc_tool, {}, "tools"), tool: UC.newSelect(LANG.cc_tool, {}, "tools"),
@ -546,7 +547,8 @@ export function createPopOps() {
startAng: UC.newInput(LANG.ch_stra_s, {title:LANG.ch_stra_l, convert:UC.toDegsFloat, bound:UC.bound(-360,360),show:() => env.poppedRec.forceStartAng}), startAng: UC.newInput(LANG.ch_stra_s, {title:LANG.ch_stra_l, convert:UC.toDegsFloat, bound:UC.bound(-360,360),show:() => env.poppedRec.forceStartAng}),
offOver: UC.newInput(LANG.cc_offd_s, {title:LANG.cc_offd_l, convert:UC.toFloat, units:true, bound:UC.bound(0,Infinity)}), offOver: UC.newInput(LANG.cc_offd_s, {title:LANG.cc_offd_l, convert:UC.toFloat, units:true, bound:UC.bound(0,Infinity)}),
sep: UC.newBlank({class:"pop-sep"}), sep: UC.newBlank({class:"pop-sep"}),
forceStartAng: UC.newBoolean(LANG.ch_fsta_s, undefined, {title:LANG.ch_fsta_l, }), finish: UC.newBoolean(LANG.ch_fini_s,undefined, { title:LANG.ch_fini_l }),
forceStartAng: UC.newBoolean(LANG.ch_fsta_s, undefined, {title:LANG.ch_fsta_l }),
fromTop: UC.newBoolean(LANG.cd_ftop_s,undefined, {title:LANG.cd_ftop_l}), fromTop: UC.newBoolean(LANG.cd_ftop_s,undefined, {title:LANG.cd_ftop_l}),
sep: UC.newBlank({class:"pop-sep"}), sep: UC.newBlank({class:"pop-sep"}),
thru: UC.newInput(LANG.cd_thru_s, {title:LANG.cd_thru_l, convert:UC.toFloat, units:true}), thru: UC.newInput(LANG.cd_thru_s, {title:LANG.cd_thru_l, convert:UC.toFloat, units:true}),

View file

@ -24,6 +24,7 @@ export class OpHelical extends CamOp {
offset, offset,
down, down,
thru, thru,
finish,
} = op; } = op;
let {stock} = settings let {stock} = settings
@ -139,22 +140,19 @@ export class OpHelical extends CamOp {
}) })
); );
// poly.addPoints([ //if settings dictate, do a full circle at the bottom
// newPoint(0,0,0) if(finish){
// ]) poly.addPoints(
arcToPath(finalEnd, finalEnd, numSegs, {
//do a full circle at the bottom clockwise,
poly.addPoints( radius,
arcToPath(finalEnd, finalEnd, numSegs, { center,
clockwise, }),
radius, );
center, poly.append(
}), finalEnd.clone().setZ(zBottom),
); )
}
poly.append(
finalEnd.clone().setZ(zBottom),
)
break; break;
} }
currentZ = bottom; currentZ = bottom;

View file

@ -617,6 +617,8 @@ self.lang['en-us'] = {
ch_stra_s: "start angle", ch_stra_s: "start angle",
ch_stra_l: ["start angle of helix","in degrees ccw of +x axis"], ch_stra_l: ["start angle of helix","in degrees ccw of +x axis"],
ch_selc_l: ["select a cylinder face", "inner holes that are too small","will be ignored."], ch_selc_l: ["select a cylinder face", "inner holes that are too small","will be ignored."],
ch_fini_s: "bottom finish pass",
ch_fini_l: ["trace a circle at bottom of helix","used for hole clearing"],
// CNC FLIP // CNC FLIP