diff --git a/resources/profiles/Original Prusa i3 MK2, MK2S, MK2MM and MK3.ini b/resources/profiles/Original Prusa i3 MK2, MK2S, MK2MM and MK3.ini index 5835cfdeb..64af7d9b2 100644 --- a/resources/profiles/Original Prusa i3 MK2, MK2S, MK2MM and MK3.ini +++ b/resources/profiles/Original Prusa i3 MK2, MK2S, MK2MM and MK3.ini @@ -1,4 +1,4 @@ -# generated by Slic3r Prusa Edition 1.39.0 on 2018-01-06 at 15:09:55 +# generated by Slic3r Prusa Edition 1.39.0.29-prusa3d-win64 on 2018-01-22 at 14:53:14 [print:0.05mm DETAIL] avoid_crossing_perimeters = 0 @@ -532,7 +532,7 @@ xy_size_compensation = 0 [print:0.10mm DETAIL MK3] avoid_crossing_perimeters = 0 -bottom_solid_layers = 4 +bottom_solid_layers = 7 bridge_acceleration = 1000 bridge_angle = 0 bridge_flow_ratio = 0.8 @@ -563,17 +563,17 @@ first_layer_height = 0.2 first_layer_speed = 30 gap_fill_speed = 40 gcode_comments = 0 -infill_acceleration = 3500 +infill_acceleration = 1500 infill_every_layers = 1 infill_extruder = 1 infill_extrusion_width = 0.45 infill_first = 0 infill_only_where_needed = 0 infill_overlap = 25% -infill_speed = 200 +infill_speed = 170 interface_shells = 0 layer_height = 0.1 -max_print_speed = 250 +max_print_speed = 170 max_volumetric_extrusion_rate_slope_negative = 0 max_volumetric_extrusion_rate_slope_positive = 0 max_volumetric_speed = 0 @@ -601,7 +601,7 @@ solid_infill_below_area = 0 solid_infill_every_layers = 0 solid_infill_extruder = 1 solid_infill_extrusion_width = 0.45 -solid_infill_speed = 200 +solid_infill_speed = 170 spiral_vase = 0 standby_temperature_delta = -5 support_material = 0 @@ -627,8 +627,8 @@ thin_walls = 0 threads = 4 top_infill_extrusion_width = 0.4 top_solid_infill_speed = 50 -top_solid_layers = 5 -travel_speed = 250 +top_solid_layers = 9 +travel_speed = 170 wipe_tower = 0 wipe_tower_per_color_wipe = 15 wipe_tower_width = 60 @@ -1062,7 +1062,7 @@ xy_size_compensation = 0 [print:0.15mm OPTIMAL MK3] avoid_crossing_perimeters = 0 -bottom_solid_layers = 4 +bottom_solid_layers = 5 bridge_acceleration = 1000 bridge_angle = 0 bridge_flow_ratio = 0.8 @@ -1093,17 +1093,17 @@ first_layer_height = 0.2 first_layer_speed = 30 gap_fill_speed = 40 gcode_comments = 0 -infill_acceleration = 3500 +infill_acceleration = 1500 infill_every_layers = 1 infill_extruder = 1 infill_extrusion_width = 0.45 infill_first = 0 infill_only_where_needed = 0 infill_overlap = 25% -infill_speed = 200 +infill_speed = 170 interface_shells = 0 layer_height = 0.15 -max_print_speed = 250 +max_print_speed = 170 max_volumetric_extrusion_rate_slope_negative = 0 max_volumetric_extrusion_rate_slope_positive = 0 max_volumetric_speed = 0 @@ -1131,7 +1131,7 @@ solid_infill_below_area = 0 solid_infill_every_layers = 0 solid_infill_extruder = 1 solid_infill_extrusion_width = 0.45 -solid_infill_speed = 200 +solid_infill_speed = 170 spiral_vase = 0 standby_temperature_delta = -5 support_material = 0 @@ -1157,8 +1157,8 @@ thin_walls = 0 threads = 4 top_infill_extrusion_width = 0.4 top_solid_infill_speed = 50 -top_solid_layers = 5 -travel_speed = 250 +top_solid_layers = 7 +travel_speed = 170 wipe_tower = 1 wipe_tower_per_color_wipe = 15 wipe_tower_width = 60 @@ -1517,17 +1517,17 @@ first_layer_height = 0.2 first_layer_speed = 30 gap_fill_speed = 40 gcode_comments = 0 -infill_acceleration = 3500 +infill_acceleration = 1500 infill_every_layers = 1 infill_extruder = 1 infill_extrusion_width = 0.45 infill_first = 0 infill_only_where_needed = 0 infill_overlap = 25% -infill_speed = 200 +infill_speed = 170 interface_shells = 0 layer_height = 0.2 -max_print_speed = 250 +max_print_speed = 170 max_volumetric_extrusion_rate_slope_negative = 0 max_volumetric_extrusion_rate_slope_positive = 0 max_volumetric_speed = 0 @@ -1555,7 +1555,7 @@ solid_infill_below_area = 0 solid_infill_every_layers = 0 solid_infill_extruder = 1 solid_infill_extrusion_width = 0.45 -solid_infill_speed = 200 +solid_infill_speed = 170 spiral_vase = 0 standby_temperature_delta = -5 support_material = 0 @@ -1582,7 +1582,7 @@ threads = 4 top_infill_extrusion_width = 0.4 top_solid_infill_speed = 50 top_solid_layers = 5 -travel_speed = 250 +travel_speed = 170 wipe_tower = 1 wipe_tower_per_color_wipe = 15 wipe_tower_width = 60 @@ -2807,13 +2807,13 @@ filament_settings_id = filament_soluble = 0 filament_type = PET first_layer_bed_temperature = 90 -first_layer_temperature = 260 -max_fan_speed = 80 -min_fan_speed = 80 +first_layer_temperature = 275 +max_fan_speed = 50 +min_fan_speed = 50 min_print_speed = 5 slowdown_below_layer_time = 20 start_filament_gcode = "M900 K{if printer_notes=~/.*PRINTER_HAS_BOWDEN.*/}200{else}45{endif}; Filament gcode" -temperature = 260 +temperature = 275 [filament:Fillamentum Timberfil] bed_temperature = 60 @@ -3120,19 +3120,19 @@ filament_colour = #00CA0A filament_cost = 0 filament_density = 0 filament_diameter = 1.75 -filament_max_volumetric_speed = 2.5 +filament_max_volumetric_speed = 1.5 filament_notes = "List of materials tested with FLEX print settings & FLEX material settings for MK2:\n\nFillamentum Flex 98A\nFillamentum Flex 92A\nPlasty Mladeč PP\nPlasty Mladeč TPE32 \nPlasty Mladeč TPE88" filament_settings_id = filament_soluble = 0 filament_type = FLEX first_layer_bed_temperature = 50 -first_layer_temperature = 220 +first_layer_temperature = 240 max_fan_speed = 90 min_fan_speed = 70 min_print_speed = 5 slowdown_below_layer_time = 20 start_filament_gcode = "M900 K{if printer_notes=~/.*PRINTER_HAS_BOWDEN.*/}200{else}10{endif}; Filament gcode" -temperature = 230 +temperature = 240 [filament:Taulman Bridge] bed_temperature = 50 @@ -3560,7 +3560,7 @@ retract_speed = 35 serial_port = serial_speed = 250000 single_extruder_multi_material = 0 -start_gcode = M115 U3.1.1-RC4 ; tell printer latest fw version\nM201 X1000 Y1000 Z200 E5000 ; sets maximum accelerations, mm/sec^2\nM203 X500 Y500 Z12 E120 ; sets maximum feedrates, mm/sec\nM204 S1250 T1250 ; sets acceleration (S) and retract acceleration (T)\nM205 X15 Y15 Z0.4 E2.5 ; sets the jerk limits, mm/sec\nM205 S0 T0 ; sets the minimum extruding and travel feed rate, mm/sec\nM83 ; extruder relative mode\nM104 S[first_layer_temperature] ; set extruder temp\nM140 S[first_layer_bed_temperature] ; set bed temp\nM190 S[first_layer_bed_temperature] ; wait for bed temp\nM109 S[first_layer_temperature] ; wait for extruder temp\nG28 W ; home all without mesh bed level\nG80 ; mesh bed leveling\nG1 Y-3.0 F1000.0 ; go outside print area\nG92 E0.0\nG1 X60.0 E9.0 F1000.0 ; intro line\nG1 X100.0 E12.5 F1000.0 ; intro line\nG92 E0.0\nM221 S95 +start_gcode = M115 U3.1.1-RC5 ; tell printer latest fw version\nM201 X1000 Y1000 Z200 E5000 ; sets maximum accelerations, mm/sec^2\nM203 X200 Y200 Z12 E120 ; sets maximum feedrates, mm/sec\nM204 S1250 T1250 ; sets acceleration (S) and retract acceleration (T)\nM205 X10 Y10 Z0.4 E2.5 ; sets the jerk limits, mm/sec\nM205 S0 T0 ; sets the minimum extruding and travel feed rate, mm/sec\nM83 ; extruder relative mode\nM104 S[first_layer_temperature] ; set extruder temp\nM140 S[first_layer_bed_temperature] ; set bed temp\nM190 S[first_layer_bed_temperature] ; wait for bed temp\nM109 S[first_layer_temperature] ; wait for extruder temp\nG28 W ; home all without mesh bed level\nG80 ; mesh bed leveling\nG1 Y-3.0 F1000.0 ; go outside print area\nG92 E0.0\nG1 X60.0 E9.0 F1000.0 ; intro line\nG1 X100.0 E12.5 F1000.0 ; intro line\nG92 E0.0\nM221 S{if layer_height==0.05}100{else}95{endif} toolchange_gcode = use_firmware_retraction = 0 use_relative_e_distances = 1 diff --git a/resources/profiles/Original Prusa i3 MK3.ini b/resources/profiles/Original Prusa i3 MK3.ini index 0afbb35cd..b53006b0f 100644 --- a/resources/profiles/Original Prusa i3 MK3.ini +++ b/resources/profiles/Original Prusa i3 MK3.ini @@ -1,4 +1,4 @@ -# generated by Slic3r Prusa Edition 1.39.0 on 2018-01-06 at 15:12:34 +# generated by Slic3r Prusa Edition 1.39.0 on 2018-02-02 at 10:48:46 [print:0.05mm DETAIL] avoid_crossing_perimeters = 0 @@ -532,7 +532,7 @@ xy_size_compensation = 0 [print:0.10mm DETAIL MK3] avoid_crossing_perimeters = 0 -bottom_solid_layers = 4 +bottom_solid_layers = 7 bridge_acceleration = 1000 bridge_angle = 0 bridge_flow_ratio = 0.8 @@ -563,17 +563,17 @@ first_layer_height = 0.2 first_layer_speed = 30 gap_fill_speed = 40 gcode_comments = 0 -infill_acceleration = 3500 +infill_acceleration = 1500 infill_every_layers = 1 infill_extruder = 1 infill_extrusion_width = 0.45 infill_first = 0 infill_only_where_needed = 0 infill_overlap = 25% -infill_speed = 200 +infill_speed = 170 interface_shells = 0 layer_height = 0.1 -max_print_speed = 250 +max_print_speed = 170 max_volumetric_extrusion_rate_slope_negative = 0 max_volumetric_extrusion_rate_slope_positive = 0 max_volumetric_speed = 0 @@ -601,7 +601,7 @@ solid_infill_below_area = 0 solid_infill_every_layers = 0 solid_infill_extruder = 1 solid_infill_extrusion_width = 0.45 -solid_infill_speed = 200 +solid_infill_speed = 170 spiral_vase = 0 standby_temperature_delta = -5 support_material = 0 @@ -627,8 +627,8 @@ thin_walls = 0 threads = 4 top_infill_extrusion_width = 0.4 top_solid_infill_speed = 50 -top_solid_layers = 5 -travel_speed = 250 +top_solid_layers = 9 +travel_speed = 170 wipe_tower = 0 wipe_tower_per_color_wipe = 15 wipe_tower_width = 60 @@ -1062,7 +1062,7 @@ xy_size_compensation = 0 [print:0.15mm OPTIMAL MK3] avoid_crossing_perimeters = 0 -bottom_solid_layers = 4 +bottom_solid_layers = 5 bridge_acceleration = 1000 bridge_angle = 0 bridge_flow_ratio = 0.8 @@ -1093,17 +1093,17 @@ first_layer_height = 0.2 first_layer_speed = 30 gap_fill_speed = 40 gcode_comments = 0 -infill_acceleration = 3500 +infill_acceleration = 1500 infill_every_layers = 1 infill_extruder = 1 infill_extrusion_width = 0.45 infill_first = 0 infill_only_where_needed = 0 infill_overlap = 25% -infill_speed = 200 +infill_speed = 170 interface_shells = 0 layer_height = 0.15 -max_print_speed = 250 +max_print_speed = 170 max_volumetric_extrusion_rate_slope_negative = 0 max_volumetric_extrusion_rate_slope_positive = 0 max_volumetric_speed = 0 @@ -1131,7 +1131,7 @@ solid_infill_below_area = 0 solid_infill_every_layers = 0 solid_infill_extruder = 1 solid_infill_extrusion_width = 0.45 -solid_infill_speed = 200 +solid_infill_speed = 170 spiral_vase = 0 standby_temperature_delta = -5 support_material = 0 @@ -1157,8 +1157,8 @@ thin_walls = 0 threads = 4 top_infill_extrusion_width = 0.4 top_solid_infill_speed = 50 -top_solid_layers = 5 -travel_speed = 250 +top_solid_layers = 7 +travel_speed = 170 wipe_tower = 1 wipe_tower_per_color_wipe = 15 wipe_tower_width = 60 @@ -1517,17 +1517,17 @@ first_layer_height = 0.2 first_layer_speed = 30 gap_fill_speed = 40 gcode_comments = 0 -infill_acceleration = 3500 +infill_acceleration = 1500 infill_every_layers = 1 infill_extruder = 1 infill_extrusion_width = 0.45 infill_first = 0 infill_only_where_needed = 0 infill_overlap = 25% -infill_speed = 200 +infill_speed = 170 interface_shells = 0 layer_height = 0.2 -max_print_speed = 250 +max_print_speed = 170 max_volumetric_extrusion_rate_slope_negative = 0 max_volumetric_extrusion_rate_slope_positive = 0 max_volumetric_speed = 0 @@ -1555,7 +1555,7 @@ solid_infill_below_area = 0 solid_infill_every_layers = 0 solid_infill_extruder = 1 solid_infill_extrusion_width = 0.45 -solid_infill_speed = 200 +solid_infill_speed = 170 spiral_vase = 0 standby_temperature_delta = -5 support_material = 0 @@ -1582,7 +1582,7 @@ threads = 4 top_infill_extrusion_width = 0.4 top_solid_infill_speed = 50 top_solid_layers = 5 -travel_speed = 250 +travel_speed = 170 wipe_tower = 1 wipe_tower_per_color_wipe = 15 wipe_tower_width = 60 @@ -2807,13 +2807,13 @@ filament_settings_id = filament_soluble = 0 filament_type = PET first_layer_bed_temperature = 90 -first_layer_temperature = 260 -max_fan_speed = 80 -min_fan_speed = 80 +first_layer_temperature = 275 +max_fan_speed = 50 +min_fan_speed = 50 min_print_speed = 5 slowdown_below_layer_time = 20 start_filament_gcode = "M900 K{if printer_notes=~/.*PRINTER_HAS_BOWDEN.*/}200{else}45{endif}; Filament gcode" -temperature = 260 +temperature = 275 [filament:Fillamentum Timberfil] bed_temperature = 60 @@ -3120,19 +3120,19 @@ filament_colour = #00CA0A filament_cost = 0 filament_density = 0 filament_diameter = 1.75 -filament_max_volumetric_speed = 2.5 +filament_max_volumetric_speed = 1.5 filament_notes = "List of materials tested with FLEX print settings & FLEX material settings for MK2:\n\nFillamentum Flex 98A\nFillamentum Flex 92A\nPlasty Mladeč PP\nPlasty Mladeč TPE32 \nPlasty Mladeč TPE88" filament_settings_id = filament_soluble = 0 filament_type = FLEX first_layer_bed_temperature = 50 -first_layer_temperature = 220 +first_layer_temperature = 240 max_fan_speed = 90 min_fan_speed = 70 min_print_speed = 5 slowdown_below_layer_time = 20 start_filament_gcode = "M900 K{if printer_notes=~/.*PRINTER_HAS_BOWDEN.*/}200{else}10{endif}; Filament gcode" -temperature = 230 +temperature = 240 [filament:Taulman Bridge] bed_temperature = 50 @@ -3280,7 +3280,7 @@ retract_speed = 35 serial_port = serial_speed = 250000 single_extruder_multi_material = 0 -start_gcode = M115 U3.1.1-RC4 ; tell printer latest fw version\nM201 X1000 Y1000 Z200 E5000 ; sets maximum accelerations, mm/sec^2\nM203 X500 Y500 Z12 E120 ; sets maximum feedrates, mm/sec\nM204 S1250 T1250 ; sets acceleration (S) and retract acceleration (T)\nM205 X15 Y15 Z0.4 E2.5 ; sets the jerk limits, mm/sec\nM205 S0 T0 ; sets the minimum extruding and travel feed rate, mm/sec\nM83 ; extruder relative mode\nM104 S[first_layer_temperature] ; set extruder temp\nM140 S[first_layer_bed_temperature] ; set bed temp\nM190 S[first_layer_bed_temperature] ; wait for bed temp\nM109 S[first_layer_temperature] ; wait for extruder temp\nG28 W ; home all without mesh bed level\nG80 ; mesh bed leveling\nG1 Y-3.0 F1000.0 ; go outside print area\nG92 E0.0\nG1 X60.0 E9.0 F1000.0 ; intro line\nG1 X100.0 E12.5 F1000.0 ; intro line\nG92 E0.0\nM221 S95 +start_gcode = M115 U3.1.1-RC5 ; tell printer latest fw version\nM201 X1000 Y1000 Z200 E5000 ; sets maximum accelerations, mm/sec^2\nM203 X200 Y200 Z12 E120 ; sets maximum feedrates, mm/sec\nM204 S1250 T1250 ; sets acceleration (S) and retract acceleration (T)\nM205 X10 Y10 Z0.4 E2.5 ; sets the jerk limits, mm/sec\nM205 S0 T0 ; sets the minimum extruding and travel feed rate, mm/sec\nM83 ; extruder relative mode\nM104 S[first_layer_temperature] ; set extruder temp\nM140 S[first_layer_bed_temperature] ; set bed temp\nM190 S[first_layer_bed_temperature] ; wait for bed temp\nM109 S[first_layer_temperature] ; wait for extruder temp\nG28 W ; home all without mesh bed level\nG80 ; mesh bed leveling\nG1 Y-3.0 F1000.0 ; go outside print area\nG92 E0.0\nG1 X60.0 E9.0 F1000.0 ; intro line\nG1 X100.0 E12.5 F1000.0 ; intro line\nG92 E0.0\nM221 S{if layer_height==0.05}100{else}95{endif} toolchange_gcode = use_firmware_retraction = 0 use_relative_e_distances = 1 diff --git a/t/custom_gcode.t b/t/custom_gcode.t index 6a930a38a..bafcd4610 100644 --- a/t/custom_gcode.t +++ b/t/custom_gcode.t @@ -1,4 +1,4 @@ -use Test::More tests => 71; +use Test::More tests => 77; use strict; use warnings; @@ -91,8 +91,14 @@ use Slic3r::Test; is $parser->evaluate_boolean_expression('(12 == 2 * 6) ? (1 - 1 == 3) : (2 * 2 == 4)'), 0, 'boolean expression parser: ternary true'; is $parser->evaluate_boolean_expression('12 < 3'), 0, 'boolean expression parser: lower than - false'; is $parser->evaluate_boolean_expression('12 < 22'), 1, 'boolean expression parser: lower than - true'; - is $parser->evaluate_boolean_expression('12 > 3'), 1, 'boolean expression parser: lower than - true'; - is $parser->evaluate_boolean_expression('12 > 22'), 0, 'boolean expression parser: lower than - false'; + is $parser->evaluate_boolean_expression('12 > 3'), 1, 'boolean expression parser: greater than - true'; + is $parser->evaluate_boolean_expression('12 > 22'), 0, 'boolean expression parser: greater than - false'; + is $parser->evaluate_boolean_expression('12 <= 3'), 0, 'boolean expression parser: lower than or equal- false'; + is $parser->evaluate_boolean_expression('12 <= 22'), 1, 'boolean expression parser: lower than or equal - true'; + is $parser->evaluate_boolean_expression('12 >= 3'), 1, 'boolean expression parser: greater than or equal - true'; + is $parser->evaluate_boolean_expression('12 >= 22'), 0, 'boolean expression parser: greater than or equal - false'; + is $parser->evaluate_boolean_expression('12 <= 12'), 1, 'boolean expression parser: lower than or equal (same values) - true'; + is $parser->evaluate_boolean_expression('12 >= 12'), 1, 'boolean expression parser: greater than or equal (same values) - true'; is $parser->evaluate_boolean_expression('printer_notes=~/.*PRINTER_VENDOR_PRUSA3D.*/ and printer_notes=~/.*PRINTER_MODEL_MK2.*/ and nozzle_diameter[0]==0.6 and num_extruders>1'), 1, 'complex expression'; is $parser->evaluate_boolean_expression('printer_notes=~/.*PRINTER_VEwerfNDOR_PRUSA3D.*/ or printer_notes=~/.*PRINTertER_MODEL_MK2.*/ or (nozzle_diameter[0]==0.6 and num_extruders>1)'), 1, 'complex expression2'; diff --git a/xs/src/libslic3r/PerimeterGenerator.cpp b/xs/src/libslic3r/PerimeterGenerator.cpp index bffd46d0f..ea9c73fa4 100644 --- a/xs/src/libslic3r/PerimeterGenerator.cpp +++ b/xs/src/libslic3r/PerimeterGenerator.cpp @@ -483,8 +483,9 @@ PerimeterGenerator::_variable_width(const ThickPolylines &polylines, ExtrusionRo if (path.polyline.points.empty()) { path.polyline.append(line.a); path.polyline.append(line.b); - - flow.width = unscale(w); + // Convert from spacing to extrusion width based on the extrusion model + // of a square extrusion ended with semi circles. + flow.width = unscale(w) + flow.height * (1. - 0.25 * PI); #ifdef SLIC3R_DEBUG printf(" filling %f gap\n", flow.width); #endif diff --git a/xs/src/libslic3r/PlaceholderParser.cpp b/xs/src/libslic3r/PlaceholderParser.cpp index b91f4c99c..ba0efd6e4 100644 --- a/xs/src/libslic3r/PlaceholderParser.cpp +++ b/xs/src/libslic3r/PlaceholderParser.cpp @@ -974,10 +974,10 @@ namespace client relational_expression = additive_expression(_r1) [_val = _1] - >> *( (lit('<') > additive_expression(_r1) ) [px::bind(&expr::lower, _val, _1)] - | (lit('>') > additive_expression(_r1) ) [px::bind(&expr::greater, _val, _1)] - | ("<=" > additive_expression(_r1) ) [px::bind(&expr::leq, _val, _1)] + >> *( ("<=" > additive_expression(_r1) ) [px::bind(&expr::leq, _val, _1)] | (">=" > additive_expression(_r1) ) [px::bind(&expr::geq, _val, _1)] + | (lit('<') > additive_expression(_r1) ) [px::bind(&expr::lower, _val, _1)] + | (lit('>') > additive_expression(_r1) ) [px::bind(&expr::greater, _val, _1)] ); relational_expression.name("relational_expression"); diff --git a/xs/src/libslic3r/PrintConfig.cpp b/xs/src/libslic3r/PrintConfig.cpp index 0dc6c9d43..5bbf20c4c 100644 --- a/xs/src/libslic3r/PrintConfig.cpp +++ b/xs/src/libslic3r/PrintConfig.cpp @@ -200,10 +200,10 @@ PrintConfigDef::PrintConfigDef() def->default_value = new ConfigOptionFloat(6); def = this->add("elefant_foot_compensation", coFloat); - def->label = "Elefant foot compensation"; + def->label = "Elephant foot compensation"; def->category = "Advanced"; def->tooltip = "The first layer will be shrunk in the XY plane by the configured value " - "to compensate for the 1st layer squish aka an Elefant Foot effect."; + "to compensate for the 1st layer squish aka an Elephant Foot effect."; def->sidetext = "mm"; def->cli = "elefant-foot-compensation=f"; def->min = 0; diff --git a/xs/xsp/GUI_Preset.xsp b/xs/xsp/GUI_Preset.xsp index 67e1d5fc6..0033ebd0e 100644 --- a/xs/xsp/GUI_Preset.xsp +++ b/xs/xsp/GUI_Preset.xsp @@ -18,8 +18,8 @@ bool is_compatible_with_printer(Preset *active_printer) %code%{ RETVAL = THIS->is_compatible_with_printer(*active_printer); %}; - const char* name() %code%{ RETVAL = THIS->name.c_str(); %}; - const char* file() %code%{ RETVAL = THIS->file.c_str(); %}; + std::string name() %code%{ RETVAL = THIS->name; %}; + std::string file() %code%{ RETVAL = THIS->file; %}; bool loaded() %code%{ RETVAL = THIS->loaded; %};