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

Tue_NV

Moderator
  • Số lượng nội dung

    4.260
  • Đã tham gia

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

  • Ngày trúng

    286

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


  1. Bạn có thể viết cụ thể ra với trường hợp tổng quát giúp mình được không. Hoặc cho mình một ví dụ cụ thể để tham khảo với.

     

    Ví dụ: 

    Update các đỉnh Pline (dịch đi 1 khoảng) X=1.0 Y=1.0

    (defun c:uppl(e ent lst-dinh-res lst-dinh-des)
      (setq e (car(entsel "\nChon PLINE :")))
      (setq ent (entget e))
      (setq lst-dinh-res (vl-remove-if-not '(lambda(x) (= (car x) 10)) ent))
      (setq lst-dinh-des (mapcar '(lambda(x) (list (car x) (+ (cadr x) 1.0) (+ (caddr x) 1.0) 0.0)) lst-dinh-res))
      (mapcar '(lambda(x y) (setq ent (subst x y ent)))  lst-dinh-des lst-dinh-res)
      (entmod ent)
    )
    

  2. Em đã xem và thấy bế tắc toàn tập ^^

    Các tọa độ "đã biết" của anh ở đây là biên dạng (dưới) của Block -> mà Lấy tọa độ cái này ngoài tầm với của e ^^

    Thôi thì a chờ các cao thủ khác ra tay giúp vậy  .

    Cái này em bó tay ^^

     

    P/s: Em nghĩ a "kéo" nút xanh xanh của Pline đó về vị trí cần thì nhanh hơn là dùng lisp nhiều ^^ Vì khi dùng lisp ,kiểu chi rồi anh cũng phải pick từng điểm để chỉ định cho nó thôi ^^

     

    1./ Tất nhiên dùng Lisp sẽ nhanh hơn rất nhiều rồi ^_^

    2./ Nếu Đường màu xanh Pline luôn vẽ đúng theo số đỉnh (9 đỉnh) và rãnh luôn vẽ đúng với Block Ranh BT như quy luật trong bản vẽ thì hoàn toàn có thể dùng Lisp để tự động chỉ định đỉnh cho nó


  3.  

    Mình viết tkt có đoạn như sau

    Mục đích nhập vào 1 số hoặc biểu thức và thu về kết quả nhưng vì lisp bị giới hạn gì đó mà số lớn hơn giới hạn nào đó thì nó sẽ ra kết quả sai. Bác nào có cách khắc phục dể hiểu thì hướng dẩn mình phát. Cám ơn!

     

    (defun c:nbt ()
    (command "cal" "1+2")
    (setq giatrim (getstring "Nhap bieu thuc: "))
    (setq giatrim (rtos (C:cal giatrim) 2 0))
    (princ giatrim))
    

     

     

    Anh tham khảo nhé!

    http://www.cadviet.com/forum/topic/14210-hoi-ve-lisp-thuat-toan-y-tuong-coding/page-80

    • Vote tăng 1

  4.  Mình đang để cad 2010

     

     

    @mod Dùng MO cũng được nhưng có cách nào nhập trực tiếp từ bảng kê hay nhập từ trong MO mà thay đổi luôn cả bảng kê ko mod.

     

    Bạn có thể dùng field trong bảng kê (Table) -> Sau đó nhập trong bảng Properties (Lệnh MO).

    Sau khi nhập vào bảng Properties (Lệnh MO) thì block dynamic thay đổi kích thước -> Nhấn REGEN thì bảng kê tự động cập nhập luôn


  5. http://www.cadviet.com/upfiles/5/137521_file_test.dwg

     Cách làm Dynamic Block thì mình đã biết sơ sơ. hiện tại mình muốn hỏi có cách nào nhập kích thước ở bảng thống kê,

    mà kích thước ở block thay đổi theo ko ạ. trong ví dụ là 1 cửa 1200 x 1400. mình có bảng kê. nhập kích thước 1400x1600 (ở bảng kê) thì cửa tự thay đổi kích thước.

     

    Bạn có thể dùng lệnh MO (Ctrol+1) để nhập

    • Vote tăng 2

  6. Các bác cho e hỏi làm sao để tạo cái block động mà kéo dãn ở 2 đầu như cái block ở trong file e đính kèm.

    Em thì vẫn dùng Stretch 1 đầu thì ok nhưng 2 đầu thì không làm được. Em lấy ví dụ đơn giản như sau:

         - Có Block trong đó có 1 đường line. Bây giờ e muốn tạo dạng block động dạng Stretch: khi kéo thì trung điểm của line giữ nguyên, còn 2 đầu dài ra

           như nhau.

    Cảm ơn các bác đã quan tâm.

    http://www.cadviet.com/upfiles/5/121521_block_dong_keo_dan.dwg

     

    Bạn Pick vào Parameter Distance -> Bấm Ctrol+1 -> Mục Misc -> Base location -> Chọn Midpoint

    • Vote tăng 1

  7.  

    Thanks a Tuệ,

    Anh chị cho em hỏi:em dùng code này để lấy list (Tagstring . Textstring) 

     

    (setq ent (entsel "\Chon Text trong Block ATT can Edit:")

    e2 (car (nentselp (cadr ent)))

    obj (vlax-ename->vla-object ent)

    lstATT (Getatt obj)

    )

     

    (defun GetAtt (obj)

    (mapcar '(lambda (att) (cons (vla-get-TagString att) (vla-get-TextString att)))

    (vlax-invoke obj 'GetAttributes)

    )

    )

     
    Nhưng dùng thì có hồi được ,hồi báo lỗi như vậy:  ActiveX Server returned the error: unknown name: "GETATTRIBUTES"
    Anh chị giải thích cho em biết và cách khắc phục như thế nào ko ạ?
    Em cảm ơn

     

     

    Bạn có thể kiểm tra ename đó có tồn tại dxf 66 khong? trước khi lấy  "GETATTRIBUTES"

    • Vote tăng 1

  8. http://www.cadviet.com/upfiles/5/27451_nhaqh_1.dwg

    Mình đang làm quy hoạch. Định làm 1 cái dynamic block mặt bằng mái nhà. Làm 1 cái rồi kéo to nhỏ cho tiện. 

    Mình có upload file gửi kèm. Đã strech được 2 chiều rộng và dài. Nhưng cái đường giữa mái thì nó cũng strech theo, không tìm cách cho nó nằm giữa nhà được. Ai giúp mình với, mò cả buổi vẫn không được ạ

     

       Bạn chú ý trong file dưới đây : mình tạo thêm 1 Strecht và gán Distance multiplier = 0.5

    http://www.cadviet.com/upfiles/5/4652_27451_nhaqh_1.dwg

    • Vote tăng 1

  9. Cảm ơn bạn đã góp ý !!

    Mình toàn học mót Lisp trên cadviet nên trình độ còn kém,những cái tự viết được thì mình đã làm,nhưng những cái khó quá mình mới nhờ anh em code giúp thôi

    Thật ra ,2 lisp trên cũng gần đúng ý mình,nên mình mót và chế lại theo đúng ý mình rồi

    Do đang thử code a Hạ thì mình bị như vậy mà mình xử lý không được nên mới đành post bài nhờ anh em chỉ bảo  thêm

    Đoạn xanh mong bạn giải thích rõ thêm tí được ko,do hàm grread mình chưa rõ lắm nên sửa mãi mà chưa được (mục đích của mình thì chỉ khi mình pick chon điểm để quét vùng nó mới nhảy dòng Princ ,chứ ko muốn nhảy liên tục như code của a snowman.hms )

    Hơi tham lam tí nên anh chị thông cảm.Hi

     

    Chỉ cần hoán đổi vị trí code trong li sp của bạn snowman là được

    Và mình có chỉnh 1 tí để có thể sử dụng lệnh như 1 transparent command

     

    (defun c:test ( / gr_rec gr gr1 gr2 p1 p2 tm lst s)
      (defun gr_rec (p1 p2 / l)
        (mapcar '(lambda (a b) (grdraw a b 6 1))
       (setq l (list p1 (list (car p1) (cadr p2))
     p2 (list (car p2) (cadr p1))))
       (cons (last l) l)))
      (princ (strcat "\nSpecify the First point ..."
        "\nPress [SPACE/ENTER] to EXIT"
        )
          )
      (while
        (progn
          (setq gr1 (grread t 15 0)
       gr2 (cadr gr1)
       gr1 (car gr1)
          )
          
          (cond
    ((= 5 gr1)
    (redraw)
    (if lst (mapcar '(lambda (x) (gr_rec (car x) (cadr x))) lst) t)
    )
    ((= 3 gr1)
    (princ "\nSpecify the Second point ...")
    (setq p1 gr2)
    (while
      (progn
        (setq gr1 (grread t 15 0)
      gr2 (cadr gr1)
      gr1 (car gr1)
        )
        
        (cond
          ((= 5 gr1)
    (redraw)
    (if lst (mapcar '(lambda (x) (gr_rec (car x) (cadr x))) lst) t)
    (setq tm gr2)
    (gr_rec p1 tm)
          )
          ((= 3 gr1)
     (princ (strcat "\nSpecify the First point ..."
        "\nPress [SPACE/ENTER] to EXIT"
        )
          )
    (setq p2 gr2)
    (setq lst (cons (list p1 p2) lst))
    nil
          )
        )
      )
    )
    t
    )
    ((and (= 2 gr1) (member gr2 '(13 32))) nil)
    (t)
          )
        )
      )
      (if lst
        (progn
          (setq s (ss_union (mapcar '(lambda (x) (ssget "_C" (car x) (cadr x))) lst)))
          (redraw)
          (sssetfirst nil s)
        )
      )
    s
    )
    (defun ss_union (lst / i s)
      (setq lst (vl-sort lst '(lambda (a b) (> (sslength a) (sslength b))))
    s   (car lst)
      )
      (foreach x (cdr lst)
        (repeat (setq i (sslength x))
          (ssadd (ssname x (setq i (1- i))) s)
        )
      )
      s
    ) 
    
    • Vote tăng 1

  10. Vậy có cách nào để nó hiểu xong lệnh lisp nó mới mất gdraw không a Duy???

    Vì sau mỗi lần chon em đều ENter or Space để hiểu nó là 1 vùng nên cái gdraw như a nói cũng sẽ biến mất

     

    Cái này thì anh Duy đã nhầm. Lệnh Mstretch sử dụng đường chọn bằng đối tượng PLINE

    Bạn Tr.Cong Son có thể tham khảo thêm lisp Mstretch.lsp trong Express

    • Vote tăng 2

  11. Chào ACE.

    Em có tý vấn đề này cần hỏi ACE:

    Em vẽ một đường Polyline của nét Center nhưng do vẽ gẫy khúc nhiều từng khoảng ngắn một nên khi vẽ xong phải chọn lại nó, nhấn Ctrl+1, tại táp Misc chọng dòng Linetype genaration: chọn Enable thì nó mới đứt kiểu Center.

    Em muốn mặc định vẽ đường Polyline mà nó ở chế độ Enable luôn thì làm cách nào?

    Xin ACE chỉ giúp.

     

    (vlax-put (vlax-ename->vla-object (car(entsel))) 'LinetypeGeneration 1)


  12. Mình đang sử dụng cad2008 mà

    Bạn xem lại

     

    Sorry! Do mình làm trên 2 CAD2008 và 2012, buồn ngủ nữa nên test CAD2012 cứ tưởng là test trên CAD 2008

    code mình sửa

     

    (defun c:dopl(/ ghidim acadObj doc modelSpace e ddat)
    (defun ghidim(e ddat i / dis lst-dim)
           (setq obj (vlax-ename->vla-object e))
           (setq dis (distance ddat (vlax-curve-getclosestpointto e ddat t)))
         (Repeat (fix (vlax-curve-getEndParam e))
           (if (= 0 (vla-GetBulge obj i))
          (vla-AddDimAligned modelSpace
                        (vlax-3d-point (vlax-curve-getpointatparam e i)) (vlax-3d-point (vlax-curve-getpointatparam e (1+ i)) )
                        (vlax-3d-point (polar (vlax-curve-getpointatparam e (+ i 0.5))
                               (- (angle '(0 0 0) (vlax-curve-getFirstDeriv e (+ i 0.5))) (/ pi 2.0)) dis)
                        )
          )
    (progn
     (vla-adddimradial modelSpace (vlax-3d-point (mapcar '+ (vlax-curve-getpointatparam e (+ i 0.5)) (vlax-curve-getSecondDeriv e (+ i 0.5)))) 
      (vlax-3d-point (vlax-curve-getpointatparam e (+ i 0.5))) 0.0
     ) (setq lst-dim (append lst-dim (list (entlast))))
              (vla-AddDimArc modelSpace (vlax-3d-point (mapcar '+ (vlax-curve-getpointatparam e (+ i 0.5)) (vlax-curve-getSecondDeriv e (+ i 0.5))))
                        (vlax-3d-point (vlax-curve-getpointatparam e i)) (vlax-3d-point (vlax-curve-getpointatparam e (1+ i)) )
                        (vlax-3d-point (polar (vlax-curve-getpointatparam e (+ i 0.5))
                               (- (angle '(0 0 0) (vlax-curve-getFirstDeriv e (+ i 0.5))) (/ pi 2.0)) dis)
                        )
              )
    )
            );if
    (setq lst-dim (append lst-dim (list (entlast))))
        (setq i (1+ i))
        );Repeat
    lst-dim
    )
        (setq acadObj (vlax-get-acad-object))
        (setq doc (vla-get-ActiveDocument acadObj))
     
        (setq modelSpace (vla-get-ModelSpace doc))
      (if (and (setq e (car(entsel "\n Chon Pline : "))) (setq ddat (getpoint (vlax-curve-getstartpoint e) "\nDist (Pick diem) :")))
         (progn
    (setq lst-dim (ghidim e ddat 0))
    (initget "Y N")
    (if (= "Y" (getkword "\nBan muon ghi dim theo huong nguoc lai <Y/N>")) (progn
       (mapcar 'entdel lst-dim) ;(command "._pedit" e "R" "") 
       (ghidim (Rpl e) ddat 0)
    ))
      );progn
     );if
    (princ)
    )
    (defun rpl (p-ent)
    (setq again nil)
    ;;;;(setq p-ent nil)
    ;;;;;;;;;;;(prompt "\nSelect a polyline: ")
    ;;;;;;(while (not p-ent)
    ;;;;(setq p-ent (car (entsel)))
    (if (not p-ent)
    (progn
    (if (and (/= (dxf 0 p-ent) "POLYLINE")
    (/= (dxf 0 p-ent) "LWPOLYLINE")
    ) ;_ end of and
    (progn
    (prompt "\nNot a polyline, select again:"
    ) ;_ end of prompt
    (setq p-ent nil)
    ) ; progn
    ) ;_ end of if
    ) ;_ end of progn
    ) ;_ end of if
    ;;;;) ;_ end of while
    (setq etype (dxf 0 p-ent)
    x-ent p-ent
    is-closed (dxf 70 p-ent)
    ) ; setq
    (if (= etype "LWPOLYLINE")
    (progn
    (setq num-vert (dxf 90 p-ent)
    elist (entget p-ent)
    elist (member (assoc 10 elist) elist)
    vvlist nil
    ) ; setq
    (repeat num-vert
    (setq vlist (list (cdr (assoc 10 elist))))
    (setq vlist
    (append vlist
    (list (cdr (assoc 42 elist)))
    ) ;_ end of append
    ) ;_ end of setq
    (setq vvlist (append vvlist
    (list vlist)
    ) ;_ end of append
    ) ;_ end of setq
    (setq elist (cdr elist)
    elist (member (assoc 10 elist) elist)
    ) ; setq
    ) ; repeat
    ) ; progn lwpolyline
    (progn
    (setq vvlist nil
    p-ent (entnext p-ent)
    ) ; setq
    (while (/= "SEQEND"
    (cdr
    (assoc 0 (entget p-ent))
    ) ;_ end of cdr
    ) ;_ end of /=
    (setq vlist (list (dxf 10 p-ent)))
    (setq vlist (append vlist
    (list (dxf 42 p-ent))
    ) ;_ end of append
    ) ;_ end of setq
    (setq vvlist (append vvlist
    (list vlist)
    ) ;_ end of append
    ) ;_ end of setq
    (setq p-ent (entnext p-ent))
    ) ; while
    ) ; progn polyline
    ) ; if
    (setq p-list (mapcar 'car vvlist)
    p-list (reverse p-list)
    b-list (mapcar 'cadr vvlist)
    b-list (reverse b-list)
    b-first (car b-list)
    b-list (cdr b-list)
    b-list (append b-list (list b-first))
    b-list (mapcar '- b-list)
    ) ; setq
    (setq enlist (list '(0 . "LWPOLYLINE")
    '(100 . "AcDbEntity")
    '(100 . "AcDbPolyline")
    (cons 90 (length p-list))
    (cons 70 (dxf 70 x-ent))
    (cons 8 (dxf 8 x-ent))
    ) ; list
    ) ; setq
    (setq elst nil)
    (repeat (length p-list)
    (setq
    elst (append elst
    (list (cons 10 (car p-list)))
    ) ;_ end of append
    ) ; setq
    (setq
    elst (append elst
    (list (cons 42 (car b-list)))
    ) ;_ end of append
    ) ; setq
    (setq p-list (cdr p-list))
    (setq b-list (cdr b-list))
    ) ; repeat
    (setq enlist (append enlist elst))
    (entdel x-ent)
    (entmakex enlist)
    ;;;;;(prompt "\nPolyline direction is reversed.\n ")
    ;;;;(princ)
    );rpl
    (defun dxf (code ename)
    (cdr (assoc code (entget ename)))
    ) 
    
    • Like 1
    • Vote tăng 2

  13.  

    Lỗi Bác Tue_NV ơi

    Bấm N thì ok

    Bấm Y lỗi không thấy Dim xuất hiện (Thấy PL được highlight)

    lỗi như sau:

    Ban muon ghi dim theo huong nguoc lai <Y/N>y
     
    Invalid option keyword.
    ; error: Function cancelled
     
    Enter an option [Close/Join/Width/Edit vertex/Fit/Spline/Decurve/Ltype 
    gen/Undo]: Osmode Reseted!

     

     

    Đó là do mình viết quick code dùng hàm command ..^ _ ^ . Bạn dùng CAD2008 mới được 


  14. Mình cũng nghĩ hướng ghi dim cũng tuỳ thuộc váo ý chủ quan của người dùng nữa nên đã viết thêm vào Lisp

    Nếu dim ghi không phù hợp thì sau khi ghi dim ra thì lsp hỏi có muốn đặt dim theo hướng ngược lại <Y/N>?

    Nếu gõ Y thì Lsp sẽ tự đảo chiều ghi dim, còn nếu nhấn N hoặc enter thì lsp giữ nguyên chiều ghi dim đó

    - Bổ sung thêm lsp ghi dim bán kính

     

    (defun c:dopl(/ ghidim acadObj doc modelSpace e ddat)
    (defun ghidim(e ddat i / dis lst-dim)
           (setq obj (vlax-ename->vla-object e))
           (setq dis (distance ddat (vlax-curve-getclosestpointto e ddat t)))
         (Repeat (fix (vlax-curve-getEndParam e))
           (if (= 0 (vla-GetBulge obj i))
          (vla-AddDimAligned modelSpace
                        (vlax-3d-point (vlax-curve-getpointatparam e i)) (vlax-3d-point (vlax-curve-getpointatparam e (1+ i)) )
                        (vlax-3d-point (polar (vlax-curve-getpointatparam e (+ i 0.5))
                               (- (angle '(0 0 0) (vlax-curve-getFirstDeriv e (+ i 0.5))) (/ pi 2.0)) dis)
                        )
          )
    (progn
     (vla-adddimradial modelSpace (vlax-3d-point (mapcar '+ (vlax-curve-getpointatparam e (+ i 0.5)) (vlax-curve-getSecondDeriv e (+ i 0.5)))) 
      (vlax-3d-point (vlax-curve-getpointatparam e (+ i 0.5))) 0.0
     ) (setq lst-dim (append lst-dim (list (entlast))))
              (vla-AddDimArc modelSpace (vlax-3d-point (mapcar '+ (vlax-curve-getpointatparam e (+ i 0.5)) (vlax-curve-getSecondDeriv e (+ i 0.5))))
                        (vlax-3d-point (vlax-curve-getpointatparam e i)) (vlax-3d-point (vlax-curve-getpointatparam e (1+ i)) )
                        (vlax-3d-point (polar (vlax-curve-getpointatparam e (+ i 0.5))
                               (- (angle '(0 0 0) (vlax-curve-getFirstDeriv e (+ i 0.5))) (/ pi 2.0)) dis)
                        )
              )
    )
            );if
    (setq lst-dim (append lst-dim (list (entlast))))
        (setq i (1+ i))
        );Repeat
    lst-dim
    )
        (setq acadObj (vlax-get-acad-object))
        (setq doc (vla-get-ActiveDocument acadObj))
     
        (setq modelSpace (vla-get-ModelSpace doc))
      (if (and (setq e (car(entsel "\n Chon Pline : "))) (setq ddat (getpoint (vlax-curve-getstartpoint e) "\nDist (Pick diem) :")))
         (progn
    (setq lst-dim (ghidim e ddat 0))
    (initget "Y N")
    (if (= "Y" (getkword "\nBan muon ghi dim theo huong nguoc lai <Y/N>")) (progn
       (mapcar 'entdel lst-dim) (command "._pedit" e "R" "") (ghidim e ddat 0)
    ))
      );progn
     );if
    (princ)
    )
    
    • Vote tăng 1

  15. Hề hề hề, 

    Thank bác Tue_NV vì đúng là mình vẫn xài CAD2004. Như vậy hàm này có bắt đầu từ CAD bao nhiêu bác nhỉ??? Và nếu là CAD2004 có thể tìm hàm nào đaể thay thề???

    Lúc trước mình có viết một lisp để làm việc này nhưng không thuận tiện lắm. Nếu có hàm sẵn thì tốt hơn nhiều.

     

    Theo em biết thì hình như lệnh dimarc có từ CAD2007 nên hàm (vla-adddimarc ......... ) có từ CAD2007

    Em không dùng CAD2004 nên không biết có hàm nào thay thế hết bác ạ

    Bác nên dùng CAD2008 sẽ bổ sung nhiều hàm vla-... sẽ thuận tiện sử dụng hơn


  16. Hề hề hề,

    Bác Tue_NV xem xét giùm vì sao khi tải lisp trên về thì không thể load lisp được. Nhưng khi mình copy code và đổi tên file cho nó thì lại load bình thường.

    Khi load được lisp và xài thử thì lại bị thông báo rằng không có lệnh (vla-adddimarc ......... ) bác ạ.

     

    Có thể Bác Bình sài CAD2004 thì không có hàm này!

     

    @huunhan: Có Trường hợp thì Pline bị đảo chiều có thể không như ý muốn.

    Có lẽ mình sẽ viết lại theo kiểu chọn hướng ghi Dim sẽ ok hơn

    - Bạn muốn viết thêm TH đo Bán kính: Trường hợp khi gặp cung thì vừa đo chiều dài cung , vừa đo bán kính hay sao? Bạn vui lòng upload file nhé!

    • Vote tăng 1

  17.  

    Trường hợp này không dùng hàm command được.

    Bạn test thử code nhé :

     

    (defun c:dopl()
        (setq acadObj (vlax-get-acad-object))
        (setq doc (vla-get-ActiveDocument acadObj))
     
        (setq modelSpace (vla-get-ModelSpace doc))
      (setq i 0)
      (if (and (setq e (car(entsel "\n Chon Pline : "))) (setq ddat (getpoint (vlax-curve-getstartpoint e) "\nDist (Pick diem) :")))
         (progn
           (setq obj (vlax-ename->vla-object e))
           (setq dis (distance ddat (vlax-curve-getclosestpointto e ddat)))
         (Repeat (fix (vlax-curve-getEndParam e))
           (if (= 0 (vla-GetBulge obj i))
          (vla-AddDimAligned modelSpace
                        (vlax-3d-point (vlax-curve-getpointatparam e i)) (vlax-3d-point (vlax-curve-getpointatparam e (1+ i)) )
                        (vlax-3d-point (polar (vlax-curve-getpointatparam e (+ i 0.5))
                               (- (angle '(0 0 0) (vlax-curve-getFirstDeriv e (+ i 0.5))) (/ pi 2.0)) dis)
                        )
          )
    
              (vla-AddDimArc modelSpace (vlax-3d-point (mapcar '+ (vlax-curve-getpointatparam e (+ i 0.5)) (vlax-curve-getSecondDeriv e (+ i 0.5))))
                        (vlax-3d-point (vlax-curve-getpointatparam e i)) (vlax-3d-point (vlax-curve-getpointatparam e (1+ i)) )
                        (vlax-3d-point (polar (vlax-curve-getpointatparam e (+ i 0.5))
                               (- (angle '(0 0 0) (vlax-curve-getFirstDeriv e (+ i 0.5))) (/ pi 2.0)) dis)
                        )
          )
            );if
        (setq i (1+ i))
        );Repeat
      );progn
     );if
    )
    
    • Vote tăng 2
×