Cách khắc phục vấn đề kích thước tệp Rhino quá lớn

Nguyên nhân nào gây ra hiện tượng “file bloat”?

Một số thứ có thể làm tăng kích thước tệp một cách đáng kể:

  • Lưới hiển thị (Display meshes) – Rhino sử dụng các mắt lưới đặc biệt để hiển thị các đối tượng bề mặt trên màn hình. Cài đặt lưới hiển thị tốt có thể gây ra kích thước tệp lớn mà bạn không nhận ra. Bạn thấy màn hình hiển thị bình thường, nhưng bạn không nhất thiết phải biết lưới hiển thị có bao nhiêu đa giác.
  • Kết cấu / Hình ảnh bitmap (Textures/Bitmap images)– Các kết cấu bitmap có độ phân giải cao được lưu trữ trong tệp – được sử dụng làm tài liệu kết xuất hoặc cho các đối tượng ảnh (khung) mà bạn đã tạo – có thể làm tăng đáng kể kích thước tệp.
  • Vật liệu – có thể có một bộ sưu tập lớn vật liệu có thể chiếm một lượng lớn dung lượng tệp. Đôi khi các vật liệu được nhân đôi một cách không cần thiết, nhân lên hiệu ứng này.
  • Plug-ins – Plug-ins của Rhino có thể thêm tất cả các loại chức năng bổ sung cho Rhino từ kết xuất nâng cao đến các công cụ thiết kế dành riêng cho chi nhánh đến CAM. Các Plug-ins được phép lưu trữ dữ liệu của riêng chúng trong tệp Rhino và nó có thể khá phong phú tùy thuộc vào bản chất của Plug-ins và cách nó được sử dụng.
  • Big data – cuối cùng, các tệp Rhino chỉ có thể chứa một lượng lớn hình học ở dạng đường cong, bề mặt hoặc mắt lưới. Kích thước tệp lớn trong trường hợp này được mong đợi…

Làm thế nào để tôi có thể xem vấn đề là ở đâu?

Sau khi đọc phần trên, bạn có thể đã có một số “nghi ngờ thông thường” trong đầu. Nếu vậy, bạn có thể bỏ qua phần này và chuyển đến phần “biện pháp khắc phục có thể có” bên dưới.

Tuy nhiên, nếu bạn lúng túng hoặc chỉ muốn xem tất cả những gì tệp của bạn chứa với chi tiết cực kỳ thú vị, bạn có thể sử dụng lệnh Audit3dmFile bên trong Rhino. Bạn có thể chạy tệp này trên tệp Rhino mà bạn hiện đang mở hoặc thậm chí một số tệp 3dm khác trên máy tính của bạn. Một cửa sổ văn bản sẽ mở ra với rất nhiều thông tin. Phần trên cùng sẽ là một số thông tin về cài đặt Rhino của bạn và những plugin nào được tải. Dưới đây là phần thú vị – các “bảng” khác nhau nơi thông tin được lưu trữ trong tệp Rhino đang được phân tích.

  • Đầu tiên là “Bảng Bitmap”. Nó sẽ cho bạn biết có bao nhiêu bitmap trong tệp và quan trọng nhất là tổng kích thước. Nếu bạn thấy một số rất lớn trong đó (chúng tính bằng byte, vì vậy hãy cẩn thận) có thể giải thích một phần kích thước tệp của bạn.
  • Tiếp theo là “Bảng vật liệu”, bạn cũng nên kiểm tra kích thước.
  • Ở phía dưới là “Bảng đối tượng”, sẽ cung cấp cho bạn bản tóm tắt về lượng không gian lưu trữ mà hình học thực tế của bạn đang chiếm. Trong V5, bạn sẽ chỉ thấy tổng kích thước của tất cả các đối tượng; trong V6 trở lên, nó cũng sẽ hiển thị chi tiết kích thước cho mỗi đối tượng. Lưu ý rằng kích thước đối tượng bao gồm các lưới kết xuất đính kèm, có thể hữu ích nếu đó là nguyên nhân gây ra vấn đề về kích thước tệp.
  • Cuối cùng, ở dưới cùng là “Bảng dữ liệu người dùng mô hình” (Model User Data Table), liệt kê tất cả các plug-ins được tải và bất kỳ dữ liệu nào họ đang lưu trữ. Nếu bất kỳ cái nào trong số đó là rất lớn, đó là một nghi ngờ khác cần xem xét.

