def translate_to_code_and_execute(entity): code = str(entities_to_code([entity], layout='msp')) exec(code, globals()) return msp[-1]
import ezdxf from ezdxf.addons.dxf2code import entities_to_code NAME = "A_000217" DXF_FILE = r"D:\Source\dxftest\CADKitSamples\{}.dxf".format(NAME) # DXF_FILE = r"C:\Users\manfred\Desktop\Outbox\{}.dxf".format(NAME) SOUCE_CODE_FILE = r"C:\Users\manfred\Desktop\Outbox\{}.py".format(NAME) doc = ezdxf.readfile(DXF_FILE) msp = doc.modelspace() source = entities_to_code(msp) print('writing ' + SOUCE_CODE_FILE) with open(SOUCE_CODE_FILE, mode='wt') as f: f.write(source.imports()) f.write('\n\n') f.write(source.tostring()) f.write('\n') print('done.')
from pathlib import Path import ezdxf from ezdxf.addons.dxf2code import entities_to_code FILENAME = "A_000217" CADKIT = Path(ezdxf.EZDXF_TEST_FILES) / "CADKitSamples" OUTBOX = Path("~/Desktop/Outbox").expanduser() DXF_FILE = CADKIT / f"{FILENAME}.dxf" SOURCE_CODE_FILE = OUTBOX / f"{FILENAME}.py" doc = ezdxf.readfile(DXF_FILE) msp = doc.modelspace() source = entities_to_code(msp, layout="msp") print("writing " + str(SOURCE_CODE_FILE)) with open(SOURCE_CODE_FILE, mode="wt") as f: f.write("import ezdxf\n") f.write(source.import_str()) f.write("\n\n") f.write("doc = ezdxf.new()\n") f.write("msp = ezdxf.modelspace()\n\n") f.write(source.code_str()) f.write("\n") print("done.")