Поврежденный чертеж после чтения и сохранения базы данныхC#

Место общения программистов C#
Ответить
Anonymous
 Поврежденный чертеж после чтения и сохранения базы данных

Сообщение Anonymous »

Я работаю над механизмом рендеринга, который использует AutoCAD 2025 с использованием .Net 8 и требует только Acdbmgd.dll. Я создаю новый объект базы данных, читаю существующий шаблон, добавляю в него объекты и затем сохраняю его. Все работает так, как я задумал, но потом я столкнулся с некоторыми проблемами с сохраненным чертежом, которые потребовали от меня провести аудит. Аудит выявил множество ошибок:

Код: Выделить всё

Auditing Header
Auditing Tables
Auditing Entities Pass 1
AcDbLayerTableRecord: "0"
Material Invalid               Global
AcDbLayerTableRecord: "0"         was not repaired.
Pass 1 100     objects audited
Auditing Entities Pass 2
AcDbLayerTableRecord: "0"
Material Invalid               Global
AcDbLayerTableRecord: "0"         was not repaired.
AcDbDictionary(99)    2dWireframe eNotThatKindOfClass
AcDbDictionary(99)          Basic eNotThatKindOfClass
AcDbDictionary(99)       Brighten eNotThatKindOfClass
AcDbDictionary(99)    ColorChange eNotThatKindOfClass
AcDbDictionary(99)     Conceptual eNotThatKindOfClass
AcDbDictionary(99)            Dim eNotThatKindOfClass
AcDbDictionary(99)   EdgeColorOff eNotThatKindOfClass
AcDbDictionary(99)    Facepattern eNotThatKindOfClass
AcDbDictionary(99)           Flat eNotThatKindOfClass
AcDbDictionary(99)  FlatWithEdges eNotThatKindOfClass
AcDbDictionary(99)        Gouraud eNotThatKindOfClass
AcDbDictionary(99)
GouraudWithEdges eNotThatKindOfClass
AcDbDictionary(99)         Hidden eNotThatKindOfClass
AcDbDictionary(99)      JitterOff eNotThatKindOfClass
AcDbDictionary(99)    Linepattern eNotThatKindOfClass
AcDbDictionary(99)    OverhangOff eNotThatKindOfClass
AcDbDictionary(99)      Realistic eNotThatKindOfClass
AcDbDictionary(99)         Shaded eNotThatKindOfClass
AcDbDictionary(99)
Shaded with edges eNotThatKindOfClass
AcDbDictionary(99) Shades of Gray eNotThatKindOfClass
AcDbDictionary(99)        Sketchy eNotThatKindOfClass
AcDbDictionary(99)        Thicken eNotThatKindOfClass
AcDbDictionary(99)      Wireframe eNotThatKindOfClass
AcDbDictionary(99)          X-Ray eNotThatKindOfClass
AcDbDictionary(99)                was not repaired.
Pass 2 100     objects audited
Auditing Blocks
1       Blocks audited
Auditing AcDsRecords
Total errors found 26 fixed 0
Мне удалось упростить код и «обернуть его» в плагин, чтобы показать поведение и результаты те же:

Код: Выделить всё

public class Plugin : IExtensionApplication
{
public void Initialize() { }
public void Terminate() { }

[CommandMethod("Test")]
public void Test()
{
Database db;
using (db = new Database(true, false))
{
try
{
string currentFolder = Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location);
db.ReadDwgFile($"{currentFolder}\\test_clean.dwg", FileOpenMode.OpenTryForReadShare, true, null);
db.SaveAs(@"c:\temp\test_clean.dwg", DwgVersion.Current);
db.DxfOut(@"c:\temp\test_clean.dxf", 16, DwgVersion.Current);
}
catch (System.Exception ex)
{
Console.WriteLine(ex.Message);
}
}
}
}
Обратите внимание, что входной чертеж «test_clean.dwg» действительно чистый. Это совершенно новый пустой рисунок, сохраненный только для использования в этом тесте. Оба выходных файла выдают одни и те же ошибки аудита.
Это происходит в AutoCAD 2025 с использованием .Net 8 и AutoCAD 2024 с .Net Framework 4.7.2
Кто-нибудь сталкивался с этим раньше? Любая помощь будет принята с благодарностью!

Подробнее здесь: https://stackoverflow.com/questions/790 ... d-and-save
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»