Chuyển đến nội dung
Diễn đàn CADViet

Duyhai99

Thành viên
  • Số lượng nội dung

    9
  • Đã tham gia

  • Lần ghé thăm cuối

Bài đăng được đăng bởi Duyhai99


  1. 16 phút trước, cuongtk2 đã nói:

    Đây bạn

    
    (defun c:test ( / ENT1 ENT2 LS1 LS2 N OBJ1 OBJ2 TONG)
    (setq ent1 (car (entsel "\nPline1:"))
          ent2 (car (entsel "\nPline2:"))
          obj1 (vlax-ename->vla-object ent1)
          obj2 (vlax-ename->vla-object ent2)
          ls1 (ACET-GEOM-PLINE-POINT-LIST ent1 t)
          ls2 (ACET-GEOM-PLINE-POINT-LIST ent2 t)
          n (+ (length ls1) (length ls2))
          )
    (setq tong 0.0)
    (foreach pt ls1
      (setq tong (+ (distance pt (vlax-curve-getclosestpointto obj2 pt nil)) tong))
      )
    (foreach pt ls2
      (setq tong (+ (distance pt (vlax-curve-getclosestpointto obj1 pt nil)) tong))
      )
    (setq tong (/ tong n))
      
    (alert (strcat "Khoang cach trung binh: " (rtos tong 2 2)))
      (TERPRI)
      tong
      )

     

    Em cảm ơn nhé, để em thử xem

     

    • Vote giảm 1

  2. 5 phút trước, limfx đã nói:

    Đường thẳng mà nó không thẳng nê, bài này căng nè

     

    ý tưởng của em là lấy 2 đường kia làm biên, rồi mình trải các line vuông góc với 2 đường đó theo khoảng cách do người dùng tự nhập (để quyết định độ chính xác của kết quả) rồi tính trung bình chiều dài của các line đã trải ra đấy ạ.

    • Vote giảm 1
×