# WARNING: head commit changed in the meantime

Merge branch 'master' of
https://gitea.fablabchemnitz.de/FabLab_Chemnitz/mightyscape-1.X
# Bitte geben Sie eine Commit-Beschreibung ein, um zu erklären, warum
dieser
# Merge erforderlich ist, insbesondere wenn es einen aktualisierten
# Upstream-Branch mit einem Thema-Branch zusammenführt.
#
# Zeilen, die mit '#' beginnen, werden ignoriert,
# und eine leere Beschreibung bricht den Commit ab.
This commit is contained in:
Mario Voigt 2021-12-10 14:11:29 +01:00
parent 78f748098b
commit be7150979d
2 changed files with 11 additions and 4 deletions

View File

@ -61,7 +61,8 @@
<option value="1219x914">1219 x 914 mm (Fusion Pro 48)</option> <option value="1219x914">1219 x 914 mm (Fusion Pro 48)</option>
</param> </param>
<param name="max_cutting_speed" type="float" min="1.000" max="9999.000" precision="2" gui-text="Max. cutting speed (mm/s)">120.0</param> <param name="max_cutting_speed" type="float" min="1.000" max="9999.000" precision="2" gui-text="Max. cutting speed (mm/s)">120.0</param>
<param name="max_travel_speed" type="float" min="1.000" max="9999.000" precision="2" gui-text="Max. travel speed (mm/s)">500.0</param> <param name="max_travel_speed" type="float" min="1.000" max="9999.000" precision="2" gui-text="Max. travel speed (mm/s)">450.0</param>
<param name="job_time_offset" type="float" min="0.000" max="9999.000" precision="2" gui-text="Job time offset" gui-description="The laser is not starting immediately. It has some delay.">2</param>
<param name="price_per_minute_gross" type="float" min="0.0" max="9999.0" precision="2" gui-text="Price/minute € (gross)">2.0</param> <param name="price_per_minute_gross" type="float" min="0.0" max="9999.0" precision="2" gui-text="Price/minute € (gross)">2.0</param>
<param name="vector_grid_xy" type="float" min="0.0" max="9999.0" precision="2" gui-text="Vector grid (mm)">12.0</param> <param name="vector_grid_xy" type="float" min="0.0" max="9999.0" precision="2" gui-text="Vector grid (mm)">12.0</param>
</page> </page>

View File

@ -64,8 +64,9 @@ class LaserCheck(inkex.EffectExtension):
pars.add_argument('--tab') pars.add_argument('--tab')
pars.add_argument('--machine_size', default="812x508") pars.add_argument('--machine_size', default="812x508")
pars.add_argument('--max_cutting_speed', type=float, default=120) pars.add_argument('--max_cutting_speed', type=float, default=120.0)
pars.add_argument('--max_travel_speed', type=float, default=500) pars.add_argument('--max_travel_speed', type=float, default=450.0)
pars.add_argument('--job_time_offset', type=float, default=2.0)
pars.add_argument('--price_per_minute_gross', type=float, default=2.0) pars.add_argument('--price_per_minute_gross', type=float, default=2.0)
pars.add_argument('--vector_grid_xy', type=float, default=12.0) #TODO pars.add_argument('--vector_grid_xy', type=float, default=12.0) #TODO
@ -636,7 +637,7 @@ class LaserCheck(inkex.EffectExtension):
v_travel = so.max_travel_speed #this is always at maximum v_travel = so.max_travel_speed #this is always at maximum
tsec_cut = (self.svg.uutounit(str(totalCuttingLength)) / (adjusted_speed * so.max_cutting_speed * speedFactorR)) * empiric_scale tsec_cut = (self.svg.uutounit(str(totalCuttingLength)) / (adjusted_speed * so.max_cutting_speed * speedFactorR)) * empiric_scale
tsec_travel = self.svg.uutounit(str(totalTravelLength)) / v_travel tsec_travel = self.svg.uutounit(str(totalTravelLength)) / v_travel
tsec_total = tsec_cut + tsec_travel tsec_total = so.job_time_offset + tsec_cut + tsec_travel
minutes, seconds = divmod(tsec_total, 60) # split the seconds to minutes and seconds minutes, seconds = divmod(tsec_total, 60) # split the seconds to minutes and seconds
partial_minutes = round(seconds/60 * 2) / 2 partial_minutes = round(seconds/60 * 2) / 2
inkex.utils.debug("@{:03.0f}% (cut={:06.2f}mm/s | travel={:06.2f}mm/s) > {:03.0f}min {:02.0f}sec | cost={:02.0f}".format(speedFactor, v_cut, v_travel, minutes, seconds, so.price_per_minute_gross * (minutes + partial_minutes))) inkex.utils.debug("@{:03.0f}% (cut={:06.2f}mm/s | travel={:06.2f}mm/s) > {:03.0f}min {:02.0f}sec | cost={:02.0f}".format(speedFactor, v_cut, v_travel, minutes, seconds, so.price_per_minute_gross * (minutes + partial_minutes)))
@ -664,6 +665,11 @@ class LaserCheck(inkex.EffectExtension):
@ 003% = 435:21 = 26121s -> 3,83mm/s @ 003% = 435:21 = 26121s -> 3,83mm/s
@ 002% = 652:57 = 39177s -> 2,55mm/s @ 002% = 652:57 = 39177s -> 2,55mm/s
@ 001% = 1305:49 = 78349s -> 1,28mm/s @ 001% = 1305:49 = 78349s -> 1,28mm/s
It does not matter how slow we configure the laser, the job time estimation always has the same amount of travel time
(if we have some travel moves to perform), so the travel speed is always constant. The max. travel speed of Fusion Pro 32
is between 425mm/s and 460mm/s (measured by Mario by hand at different laser jobs).
If the laser is in X=0 Y=0 the jobs needs ~2 seconds to start moving and firing the laser. We use this as constant offset
''' '''
''' '''