26

(209 replies, posted in Import DXF)

Lots to respond to...

andrew wrote:

Howdy all, hope this is the correct place for bugs on DXF conversion

The QET Forums, either this thread or creating a new one, are probably the best place for this. I do use Github Issues (https://github.com/Vadoola/dxf2elmt/issues) for tracking problems or enhancements etc., but if you make a post here, there can be a bit more discussion about it and I can make an Issue on Github, you are more then welcome to make a Github Issue as well though.


Thanks for the spreadsheet, I can take a look at it. The scaling should be in there already, but only recently and includes all the units supported by DXF. The code can be seen here: https://github.com/Vadoola/dxf2elmt/blo … od.rs#L213. Perhaps you grabbed a slightly older version of the conversion utility, because I only checked in that code a few days ago.

andrew wrote:

its set in inches 'cause I'm 'Murican

Now worries, I to am 'Murican, but have been living in New Zealand (where my wife is from) for a while now, that's why I'm late to the party here, I was asleep for most of this conversation.

andrew wrote:

and the text is garbled to heck

Yeah there is still quite a bit of work to do on the text but I'm slowly chipping away at it.
There are multiple text types in DXF
    * ArcAlignedText
    * MText
    * RText
    * Text
Right now Text should be somewhat well supported, but there are issues. MText has some very early and crude support, and the other two have no support. Just looking at the screenshot you shared (without having looked at the DXF yet) I'm guessing these are regular "Text" objects.

scorpio810 wrote:

I saw these fonts size was so biggest, like size= 1298 px ....

andrew wrote:

@Scorpio810, I may have to look into file format, but I assume the DXF has font size and QET has font size, so can't we get a porportion based on doc size and then just hit the font sizes with that (rounded as needed)

A font size of 1298 certainly seems wrong, I'll have to do some testing on that file to see what's going on. The DXF actually stores font height in drawing units, so if the drawing defaults to inches, the text height will be stored in inches not font points. I convert between real world units and font points at the code Laurent linked above and round it to a whole number. The conversion is based on the definition of a PostScript font point where 1pt is defined as 1/72 of an inch, and in my testing so far this seems to work well.

andrew wrote:

Also if it's prescaled, I wonder if prev document I converted from DWG->DXF->Element was messed up or if I did some dragging around 1st by mistake

It's certainly possible and hard to know. I'll take a closer look at the dxf and see what I can find, it might be a couple of days before I can get to it though.

27

(209 replies, posted in Import DXF)

plc-user wrote:

The primary aim is to obtain a “respectable” QET element that we can scale in a second step if necessary. The prerequisite for an element that requires little reworking is, of course, that circles from the dxf also look like circles in the element. To achieve this, the element size must be appropriate.

With the logic I added to check for circle shaped polygons and converting them to QET ellipses hopefully this will be less of an issue, but I know there is more work to be done here.

plc-user wrote:

Do we have the chance to determine during import whether the numerical values in the unitless dxf are so small that scaling would be necessary? Something similar to: “Values are all smaller than xx, so will be enlarged by a factor of 10 or 100!

Good question, and I'm not sure what a good default value would be. I didn't parse through all the QET Elements, but I looked at the Ladder Diagram elements, and they are 20px high (if I recall this was a couple of days ago).  So that's probably a good absolute minimum size for an element. However I doubt people will be importing dxf's of tiny simple drawings like a ladder diagram coil or contact. This would probably be mostly used for importing drawings of real life objects. I'm wondering if something like if it's under 20px high, we multiply it by 10? I feel like we might need to find some more sample files to test against. There may be enough differences here that it's not easy to come up with a good default.

I also just pushed another commit tonight that has some early stage work for properly scaling the fonts based on the size in the dxf file. From my testing so far there are some issues with the placement of the text due to a bigger boundary box in QET than what I believe the dxf is expecting, but it's an improvement over what was there before.

28

(209 replies, posted in Import DXF)

plc-user wrote:

Maybe it is necessary also to take the tag $MEASUREMENT into account?
In the file “05DI-AD16DIX-10.dxf” one can find this:

$MEASUREMENT
 70
     0
  0

When imported in current FreeCAD dev-version you can measure the terminal-width: 18,19 mm (see screenshot)

Yeah I will probably need to use both to try and figure it out. That DXF file seems to be a bit all over the place. I opened it up in QCad, and in the details is the said the drawing was Unitless, the Paper was in millimeters, and the hatching was in imperial units....

That same section of Terminal Block according to QCad was 1.09, I'm not sure where that number is coming from, and don't see any obvious way to make it line up with the 18.19mm you got from FreeCad

plc-user wrote:

@scorpio810:
Do you know the manufacturer and name of that part to get the real dimensions, Laurent?

To me it looks like it might be a Distech ECY-DI16. I found this PDF (https://docs-be.distech-controls.com/bu … les_SP.pdf) with some dimensions from various parts in that series, but none of the drawings show the terminal blocks like in the dxf. Going off the width of the main module and not the terminal blocks, that PDF gives 2.95 inches / 74.99mm. QCad is giving me "1.51983129"...I really have no clue where that is coming from.

So I went ahead and installed FreeCad, and measuring that same base part of the dxf file I got 39.03mm....which once again no obvious way that lines up to 74.99mm. It seems if no units are defined perhaps the CAD program just make a best guess, and each one does that differently?

29

(209 replies, posted in Import DXF)

plc-user wrote:

I have noticed that there are differences in the unitless dxf files.
The test file for 1-point polygons does not contain “INSUNITS” and the file “05DI-AD16DIX-10.dxf” (see here https://qelectrotech.org/forum/viewtopi … 379#p20379) contains the tag “INSUNITS”, but no entry “70” for the unit, but this:

INSUNITS
350
99E
  3

Thanks for looking into this. It looks like INSUNIT (https://help.autodesk.com/view/ACD/2025 … F55A2B4FD8) is for trying to match the scaling between a block and the drawing its inserted into. Gives me a good place to start looking further.

30

(209 replies, posted in Import DXF)

Salut Laurent,
Hallo plc-user,

scorpio810 wrote:

I'll have to find plc-user's messages about the dimensions of the thumbnails, like this.
https://qelectrotech.org/forum/viewtopi … 393#p17393

plc-user wrote:

As I suggested several times we should use a front-view-scaling where the user can see the real size at first sight or where he/she can calculate the real size by using a simple integer factor:
1 mm <-> 2 px

1 px is also the smallest step size, a QET-Element can be moved in diagram-editor. So then we could "move" the elements by 1 px = 1/2 millimeter in real-life.

Thanks going through these discussions was a good read. Either I hadn't seen these or just forgot about them, when I got back and started working on this. I agree the 1 mm <-> 2 px ratio seems like it would work well, I'll make this change and do some testing on it.

Another question is if I have a dxf that is "unit less" should I do any scaling at all or just assume it's in pixels. I don't recall which drawing it was at the moment, I'll have to try and go back to find it, but I had one drawing which was unit less and with no scaling it was quite small, but with no dimensions at all it's hard to make any assumptions and give a reasonable output that would work across all drawings. So perhaps it's better to just leave them as is, and if the user needs to scale using QET_ElementScaler they do.


plc-user wrote:

Hello vadoola!
About the texts / fonts

That wasn't meant as a negative criticism: just a remark that this is the case.
It is clear to me in particular that there is still a lot of work to be done to integrate the texts correctly into the element. You will have "a lot of fun” with the text position, because it is not directly on the baseline of the first letter, but on a bounding box that is specified by qt, but not well described...

A difference to many other software: QET can only handle font-sizes which are integer numbers!

No worries I didn't interpret it as negative criticism. I was just trying to point out myself that right now nothing is really handled at all for fonts and there is a lot of work there.

In another forum post there was a bug report about the text ending up in the wrong location. I looked into it and found out why, but fixing it wasn't so straight forward. Essentially per the DXF spec, if text isn't using the default alignment of Top and Left, you need to use the "Second alignment points" and then calculate the size of the text in the appropriate font, to get the x and y coordinates. Reading in these second alignment points from the DXF is easy, but calculating the text dimensions in the appropriate font not so much.

I already started doing a bit of work on the font handling stuff last night. There is a lot of work to do there, but hopefully I can start getting some small improvements going.

31

(209 replies, posted in Import DXF)

Hallo plc-user

plc-user wrote:

Hello Vadoola!
It looks very good, but unfortunately I have to say that the dimensions are not yet right. There's a factor of 10/3 in there somewhere with the part I used. The attached part has the dimensions 60 x 210 mm, but the resulting element is 200 x 700 px.

That calculation is based on trying to map the real world dimensions to pixels based on an A4 Sheet of paper using the standard QET Template. The standard QET Template I believe is 700px high (including the title block) and landscape, so that would come out to 700/210mm = 3⅓px per mm, which comes out to 200x700px, and printed on an A4 sheet of paper should be roughly the real world dimensions of 60x210mm. That is obviously a very large item on an A4 sheet of paper, real world dimensions in landscape it's about 30% of the height, and 70% of the width, so perhaps this isn't the best way to do it. I am open to suggestions or thoughts on how better to map the real world dimensions to useful pixels for the elements.


plc-user wrote:

And when I look at the texts that come out of a previously used example (05DI-AD16DIX-10.dxf): There the font is not correct yet and the font height is not set either, so QET uses the default size 9 when opened.

In the original code from Antonio there were a handful of things that were hard coded, whether the polygon was open or closed for example was just hard coded initially to false, then true, instead of reading it from the dxf. I'm slowly going through and trying to clean these up and grab the information from the dxf where it exists and use it appropriately. The Fonts for the text is one of these, he just had a hard coded "Arial Normal" in there with no font sizing regardless of what was in the DXF. This is the next thing I plan on tackling is reading in this information correctly and using it.

32

(209 replies, posted in Import DXF)

Hello Laurent,

Strange, that looks like debugging info I had in there while I was testing, but I just checked the last commit (fb09197) and I had removed it before committing.

Are you sure you grabbed the latest commit?

The other possibility is I screwed something up, the last time I worked on a (non-plc) project as a team was in C++ but probably 12+ years ago now and we were using SVN. All my experience with Git is as a solo developer, and I have a tendency to just work off the main branch. I know it's not best habits and have been trying to learn better git technique, so I was working on these features in a different branch and then merged them. Perhaps I didn't merge them correctly, and you aren't seeing the latest code?

33

(209 replies, posted in Import DXF)

Hi Laurent, plc-user

I know I disappeared for a while, had some family issues to deal with.

The past few days I've been back at it. I know there are some bugs, but I've been working on 2 features, and if you would be able to do some testing that would be helpful.

The new features are

  • Scaling: I wasn't sure the best way to convert from real world units (inches, cm, etc) to the pixels used by QET, I decided to assume the default QET template and column/row layout would map to an A4 sheet of paper and used that to map between pixels and real world units. I'm not saying it's the best option, but in my testing so far seems to work fine. If you have any other suggestions on how to do this, let me know.

  • Ellipse Conversion: The program now tests Polylines, and LwPolylines to test how close to a circle they are, and converts them to a QET Ellipse element if it's pretty circular, instead of a multi-segmented polygon. This would prevent one of the issues that plc-user brought up when suggesting the scaling, due to some "circles" looking bad when dropped down to 2 units of precision. There are some limitations, such as this works on single polylines that make up a rough circle, but I have some DXFs where there are "circles" made of several polylines, those won't get converted by the current code

In a few of my tests I've noticed some issues with Text, and text scaling, I'm going to look into those and try to resolve them next.

34

(209 replies, posted in Import DXF)

scorpio810 wrote:

Interesting for check dxf convertion with new dxf2elmt new builds.
https://github.com/LibreDWG/libredwg/tr … /test-data

Nice find, I've been wanting to find a bunch of files I could test against.

35

(209 replies, posted in Import DXF)

scorpio810 wrote:

I've noticed that many more DXF files are now being converted,
whereas previously they would generate an error and can't be converted.... nomicons/wink

So it sounds like it's well worth upgrading to the master branch, and its pretty easy to make it compile.

Do you want to issue a pull request, or should I just make the few changes on my branch?

36

(209 replies, posted in Import DXF)

scorpio810 wrote:

Edit: I tried to go to last git main branch but dxf2elmt code can't compile after patched cargo.toml and use cargo update to update cargo.lock...

error[E0599]: no method named `get_is_closed` found for reference `&dxf::entities::Polyline` in the current scope
    --> src/qelmt/polygon.rs:60:26
     |
60   |             closed: poly.get_is_closed(),
     |                          ^^^^^^^^^^^^^
     |
help: there is a method `set_is_closed` with a similar name, but with different arguments
    --> /home/laurent/new_dxf2elmt_vadoola_fork/target/release/build/dxf-a92690d5c3960b91/out/generated/entities.rs:1726:5
     |
1726 |     pub fn set_is_closed(&mut self, val: bool) {
     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

It looks like the function was renamed at some point from get_is_closed to just is_closed, the source between the 2 is identica.

0.5.0

pub fn get_is_closed(&self) -> bool {
        self.flags & 1 != 0
    }

Master

pub fn is_closed(&self) -> bool {
        self.flags & 1 != 0
    }

I haven't tested it properly, but just replacing all the .get_is_closed() function calls with .is_closed() makes it compile for me

37

(209 replies, posted in Import DXF)

scorpio810 wrote:

@vadoola: FYI https://qelectrotech.org/forum/viewtopi … 496#p20496
https://github.com/ixmilia/dxf-rs/issues/46

You use last dxf-rs old tag or master git?

As of right now, dxf2elmt is using the latest official tagged version of dxf-rs from crates.io, which is 0.5.0, tagged all the way back in September 2021.

I have been considering on updating to use the master branch from git, even though it looks like development on dxf-rs has slowed to a crawl there are still updates to the master branch that have happened int he last 3 years.

I think I've seen at least 2 or 3 of these where the dxf reading fails due to some unsupported code point. The past couple of weeks since I tagged 0.4.0 has been mostly investigating issues, and brainstorming. I may try and update dxf-rs to the master branch and see if that breaks anything, and if it fixes any of these reported issues as well.

38

(209 replies, posted in Import DXF)

Hello Laurent and plc-user,

plc-user wrote:

Hello Vadoola!
Salut Laurent !

About the Texts / Fonts:

I don't know, where to find "official" information about fonts in QET, so I noted what I found out about fonts in sources of QET_ElementScaler:
https://github.com/plc-user/QET_Element … nts.h#L301
If no font size is defined in the font-tag it defaults to "9" in QET what often is too big!

So the question is:
Do texts in dxf include a size? I guess so.
So you should add that info to the font-tag in elmt-file, Vadoola.

I'll add it to the list. It looks like the dxf has a text height property, I'm assuming it would be in the same units are the rest of the dxf, ie it's a height in mm, or inches, etc. I would have to convert that into a font size. It looks like I already need to figure out how to do some font processing. One of the forums posts mentioned text not being in the correct spot. I figure out why and documented it in the Issue https://github.com/Vadoola/dxf2elmt/issues/7. Essentially if the horizontal and vertical alignment on the text are not the default (top left), then you need to calculate the location based on a different set of coordinates, and the font rendering. As part of trying to add that in, I can also try to figure out converting the text size in the dxf into a proper font size.

39

(209 replies, posted in Import DXF)

Hallo plc-user

plc-user wrote:

Hello Vadoola,
If you read in the file sequentially and output everything immediately to stdout, the definition-line values can not be correct. As far as I know, the necessary information is not in the dxf...

The original version of the code was doing exactly that, essentially just converting it piecemeal and dumping it to stdout.

Part of the big change that was released in my version 0.4.0 was doing exactly what you are doing, reading the dxf in, converting to to element structures in memory and then writing it out. I made this change exactly for the reasons you are talking about, if I needed to do some processing on it, such as other things we had discussed, determining that a polyline is really a circle and concerting it to an ellipse, etc.

So it sounds like I'm heading in the right direction, I just need to keep ticking away at improvements. I already looked a bit into scaling it and such, I'll take a closer look at how you do it in QET_ElementScaler. Thanks

40

(29 replies, posted in Import DXF)

plc-user wrote:

Ziemlich verwirrt ... Gute Nacht!

Ich bin auch ziemlich verwirrt, aber das liegt vielleicht daran, dass mein Deutsch zwar viel besser ist als mein Französisch, aber nicht gut genug, um dies zu verstehen oder zu schreiben, ohne Google Translate zu verwenden.

plc-user wrote:

da das Kommandozeilenprogramm (zumindest in der letzten Version, die ich kenne) die Werte für die sog. „Definition-Line“ des Elements nicht korrekt berechnet und daher im Diagram-Editor die Elemente nicht korrekt dargestellt werden.

plc-user, können Sie weitere Informationen dazu bereitstellen, was Sie hier meinen, damit ich versuchen kann, der Sache nachzugehen? Oder ist das etwas, das Sie schon einmal erwähnt haben und das ich bereits in den GitHub-Problemen dokumentiert habe?

Hoffentlich ist diese übersetzte Nachricht verständlich.

41

(209 replies, posted in Import DXF)

Hello Laurent, plc-user,

@plc-user that multi-info messagebox looks like a useful way to do it. I agree the box should only popup when it's needed to provide info to a user, if everything goes well they should just get the element in the editor.

In verbose mode to print the element to stdout there shouldn't be a lot of information I think if everything goes well it's mostly just created <file_name>.elmt or something like that I would need to go double check. Clearly though something slipped through in my commit. The "Remove Polygon with one less points" was something I had in there when I was testing the most recent couple of commits, which doesn't convert single point polylines, and converts dual point polylines from Polygons to Line Elements. I thought I had removed them all from the code before commiting, but clearly missed something.

42

(209 replies, posted in Import DXF)

Hello Laurent,

One hour is a long time for a user to be waiting for a result, and there should be no need for that. I'm not sure how reasonable it is to assume a user will just look at the log file after a few minutes though either.

One thing on the list is to add some better logging / error handling into dxf2elemt. Right now on most errors it just panics and unwinds the stack printing an error to stderr.

If the program were to return an error code, ie  0 on success any anything else is an error, I assume you could capture that in QET? That way if dxf2elemt fails as it did with the above code pair issue, QET could capture that failure and pop up an alert or something saying "Conversion failed, see log for further information"

43

(209 replies, posted in Import DXF)

plc-user wrote:

Do dxf files include scaling or dimensioning for the existing values?

When I look at the file Laurent attached in this post (https://qelectrotech.org/forum/viewtopi … 379#p20379), I see a value of 0.7158 for the terminal strip width, for example. That won't be millimetres and inches don't seem to be the unit for the values either. A suitable value might be something like 35 mm, as the terminal spacing (from screw to screw) would then be about 5 mm or 2/10 of an inch.

Since this drawing has to be scaled anyway in order to use it sensibly in QET, it would be very practical if the dimensioning of the values came directly from the dxf file. Then no additional effort would be required to obtain a suitable size of the element.

So doing a quick look into it and found: "
AutoCAD 2000 (AC1015) the INSUNITS variable was introduced. This variable defines the drawing units" so it would depend on what version of DXF as to whether or not I could get this information.

If the files doesn't have scaling we might need to come up with a way to pass parameters to the underlying exe. After selecting the dxf QET has a popup with options that could be added, scaling spline steps etc maybe? I could possible add some GUI and a window to dxf2elmt itself but it will increase the size. If the main GUI interaction is from withing QET it would probably make more sense for QET to handle it, as it already brings along Qt, and dxf2elmt doesn't need to bring it along as a dependency.

44

(209 replies, posted in Import DXF)

scorpio810 wrote:

Hello Vadoola,
Hallo plc-user


./dxf2elmt 05DI-AD16DIX-10.dxf
Error: Failed to load 05DI-AD16DIX-10...
        Make sure the file is a valid .dxf file.

Caused by:
    the code pair '[@110865]340/962' was not expected at this time: expected 0/ENDSEC at line/offset 110865

A quick look shows this is an old issue, it gives the same error with the last released version from antonioaja. It appears the issue is the dxf crate (Rust term for a library) itself failing to parse the file, and it looks like it's an XRECORD entity that's failing.

The DXF crate unfortunately hasn't had a release in 3 years, although the last commit on github was 6 months ago. I did a quick look around when I forked this code and was updating crates to see if there was a better and or more maintained dxf crate for Rust and didn't find one. I'll have to dig into this more to solve the issue, but it may require pulling the dxf crate direct from the github master branch, or even forking the crate to try and update it myself. Having to maintain my own fork would be unfortunate as I only have so much time, so we will see when I get a chance to dig into it a bit more.

kondareddy232 wrote:

2. I couldn't able to import dxf file. It is showing warning and saying that large file will take more time but it didn't import after a hour also.

An hour is a very long time. A couple of questions, were you using DxfToElmt or dxf2elmt?
How big was this dxf file and what was in it? If the DXF was a full drawing, I imagine importing that as an element wouldn't be very efficient, you would probably want to break it up into components and import it.

Any change you would be able to share the dxf file (privately if you can't share it publicly) I can try and do some testing against dxf2elmt.

46

(209 replies, posted in Import DXF)

Hello Scorpio810 and plc-user,

Support for blocks has now been added. The most recent commit 53b3b94 has block support.
There was a pretty big overhaul of the way I handled the conversion, and it's possible some regressions have snuck in that I am unaware of. There are 2 regressions that I do know of:

  • The parameter to pass spline steps is currently being ignored

  • The parameter to choose between Text and Dynamic Text is also ignored, but it now defaults to Dynamic Text

I intend to clean both of these up, but I thought now would be a good time to get some more people testing it and looking for issues. Then after I fix the 2 issues above, and any other related ones, I'll tag it as a new revision.

47

(10 replies, posted in Import DXF)

For what it's worth, I have forked the dxf2elmt program, and have started making changes. I have a version of it offline that supports blocks without exploding them first in something like QCad. I had hoped to clean it up and release it last week, but sometimes life gets in the way of our best intended plans. Hopefully I'll finish cleaning it up soon, and after that people won't need to worry about if there DXF file has blocks or not.

48

(209 replies, posted in Import DXF)

plc-user wrote:

Hello Vadoola,

the angles for the graphic element "arc" are available as integers without decimal places in QET.

Good catch, I'll get that corrected.

49

(209 replies, posted in Import DXF)

Hello Laurent

scorpio810 wrote:

Thanks Vadoola for fixing stdout we can use now your dxf2elmt binary on QET element

You're welcome. I disabled the info printing by default which cleared this up. It occurred to me last night that really a better solution would be to make the info and verbose flags mutually exclusive. The info is on by default if you are running it from the CLI, but passing the -v flag disables the info, it's one or the other. I'll create an issue to document that, but I won't worry about it right away.


scorpio810 wrote:

but FYI build make some warnings:

Sorry, you checked out my master branch which is in a partially complete state. If you grab commit 03efbd8, that has the stdout fix, but shouldn't generate any warnings.

The master branch commit 8309837 has some partially completed restructuring. I'm adding in some code to read the DXF and store the element information before writing it out to XML. This should make it easier for some entities to reference other parts of the drawing (such as blocks), and I believe creates some better encapsulation. Rust by default warns on dead code, functions and structs that are never used, code that can't be reached etc. None of this new code to store the element information from the DXF is called anywhere, hence the warnings. In the main.rs there is line 42:

mod qelmt;

This tells rust the qelmt module (similar to a C++ namespace) exists. If you comment it out, rust won't compile it and all the warning should go away. I had meant to do this before committing, but obviously forgot. All the rest of the code functions as it did before, this last commit is just some of the ground work for refactoring.

50

(209 replies, posted in Import DXF)

plc-user wrote:

This also includes the polygons with only one point each: The original dxf program must have "thought" of representing some parts as 1-point polygons, but do we need that in the QET element? I didn't find anything missing from the example!

This is part of why I wanted to see the original dxf that created these single point polygons (thank you for attaching it). I agree that a single point polygon makes no sense, and these could possible be lines that extend out in the direction away/into the viewport, and they are represented as single point polygons in the exported dxf. I just want to make sure that these aren't being created by some bug in dxf2elemt that is dropping points in the dxf that should exist in the resulting element file. If after some testing we can safely say there is no bug and these are represented in the dxf as single point polygons, it would be easy to filter those out simply by looking at the length of the vector holding the points. Similarly if we end up with a polygon with only two points, it's easy to recognize that and convert it to a line.

plc-user wrote:

My knowledge of DXF is poor, but as I see it, many commercial programs, for example, export single circles as multiple splines, which can never become a space-saving circle or ellipse again when converting. Unless you rework the element in the element editor by hand

plc-user wrote:

On the contrary:
In the dxf and therefore also in the resulting QET element, there are very often polygons that lie directly on top of each other, but which are not recognizable as individual graphic elements.
Nowadays, this is often due to the fact that devices are no longer made from several 2D drawings, but are created directly as 3D models. A 2D dxf drawing is then made from this, which accordingly also contains many hidden lines that inflate the resulting QET element, but do not provide any additional information.

I agree, converting multiple splines that form a circle into a circle element within QET would be preferred, as would getting rid of extra polygons that overlap and aren't seen, and polygons with multiple points that form a straight line. All of these are great ideas and something that I can try and work on, however they can get far more complicated than just checking the number of points. With a straight line multi-point polygon I need to do some math on it to determine if it's a line.

With the multiple spline circles, or overlapping polygons I need to look at multiple elements in combination to determine the shape, this gets far more complicated, as now not only am I trying to determine a shape from multiple elements, but I might need to do this processing on multiple combinations of splines withing the dxf. each new object would significantly increase the number of combinations that need to be looked at.

I could try and start with an easier route. After I get clean up and get the block importing finalized I could try and do some shape testing for circles made of splines etc, just within each block. This would reduce the number of combinations that need to be processed.

I think these points that you have brought up are very worth goals, and I'll add them to the issue tracker for the project, but they are quite complicated features, and I'll probably concentrate on some other simpler clean up and fixes before I try and tackle them.