
Đọc thuộc tính cơ bản của part: đơn vị, tên, đường dẫn, ngày sửa, trạng thái
#Python#Part1 lượt xem
Quản trị viênQuản trị· 0 điểm
Câu hỏi ·
Một báo cáo kiểm kê file thường bắt đầu từ vài thuộc tính cơ bản của part. Bài này gom các thuộc tính dễ đọc nhất vào một hàm trả về dict để dùng ở mọi nơi.
Đọc thuộc tính cơ bản của partCác bước thực hiện
- Định danh. Leaf, FullPath, UniqueIdentifier.
- Đơn vị. PartUnits cho biết mm hay inch.
- Trạng thái. IsModified, IsReadOnly, IsFullyLoaded.
- Thống kê mô hình. Đếm số body, số feature, số expression.
- Ngày giờ của file. Lấy từ hệ điều hành bằng os.path.getmtime.
Code tham khảo (Python)
import os import time import NXOpen def thong_tin_part(part): duong_dan = part.FullPath mtime = os.path.getmtime(duong_dan) if os.path.isfile(duong_dan) else None return { "ten": part.Leaf, "duong_dan": duong_dan, "don_vi": "mm" if part.PartUnits == NXOpen.BasePart.Units.Millimeters else "inch", "da_sua_chua_luu": part.IsModified, "chi_doc": part.IsReadOnly, "nap_day_du": part.IsFullyLoaded, "so_body": sum(1 for _ in part.Bodies), "so_feature": sum(1 for _ in part.Features), "so_expression": sum(1 for _ in part.Expressions), "ngay_sua": time.strftime("%Y-%m-%d %H:%M", time.localtime(mtime)) if mtime else "", } def main(): session = NXOpen.Session.GetSession() lw = session.ListingWindow lw.Open() part = session.Parts.Work if part is None: lw.WriteLine("Chưa có part") return for k, v in thong_tin_part(part).items(): lw.WriteLine("%-18s : %s" % (k, v)) if __name__ == "__main__": main()Giải thích code
part.Bodies,part.Features,part.Expressionslà các collection có thể duyệt được.NXOpen.BasePart.Unitslà enum đơn vị của part; so sánh trực tiếp với giá trịMillimeters.- Ngày sửa lấy từ hệ điều hành vì part trong bộ nhớ không lưu ngày giờ file.
Lỗi thường gặp
- File chưa từng lưu (part mới) chưa có
FullPaththật; kiểm traos.path.isfilenhư code trên. - Duyệt
Featurescủa assembly lớn có thể chậm; chỉ đếm khi thật cần.
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.