
Ẩn và hiện hàng loạt theo loại đối tượng bằng HideByType / ShowByType (datum, sketch, đường)
#Python#Hiển thị1 lượt xem
Quản trị viênQuản trị· 0 điểm
Câu hỏi ·
Mô hình lâu năm đầy datum, sketch và đường phụ che mất vật thể. Một dòng lệnh ẩn tất cả đối tượng thuộc một loại giúp màn hình gọn trước khi chụp ảnh hay in.
Ẩn và hiện hàng loạt theo loại đối tượng…Các bước thực hiện
- Chọn loại cần ẩn. ShowHideType.Sketches, Datums, Curves, Points, Csys...
- Chọn phạm vi. ShowHideScope.AnyInAssembly hoặc WorkPartAndOccurrence.
- Gọi HideByType. Trả về số đối tượng bị ẩn.
- Chụp hoặc in. Làm việc cần thiết khi đã gọn.
- Gọi ShowByType. Hiện lại như cũ.
Code tham khảo (Python)
import NXOpen KIEU = NXOpen.DisplayManager.ShowHideType PHAM_VI = NXOpen.DisplayManager.ShowHideScope LOAI_PHU = [KIEU.Sketches, KIEU.Datums, KIEU.Curves, KIEU.Points, KIEU.Csys] def an_loai_phu(session): tong = 0 for loai in LOAI_PHU: n = session.DisplayManager.HideByType(loai, PHAM_VI.AnyInAssembly) tong += n return tong def hien_loai_phu(session): tong = 0 for loai in LOAI_PHU: tong += session.DisplayManager.ShowByType(loai, PHAM_VI.AnyInAssembly) return tong def main(): session = NXOpen.Session.GetSession() lw = session.ListingWindow lw.Open() if session.Parts.Work is None: return da_an = an_loai_phu(session) lw.WriteLine("Đã ẩn %d đối tượng phụ" % da_an) # ... chụp ảnh hoặc in ở đây ... da_hien = hien_loai_phu(session) lw.WriteLine("Đã hiện lại %d đối tượng" % da_hien) if __name__ == "__main__": main()Giải thích code
- Enum
ShowHideTyperất dài (hơn 150 giá trị) gồm cả bản vẽ, PMI, CAE; chỉ dùng vài giá trị liên quan mô hình. - Hàm trả về số đối tượng bị tác động, dùng để báo cáo hoặc kiểm tra.
ShowByTypehiện lại cả những đối tượng người dùng cố ý ẩn trước đó; lưu danh sách đối tượng đã ẩn nếu cần khôi phục chính xác.
Lỗi thường gặp
- Hiện lại theo loại có thể làm hiện luôn các đối tượng đã ẩn từ trước; dùng
BlankObjects/UnblankObjectsvới danh sách cụ thể để chính xác hơn. - Phạm vi
AnyInAssemblytác động cả component; chọnWorkPartAndOccurrenceđể chỉ ảnh hưởng part hiện tại.
Code mang tính tham khảo, viết cho NX 12 trở lên (Python journal). Tên menu và một số lớp có thể khác theo phiên bản NX; hãy chạy thử trên bản sao của chi tiết trước khi dùng cho dữ liệu thật.
Điểm: 0
Trả lời
Đăng nhập để tham gia thảo luận.