ixmilia / dxf

MIT License
205 stars 65 forks source link

DxfEllipse - thickness missing #202

Open APOSWE opened 9 months ago

APOSWE commented 9 months ago

Hello! I'm using the IxMilia.Dxf-nuget and i wondered, why the stroke of the ellipse is thicker. It looks like the property thickness is missing in the DxfEllipse? Then i was looking at the source on github and the whole class is missing here? (src/IxMilia.Dxf/Entities) Can you help me?

brettfo commented 9 months ago

You're correct that the Thickness property is not on the DxfEllipse class, but it sounds like that property isn't what you're looking for. In a DXF file, an entity's thickness isn't how thick or thin the line is, rather it's more like an elevation, or how tall it is.

If you're looking to modify how thick the entity is drawn on the screen or paper then you likely want to use the LineweightEnumValue property. This value is described under code 370 here. The value is a short that corresponds to the width of the line in milimeters * 100, e.g., a value of 25 means 0.25mm. N.b., the LineweightEnumValue property is only honored on DXF R2000 or newer files, so if you're using this library to create a file you'll have to do something like this:

DxfFile dxf = new DxfFile();
dxf.Header.Version = DxfAcadVersion.R2000;
// ...
DxfEllipse ellipse = new DxfEllipse(...);
ellipse.LineweightEnumValue = 75; // 0.75mm
// ...
dxf.Entities.Add(ellipse);
// ...
dxf.Save("path/to/file.dxf");
APOSWE commented 9 months ago

ok thank you! and why is the source on github not complete?

brettfo commented 9 months ago

What do you mean by not compete? The spec for ellipse doesn't list thickness as an available property.

On a related note, code is never complete and always able to be improved and this library is something I do in my spare time so it doesn't get 40 hours/week of work.

APOSWE commented 9 months ago

Sorry, I worded myself a bit unclearly! You're doing a great job! And if I can help in any way, please let me know!

I tried to find out exactly the difference in order to accurately describe the issue! There I was looking for "DxfEllipse" under the path which i saw in the VS. image

And in github i couldn't find that class "DxfEllipse"... that was why I was asking if the source is not complete. image That's what I meant by not source complete... I hope I have been able to clear up the misunderstandings a little 😬

brettfo commented 9 months ago

Ah, I see. Much of the code is generated at build time; look at the IxMilia.Dxf.Generator project. The properties for DxfEllipse are defined here and the generator builds the necessary code for the entity.

APOSWE commented 9 months ago

really great and clever approach! Hopefully I can bother you a few more times if I have a question... :-)