Как корректно открыть DXF?

Автор Тема: Как корректно открыть DXF?  (Прочитано 5342 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Тема содержит сообщение с Решением. Нажмите здесь чтобы посмотреть его.

Оффлайн R.I.ChernovАвтор темы

  • ADN Club
  • *****
  • Сообщений: 554
  • Карма: 18
Как корректно открыть DXF?
« : 11-06-2021, 02:21:48 »
Доброго времени суток, уважаемые форумчане! Прошу помочь в решении данного вопроса.
Мне необходимо в инвенторе открыть набор файлов dxf, считать с них информацию и провести дальнейшие манипуляции.

Открываю документы как-то так:

Код - C# [Выбрать]
  1. _oApp.SilentOperation = true;
  2. // почему он видимый?
  3. DrawingDocument doc = (DrawingDocument)_oApp.Documents.Open(documentName, false);
  4. doc.UnitsOfMeasure.LengthUnits = UnitsTypeEnum.kMillimeterLengthUnits;
  5. _oApp.SilentOperation = false;

Документы DXF разные, создавались разными людьми. Получается такая штука, что одни открываются корректно, а в других Invenor воспринимает размеры из DXF файла как дюймы и в итоге эскиз строит в 25,4 раза больше. Буду благодарен любой догадке, ибо я вобще в тупике (((

П.С. Бонусный вопрос )) Может кто-то в курсе, почему я в Documents.Open() посылаю параметр OpenVisible = false, а чертеж открывается все равно видимым?
В программировании я новичок...но ненадолго! ;)

Оффлайн mikazakov

  • ADN
  • *
  • Сообщений: 658
  • Карма: 169
  • Skype: mikazakov@mail.ru
Re: Как корректно открыть DXF?
« Ответ #1 : 11-06-2021, 05:11:35 »
Пару файлов dxf для примера

Оффлайн R.I.ChernovАвтор темы

  • ADN Club
  • *****
  • Сообщений: 554
  • Карма: 18
Re: Как корректно открыть DXF?
« Ответ #2 : 11-06-2021, 16:18:08 »
Пару файлов dxf для примера
Да, разумеется.
В программировании я новичок...но ненадолго! ;)

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13166
  • Карма: 1701
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Как корректно открыть DXF?
« Ответ #3 : 11-06-2021, 18:17:03 »
R.I.Chernov,
https://knowledge.autodesk.com/ru/support/autocad/learn-explore/caas/CloudHelp/cloudhelp/2018/RUS/AutoCAD-Core/files/GUID-1D074C55-0B63-482E-8A37-A52AC0C7C8FE-htm.html
В чертеже Correct.dxf значение $MEASUREMENT равно 1 (т.е. единицы измерения миллиметры), а в двух других равно 0 (дюймы).
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13166
  • Карма: 1701
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Как корректно открыть DXF?
« Ответ #4 : 11-06-2021, 18:25:59 »
Кстати может влиять еще и значение $INSUNITS: https://knowledge.autodesk.com/ru/support/autocad/learn-explore/caas/CloudHelp/cloudhelp/2022/RUS/AutoCAD-Core/files/GUID-A58A87BB-482B-4042-A00A-EEF55A2B4FD8-htm.html
В Correct.dxf ее значение 4 (т.е. миллиметры), в остальных 0 (не заданы).
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн R.I.ChernovАвтор темы

  • ADN Club
  • *****
  • Сообщений: 554
  • Карма: 18
Re: Как корректно открыть DXF?
« Ответ #5 : 11-06-2021, 18:53:14 »
Кстати может влиять еще и значение $INSUNITS:
По идее, это то что надо, поменял ручками значение на миллиметры - открываться стало корректно. Но вопрос все как бы открыт, если у тебя сотня чертежей, руками все не поменяешь. У меня задача стоит, что итоговый пользователь на машине имеет только инвентор. Может как-то с помощью NameValueMap можно при открытии задавать нужный параметр вставки в миллиметрах?
В программировании я новичок...но ненадолго! ;)

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13166
  • Карма: 1701
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Как корректно открыть DXF?
« Ответ #6 : 11-06-2021, 19:28:06 »
Но вопрос все как бы открыт, если у тебя сотня чертежей, руками все не поменяешь.
Зачем руками? Почему бы тебе программно не менять?
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн R.I.ChernovАвтор темы

  • ADN Club
  • *****
  • Сообщений: 554
  • Карма: 18
Re: Как корректно открыть DXF?
« Ответ #7 : 11-06-2021, 20:02:22 »
Зачем руками? Почему бы тебе программно не менять?
А не подскажете, как с помощью инвентора это можно отследить? Просто другой программы в распоряжении меня нет.
В программировании я новичок...но ненадолго! ;)

Оффлайн mikazakov

  • ADN
  • *
  • Сообщений: 658
  • Карма: 169
  • Skype: mikazakov@mail.ru
Re: Как корректно открыть DXF?
« Ответ #8 : 11-06-2021, 20:20:52 »
А не подскажете, как с помощью инвентора это можно отследить? Просто другой программы в распоряжении меня нет.
Дак dxf просто текстовый файл, откройте блокнотом и убедитесь в этом. NET предоставляет достаточно средств для работы с текстовыми файлами.

