NX Lab

Đo khoảng cách nhỏ nhất giữa hai body hoặc hai mặt bằng MeasureManager.NewDistance

#Python#Đo đạc1 lượt xem

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

    Câu hỏi ·

    Kiểm tra khe hở giữa hai chi tiết là phép đo lặp lại nhiều lần trong lắp ráp. NewDistance cho phép đo khoảng cách ngắn nhất giữa hai đối tượng bất kỳ.

    Đo khoảng cách nhỏ nhất giữa hai body hoặc… Đo khoảng cách nhỏ nhất giữa hai body hoặc…

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

    1. Chọn hai đối tượng. Hai body, hai mặt hoặc hai cạnh.
    2. Chuẩn bị đơn vị. MilliMeter.
    3. Gọi NewDistance. Truyền MeasureType.Minimum, hai đối tượng.
    4. Đọc kết quả. Thuộc tính Value của đối tượng đo.
    5. Đánh giá. So với khe hở yêu cầu.

    Code tham khảo (Python)

    import NXOpen
    
    def khoang_cach_nho_nhat(part, doi_tuong_1, doi_tuong_2):
        mm = part.UnitCollection.FindObject("MilliMeter")
        d = part.MeasureManager.NewDistance(mm, NXOpen.MeasureManager.MeasureType.Minimum,
                                            doi_tuong_1, doi_tuong_2)
        return d.Value
    
    def main():
        session = NXOpen.Session.GetSession()
        lw = session.ListingWindow
        lw.Open()
        part = session.Parts.Work
        if part is None:
            return
        bodies = [b for b in part.Bodies if b.IsSolidBody]
        if len(bodies) < 2:
            lw.WriteLine("Cần ít nhất hai body để đo")
            return
        khe_ho_yeu_cau = 0.5
        for i in range(len(bodies)):
            for j in range(i + 1, len(bodies)):
                d = khoang_cach_nho_nhat(part, bodies[i], bodies[j])
                danh_gia = "OK" if d >= khe_ho_yeu_cau else "QUÁ SÁT"
                lw.WriteLine("Body %d - Body %d : %.3f mm  [%s]" % (i + 1, j + 1, d, danh_gia))
    
    if __name__ == "__main__":
        main()
    

    Giải thích code

    • MeasureType.Minimum đo khoảng cách ngắn nhất, Maximum đo xa nhất.
    • Hai vòng for đo mọi cặp body, độ phức tạp tăng theo bình phương số body.
    • Khoảng bằng 0 nghĩa là hai body chạm hoặc giao nhau.

    Lỗi thường gặp

    • Tên enum MeasureType có thể nằm trong lớp khác ở một số bản; nếu lỗi hãy dùng journal đo khoảng cách để chép đúng.
    • Đo giữa body rất phức tạp có thể chậm; thu hẹp cặp cần đo bằng hộp bao trước.

    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.