estimate program runtime searched

More
30 Dec 2020 14:53 - 30 Dec 2020 14:56 #193549 by chris@cnc
expected program runtime searched was created by chris@cnc
Hello,
The expected program runtime can be seen in file -> properties. Is there a way to export this signal to Pyvcp? I want to run my program runtime timer backwards and need the expected runtime for the calculation.
Last edit: 30 Dec 2020 14:56 by chris@cnc.

Please Log in or Create an account to join the conversation.

More
30 Dec 2020 22:00 #193586 by skunkworks
Replied by skunkworks on topic expected program runtime searched
First - to you quiestion - I don't know. Second - the estimate is very very poor.

sam

Please Log in or Create an account to join the conversation.

  • tommylight
  • tommylight's Avatar
  • Away
  • Moderator
  • Moderator
More
30 Dec 2020 22:24 - 30 Dec 2020 22:25 #193587 by tommylight
Replied by tommylight on topic expected program runtime searched
The estimate is very precise, it just does not include anything except the feed distance at the given feed rate. So rapids, tool changes, acceleration/deceleration, probing, etc are not included.
Last edit: 30 Dec 2020 22:25 by tommylight. Reason: typo

Please Log in or Create an account to join the conversation.

More
30 Dec 2020 23:02 #193589 by skunkworks
Replied by skunkworks on topic expected program runtime searched
Exactly.. :)

Please Log in or Create an account to join the conversation.

More
30 Dec 2020 23:13 #193590 by chris@cnc
Replied by chris@cnc on topic expected program runtime searched
And that's the point. I don't have a tool changer. And so it's good to know when to be back. 5 minutes don't matter. But I have 4 cores and I no longer want to do their work. They are better at calculating and with a little offset the estimate fits usefully.

Please Log in or Create an account to join the conversation.

  • tommylight
  • tommylight's Avatar
  • Away
  • Moderator
  • Moderator
More
30 Dec 2020 23:53 #193595 by tommylight
Replied by tommylight on topic expected program runtime searched
For Plasma, since there are probing and waiting for the arcok signal besides the rapids and accel/decel, i just double the value that i get from file>properties.
It usually is near enough, but when it has to do a lot of pierces/probes/waits i tend to triple the time. That requires a bit of experience with the machine and types of work.

Please Log in or Create an account to join the conversation.

More
30 May 2021 14:09 - 30 May 2021 14:10 #210678 by chris@cnc
Replied by chris@cnc on topic estimate program runtime searched
I found the calculation of the estimated program runtime in /usr/bin/axis from line 1964 to 2018. Could someone point me to the variable where this time is written?
I would export to the pyvcp panel and calculate backwards to zero
def gcode_properties(event=None):
        props = {}
        if not loaded_file:
            props['name'] = _("No file loaded")
        else:
            ext = os.path.splitext(loaded_file)[1]
            program_filter = None
            if ext:
                program_filter = inifile.find("FILTER", ext[1:])
            name = os.path.basename(loaded_file)
            if program_filter:
                props['name'] = _("generated from %s") % name
            else:
                props['name'] = name

            size = os.stat(loaded_file).st_size
            lines = int(widgets.text.index("end").split(".")[0])-2
            props['size'] = _("%(size)s bytes\n%(lines)s gcode lines") % {'size': size, 'lines': lines}

            if vars.metric.get():
                conv = 1
                units = _("mm")
                fmt = "%.3f"
            else:
                conv = 1/25.4
                units = _("in")
                fmt = "%.4f"

            mf = vars.max_speed.get()
            #print o.canon.traverse[0]

            g0 = sum(dist(l[1][:3], l[2][:3]) for l in o.canon.traverse)
            g1 = (sum(dist(l[1][:3], l[2][:3]) for l in o.canon.feed) +
                sum(dist(l[1][:3], l[2][:3]) for l in o.canon.arcfeed))
            gt = (sum(dist(l[1][:3], l[2][:3])/min(mf, l[3]) for l in o.canon.feed) +
                sum(dist(l[1][:3], l[2][:3])/min(mf, l[3])  for l in o.canon.arcfeed) +
                sum(dist(l[1][:3], l[2][:3])/mf  for l in o.canon.traverse) +
                o.canon.dwell_time
                )

            props['g0'] = "%f %s".replace("%f", fmt) % (from_internal_linear_unit(g0, conv), units)
            props['g1'] = "%f %s".replace("%f", fmt) % (from_internal_linear_unit(g1, conv), units)
            if gt > 120:
                props['run'] = _("%.1f minutes") % (gt/60)
            else:
                props['run'] = _("%d seconds") % (int(gt))

            min_extents = from_internal_units(o.canon.min_extents, conv)
            max_extents = from_internal_units(o.canon.max_extents, conv)
            for (i, c) in enumerate("xyz"):
                a = min_extents[i]
                b = max_extents[i]
                if a != b:
                    props[c] = _("%(a)f to %(b)f = %(diff)f %(units)s").replace("%f", fmt) % {'a': a, 'b': b, 'diff': b-a, 'units': units}
        properties(root_window, _("G-Code Properties"), property_names, props)
Last edit: 30 May 2021 14:10 by chris@cnc.

Please Log in or Create an account to join the conversation.

Time to create page: 0.057 seconds
Powered by Kunena Forum