Được rồi, tôi thấy một số nghi ngờ có thể xảy ra, làm cách nào để xử lý bây giờ?

  • Display meshes: Nếu bạn nghi ngờ cài đặt lưới hiển thị của mình đang gây ra kích thước tệp tăng cao, có một số điều cần thử. Bạn có thể thử sử dụng lệnh _SaveSmall, lệnh này sẽ lưu tệp mà không có lưới hiển thị. Kiểm tra kích thước tệp mới được lưu, nếu nó đã giảm đáng kể, đó ít nhất là một phần của vấn đề của bạn. Nếu bạn muốn giữ nguyên bản gốc, bạn cũng có thể sử dụng _SaveAs với một tên khác và chọn hộp “Save small” trong hộp thoại.
  • Vật liệu: Nếu bảng vật liệu chứa các mục nhập lớn, trước tiên bạn có thể thử lệnh _Purge với _Materials = _Yes. Điều đó sẽ làm sạch bất kỳ vật liệu không sử dụng nào, xem điều đó có hữu ích không. Nếu không, hãy xem phần Plug-in data bên dưới…
  • Bitmap (hình ảnh): Nếu bảng bitmap chứa các mục nhập lớn, nó có thể là một trong nhiều thứ. Ảnh (khung) ảnh, ảnh bitmap nền và ảnh được áp dụng làm họa tiết đều được lưu trữ trong Bảng Bitmap. Bạn có thể xem nếu bạn có bất kỳ kết cấu không sử dụng nào “bị kẹt” trong tệp và loại bỏ chúng, đồng thời xóa bất kỳ phần tử Hình ảnh (khung) nào mà bạn không cần nữa. Tuy nhiên, điều đó không phải lúc nào cũng có thể khắc phục được mọi thứ, đôi khi hình ảnh bitmap bị “mắc kẹt” trong tệp ngay cả khi đối tượng mang chúng chẳng hạn như Ảnh (khung) bị xóa. Trong trường hợp đó, bạn có thể phải ” “go nuclear” và xóa bảng bitmap. Trong Rhino V5, có một lệnh kiểm tra để thực hiện việc này – TestPurgeBitmapTable – bạn phải gõ tất cả, nó không tự động hoàn thành. HÃY CẨN THẬN, điều này sẽ xóa TẤT CẢ các ảnh bitmap khỏi tài liệu, kể cả một số ảnh bạn có thể vẫn cần, vì vậy hãy sử dụng lệnh này một cách cẩn thận…
  • Plug-in data: Dữ liệu được tạo bởi Plug-in Rhino vẫn ở trong tệp ngay cả khi phiên bản Rhino đang mở tệp không được cài đặt (các) trình cắm thích hợp – bạn không thể truy cập vào nó, nhưng nó vẫn ở đó và không bị xóa khi lưu lại tệp. Đó thực sự là một điều tốt

Tuy nhiên, có lẽ bạn nhận được một tệp từ người kết xuất của bạn với tất cả các vật liệu tùy chỉnh của họ trong đó, hoặc từ người tạo mô hình của bạn với tất cả các đường chạy dao CAM của họ trong đó; bạn không muốn bất kỳ thứ gì trong số đó nữa và muốn giảm kích thước tệp nếu có thể.

Cách để làm điều đó là sử dụng _-SaveAs (với dấu gạch ngang!); trên dòng lệnh, bạn sẽ thấy một mục _SavePlugInData. Đặt thành _No and save.. Cảnh báo: điều này sẽ xóa tất cả dữ liệu từ tất cả các plug-ins (hiện tại), vì vậy hãy đảm bảo rằng bạn thực sự sẽ không cần công cụ này nữa! Ý tưởng hay để tạo một bản sao đề phòng.

Sử dụng quy trình trên để xóa dữ liệu plug-ins cũng có thể giải quyết một số vấn đề với dữ liệu từ một số “nguồn không xác định” bị “mắc kẹt” trong tệp mà bạn không thể xóa bất kỳ cách nào khác.

  • Số lượng lớn hình học trong tệp: Như đã nói trước đó, giả sử tệp đã được tạo, bạn không thể làm gì nhiều để giảm kích thước tệp trong trường hợp này – Rhino cần không gian đó để mô tả chính xác tất cả các đối tượng. Nếu bạn cần gửi tệp cho ai đó, việc nén nó thường xuyên sẽ giúp giảm kích thước tệp Rhino đáng kể. Nếu bạn chưa tạo tệp và bạn sẽ có nhiều đối tượng giống hệt nhau trong đó, thì việc sử dụng các khối có thể giúp giảm kích thước tệp. Xem Rhino Help để biết thêm về cách sử dụng khối.

Nếu kích thước bộ nhớ bảng đối tượng của bạn rất lớn và bạn thực sự tin là không nên, thì bạn sẽ phải tiếp tục tìm kiếm đối tượng hoặc các đối tượng đang gây ra kích thước tệp. Trước tiên, hãy kiểm tra xem có bất kỳ điều gì bị ẩn hoặc trên một off layer có thể gây ra sự cố hay không. Một thứ khác có thể là một hoặc nhiều bề mặt khổng lồ (với hàng nghìn điểm điều khiển) đã được làm nhỏ lại thành một kích thước nhỏ. Bạn có thể nghĩ rằng chúng không chiếm bất kỳ không gian nào, nhưng Rhino lưu trữ định nghĩa ban đầu (không bị xóa) của bề mặt, vì vậy một bề mặt có vẻ nhỏ thực sự có thể chiếm rất nhiều bộ nhớ. Lệnh _ShrinkTrimmedSrf sẽ loại bỏ phần không cần thiết của các bề mặt này.


Có những khả năng nào khác?

Một số điều khác có thể được thử nếu tất cả những điều trên không thành công…

  • Đôi khi việc mở một tệp trống mới, sao chép và dán hình học từ tệp cũ và vào tệp mới có thể khắc phục được nhiều thứ. Tuy nhiên, đôi khi, các đối tượng vẫn có thể mang các monster stuck bitmaps đến chúng khi được sao chép, vì vậy bạn sẽ quay lại nơi bạn bắt đầu.
  • Nếu mọi thứ thực sự tồi tệ và hoàn toàn không có gì khác hoạt động, bạn có thể thử sử dụng _SaveAs và chọn “Geometry only”. Về nguyên tắc chỉ có các đối tượng thực tế mới tồn tại được cái đó, nhưng hãy cẩn thận, nó cũng phá hủy hoàn toàn bất kỳ tổ chức tệp nào, tất cả các đối tượng sẽ chỉ nằm trên một lớp, không có màu, không có nhóm, không có gì cả… Thực sự đây là phương sách cuối cùng.

Biên dịch bởi Thanh Bình – Pacisoft.com.vn