Đây là một vấn đề hay.
Cái này tôi bị một lần rồi. Cách xử lý rất đơn giản. Nhưng tôi sẽ chỉ cho bạn cách tìm ra nó. Đầu tiên ta sẽ translate dòng thông báo về tiếng Việt để hiểu nghĩa của nó:
Không thể lưu lại các sự thay đổi bởi các đối tượng trong tập hợp làm việc ánh xạ ra các đối tượng nằm ngoài tập hợp làm việc. session refedit vẫn còn hiện hành. Nhấn F2 sau khi loại bỏ hộp thoại này để xem danh sách các ánh xạ bị sai.
Đoạn dịch trên hơi lủng củng một chút. Nhưng đại loại là: đối tượng trong block trong khi bạn sửa bằng refedit lại bị phụ thuộc vào 1 đối tượng bình thường khác nằm ngoài block. Dẫn đến không thể close refedit được. Bởi nếu cho phép như vậy, sẽ dẫn đến lỗi logic ánh xạ trong file DWG (ví dụ A ánh xạ đến B, B ánh xạ đến C, C lại ánh xạ đến A).
Cách giải quyết, bạn tạm thời Remove tất cả các đối tượng có liên quan đến ánh xạ trong block ra ngoài gồm: dim, text, hatch, block, attribute đôi khi là cả các đối tượng thông thường khác như line, Pline, Arc (nếu chúng mang các giá trị Xdata). Cho đến khi bạn close được refedit. Sau đó, add lần lượt các đối tượng vào. Đối tượng nào không được thì bạn hãy kiểm tra và loại bỏ sự ánh xạ của nó đi. Nếu bạn nhấn F2 để đọc thông báo, bạn sẽ biết được ánh xạ gì bị lỗi.
Để thử nghiệm cho những ai chưa gặp, hãy download file DWG dưới đây, dùng lệnh refedit để hiệu chỉnh block có hình chữ nhật. Sau đó dùng lệnh Refset > Add (hoặc click vào biểu tượng dấu cộng trên thanh toolbar Refedit) và chọn đối tượng text trong hình chữ nhật. Bây giờ, bạn không thể đóng lệnh refedit này lại được. Sẽ có 1 dòng thông báo như thang42c3 đã nêu.
http://www.cadviet.com/upfiles/test_reference.zip
Với ví dụ này, sau khi ACAD thông báo, nhấn F2 để xem thì sẽ thấy:
Errors found in references to other objects:
** Object reference missing: AcDbField, to AcDbText.
Tức là tìm thấy lỗi ánh xạ: đối tượng AcDbField (trong block) ánh xạ ra đối tượng AcDbText (ngoài block). Phản ánh đúng nguyên nhân gây lỗi.