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

Hien vu

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

    2
  • Đã tham gia

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

Bài đăng được đăng bởi Hien vu


  1. Vào lúc 13/11/2020 tại 08:55, Danh Cong đã nói:

    Lisp tạo đường PLine giữa 2 đường Pline khác: 

     

     

    
    
    
    
    ; Write by Danh Cong - Cadviet.com 13-11-2020
    ; SDT 0336 760 750
    
    
    
    	(defun c:PL-CENTER (/ I KC LEN_PL_1 LST_POINT N PL_1 PL_2 PT1 PT2 PT3)
    	  (vl-load-com)
    	  (prompt "Select PLINE_1 ?")
    	  (setq PL_1 (car (entsel)))
    	  (prompt "Select PLINE_2 ?")
    	  (setq PL_2 (car (entsel)))
    
    
    
    	  (INITGET (+ 1 2 4))
    	  (setq KC (getreal "/nKhoang cach chia ?"))
    
    
    
    	  (setq lst_Point '())
    
    
    
    	  (setq Len_PL_1 (vlax-curve-getDistAtParam PL_1 (vlax-curve-getEndParam PL_1)))
    	  (setq i 0 n (/ Len_PL_1 KC))
    
    
    
    	  (while (< i n)
    	    (progn
    	      (setq Pt1 (vlax-curve-getPointAtDist PL_1 (* i KC)))
    	      (setq Pt2 (vlax-curve-getClosestPointTo PL_2 Pt1))
    	      (setq Pt3 (list (/ (+ (nth 0 Pt1) (nth 0 Pt2)) 2) (/ (+ (nth 1 Pt1) (nth 1 Pt2)) 2)))
    	      (setq lst_Point (append lst_Point (list Pt3)))
    	      (setq i (+ i 1))
    	      ); endprogn
    	    ); end while
    
    
    
    	  (acet-pline-make (list lst_Point))
    	  
    	  (princ))
    

    cám ơn bác :v, lâu rồi nhưng nay em ms test thấy không ổn lắm bác ạ.

    - Đường gấp khúc pline bị biến dạng tùy theo hệ số khoảng cách.

    - Chỉ cần tạo tim cách đều 1 cách hoàn hảo, không cần hệ số khoảng cách trong lisp đâu ạ.

    Em cảm ơn bác.

    • Vote giảm 1
×