
Ghi thuộc tính dạng chuỗi cho part bằng SetUserAttribute: mã vật tư, vật liệu, người thiết kế
#Python#Attribute1 lượt xem
Quản trị viênQuản trị· 0 điểm
Câu hỏi ·
Thuộc tính (attribute) là nơi lưu metadata của chi tiết: mã vật tư, vật liệu, người thiết kế. Từ code, SetUserAttribute ghi thuộc tính lên bất kỳ đối tượng NX nào, và lên chính part là trường hợp phổ biến nhất.
Ghi thuộc tính dạng chuỗi cho part bằng…Các bước thực hiện
- Chọn đối tượng. Thường là part: session.Parts.Work.
- Chọn tiêu đề. Tên thuộc tính (title), quy ước chữ hoa không dấu.
- Gọi SetUserAttribute. Tiêu đề, chỉ số mảng (-1 nếu không phải mảng), giá trị, tùy chọn cập nhật.
- Chọn Update.Option. Now để áp dụng ngay.
- Đọc lại. GetUserAttributeAsString để kiểm tra.
Code tham khảo (Python)
import NXOpen KHONG_MANG = -1 NGAY = NXOpen.Update.Option.Now def ghi_chuoi(doi_tuong, tieu_de, gia_tri): doi_tuong.SetUserAttribute(tieu_de, KHONG_MANG, str(gia_tri), NGAY) def doc_chuoi(doi_tuong, tieu_de): if not doi_tuong.HasUserAttribute(tieu_de, NXOpen.NXObject.AttributeType.String, KHONG_MANG): return None return doi_tuong.GetUserAttributeAsString(tieu_de, NXOpen.NXObject.AttributeType.String, KHONG_MANG) def main(): session = NXOpen.Session.GetSession() lw = session.ListingWindow lw.Open() part = session.Parts.Work if part is None: return session.SetUndoMark(NXOpen.Session.MarkVisibility.Visible, "Ghi thuoc tinh") ghi_chuoi(part, "MA_VAT_TU", "VT-000123") ghi_chuoi(part, "VAT_LIEU", "S45C") ghi_chuoi(part, "NGUOI_THIET_KE", "Nguyen Van A") for tieu_de in ("MA_VAT_TU", "VAT_LIEU", "NGUOI_THIET_KE", "KHONG_CO"): lw.WriteLine("%-16s = %s" % (tieu_de, doc_chuoi(part, tieu_de))) if __name__ == "__main__": main()Giải thích code
- Chỉ số
-1cho thuộc tính đơn; số0, 1, 2...dùng cho thuộc tính dạng mảng (bài sau). HasUserAttributecho biết thuộc tính có tồn tại và đúng kiểu, tránh lỗi khi đọc thuộc tính chưa có.Update.Option.Nowcập nhật tức thì;Laterhoãn để gộp nhiều thay đổi.
Lỗi thường gặp
- Thuộc tính cùng tên nhưng khác kiểu (chuỗi và số) là hai thuộc tính khác nhau; giữ nhất quán một kiểu cho mỗi tiêu đề.
- Ghi thuộc tính làm part được đánh dấu đã sửa; nhớ lưu sau khi xong.
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.