LibreDWG / libredwg

Official mirror of libredwg. With CI hooks and nightly releases. PR's ok
https://savannah.gnu.org/projects/libredwg/
GNU General Public License v3.0
947 stars 230 forks source link

Broken Text Style write on win64 only #346

Closed Dev7741 closed 3 months ago

Dev7741 commented 3 years ago

With font_file: arial.ttf (EED name "Arial", flag 34).

Dev7741 commented 3 years ago

After opening DWG in AutoCAD 2013 version for "Text style" dialog "Font Name" and "Font Style" field coming as blank for "Standard" style. Please refer below image.

TextStyle

rurban commented 3 years ago

But how did you create this DWG exactly? DXF, Json, dwgadd? Can I have the source of this?

Dev7741 commented 3 years ago

I have created DWG using Json file on latest release build "0.12.4.4317". Please find attached Zip file contain JSON file.

Circle_Version_2000.zip

Dev7741 commented 3 years ago

@rurban Are you able to reproduce the issue?

rurban commented 3 years ago

No, no time yet, sorry

Dev7741 commented 3 years ago

Any updates?

Dev7741 commented 3 years ago

@rurban Any updates?

timoria21 commented 3 years ago

Hello,

I'm ready to donate $100 for getting all the details to resolve this issue? Can somebody provide me the donation link?

Thanks.

rurban commented 3 years ago

Not able to reproduce with AutoCAD r2018. See my style dialog gh346-style

after converting your json to a r2000 DWG with current master. The provided Arial.ttf font (via EED) is clearly properly selected The AutoCAD Importer also reports no STYLE error.

Since 0.12.4.4317 there were also quite a lot fixes.

Dev7741 commented 3 years ago

Hi,

I have checked on latest release build (0.12.4.4348) using same JSON file on AutoCAD 2013 and AutoCAD 2018(windows 10- 64 bit) however issue is reproducible on my machine. please see below snapshot. Error

Also reported text Style error. Please see below Error.

Reading handle 11 object type AcDbTextStyleTableRecord Error 34 (eWrongObjectType) Object discarded Reading handle 132 object type AcDbTextStyleTableRecord Error 34 (eWrongObjectType) Object discarded

on my machine Arial.ttf font file is at default location i.e. "C:\Windows\Fonts". Do we need to copy font file to other location?

rurban commented 3 years ago

This seems to be the problem:

Reading handle 11 object type AcDbTextStyleTableRecord
Error 34 (eWrongObjectType) Object discarded
Reading handle 132 object type AcDbTextStyleTableRecord
Error 34 (eWrongObjectType) Object discarded

the path is fine, I think

rurban commented 3 years ago

Can you also attach the generated DWG and LOG file, please. Must be some windows thing then, I think. Doesnt look like a locale thing

Dev7741 commented 3 years ago

Please find attached SampleFiles.zip folder SampleFiles.zip . It contains: Original DWG file name: Circle_Original.dwg JSON file name: Circle_Test_2000.json Generated DWG file name: Circle_Newely_generate.dwg Log file name: LogFile.txt

Please let me know if more information is required.

rurban commented 3 years ago

I can repro it on windows. Some wrong size calculation!

Dev7741 commented 3 years ago

Any updates?

rurban commented 3 years ago

no sorry. I was on holidays, and haven't fixed my windows vm/machine yet

On Tue, Sep 7, 2021 at 6:48 AM Dev7741 @.***> wrote:

Any updates?

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/LibreDWG/libredwg/issues/346#issuecomment-913987086, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAAKGUOXGMAA5KFX4IPFO33UAWKP3ANCNFSM46BEVDQA . Triage notifications on the go with GitHub Mobile for iOS https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675 or Android https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.

-- Reini Urban

timoria21 commented 3 years ago

Reini,

If you tell me what to check I can try by myself.

rurban commented 3 years ago

Debug into the handle corruption

Dev7741 commented 3 years ago

Did you find any handle corruption code. If you know any class or function where there is chance of handle corruption. Please let us know we will debug the particular code.

timoria21 commented 3 years ago

Hi Reini,

Can you please be more specific? Where in the code do I need to check?

Thank you.

rurban commented 3 years ago

Fixed one part. remaining error: make && programs/dwgwrite.exe -v1 -y Circle_Version_2000.json => Warning: Wrong object size: 19659 + 18 = 19679 != 19691: -12 off ... in encode.c:3925

rurban commented 3 years ago

Fixed the 2nd part, no more corrupt handle sizes.

Dev7741 commented 2 years ago

Thanks for the fix.

We have merged the modified code at our end and observed that out of two error one is fixed and below error is reproducible at our end. Reading handle 11 object type AcDbTextStyleTableRecord Error 34 (eWrongObjectType) Object discarded

If possible could you please provide latest release build so we can check at our end.

rurban commented 2 years ago

Still working on the merge. mingw is broken a bit

