configurable max values for sharpening and contrast. code cleanup
This commit is contained in:
parent
233f426dff
commit
0bf06885dc
3 changed files with 33 additions and 130 deletions
|
|
@ -10,36 +10,6 @@ from . import s
|
|||
|
||||
import re
|
||||
|
||||
#class SupportLocationTypes(object):
|
||||
# NONE = "none"
|
||||
# TOUCHING_BUILDPLATE = "buildplate"
|
||||
# EVERYWHERE = "everywhere"
|
||||
#
|
||||
#class SupportDualTypes(object):
|
||||
# BOTH = "both"
|
||||
# FIRST = "first"
|
||||
# SECOND = "second"
|
||||
#
|
||||
#class SupportTypes(object):
|
||||
# GRID = "grid"
|
||||
# LINES = "lines"
|
||||
#
|
||||
#class PlatformAdhesionTypes(object):
|
||||
# NONE = "none"
|
||||
# BRIM = "brim"
|
||||
# RAFT = "raft"
|
||||
#
|
||||
#class MachineShapeTypes(object):
|
||||
# SQUARE = "square"
|
||||
# CIRCULAR = "circular"
|
||||
#
|
||||
#class GcodeFlavors(object):
|
||||
# REPRAP = "reprap"
|
||||
# REPRAP_VOLUME = "reprap_volume"
|
||||
# ULTIGCODE = "ultigcode"
|
||||
# MAKERBOT = "makerbot"
|
||||
# BFB = "bfb"
|
||||
# MACH3 = "mach3"
|
||||
|
||||
|
||||
defaults = dict(
|
||||
|
|
@ -48,12 +18,12 @@ defaults = dict(
|
|||
beam_diameter = 0.25,
|
||||
intensity_white = 0,
|
||||
intensity_black = 500,
|
||||
feedrate_white = 1000,
|
||||
feedrate_black = 500,
|
||||
feedrate_white = 1500,
|
||||
feedrate_black = 250,
|
||||
pierce_time = 0,
|
||||
contrast = 1.0,
|
||||
sharpening = 1.0,
|
||||
dither = False
|
||||
img_contrast = 1.0,
|
||||
img_sharpening = 1.0,
|
||||
img_dithering = False
|
||||
)
|
||||
|
||||
|
||||
|
|
@ -176,7 +146,7 @@ class Profile(object):
|
|||
def merge_profile(cls, profile, overrides=None):
|
||||
import copy
|
||||
|
||||
print("# overrides", overrides)
|
||||
print overrides
|
||||
result = copy.deepcopy(defaults)
|
||||
for k in result.keys():
|
||||
profile_value = None
|
||||
|
|
@ -253,91 +223,7 @@ class Profile(object):
|
|||
return default
|
||||
return int(value * 1000)
|
||||
|
||||
# TODO remove safely
|
||||
# def get_gcode_template(self, key):
|
||||
# extruder_count = s.globalGetInt(["printerParameters", "numExtruders"])
|
||||
#
|
||||
# if key in self.profile:
|
||||
# gcode = self.profile[key]
|
||||
# else:
|
||||
# gcode = defaults[key]
|
||||
#
|
||||
# if key in ("start_gcode", "end_gcode"):
|
||||
# return gcode[extruder_count-1]
|
||||
# else:
|
||||
# return gcode
|
||||
|
||||
# TODO remove safely
|
||||
# def get_machine_extruder_offset(self, extruder, axis):
|
||||
# return 0.0
|
||||
|
||||
# TODO remove safely
|
||||
# def get_profile_string(self):
|
||||
# import base64
|
||||
# import zlib
|
||||
#
|
||||
# import copy
|
||||
# profile = copy.deepcopy(defaults)
|
||||
# profile.update(self.profile)
|
||||
#
|
||||
# result = []
|
||||
# for k, v in profile.items():
|
||||
# if isinstance(v, (str, unicode)):
|
||||
# result.append("{k}={v}".format(k=k, v=v.encode("utf-8")))
|
||||
# else:
|
||||
# result.append("{k}={v}".format(k=k, v=v))
|
||||
#
|
||||
# return base64.b64encode(zlib.compress("\b".join(result), 9))
|
||||
#
|
||||
# TODO remove safely
|
||||
# def replaceTagMatch(self, m):
|
||||
# import time
|
||||
#
|
||||
# pre = m.group(1)
|
||||
# tag = m.group(2)
|
||||
#
|
||||
# if tag == 'time':
|
||||
# return pre + time.strftime('%H:%M:%S')
|
||||
# if tag == 'date':
|
||||
# return pre + time.strftime('%d-%m-%Y')
|
||||
# if tag == 'day':
|
||||
# return pre + ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'][int(time.strftime('%w'))]
|
||||
# if tag == 'profile_string':
|
||||
# return pre + 'svgtogcode_OCTO_PROFILE_STRING:%s' % (self.get_profile_string())
|
||||
#
|
||||
# if pre == 'F' and tag == 'max_z_speed':
|
||||
# f = self.get_float("travel_speed") * 60
|
||||
# elif pre == 'F' and tag in ['print_speed', 'retraction_speed', 'travel_speed', 'bottom_layer_speed', 'cool_min_feedrate']:
|
||||
# f = self.get_float(tag) * 60
|
||||
# elif self.get(tag):
|
||||
# f = self.get(tag)
|
||||
# else:
|
||||
# return '%s?%s?' % (pre, tag)
|
||||
#
|
||||
# if (f % 1) == 0:
|
||||
# return pre + str(int(f))
|
||||
#
|
||||
# return pre + str(f)
|
||||
#
|
||||
|
||||
# TODO remove safely
|
||||
# def get_gcode(self, key):
|
||||
# if key == "start_gcode":
|
||||
# return ""
|
||||
# else:
|
||||
# return ""
|
||||
|
||||
# def calculate_edge_width_and_line_count(self):
|
||||
# wall_thickness = self.get_float("wall_thickness")
|
||||
# return wall_thickness, 1
|
||||
|
||||
# TODO remove safely
|
||||
# def calculate_solid_layer_count(self):
|
||||
# return 1
|
||||
|
||||
# TODO remove safely
|
||||
# def calculate_minimal_extruder_count(self):
|
||||
# return 1
|
||||
|
||||
def convert_to_engine(self):
|
||||
|
||||
|
|
@ -350,9 +236,9 @@ class Profile(object):
|
|||
"--img-speed-white" : self.get_int("feedrate_white"),
|
||||
"--img-speed-black" : self.get_int("feedrate_black"),
|
||||
"--pierce-time" : self.get_float("pierce_time"),
|
||||
"--contrast": self.get_float("contrast"),
|
||||
"--sharpening": self.get_float("sharpening"),
|
||||
"--dither": self.get_boolean("dither")
|
||||
"--contrast": self.get_float("img_contrast"),
|
||||
"--sharpening": self.get_float("img_sharpening"),
|
||||
"--img-dithering": self.get_boolean("img_dithering")
|
||||
}
|
||||
|
||||
return settings
|
||||
|
|
|
|||
|
|
@ -34,26 +34,35 @@ $(function(){
|
|||
self.profiles = ko.observableArray();
|
||||
|
||||
// image engraving stuff
|
||||
// preset values are a good start for wood engraving
|
||||
self.show_image_parameters = ko.observable(false);
|
||||
self.imgIntensityWhite = ko.observable(0);
|
||||
self.imgIntensityBlack = ko.observable(500);
|
||||
self.imgFeedrateWhite = ko.observable(3000); // TODO use machineprofile maximum
|
||||
self.imgFeedrateBlack = ko.observable(500);
|
||||
self.imgFeedrateWhite = ko.observable(1500);
|
||||
self.imgFeedrateBlack = ko.observable(250);
|
||||
self.imgDithering = ko.observable(false);
|
||||
self.imgSharpening = ko.observable(1);
|
||||
self.imgContrast = ko.observable(1);
|
||||
self.beamDiameter = ko.observable(0.2);
|
||||
|
||||
// preprocessing preview
|
||||
self.sharpeningMax = 25;
|
||||
self.contrastMax = 2;
|
||||
|
||||
// preprocessing preview ... returns opacity 0.0 - 1.0
|
||||
self.sharpenedPreview = ko.computed(function(){
|
||||
if(self.imgDithering()) return 0;
|
||||
else {
|
||||
return (self.imgSharpening() - 1) - (self.imgContrast() - 1)/2;
|
||||
var sharpeningPercents = (self.imgSharpening() - 1)/(self.sharpeningMax - 1);
|
||||
var contrastPercents = (self.imgContrast() - 1)/(self.contrastMax - 1);
|
||||
return sharpeningPercents - contrastPercents/2;
|
||||
}
|
||||
}, self);
|
||||
self.contrastPreview = ko.computed(function(){
|
||||
if(self.imgDithering()) return 0;
|
||||
else {
|
||||
return (self.imgContrast() - 1) - (self.imgSharpening() - 1)/2;
|
||||
var sharpeningPercents = (self.imgSharpening() - 1)/(self.sharpeningMax - 1);
|
||||
var contrastPercents = (self.imgContrast() - 1)/(self.contrastMax - 1);
|
||||
return contrastPercents - sharpeningPercents/2;
|
||||
}
|
||||
}, self);
|
||||
|
||||
|
|
@ -248,6 +257,7 @@ $(function(){
|
|||
"profile.img_contrast" : self.imgContrast(),
|
||||
"profile.img_sharpening" : self.imgSharpening(),
|
||||
"profile.img_dithering" : self.imgDithering(),
|
||||
"profile.beam_diameter" : self.beamDiameter(),
|
||||
slicer: "svgtogcode",
|
||||
gcode: gcodeFilename
|
||||
};
|
||||
|
|
@ -357,9 +367,9 @@ $(function(){
|
|||
});
|
||||
|
||||
self.sharpeningSlider = $("#svgtogcode_sharpening_slider").slider({
|
||||
step: .1,
|
||||
step: 1,
|
||||
min: 1,
|
||||
max: 2,
|
||||
max: 25,
|
||||
value: 1,
|
||||
class: 'img_slider',
|
||||
tooltip: 'hide',
|
||||
|
|
|
|||
|
|
@ -58,6 +58,13 @@
|
|||
</div>
|
||||
</div>
|
||||
<div class="control-group" data-bind="visible: showExpertSettings">
|
||||
<label class="control-label">{{ _('Line distance') }}</label>
|
||||
<div class="controls">
|
||||
<div class="input-append">
|
||||
<input id="svgtogcode_img_feedrate_white" class="img_intensity_input" type="number" max="0.5" min="0.1" step="0.05" data-bind="value: beamDiameter">mm
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<p >{{ _('Image Preprocessing') }}</p>
|
||||
<div class="controls">
|
||||
<div class="img_preprocessing_preview before" style="background-image:url(/plugin/svgtogcode/static/img/kitty_grayscale.png);" >before</div>
|
||||
|
|
|
|||
Loading…
Reference in a new issue