Chuyển đến nội dung
Diễn đàn CADViet
Đăng nhập để thực hiện theo  
trinhtoan37

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

Các bài được khuyến nghị

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

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

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

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

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)

)

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

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))

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

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 :)

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

Tạo một tài khoản hoặc đăng nhập để nhận xét

Bạn cần phải là một thành viên để lại một bình luận

Tạo tài khoản

Đăng ký một tài khoản mới trong cộng đồng của chúng tôi. Điều đó dễ mà.

Đăng ký tài khoản mới

Đăng nhập

Bạn có sẵn sàng để tạo một tài khoản ? Đăng nhập tại đây.

Đăng nhập ngay

Đăng nhập để thực hiện theo  

×