language checkpoint
This commit is contained in:
parent
1a59d7a491
commit
5045dd2b0c
3 changed files with 244 additions and 213 deletions
379
js/kiri-init.js
379
js/kiri-init.js
|
|
@ -72,33 +72,71 @@ var gs_kiri_init = exports;
|
||||||
SPACE.platform.setRound(true);
|
SPACE.platform.setRound(true);
|
||||||
|
|
||||||
Object.assign(UI, {
|
Object.assign(UI, {
|
||||||
container: container,
|
// from static HTML
|
||||||
ctrlLeft: $('control-left'),
|
|
||||||
ctrlRight: $('control-right'),
|
|
||||||
layerView: $('layer-view'),
|
|
||||||
layerSlider: $('layer-slider'),
|
|
||||||
modelOpacity: $('opacity'),
|
|
||||||
|
|
||||||
assets: assets,
|
|
||||||
control: control,
|
|
||||||
modal: $('modal'),
|
|
||||||
print: $('print'),
|
|
||||||
local: $('local'),
|
|
||||||
help: $('help'),
|
|
||||||
|
|
||||||
alert: {
|
alert: {
|
||||||
dialog: $('alert-area'),
|
dialog: $('alert-area'),
|
||||||
text: $('alert-text')
|
text: $('alert-text')
|
||||||
},
|
},
|
||||||
|
container: container,
|
||||||
devices: $('devices'),
|
assets: assets,
|
||||||
deviceAdd: $('device-add'),
|
control: control,
|
||||||
deviceDelete: $('device-del'),
|
ctrlLeft: $('control-left'),
|
||||||
deviceSave: $('device-save'),
|
ctrlRight: $('control-right'),
|
||||||
deviceClose: $('device-close'),
|
layerView: $('layer-view'),
|
||||||
deviceSelect: $('device-select'),
|
layerSlider: $('layer-slider'),
|
||||||
deviceFavorites: $('device-favorites'),
|
modelOpacity: $('opacity'),
|
||||||
deviceAll: $('device-all'),
|
modal: $('modal'),
|
||||||
|
print: $('print'),
|
||||||
|
local: $('local'),
|
||||||
|
help: $('help'),
|
||||||
|
devices: $('devices'),
|
||||||
|
deviceAdd: $('device-add'),
|
||||||
|
deviceDelete: $('device-del'),
|
||||||
|
deviceSave: $('device-save'),
|
||||||
|
deviceClose: $('device-close'),
|
||||||
|
deviceSelect: $('device-select'),
|
||||||
|
deviceFavorites: $('device-favorites'),
|
||||||
|
deviceAll: $('device-all'),
|
||||||
|
tools: $('tools'),
|
||||||
|
toolsSave: $('tools-save'),
|
||||||
|
toolsClose: $('tools-close'),
|
||||||
|
toolSelect: $('tool-select'),
|
||||||
|
toolAdd: $('tool-add'),
|
||||||
|
toolDelete: $('tool-del'),
|
||||||
|
toolType: $('tool-type'),
|
||||||
|
toolName: $('tool-name'),
|
||||||
|
toolNum: $('tool-num'),
|
||||||
|
toolFluteDiam: $('tool-fdiam'),
|
||||||
|
toolFluteLen: $('tool-flen'),
|
||||||
|
toolShaftDiam: $('tool-sdiam'),
|
||||||
|
toolShaftLen: $('tool-slen'),
|
||||||
|
// toolTaperAngle: $('tool-tangle'),
|
||||||
|
toolTaperTip: $('tool-ttip'),
|
||||||
|
toolMetric: $('tool-metric'),
|
||||||
|
catalog: $('catalog'),
|
||||||
|
catalogBody: $('catalogBody'),
|
||||||
|
catalogList: $('catalogList'),
|
||||||
|
settings: $('settings'),
|
||||||
|
settingsBody: $('settingsBody'),
|
||||||
|
settingsList: $('settingsList'),
|
||||||
|
layerID: $('layer-id'),
|
||||||
|
layerSpan: $('layer-span'),
|
||||||
|
layerRange: $('layer-range'),
|
||||||
|
loading: $('loading').style,
|
||||||
|
progress: $('progress').style,
|
||||||
|
prostatus: $('prostatus'),
|
||||||
|
selection: $('selection'),
|
||||||
|
selWidth: $('sel_width'),
|
||||||
|
selHeight: $('sel_height'),
|
||||||
|
selDepth: $('sel_depth'),
|
||||||
|
scaleX: $('scale_x'),
|
||||||
|
scaleY: $('scale_y'),
|
||||||
|
scaleZ: $('scale_z'),
|
||||||
|
scaleUniform: $('scale_uni'),
|
||||||
|
stock: $('stock'),
|
||||||
|
stockWidth: $('stock-width'),
|
||||||
|
stockDepth: $('stock-width'),
|
||||||
|
stockHeight: $('stock-width'),
|
||||||
|
|
||||||
device: UC.newGroup(LANG.dv_gr_dev, $('device')),
|
device: UC.newGroup(LANG.dv_gr_dev, $('device')),
|
||||||
deviceName: UC.newInput(LANG.dv_name_s, {title:LANG.dv_name_l, size:20, text:true}),
|
deviceName: UC.newInput(LANG.dv_name_s, {title:LANG.dv_name_l, size:20, text:true}),
|
||||||
|
|
@ -129,52 +167,6 @@ var gs_kiri_init = exports;
|
||||||
setDevicePre: UC.newText(LANG.dv_head_s, {title:LANG.dv_head_l, modes:ALL, size:14, height:3}),
|
setDevicePre: UC.newText(LANG.dv_head_s, {title:LANG.dv_head_l, modes:ALL, size:14, height:3}),
|
||||||
setDevicePost: UC.newText(LANG.dv_foot_s, {title:LANG.dv_foot_l, modes:ALL, size:14, height:3}),
|
setDevicePost: UC.newText(LANG.dv_foot_s, {title:LANG.dv_foot_l, modes:ALL, size:14, height:3}),
|
||||||
|
|
||||||
tools: $('tools'),
|
|
||||||
toolsSave: $('tools-save'),
|
|
||||||
toolsClose: $('tools-close'),
|
|
||||||
toolSelect: $('tool-select'),
|
|
||||||
toolAdd: $('tool-add'),
|
|
||||||
toolDelete: $('tool-del'),
|
|
||||||
toolType: $('tool-type'),
|
|
||||||
toolName: $('tool-name'),
|
|
||||||
toolNum: $('tool-num'),
|
|
||||||
toolFluteDiam: $('tool-fdiam'),
|
|
||||||
toolFluteLen: $('tool-flen'),
|
|
||||||
toolShaftDiam: $('tool-sdiam'),
|
|
||||||
toolShaftLen: $('tool-slen'),
|
|
||||||
// toolTaperAngle: $('tool-tangle'),
|
|
||||||
toolTaperTip: $('tool-ttip'),
|
|
||||||
toolMetric: $('tool-metric'),
|
|
||||||
|
|
||||||
catalog: $('catalog'),
|
|
||||||
catalogBody: $('catalogBody'),
|
|
||||||
catalogList: $('catalogList'),
|
|
||||||
|
|
||||||
settings: $('settings'),
|
|
||||||
settingsBody: $('settingsBody'),
|
|
||||||
settingsList: $('settingsList'),
|
|
||||||
|
|
||||||
layerID: $('layer-id'),
|
|
||||||
layerSpan: $('layer-span'),
|
|
||||||
layerRange: $('layer-range'),
|
|
||||||
|
|
||||||
loading: $('loading').style,
|
|
||||||
progress: $('progress').style,
|
|
||||||
prostatus: $('prostatus'),
|
|
||||||
|
|
||||||
selection: $('selection'),
|
|
||||||
selWidth: $('sel_width'),
|
|
||||||
selHeight: $('sel_height'),
|
|
||||||
selDepth: $('sel_depth'),
|
|
||||||
scaleX: $('scale_x'),
|
|
||||||
scaleY: $('scale_y'),
|
|
||||||
scaleZ: $('scale_z'),
|
|
||||||
scaleUniform: $('scale_uni'),
|
|
||||||
stock: $('stock'),
|
|
||||||
stockWidth: $('stock-width'),
|
|
||||||
stockDepth: $('stock-width'),
|
|
||||||
stockHeight: $('stock-width'),
|
|
||||||
|
|
||||||
mode: UC.newGroup(LANG.mo_menu, assets),
|
mode: UC.newGroup(LANG.mo_menu, assets),
|
||||||
modeTable: UC.newTableRow([
|
modeTable: UC.newTableRow([
|
||||||
[
|
[
|
||||||
|
|
@ -255,7 +247,7 @@ var gs_kiri_init = exports;
|
||||||
autoLayout: UC.newBoolean(LANG.op_auto_s, booleanSave, {title:LANG.op_auto_l}),
|
autoLayout: UC.newBoolean(LANG.op_auto_s, booleanSave, {title:LANG.op_auto_l}),
|
||||||
freeLayout: UC.newBoolean(LANG.op_free_s, booleanSave, {title:LANG.op_free_l}),
|
freeLayout: UC.newBoolean(LANG.op_free_s, booleanSave, {title:LANG.op_free_l}),
|
||||||
reverseZoom: UC.newBoolean(LANG.op_invr_s, booleanSave, {title:LANG.op_invr_l}),
|
reverseZoom: UC.newBoolean(LANG.op_invr_s, booleanSave, {title:LANG.op_invr_l}),
|
||||||
units: UC.newSelectField(LANG.op_unit_s, {title: LANG.op_unit_l, modes:CAM}, "units"),
|
units: UC.newSelect(LANG.op_unit_s, {title: LANG.op_unit_l, modes:CAM}, "units"),
|
||||||
|
|
||||||
// allow modules to insert new items at the bottom of the left menu
|
// allow modules to insert new items at the bottom of the left menu
|
||||||
appendLeft: UC.checkpoint(),
|
appendLeft: UC.checkpoint(),
|
||||||
|
|
@ -291,147 +283,144 @@ var gs_kiri_init = exports;
|
||||||
]
|
]
|
||||||
]),
|
]),
|
||||||
|
|
||||||
process: UC.newGroup(LANG.sl_menu, control, {modes:FDM_LASER}),
|
process: UC.newGroup(LANG.sl_menu, control, {modes:FDM_LASER}),
|
||||||
|
sliceHeight: UC.newInput(LANG.sl_lahi_s, {title:LANG.sl_lahi_l, convert:UC.toFloat, modes:FDM}),
|
||||||
|
sliceShells: UC.newInput(LANG.sl_shel_s, {title:LANG.sl_shel_l, convert:UC.toInt, modes:FDM}),
|
||||||
|
sliceTopLayers: UC.newInput(LANG.sl_ltop_s, {title:LANG.sl_ltop_l, convert:UC.toInt, modes:FDM}),
|
||||||
|
sliceSolidLayers: UC.newInput(LANG.sl_lsld_s, {title:LANG.sl_lsld_l, convert:UC.toInt, modes:FDM}),
|
||||||
|
sliceBottomLayers: UC.newInput(LANG.sl_lbot_s, {title:LANG.sl_lbot_l, convert:UC.toInt, modes:FDM}),
|
||||||
|
|
||||||
sliceHeight: UC.newInput("layer height", {title:"millimeters", convert:UC.toFloat, modes:FDM}),
|
process: UC.newGroup(LANG.fi_menu, control, {modes:FDM}),
|
||||||
sliceShells: UC.newInput("shell count", {convert:UC.toInt, modes:FDM}),
|
sliceFillType: UC.newSelect(LANG.fi_type, {modes:FDM}, "infill"),
|
||||||
sliceTopLayers: UC.newInput("top layers", {title:"top solid layer count", convert:UC.toInt, modes:FDM}),
|
sliceFillSparse: UC.newInput(LANG.fi_pcnt_s, {title:LANG.fi_pcnt_l, convert:UC.toFloat, bound:UC.bound(0.0,1.0), modes:FDM}),
|
||||||
sliceSolidLayers: UC.newInput("solid layers", {title:"flat area fill projections\nbased on layer deltas", convert:UC.toInt, modes:FDM}),
|
sliceFillAngle: UC.newInput(LANG.fi_angl_s, {title:LANG.fi_angl_l, convert:UC.toFloat, modes:FDM, expert:true}),
|
||||||
sliceBottomLayers: UC.newInput("base layers", {title:"bottom solid layer count", convert:UC.toInt, modes:FDM}),
|
sliceFillOverlap: UC.newInput(LANG.fi_over_s, {title:LANG.fi_over_l, convert:UC.toFloat, bound:UC.bound(0.0,2.0), modes:FDM, expert:true}),
|
||||||
|
|
||||||
process: UC.newGroup("fill", control, {modes:FDM}),
|
firstLayer: UC.newGroup(LANG.fl_menu, null, {modes:FDM}),
|
||||||
sliceFillType: UC.newSelectField("type", {modes:FDM}, "infill"),
|
firstSliceHeight: UC.newInput(LANG.fl_lahi_s, {title:LANG.fl_lahi_l, convert:UC.toFloat, modes:FDM}),
|
||||||
sliceFillSparse: UC.newInput("percentage", {title:"for infill areas\n0.0 - 1.0", convert:UC.toFloat, bound:UC.bound(0.0,1.0), modes:FDM}),
|
firstLayerRate: UC.newInput(LANG.fl_rate_s, {title:LANG.fl_rate_l, convert:UC.toFloat, modes:FDM}),
|
||||||
sliceFillAngle: UC.newInput("solid angle", {title:"base angle in degrees", convert:UC.toFloat, modes:FDM, expert:true}),
|
firstLayerFillRate: UC.newInput(LANG.fl_frat_s, {title:LANG.fl_frat_l, convert:UC.toFloat, modes:FDM}),
|
||||||
sliceFillOverlap: UC.newInput("overlap", {title:"overlap with shell and fill\nas % of nozzle width\nhigher bonds better\n0.0 - 1.0", convert:UC.toFloat, bound:UC.bound(0.0,2.0), modes:FDM, expert:true}),
|
firstLayerPrintMult: UC.newInput(LANG.fl_mult_s, {title:LANG.fl_mult_l, convert:UC.toFloat, modes:FDM, expert: true}),
|
||||||
|
outputBrimCount: UC.newInput(LANG.fl_skrt_s, {title:LANG.fl_skrt_l, convert:UC.toInt, modes:FDM}),
|
||||||
|
outputBrimOffset: UC.newInput(LANG.fl_skro_s, {title:LANG.fl_skro_l, convert:UC.toFloat, modes:FDM}),
|
||||||
|
firstLayerNozzleTemp:UC.newInput(LANG.fl_nozl_s, {title:LANG.fl_nozl_l, convert:UC.toInt, modes:FDM, expert: true}),
|
||||||
|
firstLayerBedTemp: UC.newInput(LANG.fl_bedd_s, {title:LANG.fl_bedd_l, convert:UC.toInt, modes:FDM, expert: true}),
|
||||||
|
|
||||||
firstLayer: UC.newGroup("first layer", null, {modes:FDM}),
|
support: UC.newGroup(LANG.sp_menu, null, {modes:FDM}),
|
||||||
firstSliceHeight: UC.newInput("layer height", {title:"in millimeters\nshould be >= slice height", convert:UC.toFloat, modes:FDM}),
|
|
||||||
firstLayerRate: UC.newInput("shell speed", {title:"print move max speed\nmillimeters / minute", convert:UC.toFloat, modes:FDM}),
|
|
||||||
firstLayerFillRate: UC.newInput("fill speed", {title:"fill move max speed\nmillimeters / minute", convert:UC.toFloat, modes:FDM}),
|
|
||||||
firstLayerPrintMult: UC.newInput("print factor", {title:"extrusion multiplier\n0.0 - 2.0", convert:UC.toFloat, modes:FDM, expert: true}),
|
|
||||||
outputBrimCount: UC.newInput("skirt count", {title:"number of skirts", convert:UC.toInt, modes:FDM}),
|
|
||||||
outputBrimOffset: UC.newInput("skirt offset", {title:"millimeters", convert:UC.toFloat, modes:FDM}),
|
|
||||||
firstLayerNozzleTemp: UC.newInput("nozzle temp", {title:"degrees celsius\nused when non-zero", convert:UC.toInt, modes:FDM, expert: true}),
|
|
||||||
firstLayerBedTemp: UC.newInput("bed temp", {title:"degrees celsius\nused when non-zero", convert:UC.toInt, modes:FDM, expert: true}),
|
|
||||||
|
|
||||||
support: UC.newGroup("support", null, {modes:FDM}),
|
|
||||||
sliceSupportDensity: UC.newInput("density", {title:"0.0 - 1.0\nrecommended 0.15\n0 to disable", convert:UC.toFloat, bound:UC.bound(0.05,1.0), modes:FDM}),
|
sliceSupportDensity: UC.newInput("density", {title:"0.0 - 1.0\nrecommended 0.15\n0 to disable", convert:UC.toFloat, bound:UC.bound(0.05,1.0), modes:FDM}),
|
||||||
sliceSupportSize: UC.newInput("pillar size", {title:"width in millimeters", bound:UC.bound(1.0,200.0), convert:UC.toFloat, modes:FDM}),
|
sliceSupportSize: UC.newInput("pillar size", {title:"width in millimeters", bound:UC.bound(1.0,200.0), convert:UC.toFloat, modes:FDM}),
|
||||||
sliceSupportOffset: UC.newInput("part offset", {title:"millimeters\noffset from part", bound:UC.bound(0.0,200.0), convert:UC.toFloat, modes:FDM}),
|
sliceSupportOffset: UC.newInput("part offset", {title:"millimeters\noffset from part", bound:UC.bound(0.0,200.0), convert:UC.toFloat, modes:FDM}),
|
||||||
sliceSupportGap: UC.newInput("gap layers", {title:"number of layers\noffset from part", bound:UC.bound(0,5), convert:UC.toInt, modes:FDM, expert: true}),
|
sliceSupportGap: UC.newInput("gap layers", {title:"number of layers\noffset from part", bound:UC.bound(0,5), convert:UC.toInt, modes:FDM, expert: true}),
|
||||||
sliceSupportSpan: UC.newInput("max bridge", {title:"span length that\ntriggers support\nin millimeters", bound:UC.bound(0.0,200.0), convert:UC.toFloat, modes:FDM}),
|
sliceSupportSpan: UC.newInput("max bridge", {title:"span length that\ntriggers support\nin millimeters", bound:UC.bound(0.0,200.0), convert:UC.toFloat, modes:FDM}),
|
||||||
sliceSupportArea: UC.newInput("min area", {title:"min area for a\nsupport column\nin millimeters", bound:UC.bound(0.1,200.0), convert:UC.toFloat, modes:FDM}),
|
sliceSupportArea: UC.newInput("min area", {title:"min area for a\nsupport column\nin millimeters", bound:UC.bound(0.1,200.0), convert:UC.toFloat, modes:FDM}),
|
||||||
sliceSupportExtra: UC.newInput("expand", {title:"expand support area\nbeyond part boundary\nin millimeters", bound:UC.bound(0.0,200.0), convert:UC.toFloat, modes:FDM, expert: true}),
|
sliceSupportExtra: UC.newInput("expand", {title:"expand support area\nbeyond part boundary\nin millimeters", bound:UC.bound(0.0,200.0), convert:UC.toFloat, modes:FDM, expert: true}),
|
||||||
sliceSupportEnable: UC.newBoolean("enable", onBooleanClick, {modes:FDM}),
|
sliceSupportEnable: UC.newBoolean("enable", onBooleanClick, {modes:FDM}),
|
||||||
|
|
||||||
laserOffset: UC.newInput("offset", {title:"nadjust for beam width\nin millimeters", convert:UC.toFloat, modes:LASER}),
|
laserOffset: UC.newInput("offset", {title:"nadjust for beam width\nin millimeters", convert:UC.toFloat, modes:LASER}),
|
||||||
laserSliceHeight: UC.newInput("height", {title:"millimeters\n0 = auto/detect", convert:UC.toFloat, modes:LASER}),
|
laserSliceHeight: UC.newInput("height", {title:"millimeters\n0 = auto/detect", convert:UC.toFloat, modes:LASER}),
|
||||||
laserSliceSingle: UC.newBoolean("single", onBooleanClick, {title:"perform one slice\nat specified height", modes:LASER}),
|
laserSliceSingle: UC.newBoolean("single", onBooleanClick, {title:"perform one slice\nat specified height", modes:LASER}),
|
||||||
|
|
||||||
camCommon: UC.newGroup("common", null, {modes:CAM}),
|
camCommon: UC.newGroup("common", null, {modes:CAM}),
|
||||||
camFastFeed: UC.newInput("rapid feed", {title:"rapid moves feedrate\nin workspace units / minute", convert:UC.toInt, modes:CAM}),
|
camFastFeed: UC.newInput("rapid feed", {title:"rapid moves feedrate\nin workspace units / minute", convert:UC.toInt, modes:CAM}),
|
||||||
|
|
||||||
roughing: UC.newGroup("roughing", null, {modes:CAM}),
|
roughing: UC.newGroup("roughing", null, {modes:CAM}),
|
||||||
roughingTool: UC.newSelectField("tool", {modes:CAM}),
|
roughingTool: UC.newSelect("tool", {modes:CAM}),
|
||||||
roughingSpindle: UC.newInput("spindle rpm", {title:"spindle speed rpm", convert:UC.toInt, modes:CAM}),
|
roughingSpindle: UC.newInput("spindle rpm", {title:"spindle speed rpm", convert:UC.toInt, modes:CAM}),
|
||||||
roughingOver: UC.newInput("step over", {title:"0.1 - 1.0\npercentage of\ntool diameter", convert:UC.toFloat, bound:UC.bound(0.1,1.0), modes:CAM}),
|
roughingOver: UC.newInput("step over", {title:"0.1 - 1.0\npercentage of\ntool diameter", convert:UC.toFloat, bound:UC.bound(0.1,1.0), modes:CAM}),
|
||||||
roughingDown: UC.newInput("step down", {title:"step down depth\nfor each pass\nin workspace units\n0 to disable", convert:UC.toFloat, modes:CAM}),
|
roughingDown: UC.newInput("step down", {title:"step down depth\nfor each pass\nin workspace units\n0 to disable", convert:UC.toFloat, modes:CAM}),
|
||||||
roughingSpeed: UC.newInput("feed rate", {title:"max speed while cutting\nworkspace units / minute", convert:UC.toInt, modes:CAM}),
|
roughingSpeed: UC.newInput("feed rate", {title:"max speed while cutting\nworkspace units / minute", convert:UC.toInt, modes:CAM}),
|
||||||
roughingPlunge: UC.newInput("plunge rate", {title:"max speed on z axis\nworkspace units / minute", convert:UC.toInt, modes:CAM}),
|
roughingPlunge: UC.newInput("plunge rate", {title:"max speed on z axis\nworkspace units / minute", convert:UC.toInt, modes:CAM}),
|
||||||
roughingStock: UC.newInput("leave stock", {title:"horizontal offset from vertical faces\nstock to leave for finishing pass\nin workspace units", convert:UC.toFloat, modes:CAM}),
|
roughingStock: UC.newInput("leave stock", {title:"horizontal offset from vertical faces\nstock to leave for finishing pass\nin workspace units", convert:UC.toFloat, modes:CAM}),
|
||||||
camPocketOnlyRough: UC.newBoolean("pocket only", onBooleanClick, {title:"constrain to\npart boundaries", modes:CAM}),
|
camPocketOnlyRough: UC.newBoolean("pocket only", onBooleanClick, {title:"constrain to\npart boundaries", modes:CAM}),
|
||||||
camEaseDown: UC.newBoolean("ease down", onBooleanClick, {title:"plunge cuts will\nspiral down or ease\nalong a linear path\nas they cut downward", modes:CAM}),
|
camEaseDown: UC.newBoolean("ease down", onBooleanClick, {title:"plunge cuts will\nspiral down or ease\nalong a linear path\nas they cut downward", modes:CAM}),
|
||||||
roughingOn: UC.newBoolean("enable", onBooleanClick, {modes:CAM}),
|
roughingOn: UC.newBoolean("enable", onBooleanClick, {modes:CAM}),
|
||||||
|
|
||||||
finishing: UC.newGroup("finishing", null, {modes:CAM}),
|
finishing: UC.newGroup("finishing", null, {modes:CAM}),
|
||||||
finishingTool: UC.newSelectField("tool", {modes:CAM}),
|
finishingTool: UC.newSelect("tool", {modes:CAM}),
|
||||||
finishingSpindle: UC.newInput("spindle rpm", {title:"spindle speed rpm", convert:UC.toInt, modes:CAM}),
|
finishingSpindle: UC.newInput("spindle rpm", {title:"spindle speed rpm", convert:UC.toInt, modes:CAM}),
|
||||||
finishingOver: UC.newInput("step over", {title:"0.05 - 1.0\npercentage of\ntool diameter\nfor linear XY", convert:UC.toFloat, bound:UC.bound(0.05,1.0), modes:CAM}),
|
finishingOver: UC.newInput("step over", {title:"0.05 - 1.0\npercentage of\ntool diameter\nfor linear XY", convert:UC.toFloat, bound:UC.bound(0.05,1.0), modes:CAM}),
|
||||||
finishingDown: UC.newInput("step down", {title:"step down depth\nfor each pass\nin workspace units\n0 to disable", convert:UC.toFloat, modes:CAM}),
|
finishingDown: UC.newInput("step down", {title:"step down depth\nfor each pass\nin workspace units\n0 to disable", convert:UC.toFloat, modes:CAM}),
|
||||||
finishingAngle: UC.newInput("max angle", {title:"angles greater than this\nare considered vertical", convert:UC.toFloat, bound:UC.bound(45,90), modes:CAM}),
|
finishingAngle: UC.newInput("max angle", {title:"angles greater than this\nare considered vertical", convert:UC.toFloat, bound:UC.bound(45,90), modes:CAM}),
|
||||||
finishingSpeed: UC.newInput("feed rate", {title:"max speed while cutting\workspace units / minute", convert:UC.toInt, modes:CAM}),
|
finishingSpeed: UC.newInput("feed rate", {title:"max speed while cutting\workspace units / minute", convert:UC.toInt, modes:CAM}),
|
||||||
finishingPlunge: UC.newInput("plunge rate", {title:"max speed on z axis\workspace units / minute", convert:UC.toInt, modes:CAM}),
|
finishingPlunge: UC.newInput("plunge rate", {title:"max speed on z axis\workspace units / minute", convert:UC.toInt, modes:CAM}),
|
||||||
camPocketOnlyFinish: UC.newBoolean("pocket only", onBooleanClick, {title:"constrain to\npart boundaries", modes:CAM}),
|
camPocketOnlyFinish: UC.newBoolean("pocket only", onBooleanClick, {title:"constrain to\npart boundaries", modes:CAM}),
|
||||||
finishingOn: UC.newBoolean("waterline", onBooleanClick, {title:"contour finishing\ndisabled when pocketing", modes:CAM}),
|
finishingOn: UC.newBoolean("waterline", onBooleanClick, {title:"contour finishing\ndisabled when pocketing", modes:CAM}),
|
||||||
finishingXOn: UC.newBoolean("linear x", onBooleanClick, {title:"linear x-axis finishing", modes:CAM}),
|
finishingXOn: UC.newBoolean("linear x", onBooleanClick, {title:"linear x-axis finishing", modes:CAM}),
|
||||||
finishingYOn: UC.newBoolean("linear y", onBooleanClick, {title:"linear y-axis finishing", modes:CAM}),
|
finishingYOn: UC.newBoolean("linear y", onBooleanClick, {title:"linear y-axis finishing", modes:CAM}),
|
||||||
finishCurvesOnly: UC.newBoolean("curves only", onBooleanClick, {title:"limit linear cleanup\nto curved surfaces\nto reduce time", modes:CAM}),
|
finishCurvesOnly: UC.newBoolean("curves only", onBooleanClick, {title:"limit linear cleanup\nto curved surfaces\nto reduce time", modes:CAM}),
|
||||||
|
|
||||||
drilling: UC.newGroup("drilling", null, {modes:CAM}),
|
drilling: UC.newGroup("drilling", null, {modes:CAM}),
|
||||||
drillTool: UC.newSelectField("tool", {modes:CAM}),
|
drillTool: UC.newSelect("tool", {modes:CAM}),
|
||||||
drillSpindle: UC.newInput("spindle rpm", {title:"spindle speed rpm", convert:UC.toInt, modes:CAM}),
|
drillSpindle: UC.newInput("spindle rpm", {title:"spindle speed rpm", convert:UC.toInt, modes:CAM}),
|
||||||
drillDown: UC.newInput("plunge per", {title:"max plunge between\ndwell periods\nin workspace units\n0 to disable", convert:UC.toFloat, modes:CAM}),
|
drillDown: UC.newInput("plunge per", {title:"max plunge between\ndwell periods\nin workspace units\n0 to disable", convert:UC.toFloat, modes:CAM}),
|
||||||
drillDownSpeed: UC.newInput("plunge rate", {title:"plunge rate\nin workspace units / minute\n0 to disable", convert:UC.toFloat, modes:CAM}),
|
drillDownSpeed: UC.newInput("plunge rate", {title:"plunge rate\nin workspace units / minute\n0 to disable", convert:UC.toFloat, modes:CAM}),
|
||||||
drillDwell: UC.newInput("dwell time", {title:"dwell time\nbetween plunges in\nin milliseconds", convert:UC.toFloat, modes:CAM}),
|
drillDwell: UC.newInput("dwell time", {title:"dwell time\nbetween plunges in\nin milliseconds", convert:UC.toFloat, modes:CAM}),
|
||||||
drillLift: UC.newInput("drill lift", {title:"lift between plunges\nafter dwell period\nin workspace units\n0 to disable", convert:UC.toFloat, modes:CAM}),
|
drillLift: UC.newInput("drill lift", {title:"lift between plunges\nafter dwell period\nin workspace units\n0 to disable", convert:UC.toFloat, modes:CAM}),
|
||||||
drillingOn: UC.newBoolean("enable", onBooleanClick, {modes:CAM}),
|
drillingOn: UC.newBoolean("enable", onBooleanClick, {modes:CAM}),
|
||||||
|
|
||||||
camTabs: UC.newGroup("cutout tabs", null, {modes:CAM}),
|
camTabs: UC.newGroup("cutout tabs", null, {modes:CAM}),
|
||||||
camTabsAngle: UC.newInput("angle", {title:"starting angle for tab spacing\nin degrees", convert:UC.toInt, bound:UC.bound(0,360), modes:CAM}),
|
camTabsAngle: UC.newInput("angle", {title:"starting angle for tab spacing\nin degrees", convert:UC.toInt, bound:UC.bound(0,360), modes:CAM}),
|
||||||
camTabsCount: UC.newInput("count", {title:"number of tabs to use\nwill be spaced evenly\naround the part", convert:UC.toInt, bound:UC.bound(1,20), modes:CAM}),
|
camTabsCount: UC.newInput("count", {title:"number of tabs to use\nwill be spaced evenly\naround the part", convert:UC.toInt, bound:UC.bound(1,20), modes:CAM}),
|
||||||
camTabsWidth: UC.newInput("width", {title:"width in workspace units\nperpendicular to part", convert:UC.toFloat, bound:UC.bound(0.1,100), modes:CAM}),
|
camTabsWidth: UC.newInput("width", {title:"width in workspace units\nperpendicular to part", convert:UC.toFloat, bound:UC.bound(0.1,100), modes:CAM}),
|
||||||
camTabsHeight: UC.newInput("height", {title:"height in workspace units\nfrom part bottom", convert:UC.toFloat, bound:UC.bound(0.1,100), modes:CAM}),
|
camTabsHeight: UC.newInput("height", {title:"height in workspace units\nfrom part bottom", convert:UC.toFloat, bound:UC.bound(0.1,100), modes:CAM}),
|
||||||
camTabsOn: UC.newBoolean("enable", onBooleanClick, {title:"enable or disable tabs\ntab generation skipped when\npocket only mode enabled", modes:CAM}),
|
camTabsOn: UC.newBoolean("enable", onBooleanClick, {title:"enable or disable tabs\ntab generation skipped when\npocket only mode enabled", modes:CAM}),
|
||||||
|
|
||||||
output: UC.newGroup("raft", null, {modes:FDM}),
|
output: UC.newGroup("raft", null, {modes:FDM}),
|
||||||
outputRaftSpacing: UC.newInput("spacing", {title:"additional layer spacing\nbetween 1st layer and raft\nin millimeters", convert:UC.toFloat, bound:UC.bound(0.0,3.0), modes:FDM}),
|
outputRaftSpacing: UC.newInput("spacing", {title:"additional layer spacing\nbetween 1st layer and raft\nin millimeters", convert:UC.toFloat, bound:UC.bound(0.0,3.0), modes:FDM}),
|
||||||
outputRaft: UC.newBoolean("enable", onBooleanClick, {title:"create a raft under the\nmodel for better adhesion\nuses skirt offset and\ndisables skirt output", modes:FDM}),
|
outputRaft: UC.newBoolean("enable", onBooleanClick, {title:"create a raft under the\nmodel for better adhesion\nuses skirt offset and\ndisables skirt output", modes:FDM}),
|
||||||
|
|
||||||
output: UC.newGroup("output"),
|
output: UC.newGroup("output"),
|
||||||
outputTileSpacing: UC.newInput("spacing", {title:"millimeters\ndistance between layer output", convert:UC.toInt, modes:LASER}),
|
outputTileSpacing: UC.newInput("spacing", {title:"millimeters\ndistance between layer output", convert:UC.toInt, modes:LASER}),
|
||||||
outputTileScaling: UC.newInput("scaling", {title:"multiplier (0.1 to 100)", convert:UC.toInt, bound:UC.bound(0.1,100), modes:LASER}),
|
outputTileScaling: UC.newInput("scaling", {title:"multiplier (0.1 to 100)", convert:UC.toInt, bound:UC.bound(0.1,100), modes:LASER}),
|
||||||
outputLaserPower: UC.newInput("power", {title:"0 - 100 %", convert:UC.toInt, bound:UC.bound(1,100), modes:LASER}),
|
outputLaserPower: UC.newInput("power", {title:"0 - 100 %", convert:UC.toInt, bound:UC.bound(1,100), modes:LASER}),
|
||||||
outputLaserSpeed: UC.newInput("speed", {title:"millimeters / minute", convert:UC.toInt, modes:LASER}),
|
outputLaserSpeed: UC.newInput("speed", {title:"millimeters / minute", convert:UC.toInt, modes:LASER}),
|
||||||
outputLaserMerged: UC.newBoolean("merged", onBooleanClick, {title:"merge all layers using\ncolor coding to denote\nstacking depth", modes:LASER}),
|
outputLaserMerged: UC.newBoolean("merged", onBooleanClick, {title:"merge all layers using\ncolor coding to denote\nstacking depth", modes:LASER}),
|
||||||
outputLaserGroup: UC.newBoolean("grouped", onBooleanClick, {title:"retain each layer as\na unified grouping\ninstead of separated\npolygons", modes:LASER}),
|
outputLaserGroup: UC.newBoolean("grouped", onBooleanClick, {title:"retain each layer as\na unified grouping\ninstead of separated\npolygons", modes:LASER}),
|
||||||
|
outputTemp: UC.newInput("nozzle temp", {title:"degrees celsius", convert:UC.toInt, modes:FDM}),
|
||||||
|
outputBedTemp: UC.newInput("bed temp", {title:"degrees celsius", convert:UC.toInt, modes:FDM}),
|
||||||
|
outputFeedrate: UC.newInput("print speed", {title:"print move max speed\nmillimeters / minute", convert:UC.toInt, modes:FDM}),
|
||||||
|
outputFinishrate: UC.newInput("finish speed", {title:"outermost shell speed\nmillimeters / minute", convert:UC.toInt, modes:FDM}),
|
||||||
|
outputSeekrate: UC.newInput("move speed", {title:"non-print move speed\nmillimeters / minute\n0 = enable G0 moves", convert:UC.toInt, modes:FDM}),
|
||||||
|
outputShellMult: UC.newInput("shell factor", {title:"extrusion multiplier\n0.0 - 2.0", convert:UC.toFloat, bound:UC.bound(0.0,2.0), modes:FDM}),
|
||||||
|
outputFillMult: UC.newInput("solid factor", {title:"extrusion multiplier\n0.0 - 2.0", convert:UC.toFloat, bound:UC.bound(0.0,2.0), modes:FDM}),
|
||||||
|
outputSparseMult: UC.newInput("infill factor", {title:"extrusion multiplier\n0.0 - 2.0", convert:UC.toFloat, bound:UC.bound(0.0,2.0), modes:FDM}),
|
||||||
|
outputFanLayer: UC.newInput("fan layer", {title:"layer to enable fan", convert:UC.toInt, bound:UC.bound(0,100), modes:FDM, expert: true}),
|
||||||
|
camTolerance: UC.newInput("tolerance", {title:"surface precision\nin workspace units", convert:UC.toFloat, bound:UC.bound(0.001,1.0), modes:CAM}),
|
||||||
|
camZTopOffset: UC.newInput("z top offset", {title:"offset from stock surface\nto top face of part\nin workspace units", convert:UC.toFloat, modes:CAM}),
|
||||||
|
camZBottom: UC.newInput("z bottom", {title:"offset from part bottom\nto limit cutting depth\nin workspace units", convert:UC.toFloat, modes:CAM}),
|
||||||
|
camZClearance: UC.newInput("z clearance", {title:"travel offset from z top\nin workspace units", convert:UC.toFloat, bound:UC.bound(0.01,100), modes:CAM}),
|
||||||
|
outputClockwise: UC.newBoolean("conventional", onBooleanClick, {title:"milling direction\nuncheck for 'climb'", modes:CAM}),
|
||||||
|
camDepthFirst: UC.newBoolean("depth first", onBooleanClick, {title:"optimize pocket cuts\nwith depth priority", modes:CAM}),
|
||||||
|
|
||||||
outputTemp: UC.newInput("nozzle temp", {title:"degrees celsius", convert:UC.toInt, modes:FDM}),
|
camStock: UC.newGroup("stock", null, {modes:CAM}),
|
||||||
outputBedTemp: UC.newInput("bed temp", {title:"degrees celsius", convert:UC.toInt, modes:FDM}),
|
camStockX: UC.newInput("width", {title:"width (x) in workspace units\n0 defaults to part size", convert:UC.toFloat, bound:UC.bound(0,9999), modes:CAM}),
|
||||||
outputFeedrate: UC.newInput("print speed", {title:"print move max speed\nmillimeters / minute", convert:UC.toInt, modes:FDM}),
|
camStockY: UC.newInput("depth", {title:"depth (y) in workspace units\n0 defaults to part size", convert:UC.toFloat, bound:UC.bound(0,9999), modes:CAM}),
|
||||||
outputFinishrate: UC.newInput("finish speed", {title:"outermost shell speed\nmillimeters / minute", convert:UC.toInt, modes:FDM}),
|
camStockZ: UC.newInput("height", {title:"height (z) in workspace units\n0 defaults to part size", convert:UC.toFloat, bound:UC.bound(0,9999), modes:CAM}),
|
||||||
outputSeekrate: UC.newInput("move speed", {title:"non-print move speed\nmillimeters / minute\n0 = enable G0 moves", convert:UC.toInt, modes:FDM}),
|
camStockOffset: UC.newBoolean("offset", onBooleanClick, {title: "use width, depth, height\nas offsets from max\npart size on platform", modes:CAM}),
|
||||||
outputShellMult: UC.newInput("shell factor", {title:"extrusion multiplier\n0.0 - 2.0", convert:UC.toFloat, bound:UC.bound(0.0,2.0), modes:FDM}),
|
outputOriginBounds: UC.newBoolean("origin bounds", onBooleanClick, {modes:LASER}),
|
||||||
outputFillMult: UC.newInput("solid factor", {title:"extrusion multiplier\n0.0 - 2.0", convert:UC.toFloat, bound:UC.bound(0.0,2.0), modes:FDM}),
|
outputOriginCenter: UC.newBoolean("origin center", onBooleanClick, {modes:CAM_LASER}),
|
||||||
outputSparseMult: UC.newInput("infill factor", {title:"extrusion multiplier\n0.0 - 2.0", convert:UC.toFloat, bound:UC.bound(0.0,2.0), modes:FDM}),
|
camOriginTop: UC.newBoolean("origin top", onBooleanClick, {modes:CAM}),
|
||||||
outputFanLayer: UC.newInput("fan layer", {title:"layer to enable fan", convert:UC.toInt, bound:UC.bound(0,100), modes:FDM, expert: true}),
|
|
||||||
|
|
||||||
camTolerance: UC.newInput("tolerance", {title:"surface precision\nin workspace units", convert:UC.toFloat, bound:UC.bound(0.001,1.0), modes:CAM}),
|
advanced: UC.newGroup("advanced", null, {modes:FDM, expert: true}),
|
||||||
camZTopOffset: UC.newInput("z top offset", {title:"offset from stock surface\nto top face of part\nin workspace units", convert:UC.toFloat, modes:CAM}),
|
outputRetractDist: UC.newInput("retract dist", {title:"amount to retract filament\nfor long moves. in millimeters", convert:UC.toFloat, modes:FDM, expert: true}),
|
||||||
camZBottom: UC.newInput("z bottom", {title:"offset from part bottom\nto limit cutting depth\nin workspace units", convert:UC.toFloat, modes:CAM}),
|
outputRetractSpeed: UC.newInput("retract rate", {title:"speed of filament\nretraction in mm/s", convert:UC.toInt, modes:FDM, expert: true}),
|
||||||
camZClearance: UC.newInput("z clearance", {title:"travel offset from z top\nin workspace units", convert:UC.toFloat, bound:UC.bound(0.01,100), modes:CAM}),
|
outputRetractDwell: UC.newInput("engage dwell", {title:"time between re-engaging\nfilament and movement\nin milliseconds", convert:UC.toInt, modes:FDM, expert: true}),
|
||||||
outputClockwise: UC.newBoolean("conventional", onBooleanClick, {title:"milling direction\nuncheck for 'climb'", modes:CAM}),
|
outputCoastDist: UC.newInput("shell coast", {title:"non-printing end\nof perimeter shells\nin millimeters", bound:UC.bound(0.0,10), convert:UC.toFloat, modes:FDM, expert: true}),
|
||||||
camDepthFirst: UC.newBoolean("depth first", onBooleanClick, {title:"optimize pocket cuts\nwith depth priority", modes:CAM}),
|
|
||||||
|
|
||||||
camStock: UC.newGroup("stock", null, {modes:CAM}),
|
|
||||||
camStockX: UC.newInput("width", {title:"width (x) in workspace units\n0 defaults to part size", convert:UC.toFloat, bound:UC.bound(0,9999), modes:CAM}),
|
|
||||||
camStockY: UC.newInput("depth", {title:"depth (y) in workspace units\n0 defaults to part size", convert:UC.toFloat, bound:UC.bound(0,9999), modes:CAM}),
|
|
||||||
camStockZ: UC.newInput("height", {title:"height (z) in workspace units\n0 defaults to part size", convert:UC.toFloat, bound:UC.bound(0,9999), modes:CAM}),
|
|
||||||
camStockOffset: UC.newBoolean("offset", onBooleanClick, {title: "use width, depth, height\nas offsets from max\npart size on platform", modes:CAM}),
|
|
||||||
outputOriginBounds: UC.newBoolean("origin bounds", onBooleanClick, {modes:LASER}),
|
|
||||||
outputOriginCenter: UC.newBoolean("origin center", onBooleanClick, {modes:CAM_LASER}),
|
|
||||||
camOriginTop: UC.newBoolean("origin top", onBooleanClick, {modes:CAM}),
|
|
||||||
|
|
||||||
advanced: UC.newGroup("advanced", null, {modes:FDM, expert: true}),
|
|
||||||
outputRetractDist: UC.newInput("retract dist", {title:"amount to retract filament\nfor long moves. in millimeters", convert:UC.toFloat, modes:FDM, expert: true}),
|
|
||||||
outputRetractSpeed: UC.newInput("retract rate", {title:"speed of filament\nretraction in mm/s", convert:UC.toInt, modes:FDM, expert: true}),
|
|
||||||
outputRetractDwell: UC.newInput("engage dwell", {title:"time between re-engaging\nfilament and movement\nin milliseconds", convert:UC.toInt, modes:FDM, expert: true}),
|
|
||||||
outputCoastDist: UC.newInput("shell coast", {title:"non-printing end\nof perimeter shells\nin millimeters", bound:UC.bound(0.0,10), convert:UC.toFloat, modes:FDM, expert: true}),
|
|
||||||
// outputWipeDistance: UC.newInput("wipe", {title:"non-printing move at\close of polygon\nin millimeters", bound:UC.bound(0.0,10), convert:UC.toFloat, modes:FDM, expert: true}),
|
// outputWipeDistance: UC.newInput("wipe", {title:"non-printing move at\close of polygon\nin millimeters", bound:UC.bound(0.0,10), convert:UC.toFloat, modes:FDM, expert: true}),
|
||||||
sliceSolidMinArea: UC.newInput("min solid", {title:"minimum area (mm^2)\nrequired to keep solid\nmust be > 0.1", convert:UC.toFloat, modes:FDM, expert: true}),
|
sliceSolidMinArea: UC.newInput("min solid", {title:"minimum area (mm^2)\nrequired to keep solid\nmust be > 0.1", convert:UC.toFloat, modes:FDM, expert: true}),
|
||||||
sliceMinHeight: UC.newInput("min layer", {title: "enables adaptive slicing with\nthis as the min layer height\nin millimeters\n0 to disable", bound:UC.bound(0,3.0), convert:UC.toFloat, modes:FDM, expert: true}),
|
sliceMinHeight: UC.newInput("min layer", {title: "enables adaptive slicing with\nthis as the min layer height\nin millimeters\n0 to disable", bound:UC.bound(0,3.0), convert:UC.toFloat, modes:FDM, expert: true}),
|
||||||
outputMinSpeed: UC.newInput("min speed", {title:"minimum speed\nfor short segments", bound:UC.bound(5,200), convert:UC.toFloat, modes:FDM, expert: true}),
|
outputMinSpeed: UC.newInput("min speed", {title:"minimum speed\nfor short segments", bound:UC.bound(5,200), convert:UC.toFloat, modes:FDM, expert: true}),
|
||||||
outputShortPoly: UC.newInput("slow poly", {title:"polygons shorter than this\nwill have their print speed\nscaled down to min speed\nin millimeters", bound:UC.bound(0,200), convert:UC.toFloat, modes:FDM, expert: true}),
|
outputShortPoly: UC.newInput("slow poly", {title:"polygons shorter than this\nwill have their print speed\nscaled down to min speed\nin millimeters", bound:UC.bound(0,200), convert:UC.toFloat, modes:FDM, expert: true}),
|
||||||
zHopDistance: UC.newInput("z hop dist", {title: "amount to raise z\non retraction moves\nin millimeters\n0 to disable", bound:UC.bound(0,3.0), convert:UC.toFloat, modes:FDM, expert: true}),
|
zHopDistance: UC.newInput("z hop dist", {title: "amount to raise z\non retraction moves\nin millimeters\n0 to disable", bound:UC.bound(0,3.0), convert:UC.toFloat, modes:FDM, expert: true}),
|
||||||
antiBacklash: UC.newInput("anti-backlash", {title: "use micro-movements to cancel\nbacklash during fills\nin millimeters", bound:UC.bound(0,3), convert:UC.toInt, modes:FDM, expert: true}),
|
antiBacklash: UC.newInput("anti-backlash", {title: "use micro-movements to cancel\nbacklash during fills\nin millimeters", bound:UC.bound(0,3), convert:UC.toInt, modes:FDM, expert: true}),
|
||||||
// detectThinWalls: UC.newBoolean("thin wall fill", onBooleanClick, {title: "detect and fill thin openings\nbetween shells walls", modes:FDM, expert: true})
|
// detectThinWalls: UC.newBoolean("thin wall fill", onBooleanClick, {title: "detect and fill thin openings\nbetween shells walls", modes:FDM, expert: true})
|
||||||
polishLayers: LOCAL ? UC.newInput("polish layers", {title:"polish up to specified\n# of layers at a time", bound:UC.bound(0,10), convert:UC.toFloat, modes:FDM, expert: true}) : null,
|
polishLayers: LOCAL ? UC.newInput("polish layers", {title:"polish up to specified\n# of layers at a time", bound:UC.bound(0,10), convert:UC.toFloat, modes:FDM, expert: true}) : null,
|
||||||
polishSpeed: LOCAL ? UC.newInput("polish speed", {title:"polishing speed\nin millimeters / minute", bound:UC.bound(10,2000), convert:UC.toInt, modes:FDM, expert: true}) : null,
|
polishSpeed: LOCAL ? UC.newInput("polish speed", {title:"polishing speed\nin millimeters / minute", bound:UC.bound(10,2000), convert:UC.toInt, modes:FDM, expert: true}) : null,
|
||||||
outputLayerRetract: UC.newBoolean("layer retract", onBooleanClick, {title:"force filament retraction\nbetween layers", modes:FDM, expert: true}),
|
outputLayerRetract: UC.newBoolean("layer retract", onBooleanClick, {title:"force filament retraction\nbetween layers", modes:FDM, expert: true}),
|
||||||
|
|
||||||
gcodeVars: UC.newGroup("gcode", null, {modes:FDM, expert: true}),
|
gcodeVars: UC.newGroup("gcode", null, {modes:FDM, expert: true}),
|
||||||
gcodeNozzle: UC.newInput("nozzle", {title: "select output nozzle", convert:UC.toInt, modes:FDM, expert: true}),
|
gcodeNozzle: UC.newInput("nozzle", {title: "select output nozzle", convert:UC.toInt, modes:FDM, expert: true}),
|
||||||
gcodePauseLayers: UC.newInput("pause layers", {title: "comma-separated list of layers\nto inject pause commands before", modes:FDM, expert: true})
|
gcodePauseLayers: UC.newInput("pause layers", {title: "comma-separated list of layers\nto inject pause commands before", modes:FDM, expert: true})
|
||||||
});
|
});
|
||||||
|
|
||||||
function toolUpdate(a,b,c) {
|
function toolUpdate(a,b,c) {
|
||||||
|
|
|
||||||
|
|
@ -186,7 +186,49 @@ let gs_kiri_lang = exports;
|
||||||
se_bsic: "basic",
|
se_bsic: "basic",
|
||||||
|
|
||||||
// SLICING menu
|
// SLICING menu
|
||||||
sl_menu: "slicing"
|
sl_menu: "slicing",
|
||||||
|
sl_lahi_s: "layer height",
|
||||||
|
sl_lahi_l: "height of each slice\nlayer in millimeters",
|
||||||
|
sl_shel_s: "shell count",
|
||||||
|
sl_shel_l: "number of perimeter\nwalls to generate",
|
||||||
|
sl_ltop_s: "top layers",
|
||||||
|
sl_ltop_l: "number of solid layers\nto enforce at the\ntop of the print",
|
||||||
|
sl_lsld_s: "solid layers",
|
||||||
|
sl_lsld_l: "solid fill areas computed\nfrom layer deltas. see\nlayer pop menu",
|
||||||
|
sl_lbot_s: "base layers",
|
||||||
|
sl_lbot_l: "number of solid layers\nto enforce at the\nbottom of the print",
|
||||||
|
|
||||||
|
// FILL menu
|
||||||
|
fi_menu: "fill",
|
||||||
|
fi_type: "type",
|
||||||
|
fi_pcnt_s: "percentage",
|
||||||
|
fi_pcnt_l: "fill density values\n0.0 - 1.0",
|
||||||
|
fi_angl_s: "solid angle",
|
||||||
|
fi_angl_l: "base angle in degrees",
|
||||||
|
fi_over_s: "overlap",
|
||||||
|
fi_over_l: "overlap with shell and fill\nas % of nozzle width\nhigher bonds better\n0.0 - 1.0",
|
||||||
|
|
||||||
|
// FIRST LAYER menu
|
||||||
|
fl_menu: "first layer",
|
||||||
|
fl_lahi_s: "layer height",
|
||||||
|
fl_lahi_l: "height of each slice\nin millimeters\nshould be >= slice height",
|
||||||
|
fl_rate_s: "shell speed",
|
||||||
|
fl_rate_h: "printing max speed\nin millimeters / minute",
|
||||||
|
fl_frat_s: "fill speed",
|
||||||
|
fl_frat_l: "printing max speed\nin millimeters / minute",
|
||||||
|
fl_mult_s: "print factor",
|
||||||
|
fl_mult_l: "extrusion multiplier\n0.0 - 2.0",
|
||||||
|
fl_skrt_s: "skirt count",
|
||||||
|
fl_skrt_l: "number of first-layer offset\nbrims to generate",
|
||||||
|
fl_skro_s: "skirt offset",
|
||||||
|
fl_skro_l: "skirt offset from part\nin millimeters",
|
||||||
|
fl_nozl_s: "nozzle temp",
|
||||||
|
fl_nozl_l: "degrees in celsius\noutput setting used\nwhen this is zero",
|
||||||
|
fl_bedd_s: "bed temp",
|
||||||
|
fl_bedd_l: "degrees in celsius\noutput setting used\nwhen this is zero",
|
||||||
|
|
||||||
|
// SUPPORT menu
|
||||||
|
sp_menu: "support",
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -37,11 +37,11 @@ var gs_moto_ui = exports;
|
||||||
isPopped: isPopped,
|
isPopped: isPopped,
|
||||||
newText: newTextArea,
|
newText: newTextArea,
|
||||||
newLabel: newLabel,
|
newLabel: newLabel,
|
||||||
newRange: newRangeField,
|
newRange: newRange,
|
||||||
newInput: newInputField,
|
newInput: newInputField,
|
||||||
newButton: newButton,
|
newButton: newButton,
|
||||||
newBoolean: newBooleanField,
|
newBoolean: newBooleanField,
|
||||||
newSelectField: newSelectField,
|
newSelect: newSelect,
|
||||||
newTable: newTables,
|
newTable: newTables,
|
||||||
newTableRow: newTableRow,
|
newTableRow: newTableRow,
|
||||||
newRow: newRow,
|
newRow: newRow,
|
||||||
|
|
@ -323,7 +323,7 @@ var gs_moto_ui = exports;
|
||||||
return ip;
|
return ip;
|
||||||
}
|
}
|
||||||
|
|
||||||
function newRangeField(label, options) {
|
function newRange(label, options) {
|
||||||
var row = newDiv(options),
|
var row = newDiv(options),
|
||||||
ip = DOC.createElement('input'),
|
ip = DOC.createElement('input'),
|
||||||
hide = options && options.hide,
|
hide = options && options.hide,
|
||||||
|
|
@ -348,7 +348,7 @@ var gs_moto_ui = exports;
|
||||||
return ip;
|
return ip;
|
||||||
}
|
}
|
||||||
|
|
||||||
function newSelectField(label, options, source) {
|
function newSelect(label, options, source) {
|
||||||
var row = newDiv(options),
|
var row = newDiv(options),
|
||||||
ip = DOC.createElement('select'),
|
ip = DOC.createElement('select'),
|
||||||
hide = options && options.hide,
|
hide = options && options.hide,
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue