Сообщество программистов Autodesk в СНГ

ADN Club => AutoCAD .NET API => Тема начата: AVait от 22-02-2024, 16:56:46

Название: Открытие - Очистка -Закрытие файла чертежа
Отправлено: AVait от 22-02-2024, 16:56:46
Всем привет!
Столкнулся с проблемой закрытия файла после его открытия, очистки и сохранения.
Если не закрывать файл, то все очищается и сохраняется и можно закрыть вручную, НО если использоваться любые методы программного закрытия файла (или не любые, просто использовал, что знаю), то файл остается таким как и до очистки а сохранение либо исчезает либо вовсе не происходит.

Код - C# [Выбрать]
  1. public void PurgeFileMethod(string path)
  2. {
  3.     using (ApplicationCivil.DocumentManager.MdiActiveDocument.LockDocument())
  4.     {
  5.         var doc = ApplicationCivil.DocumentManager.Add(path);
  6.         if (doc == null) return;
  7.  
  8.         doc.SendStringToExecute("-PURGE\n", true, false, true);
  9.         doc.SendStringToExecute("Все\n", true, false, true);
  10.         doc.SendStringToExecute("*\n", true, false, true);
  11.         doc.SendStringToExecute(\n", true, false, true);
  12.        
  13.         doc.Database.SaveAs(path, true, DwgVersion.Current, doc.Database.SecurityParameters);
  14.  
  15.         doc.CloseAndDiscard();
  16.     }
  17. }
  18.  

Возможно кто-то сталкивался с такой проблемой и сможет помочь, благодарю за помощь.
Название: Re: Открытие - Очистка -Закрытие файла чертежа
Отправлено: Александр Ривилис от 22-02-2024, 18:07:52
Так и должно быть, так как SendStringToExecute выполняется ассинхронно, т.е. уже после завершения команды.
Название: Re: Открытие - Очистка -Закрытие файла чертежа
Отправлено: AVait от 23-02-2024, 14:25:01
Так и должно быть, так как SendStringToExecute выполняется ассинхронно, т.е. уже после завершения команды.

Возможно вы можете подсказать на примере как можно реализовать выполнение очистки файла от неиспользуемых объектов и стилей по принципу как работает стандартная команда "ОЧИСТИТЬ" в автокаде?
Название: Re: Открытие - Очистка -Закрытие файла чертежа
Отправлено: Александр Ривилис от 23-02-2024, 19:17:58
Попробуй оформить
Код - C# [Выбрать]
  1.         doc.Database.SaveAs(path, true, DwgVersion.Current, doc.Database.SecurityParameters);
  2.  
  3.         doc.CloseAndDiscard();
как отдельную команду с флагом Session, и запускать ее при помощи doc.SendStringToExecute после запуска _PURGE