QCAD

QCAD - 2D CAD System.

Click here for a documentation of the DokuWiki formatting syntax that can be used in reports

Please search for existing tasks (also closed ones) before opening a new task.

Please make sure that you are using the latest Version of QCAD before posting a bug (menu Help - Check for Updates)

Tasklist

FS#993 - QCAD fails to load drawing with message: maximum recursion depth reached

Attached to Project: QCAD
Opened by Stijn Verholen (sverholen) - Monday, 16 December 2013, 13:20 GMT+2
Last edited by Andrew (andrew) - Thursday, 19 December 2013, 10:30 GMT+2
Task Type Bug Report
Category Main
Status Closed
Assigned To Andrew (andrew)
Operating System Ubuntu Linux
Severity Medium
Priority Normal
Reported Version 3.4.4
Due in Version Undecided
Due Date Undecided
Percent Complete 100%
Votes 0
Private No

Details

Since today, QCAD fails to load my drawings, with the following error message in the console:

Warning: RBlockReferenceData::getBoundingBox: maximum recursion depth reached: block: “Drukknop”

The block in question is the AREI (Belgian standard for symbols in electrical installations) symbol for a “button” light switch.
It’s a small and simple drawing (see attachment).

I’ve added a lot of these buttons in the drawing since the previous version, but there were some already present, and this never caused problems.

QCAD version: QCAD 3.4.4 Pro for Ubuntu Linux 32bit
System output: see attached file

This task depends upon

Closed by  Andrew (andrew)
Thursday, 19 December 2013, 10:30 GMT+2
Reason for closing:  Fixed
2014-02-21: A request to re-open the task has been made. Reason for request: I casually downloaded the attached 1_benedenverdieping__nieuw.dxf and tried to load it. While it does load fine in 3.4.6, community (as of Git a78b12) fails to load it. It starts spewing <code>Warning: RBlockReferenceData::getBoundingBox: maximum recursion depth reached: block: "Drukknop"</code> and that's about all it does.
Comment by Andrew (andrew) - Monday, 16 December 2013, 13:24 GMT+2

Thanks for your report.

I understand that the attached file represents the block definition you are using.
Please attach or e-mail the DXF file that actually causes the problem when being loaded. Thanks.

Comment by Stijn Verholen (sverholen) - Monday, 16 December 2013, 15:16 GMT+2

Please find the drawing that doesn't load attached.
Also, note that I've created a dxf for every floor of the house. The other dxf files also don't load anymore, with the same error message.

Thanks in advance.

Comment by Andrew (andrew) - Monday, 16 December 2013, 15:28 GMT+2

Thanks.

The following blocks contain indeed recursive references to themselves:
'drukknop', 'droogkast', 'microgolfoven'

I cannot tell at this point how it was possible to create a drawing that does that since QCAD usually does not allow you to insert a reference to block 'A' into block 'A'.

I've attached the fixed file.

Comment by Stijn Verholen (sverholen) - Monday, 16 December 2013, 16:19 GMT+2

Strange. I've noticed this when I first started using those blocks, but it never caused problems before.
The blocks would be represented in the block list both as "Droogkast" and as "droogkast". When clicking on one of those block names, the same block would be selected, as expected.

These blocks were imported from an online library I found and some have had other problems, such as repeating itself onto itself when inserting them into a drawing, but with a slight offset, resulting in a kind of smear effect.

Could the problem appear now because between version 3.4.3 and 3.4.4, some code was changed that distinghuished block names based on capitalisation ? (Something like removing a toLowerCase() statement somewhere.)

Is there a way I can fix my dxf files myself ? I have amassed quite a few :)

Comment by Andrew (andrew) - Thursday, 19 December 2013, 10:29 GMT+2

A fix is available in QCAD 3.4.5 (released on Dec 18).
Recursive block references are 'grounded' (set to invalid) when loading such a file. If you save the file again, those invalid references are removed completely.

Loading...