estimate program runtime searched

More
30 Dec 2020 14:53 - 30 Dec 2020 14:56 #193549 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
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.

More
30 Dec 2020 22:24 - 30 Dec 2020 22:25 #193587 by tommylight
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
Exactly.. :)

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

More
30 Dec 2020 23:13 #193590 by chris@cnc
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.

More
30 Dec 2020 23:53 #193595 by tommylight
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
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.073 seconds
Powered by Kunena Forum