
Đ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
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…Các bước thực hiện
- Chọn hai đối tượng. Hai body, hai mặt hoặc hai cạnh.
- Chuẩn bị đơn vị. MilliMeter.
- Gọi NewDistance. Truyền MeasureType.Minimum, hai đối tượng.
- Đọc kết quả. Thuộc tính Value của đối tượng đo.
- Đá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
MeasureTypecó 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.