Отмечено как Решение R.I.Chernov 12-06-2021, 01:40:40

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13166
  • Карма: 1701
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Как корректно открыть DXF?
« Ответ #9 : 11-06-2021, 20:28:46 »
поменял ручками значение на миллиметры - открываться стало корректно.
Поменял прямо в DXF-файле или в AutoCAD с сохранением в DXF? Если в DXF-файле, то сделай тоже самое с помощью C#. Код в упрощенном варианте будет выглядеть так:
1) Ищешь в файле строку, содержащую "$INSUNITS" (больше ничего в этой строке быть не должно), последовательно переписывая остальные строки в выходной файл.
2) После того как нашел искомую строку, записываешь её и следующую строку в выходной файл, затем записываешь в выходной файл строку "    4".
3) После этого переписываешь остаток строк в выходной файл.
Вот и всё.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13166
  • Карма: 1701
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Как корректно открыть DXF?
« Ответ #10 : 11-06-2021, 20:53:18 »
Ну а если хочешь более серьезно разобраться с DXF, то можешь попробовать netDxf: https://github.com/haplokuon/netDxf/wiki
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн R.I.ChernovАвтор темы

  • ADN Club
  • *****
  • Сообщений: 554
  • Карма: 18
Re: Как корректно открыть DXF?
« Ответ #11 : 12-06-2021, 01:40:33 »
Спасибо всем за помощь!
П.С. Нет идей, почему чертеж создается видимым?
В программировании я новичок...но ненадолго! ;)

Оффлайн R.I.ChernovАвтор темы

  • ADN Club
  • *****
  • Сообщений: 554
  • Карма: 18
Re: Как корректно открыть DXF?
« Ответ #12 : 12-06-2021, 01:43:20 »
Ну а если хочешь более серьезно разобраться с DXF, то можешь попробовать netDxf: https://github.com/haplokuon/netDxf/wiki
Где-то можно почитать, как утилитой пользоваться?
В программировании я новичок...но ненадолго! ;)

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13166
  • Карма: 1701
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Как корректно открыть DXF?
« Ответ #13 : 12-06-2021, 14:08:29 »
Ну а если хочешь более серьезно разобраться с DXF, то можешь попробовать netDxf: https://github.com/haplokuon/netDxf/wiki
Где-то можно почитать, как утилитой пользоваться?
https://github.com/haplokuon/netDxf/blob/master/README.md
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн mikazakov

  • ADN
  • *
  • Сообщений: 658
  • Карма: 169
  • Skype: mikazakov@mail.ru
Re: Как корректно открыть DXF?
« Ответ #14 : 13-06-2021, 20:26:59 »
П.С. Нет идей, почему чертеж создается видимым?
Задам вопрос в тех поддержку

Оффлайн R.I.ChernovАвтор темы

  • ADN Club
  • *****
  • Сообщений: 554
  • Карма: 18
Re: Как корректно открыть DXF?
« Ответ #15 : 13-06-2021, 20:53:43 »
Спасибо.
В программировании я новичок...но ненадолго! ;)

Оффлайн mikazakov

  • ADN
  • *
  • Сообщений: 658
  • Карма: 169
  • Skype: mikazakov@mail.ru
Re: Как корректно открыть DXF?
« Ответ #16 : 19-06-2021, 04:51:42 »
Прислали ответ из тех поддержки:
Issue is able to reproduce it. For further investigation, a change request is created with engineering team and details are given below.

The Change Request for this is: ID:INVGEN - 54029 - "Unable to hide dxf document using Open () API"

Here is our standard reply asking for a business case:

We have logged Change Request number INVGEN - 54029 with our development team as this issue requires a modification to our software. Please make a note of this number for future reference. You are welcome to request an update on the status of this issue, or to provide us with additional information, at any time by submitting a new Case through DevHelp Online quoting the Change Request number or this Case number.


Говорят что когда нибудь исправят

Оффлайн R.I.ChernovАвтор темы

  • ADN Club
  • *****
  • Сообщений: 554
  • Карма: 18
Re: Как корректно открыть DXF?
« Ответ #17 : 29-06-2021, 04:02:44 »
Issue is able to reproduce it.
Не совсем понял, почему "сложно воспроизвести проблему", ведь в 100% случаев не работает. Видимо, что-то другое имели ввиду. Спасибо, Михаил, за помощь. А вы не подскажите, каким образом вы связываетесь со службой поддержки?
В программировании я новичок...но ненадолго! ;)

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13166
  • Карма: 1701
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Как корректно открыть DXF?
« Ответ #18 : 29-06-2021, 04:35:25 »
Не совсем понял, почему "сложно воспроизвести проблему", ведь в 100% случаев не работает.
Что-то с переводчиком с английского у вас очень плохо. Там все с точностью до наоборот написано.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн R.I.ChernovАвтор темы

  • ADN Club
  • *****
  • Сообщений: 554
  • Карма: 18
Re: Как корректно открыть DXF?
« Ответ #19 : 29-06-2021, 05:50:19 »
Что-то с переводчиком с английского у вас очень плохо. Там все с точностью до наоборот написано.
Вы правы, Алесандр, переводчик слово able походу проигнорировал, а я ночью поленился мозг включить. Спасибо.
В программировании я новичок...но ненадолго! ;)