NX Lab

Tô màu mặt theo loại hình học: phẳng, trụ, nón, cầu để kiểm tra đặc trưng nhanh

#Python#Hiển thị#Mặt1 lượt xem

  1. Quản trị viênQuản trị· 0 điểm

    Câu hỏi ·

    Tô màu theo loại mặt giúp nhìn thấy ngay chi tiết có những bề mặt nào, và là cách kiểm tra trực quan kết quả nhận dạng đặc trưng.

    Tô màu mặt theo loại hình học Tô màu mặt theo loại hình học

    Các bước thực hiện

    1. Định nghĩa bảng màu. Mỗi loại mặt một chỉ số màu.
    2. Duyệt mặt. Với mỗi mặt của body đặc.
    3. Gán màu. face.Color và RedisplayObject.
    4. In chú giải. Loại mặt và màu tương ứng.
    5. Khôi phục. Dùng Undo Mark để người dùng hoàn tác dễ dàng.

    Code tham khảo (Python)

    import NXOpen
    
    MAU = {
        "Planar": 211,        # xanh
        "Cylindrical": 186,   # đỏ
        "Conical": 6,         # vàng
        "Spherical": 36,      # xanh lục
    }
    MAU_KHAC = 31
    
    def to_mau_theo_loai(body):
        dem = {}
        for f in body.GetFaces():
            ten = str(f.SolidFaceType).split(".")[-1]
            f.Color = MAU.get(ten, MAU_KHAC)
            f.RedisplayObject()
            dem[ten] = dem.get(ten, 0) + 1
        return dem
    
    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, "To mau theo loai mat")
        for b in part.Bodies:
            if b.IsSolidBody:
                dem = to_mau_theo_loai(b)
                lw.WriteLine("Body %s: %s" % (b.JournalIdentifier, dem))
        lw.WriteLine("Chú giải: " + ", ".join("%s=%d" % kv for kv in MAU.items()))
    
    if __name__ == "__main__":
        main()
    

    Giải thích code

    • str(f.SolidFaceType).split(".")[-1] lấy tên loại mặt dạng chuỗi để tra bảng màu.
    • Bảng màu NX gồm 216 màu; số trong code chỉ là gợi ý, hãy chỉnh theo bảng màu của site.
    • Đặt Undo Mark để người dùng quay lại màu cũ bằng Ctrl+Z.

    Lỗi thường gặp

    • Màu đặt cho mặt là thay đổi thuộc tính hiển thị được lưu cùng file; hoàn tác trước khi lưu nếu không muốn giữ.
    • Chi tiết có nhiều nghìn mặt tô màu chậm; chỉ tô khi kiểm tra.

    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.