
Layer bằng NX Open: đặt layer làm việc, chuyển đối tượng sang layer khác
#Python#Layer1 lượt xem
Quản trị viênQuản trị· 0 điểm
Câu hỏi ·
Layer giữ cho mô hình gọn: hình học phụ, kích thước, bề mặt tham chiếu mỗi loại một layer. Script nên tạo đối tượng ở layer đúng ngay từ đầu.
Layer bằng NX OpenCác bước thực hiện
- Đọc layer làm việc. part.Layers.WorkLayer.
- Đặt layer làm việc. Gán WorkLayer = số layer (1-256).
- Đọc layer của đối tượng. obj.Layer.
- Chuyển layer. Gán obj.Layer hoặc dùng MoveDisplayableObjects.
- Bật/tắt hiển thị layer. Dùng ChangeStates với StateInfo.
Code tham khảo (Python)
import NXOpen LAYER_HINH = 1 LAYER_PHU = 61 def main(): session = NXOpen.Session.GetSession() lw = session.ListingWindow lw.Open() part = session.Parts.Work if part is None: return lw.WriteLine("Layer làm việc hiện tại: %d" % part.Layers.WorkLayer) part.Layers.WorkLayer = LAYER_PHU # từ giờ mọi đối tượng mới nằm ở layer 61 diem = part.Points.CreatePoint(NXOpen.Point3d(0, 0, 0)) lw.WriteLine("Điểm mới ở layer %d" % diem.Layer) part.Layers.WorkLayer = LAYER_HINH duong = part.Curves.CreateLine(NXOpen.Point3d(0, 0, 0), NXOpen.Point3d(50, 0, 0)) lw.WriteLine("Đường mới ở layer %d" % duong.Layer) # Chuyển điểm sang layer hình và đổi hiển thị diem.Layer = LAYER_HINH lw.WriteLine("Sau khi chuyển, điểm ở layer %d" % diem.Layer) # Ẩn layer phụ rồi đọc lại trạng thái part.Layers.SetState(LAYER_PHU, NXOpen.Layer.State.Hidden) lw.WriteLine("Trạng thái layer %d: %s" % (LAYER_PHU, part.Layers.GetState(LAYER_PHU))) # Chuyển nhiều đối tượng cùng lúc part.Layers.MoveDisplayableObjects(LAYER_HINH, [duong]) if __name__ == "__main__": main()Giải thích code
WorkLayerquyết định layer cho mọi đối tượng sinh ra sau đó.obj.Layerđọc/ghi được cho các đối tượng hiển thị (DisplayableObject).SetState/GetStateđặt và đọc trạng thái layer (Visible, Hidden, Selectable, WorkLayer);MoveDisplayableObjectschuyển cả danh sách đối tượng một lần.
Lỗi thường gặp
- Layer hợp lệ từ 1 đến 256; số ngoài khoảng gây lỗi.
- Quên trả
WorkLayervề giá trị ban đầu làm các thao tác thủ công sau đó tạo đối tượng ở layer lạ.
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.