# autonumber.py v1.0, by jasonharper@pobox.com def main(): view.CurrentEditMode = None oldselect = view.SelectedEntities fields = [] valuesSeen = set() for layer in doc.Layers: for ent in layer.Entities: if ent.PrimitiveType == "Text" and "auto" in ent.Tag: fields.append(ent) try: valuesSeen.add(int(ent.Text)) except ValueError: pass if not fields: print 'No text objects with a tag of "auto" found.' return increment = len(valuesSeen) for ent in fields: view.Select(ent) value = ent.Text desc = 'Old value was "%s"' % value try: value = str(int(value) + increment) desc += ', incremented by %d' % increment except ValueError: pass # Comment out the next line if you want auto-increment only, # with no prompts. value = ThisApplication.PromptForValue("New value for text ID=%d" % ent.ID, desc, str, value) if value is None: print "Cancelled" return ent.Text = value ent.Update() view.Select(oldselect) CAMUtils.GenerateToolpaths(view) while view.CurrentEditMode is not None: app.Sleep(1) CAMUtils.GenerateGCodeOutput(view) main()