def write(self, entity: DXFGraphic): """ Write a DXF entity from the source DXF file to the export file. Don't write entities from different documents than the source DXF file, dependencies and resources will not match, maybe it will work once, but not in a reliable way for different DXF documents. """ # remove all possible dependencies entity.xdata = None entity.appdata = None entity.extension_dict = None entity.reactors = None # reset text stream self.text.seek(0) self.text.truncate() entity.export_dxf(self.entity_writer) if entity.dxftype() == 'POLYLINE': polyline = cast('Polyline', entity) for vertex in polyline.vertices: vertex.export_dxf(self.entity_writer) polyline.seqend.export_dxf(self.entity_writer) elif entity.dxftype() == 'INSERT': insert = cast('Insert', entity) if insert.attribs_follow: for attrib in insert.attribs: attrib.export_dxf(self.entity_writer) insert.seqend.export_dxf(self.entity_writer) data = self.text.getvalue().encode(self.loader.encoding) self.file.write(data)
def write(self, entity: DXFGraphic): """ Write a DXF entity from the source DXF file to the export file. Don't write entities from different documents than the source DXF file, dependencies and resources will not match, maybe it will work once, but not in a reliable way for different DXF documents. """ # remove all possible dependencies entity.xdata = None entity.appdata = None entity.extension_dict = None entity.reactors = None entity.export_dxf(self.entity_writer) if entity.dxftype() == 'POLYLINE': polyline = cast('Polyline', entity) for vertex in polyline.vertices: vertex.export_dxf(self.entity_writer) polyline.seqend.export_dxf(self.entity_writer)
def write(self, entity: DXFGraphic): """Write a DXF entity from the source DXF file to the export file. Don't write entities from different documents than the source DXF file, dependencies and resources will not match, maybe it will work once, but not in a reliable way for different DXF documents. """ # Not necessary to remove this dependencies by copying # them into the same document frame # --------------------------------- # remove all possible dependencies # entity.xdata = None # entity.appdata = None # entity.extension_dict = None # entity.reactors = None # reset text stream self.text.seek(0) self.text.truncate() if entity.dxf.handle is None: # DXF R12 without handles self.entity_writer.write_handles = False entity.export_dxf(self.entity_writer) if entity.dxftype() == "POLYLINE": polyline = cast(Polyline, entity) for vertex in polyline.vertices: vertex.export_dxf(self.entity_writer) polyline.seqend.export_dxf(self.entity_writer) # type: ignore elif entity.dxftype() == "INSERT": insert = cast(Insert, entity) if insert.attribs_follow: for attrib in insert.attribs: attrib.export_dxf(self.entity_writer) insert.seqend.export_dxf(self.entity_writer) # type: ignore data = self.text.getvalue().encode(self.loader.encoding) self.file.write(data)