timoria21 commented 2 years ago

Thanks Reini, I feel we are very close to resolving the issue.

rurban commented 2 years ago

Is it good now?

timoria21 commented 2 years ago

No, please go on with the merge.

timoria21 commented 2 years ago

Why the issue is now tagged "need info"? I was simply happy to see that you were doing progress on this.

rurban commented 2 years ago

David J. Harris @.***> schrieb am Di., 5. Okt. 2021, 20:20:

Why the issue is now tagged "need info"? I was simply happy to see that you were doing progress on this.

Because i need feedback if the problem is now solved or not.

Dev7741 commented 2 years ago

Hi,

I have checked on latest release build (0.12.4.4362) using same JSON file (Circle_Test_2000.json) on AutoCAD 2013(windows 10- 64 bit) however newly created drawing get crashed while opening drawing. Please see below message get displayed while opening drawing.

image

Please let us know if more information is required. Thanks

timoria21 commented 2 years ago

Hi Reini,

Do you need something else to reproduce the issue? Did you make any progress?

Thank you.

Dev7741 commented 2 years ago

Hi,

I have checked on latest release build (0.12.4.4367) using same JSON file (Circle_Test_2000.json) on AutoCAD 2013(windows 10- 64 bit).However the issue is reproducible at our end with same error message which was mentioned in my last comment.

Please let me know if more information is required.

Thanks.

timoria21 commented 2 years ago

Hi Reini,

I finally discovered where the problem is, the fix is valid for AutoCAD v2007 and v2012 but NOT for AutoCAD v2013 and up.

In particular, I've tested v2013, DwgTrueView 2014 and DwgTrueView v2021.

Can you please check?

Thanks.

timoria21 commented 2 years ago

Hi again. Is there anything I can check by myself?

rurban commented 2 years ago

David J. Harris @.***> schrieb am Do., 18. Nov. 2021, 11:05:

Hi again. Is there anything I can check by myself?

If you can.

You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/LibreDWG/libredwg/issues/346#issuecomment-972716781, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAAKGULCNL7ZVR5L3MA5DGDUMTFU3ANCNFSM46BEVDQA . Triage notifications on the go with GitHub Mobile for iOS https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675 or Android https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.

timoria21 commented 2 years ago

Sorry, I don't understand your reply. If you provide me with some context and the things I need to check I can try to help you. Without any instruction, I don't know where to start... Thanks again.

timoria21 commented 2 years ago

Happy New Year Reini,

I'm close to giving up my project based on LibreDWG because of the lack of support of the latest version of AutoCAD for the issue: https://github.com/LibreDWG/libredwg/issues/346

Unfortunately, without your help, I am unable to resolve this problem by myself and even after offering you a new donation you don't reply anymore.

You are probably busy on different projects. I want to thank you for the effort and please confirm you are unable/uninterested to help me with this.

Thanks again,

Dave [https://opengraph.githubassets.com/66e51f7bfd15175428ea452f8b0dbab08e1d2df207df6221b86e0b1c5277f967/LibreDWG/libredwg/issues/346]https://github.com/LibreDWG/libredwg/issues/346 Broken Text Style write on win64 only · Issue #346 · LibreDWG/libredwghttps://github.com/LibreDWG/libredwg/issues/346 With font_file: arial.ttf (EED name "Arial", flag 34). github.com


From: Reini Urban @.> Sent: Thursday, November 18, 2021 7:28 AM To: LibreDWG/libredwg @.> Cc: David J. Harris @.>; Comment @.> Subject: Re: [LibreDWG/libredwg] Broken Text Style write on win64 only (#346)

David J. Harris @.***> schrieb am Do., 18. Nov. 2021, 11:05:

Hi again. Is there anything I can check by myself?

If you can.

You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/LibreDWG/libredwg/issues/346#issuecomment-972716781, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAAKGULCNL7ZVR5L3MA5DGDUMTFU3ANCNFSM46BEVDQA . Triage notifications on the go with GitHub Mobile for iOS https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675 or Android https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.

— You are receiving this because you commented. Reply to this email directly, view it on GitHubhttps://github.com/LibreDWG/libredwg/issues/346#issuecomment-972821861, or unsubscribehttps://github.com/notifications/unsubscribe-auth/ATBSPWLDHOCYJB7WDIJFTUTUMTWOZANCNFSM46BEVDQA. Triage notifications on the go with GitHub Mobile for iOShttps://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675 or Androidhttps://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.

rurban commented 2 years ago

I'm interested, but that's a very hard problem for me, when I cannot reproduce it and have no further ideas. This takes time.

Dev7741 commented 2 years ago

"Please try to reproduce on AutoCAD 2013 and above version.Please let me know if you want any more information to reproduce the issues".

timoria21 commented 2 years ago

Do you mean you don't have AutoCAD 2013 or up to reproduce the issue?

rurban commented 2 years ago

On Tue, Jan 11, 2022 at 9:51 AM David J. Harris @.***> wrote:

Do you mean you don't have AutoCAD 2013 or up to reproduce the issue?

I do have an AutoCAD 2018, but on mac, where I cannot reproduce it. I don't have a Windows PC currently, this is in work.

timoria21 commented 2 years ago

Please give me the exact instructions on what you would do on AutoCAD 2018 on Windows PC to make your tests and I will be more than happy to do them for you and attach the results here.

timoria21 commented 2 years ago

Hello, what if I give you access to my Windows machine using TeamViewer with an AutoCAD 2013+ version? Did you consider installing AutoCAD on Parallels on your Mac?

timoria21 commented 2 years ago

Hello again, any update on the AutoCAD 2018 on Windows PC ?

Thank you.

timoria21 commented 2 years ago

Hello Reini,

I've just donated another $100 for this problem to be resolved.

More than one year is passed since my last donation, I hope you can find some time to fix it.

Dave

timoria21 commented 1 year ago

Hello Reini,

Any chance to resolve this issue? Would another donation help?

Thanks,

Dave

michal-josef-spacek commented 1 year ago

Hi guys, what's a problem in this issue exactly?

As i understand: 1) We have Circle_Original.dwg created in AutoCAD 2000 (AC1015) 2) We are creating Circle_Original.json by libredwg. 3) We are creating Circle_Newely_generate.dwg from Circle_Original.json by libredwg (AC1015). 4) We cannot open generated file in AutoCAD 2013 and up on Windows64.

