mozman / ezdxf

Python interface to DXF
https://ezdxf.mozman.at
MIT License
938 stars 191 forks source link

LayoutError: Internal error - not enough space #986

Closed mgohin closed 11 months ago

mgohin commented 12 months ago

Describe the bug Got this error while trying to convert my DXF to image

To Reproduce Information and data needed to reproduce the error:

> ezdxf -V

ezdxf 1.1.3 from /opt/homebrew/lib/python3.11/site-packages/ezdxf
Python version: 3.11.6 (main, Oct  2 2023, 13:45:54) [Clang 15.0.0 (clang-1500.0.40.1)]
using C-extensions: yes
> ezdxf draw -o out.png not_enough_space.dxf

Audit process fixed 19 error(s).
Traceback (most recent call last):
  File "/opt/homebrew/bin/ezdxf", line 8, in <module>
    sys.exit(main())
             ^^^^^^
  File "/opt/homebrew/lib/python3.11/site-packages/ezdxf/__main__.py", line 114, in main
    run(args)
  File "/opt/homebrew/lib/python3.11/site-packages/ezdxf/commands.py", line 397, in run
    frontend.draw_layout(layout, finalize=True)
  File "/opt/homebrew/lib/python3.11/site-packages/ezdxf/addons/drawing/frontend.py", line 231, in draw_layout
    self.draw_entities(
  File "/opt/homebrew/lib/python3.11/site-packages/ezdxf/addons/drawing/frontend.py", line 270, in draw_entities
    _draw_entities(self, self.ctx, entities, filter_func=filter_func)
  File "/opt/homebrew/lib/python3.11/site-packages/ezdxf/addons/drawing/frontend.py", line 806, in _draw_entities
    frontend.draw_entity(entity, properties)
  File "/opt/homebrew/lib/python3.11/site-packages/ezdxf/addons/drawing/frontend.py", line 315, in draw_entity
    self.draw_composite_entity(entity, properties)
  File "/opt/homebrew/lib/python3.11/site-packages/ezdxf/addons/drawing/frontend.py", line 699, in draw_composite_entity
    self.draw_entities(virtual_entities(entity))
  File "/opt/homebrew/lib/python3.11/site-packages/ezdxf/addons/drawing/frontend.py", line 270, in draw_entities
    _draw_entities(self, self.ctx, entities, filter_func=filter_func)
  File "/opt/homebrew/lib/python3.11/site-packages/ezdxf/addons/drawing/frontend.py", line 806, in _draw_entities
    frontend.draw_entity(entity, properties)
  File "/opt/homebrew/lib/python3.11/site-packages/ezdxf/addons/drawing/frontend.py", line 297, in draw_entity
    draw_method(entity, properties)
  File "/opt/homebrew/lib/python3.11/site-packages/ezdxf/addons/drawing/frontend.py", line 377, in draw_mtext_entity
    self.draw_complex_mtext(mtext, properties)
  File "/opt/homebrew/lib/python3.11/site-packages/ezdxf/addons/drawing/frontend.py", line 392, in draw_complex_mtext
    complex_mtext_renderer(self.ctx, self.designer, mtext, properties)
  File "/opt/homebrew/lib/python3.11/site-packages/ezdxf/addons/drawing/mtext_complex.py", line 186, in complex_mtext_renderer
    layout_engine = cmr.layout_engine(mtext)
                    ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/opt/homebrew/lib/python3.11/site-packages/ezdxf/render/abstract_mtext_renderer.py", line 290, in layout_engine
    append_paragraph()
  File "/opt/homebrew/lib/python3.11/site-packages/ezdxf/render/abstract_mtext_renderer.py", line 241, in append_paragraph
    layout.append_paragraphs([paragraph])
  File "/opt/homebrew/lib/python3.11/site-packages/ezdxf/tools/text_layout.py", line 1273, in append_paragraphs
    raise LayoutError("Internal error - not enough space!?")
ezdxf.tools.text_layout.LayoutError: Internal error - not enough space!?

File to reproduce not_enough_space.dxf.zip

Thanks for your help :)

mozman commented 11 months ago

What is the creator application for that DXF file?

The MTEXT entities for the measurement text using columns and set the column properties in a way I haven't seen yet.

mgohin commented 11 months ago

I used ODA file converter

mozman commented 11 months ago

What is the original application that created the DWG file?

mgohin commented 11 months ago

Archicad : https://graphisoft.com/solutions/archicad