# first we need to find our main stamp with name 'f4' block = acad.find_one('blockreference', layout.Block, lambda x: 'f4' in x.EffectiveName) if not block: continue block_pos = APoint(block.InsertionPoint) # approximate position of drawing name name_pos = block_pos + APoint(-90, 12) for mt in acad.iter_objects("mtext", layout.Block): if name_pos.distance_to(mt.InsertionPoint) < 5.0: text = mt.TextString yield text.replace(" \\P", " ").replace("\\P", " ") break print def main(): filename = sys.argv[1] if sys.argv[1:] else 'names.txt' output = codecs.open(filename, "w", encoding='utf-8') acad = Autocad() for doc in acad.app.Documents: print doc.Name output.write(u'%s\n' % ('-' * 50)) output.write(u" %s\n" % doc.Name) output.write(u'%s\n' % ('-' * 50)) for drawing_name in iter_drawings_names(acad, doc): output.write(u'%s\n' % drawing_name) if __name__ == "__main__": with utils.timing(): main()
lambda x: 'f4' in x.EffectiveName) if not block: continue block_pos = APoint(block.InsertionPoint) # approximate position of drawing name name_pos = block_pos + APoint(-90, 12) for mt in acad.iter_objects("mtext", layout.Block): if name_pos.distance_to(mt.InsertionPoint) < 5.0: text = mt.TextString yield text.replace(" \\P", " ").replace("\\P", " ") break print def main(): filename = sys.argv[1] if sys.argv[1:] else 'names.txt' output = codecs.open(filename, "w", encoding='utf-8') acad = Autocad() for doc in acad.app.Documents: print doc.Name output.write(u'%s\n' % ('-' * 50)) output.write(u" %s\n" % doc.Name) output.write(u'%s\n' % ('-' * 50)) for drawing_name in iter_drawings_names(acad, doc): output.write(u'%s\n' % drawing_name) if __name__ == "__main__": with utils.timing(): main()
help=u'Не использовать данные об очередности и поле "Конец"') options, args = parser.parse_args() output_file = args[0] if args else u"cables_from_%s.%s" % (acad.doc.Name, options.format) if not options.known_targets and not options.dont_use_known: options.known_targets = output_file known_targets = get_known_targets(options.known_targets) output_table = Table() if options.single_doc: documents = [acad.doc] else: documents = acad.app.Documents for doc in documents: try: cables = get_cables(acad, doc.Modelspace, known_targets) sorted_cables = sort_cables_by_targets(cables, known_targets) for row in sorted_cables: output_table.writerow([s for s in row]) except Exception: logger.exception('Error while processing %s', doc.Name) output_table.save(output_file, options.format) if __name__ == "__main__": with timing(): main() # TODO append to existent file option # TODO atomic write