It's right?

rurban commented 1 year ago

Almost: ad 4) AutoCAD can open it, but goes into recovery mode with an error in the textstyle. There seems to be some undocumented slack. See #322

timoria21 commented 1 year ago

Any news on this? Would a new donation help in resolving this issue?

Is it possible that nobody has a hint on what triggers the recovery mode in AutoCAD?

I mean, wrong header, wrong checksum, or what? I want to investigate this issue. I've compared an AutoCAD genuine DWG file with the one written by LibreDWG with a Binary Dumper and there are so many changes along the file data.

Thank you.

michal-josef-spacek commented 1 year ago

@timoria21 Could you respond to my question in https://github.com/LibreDWG/libredwg/issues/346#issuecomment-1486857584 ?

btw: There was progress in fixing bugs in conversion from DWG to JSON in LibreDWG. In the case of your file, there are still some issues. I created https://metacpan.org/pod/test-dwg-libredwg-json tool, which converts DWG file to JSON, back to DWG and back to JSON, and diff JSONs. Actual result is:

697c697
<       "strings_area": "00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"
---
>       "strings_area": "30000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"
716c716
<       "strings_area": "00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"
---
>       "strings_area": "30000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"
735c735
<       "strings_area": "00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"
---
>       "strings_area": "30000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"
1188c1188
<       "unknown_bits": "4254DD185B99185C990028000000000000F83F0000000000003E0FC00000000000004901028000000C1008070000C3001FDFF8000000C1003FBFF000000182007F7FE00000030400FEFFC00000060801FDFF8000000C1003FBFF000000182000000000000000C2020B0000001820100E000186003FBFF000000182007F7FE00000030400FEFFC00000060801FDFF8000000C1003FBFF000000182007F7FE0000003040000000000000012404160000003040201C00030C007F7FE00000030400FEFFC00000060801FDFF8000000C1003FBFF000000182007F7FE00000030400FEFFC00000060804020BF1900B12888A888A88803",
---
>       "unknown_bits": "4254DD185B99185C990028000000000000F83F0000000000003E0FC00000000000004901028000000C1008000000C0001FDFF8000000C1003FBFF000000182007F7FE00000030400FEFFC00000060801FDFF8000000C1003FBFF000000182000000000000000C2020B00000018201000000180003FBFF000000182007F7FE00000030400FEFFC00000060801FDFF8000000C1003FBFF000000182007F7FE00000030400000000000000124041600000030402000000300007F7FE00000030400FEFFC00000060801FDFF8000000C1003FBFF000000182007F7FE00000030400FEFFC00000060804020BF1900B12888A888A88803",
1206,1207c1206
<             "index": 256,
<             "rgb": "c3000007"
---
>             "rgb": "c0000000"
1263,1264c1262
<             "index": 256,
<             "rgb": "c3000007"
---
>             "rgb": "c0000000"
1320,1321c1318
<             "index": 256,
<             "rgb": "c3000007"
---
>             "rgb": "c0000000"
5711c5708
<             "rgb": "c8000000"
---
>             "rgb": "c1000000"
5819c5816
<             "rgb": "c8000000"
---
>             "rgb": "c1000000"
5927c5924
<             "rgb": "c8000000"
---
>             "rgb": "c1000000"

This means, that are structural issues in the DWG file from JSON conversion.