Đến nội dung


Hình ảnh
- - - - -

[Hỏi]Lỗi khi chạy lisp " pl2spl"


  • Please log in to reply
7 replies to this topic

#1 trinhtoan37

trinhtoan37

    biết zoom

  • Members
  • Pip
  • 18 Bài viết
Điểm đánh giá: 0 (bình thường)

Đã gửi 07 September 2011 - 08:51 AM

Các bác cho e hỏi tại sao khi e dùng lệnh "pl2spl" chuyển đường pline thành spline thì nó báo lỗi thế này nhỉ? (Lisp này e down ở Diến đàn này mà ko dùng đc.) Mong bác nào xem xét và sửa lại hộ cho e cái lisp . Tks các bác.
Lỗi báo thế này:

Command: pl2spl

Select a polyline object; error: no function definition: MASSOC
  • 0

#2 ketxu

ketxu

    Copier - Paster - Editor

  • Moderator
  • PipPipPipPipPipPipPip
  • 5685 Bài viết
Điểm đánh giá: 2606 (tuyệt vời)

Đã gửi 07 September 2011 - 08:56 AM

Có hàng trăm lisp pl2spl bạn ạ :)
  • 0

Thành viên nhóm CadMagic.
Mời bạn ghé thăm facebook nhóm - Page viết lisp theo yêu cầu  :
CAD MAGIC


#3 trinhtoan37

trinhtoan37

    biết zoom

  • Members
  • Pip
  • 18 Bài viết
Điểm đánh giá: 0 (bình thường)

Đã gửi 07 September 2011 - 08:59 AM

Hix...Thế bác Ketxu có lisp nào dùng ngon thì shere cho e nhé. tks bác trước.
  • 0

#4 ketxu

ketxu

    Copier - Paster - Editor

  • Moderator
  • PipPipPipPipPipPipPip
  • 5685 Bài viết
Điểm đánh giá: 2606 (tuyệt vời)

Đã gửi 07 September 2011 - 09:03 AM

Mình không nói đến vấn đề có hay không, vì mình không dùng chức năng đó, nên cũng chẳng giữ làm chi :) Vấn đề ở đây là khi bạn trình bày vấn đề, bạn phải cho người ta biết cái bạn dùng là cái nào.
Ngoài ra, hàm massoc theo mình đoán có thể là hàm lấy toàn bộ assoc, trên mạng cũng có vô số kể với từ khóa (defun massoc. Bạn search từ này trên GG, lấy 1 cái về và cho vào lisp
  • 0

Thành viên nhóm CadMagic.
Mời bạn ghé thăm facebook nhóm - Page viết lisp theo yêu cầu  :
CAD MAGIC


#5 trinhtoan37

trinhtoan37

    biết zoom

  • Members
  • Pip
  • 18 Bài viết
Điểm đánh giá: 0 (bình thường)

Đã gửi 07 September 2011 - 09:21 AM

E nhầm, e lấy cái lisp này ở diễn đàn khác chứ ko fai ở cadviet. Ở cadviet e vào mà link nó die hay sao ý.
Bác thử xem code này đúng chưa ạ?


(defun c:pl2spl (/ ss sse npt)
(if
(setq ss (car (entsel "\nSelect a polyline object")))
(progn
(setq sse (entget ss))
(setq npt (massoc 10 sse))
(command "_erase" ss "")
(command "_spline")
(foreach x npt
(command x)
) ; foreach
(command "" "" "")
) ; progn
(alert "\nInvalid selected object,please try again")
) ; if
(princ)
)
  • 0

#6 thiep

thiep

    biết dimbaseline

  • Members
  • PipPipPipPipPip
  • 369 Bài viết
Điểm đánh giá: 260 (khá)

Đã gửi 07 September 2011 - 10:22 AM

E nhầm, e lấy cái lisp này ở diễn đàn khác chứ ko fai ở cadviet. Ở cadviet e vào mà link nó die hay sao ý.
Bác thử xem code này đúng chưa ạ?


(defun c:pl2spl (/ ss sse npt)
(if
(setq ss (car (entsel "\nSelect a polyline object")))
(progn
(setq sse (entget ss))
(setq npt (massoc 10 sse))
(command "_erase" ss "")
(command "_spline")
(foreach x npt
(command x)
) ; foreach
(command "" "" "")
) ; progn
(alert "\nInvalid selected object,please try again")
) ; if
(princ)
)

bạn thử thay dòng (massoc 10 sse) bằng dòng (ACET-GEOM-VERTEX-LIST ss)
và bỏ dòng (setq sse (entget ss))
  • 0

#7 ketxu

ketxu

    Copier - Paster - Editor

  • Moderator
  • PipPipPipPipPipPipPip
  • 5685 Bài viết
Điểm đánh giá: 2606 (tuyệt vời)

Đã gửi 07 September 2011 - 10:36 AM

Mặc dù mình đã hướng dẫn như thế rồi nhưng có vẻ bạn không ưng GG?
Bạn thêm hàm này vào đầu hoặc cuối lisp :

(defun mAssoc ( key lst )
(foreach x lst (if (= key (car x))(setq l (cons (cdr x) l))))
(reverse l)
)
Ngoài ra bạn hãy cho code vào thẻ code khi post lên diễn đàn :)
  • 0

Thành viên nhóm CadMagic.
Mời bạn ghé thăm facebook nhóm - Page viết lisp theo yêu cầu  :
CAD MAGIC


#8 trinhtoan37

trinhtoan37

    biết zoom

  • Members
  • Pip
  • 18 Bài viết
Điểm đánh giá: 0 (bình thường)

Đã gửi 07 September 2011 - 02:47 PM

Oh yeah!!! E đã làm được rồi.Cảm ơn 2 bác nhiều nhiều.
  • 0