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

(Góc cầu cứu) chỉnh sửa lisp

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

Em chào các anh chị!
Chả là em có tự viết 1 lisp tính tổng chiều dài các hình được chọn (rồi ghi lên 1 text có sãn trên bản vẽ), nhưng em test mà lisp không chạy được, em chình độ còn non không phát hiện được lỗi ở đâu, Mong các anh chị ghé qua, chỉ điểm giúp em với ạ

Em cám ơn các anh chị!

Sau đây là lisp của em!

TINH TONG CHIEU DAI.LSP

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

Bạn thay dòng này:

(setq lst (append lst leg))

Thành:

(setq lst (append lst (list leg)))

Hoặc:

(setq lst (cons leg lst))

  • Like 1

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

Bạn mới học viết lisp thì nên bỏ thêm ít thời gian học cách dùng Visual Lisp Editor thay vì dùng notepad để viết. Nó có công cụ hỗ trợ gỡ lỗi rất hay.

  • Like 1
  • Vote giảm 1

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

  Thật ra do thớt chưa biết dùng hàm append thôi chứ chưa hẳn không biết xài vlide, vì dù viết = notepad hay vlide thì khi chạy mới phát sinh lỗi chứ kp lúc viết hay lúc load.

  Thời nay phải giỏi cỡ LM mới viết = notepad hay notepad++, vì viết xong là chạy luôn khỏi cần tét tít gì cả.

  • Vote tăng 1

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
22 giờ trước, NTHAHT đã nói:

Bạn thay dòng này:

(setq lst (append lst leg))

Thành:

(setq lst (append lst (list leg)))

Hoặc:

(setq lst (cons leg lst))

Em cám ơn bác @NTHAHT , em sửa được rồi ạ

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
6 giờ trước, alisp đã nói:

  Thật ra do thớt chưa biết dùng hàm append thôi chứ chưa hẳn không biết xài vlide, vì dù viết = notepad hay vlide thì khi chạy mới phát sinh lỗi chứ kp lúc viết hay lúc load.

  Thời nay phải giỏi cỡ LM mới viết = notepad hay notepad++, vì viết xong là chạy luôn khỏi cần tét tít gì cả.

Đúng là em chưa thạo hàm append bác ạ, chứ em cũng viết trên vline rồi copy sang notepad thôi !

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
Vào lúc 20/6/2021 tại 23:11, NTHAHT đã nói:

Bạn thay dòng này:

(setq lst (append lst leg))

Thành:

(setq lst (append lst (list leg)))

Hoặc:

(setq lst (cons leg lst))

Bác NTHAHT cho em hỏi 1 chút, nếu dùng : setq lst (cons leg lst) 

Thì list nó có dấu châm, làm sao để cộng đc các phần tử trong list lại đc ạ?

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

Nếu leg và lst đều là item thì mới có dấu chấm, thí dụ (cons 1 2) ---> (1 . 2)

Còn nếu chỉ có leg là item còn lst là list thì không có dấu chấm, thí dụ (cons 1 '(2 3 4)) ---> (1 2 3 4)

  • Vote tăng 1

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
2 giờ trước, alisp đã nói:

Nếu leg và lst đều là item thì mới có dấu chấm, thí dụ (cons 1 2) ---> (1 . 2)

Còn nếu chỉ có leg là item còn lst là list thì không có dấu chấm, thí dụ (cons 1 '(2 3 4)) ---> (1 2 3 4)

Cám ơn bác alisp

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

×