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

SỬA LỖI LISP EM MỚI TẬP VIẾT

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

Xin chào các anh 

Em mới tập viết lisp, khi load thì báo lỗi malformed list on input

Xem giúp em bị sai chỗ nào ạ

(defun c:tdt( / a b x)
(setq a(getreal("nhap a"))
(setq b(getreal("nhap b"))
(setq x (+ a b)
(princ"\nTong la:")
(princ x)
)

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
17 phút trước, trieu12341 đã nói:

(defun c:tdt( / a b x) 
(setq a(getreal("nhap a")) ; Thừa dấu ngoặc () ; Thiếu dấu đóng ngoặc )
(setq b(getreal("nhap b")) ; Thừa dấu ngoặc () ; Thiếu dấu đóng ngoặc )
(setq x (+ a b)                     ; Thiếu dấu đóng ngoặc )
(princ"\nTong la:")
(princ x)
)

 

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
9 phút trước, trieu12341 đã nói:

Xin chào các anh 

Em mới tập viết lisp, khi load thì báo lỗi malformed list on input

Xem giúp em bị sai chỗ nào ạ

(defun c:tdt( / a b x)
(setq a(getreal("nhap a"))
(setq b(getreal("nhap b"))
(setq x (+ a b)
(princ"\nTong la:")
(princ x)
)

thừa mấy dấu ngoặc "("

sửa lại như sau

(defun c:tdt( / a b x)
(setq a(getreal "nhap a"))
(setq b(getreal "nhap b"))
(setq x (+ a b))
(princ"\nTong la:")
(princ x)
)

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

hay quá ạ :)))) 
Em mày mò mấy bài của bác hoành với trang vietlisp, có kê khai các hàm

Trò này rất thú vị, xài chùa nhiều r, giờ tập viết khó vô cùng

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

(defun c:tdt( / sel ent dientich)

(princ "\nChao cadviet")

(setq sel (entsel "\nHay chon doi tuong: "))

(setq ent (car sel))

(command ".area" "o" ent)

(setq dientich (getvar "area"))

(princ "\nDien tich tap doi tuong vua roi la: ")

(princ dientich)

(princ "\nm2")

(princ)

)

Sao lisp của bác Hoành k cần rtos mà vẫn pinc dc dạng số nhỉ ?

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 lệnh Princ một mình thì có thể in ra bất cứ kiểu biến nào. Nhưng nếu nối các text vào nhau thì phải chuyển số thành text trước (bằng lệnh rtos).

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

Good morning bác Hoành

Theo ý em hiểu thì do anh đã setq biến dientich thành setvar của area, lệnh setvar sẽ lấy giá trị của area nên princ chỉ in mỗi area ra thôi phải không ạ ? :D
à mình nên dùng soft nào để tập viết lisp ạ, cty em xài zwcad k có visuallsip editor

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

à, thêm 1 cái nữa là tại sao sau (princ "\nm2") lại có (princ) vậy bác. k có thì có sao ko

có sao hay không là do cảm nhận của mỗi người ?!

chạy 2 lisp dưới đây để thấy sự khác biệt :

(defun c:coPrinc(/)
  (princ"\nCo (princ).")
  (princ)
  )

(defun c:koPrinc(/)
  (princ"\nKhong co (princ).")
  )
1 giờ} trướ}c, trieu12341 đã nói:

........

à mình nên dùng soft nào để tập viết lisp ạ, cty em xài zwcad k có visuallsip editor

Muốn sài VisualLisp Editor thì phải cài AutoCAD.

Có thể dùng Notepad++ để viết lisp nhưng không bằng Editor chính chủ của AutoCAD.

 

Có 1 số hàm của visualLisp không chạy (hoặc chạy không chính xác) trên ZwCAD !

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
27 phút trước, gia_bach đã nói:

Có 1 số hàm của visualLisp không chạy (hoặc chạy không chính xác) trên ZwCAD !

@Gia_Bach: chả lẽ ZwCad có hàm visualisp nhưng chạy không đúng à? Không đúng ở đây nghĩa là sao? Vì tôi đang tìm hiểu về 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

×