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

Hướng dẫn sử dụng mã Lisp

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

xin chào anh Hoành và các bậc đàn anh về lĩnh vực auto lisp .

em muốn học cách viết lisp , mong các anh giúp đỡ và hướng dẫn cho em 

em xin chân thành cảm ơn ah.

Kịp thời}}, Nguyen Hoanh cho biết:

* Lisp là gì?

Lisp là một ngôn ngữ script chạy dưới CAD, sử dụng các mã lisp giúp AutoCAD mạnh hơn.

 

* Cách sử dụng file lisp

Gồm 2 bước:

a. Tải (load) file lisp vào AutoCAD

Khi đã có file lisp trên ổ cứng, dùng lệnh appload (vào menu: Tools > Load Applications ...) rồi chọn file lisp cần sử dụng, nhấn vào phím load. Với mỗi bản vẽ, thao tác tải file chỉ cần thực hiện 1 lần.

3_huongdansdlisp.png

 

b. Gọi lệnh trong file lisp vừa tải

Tại dòng command, gõ tên lệnh (xem phần tìm tên lệnh bên dưới) và nhấn enter.

 

* Lưu lại đường dẫn file sau mỗi lần load

Bạn hãy check vào ô Add to History, từ lần sau bạn chỉ cần click tên file lisp từ bảng History list.

 

___

 

  • 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

Bác #VoHoan:        Thuật toán gì ở đây nhỉ: ^^:

Ý tưởng sẽ nảy sinh như thế này: Trong chuỗi 123~456.. ---> Tìm xem ký tự "~" nằm ở vị trí nào trong chuỗi.   ---> Lọc ra các ký tự bên phải , bên trái của "~".   ----> Ghép lại là xong ^^.

Nếu bác từng viết lisp rồi thì hiểu mà :) Nếu bác chưa viết bao giờ thì mọi người sẽ viết code cho @@

 

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 xem code này rồi múa máy
(defun C:HA()
 (setq str "1234~5678")
 (setq vt (vl-string-position (ascii "~") "1234~5678"))
 (setq a (substr str 1 vt))
 (setq b (substr str (+ vt 2) (strlen str)))
 (/ (+ (atof a) (atof b)) 2))
 

  • Like 1
  • 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

Sử dụng hàm Cal và Rep cũng hay các Bạn

(setq chu1 "1234~5678"

           so1 (/ (cal (acet-str-replace "~" "+" chu1)) 2.0)

)

 

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 tính hỏi các bạn cái này nhưng không biết để đâu cho tiện, đành để ở đây, nếu không đúng xin thứ lỗi.

Mình có câu lệnh lisp như sau:

(command "_.insert" "M_XY_KV" p 1 "" 0 "1")

Đây là lệnh chèn block "M_XY_KV" có thuộc tính "1" tại vị trí p.

Nếu thực hiện từ cad2013 về trước thấy vẫn bình thường,

nhưng khi làm trên cad2017 nó lại hiện lên khung đối thoại để nhập.

Vậy làm sao cho nó nhận trị "sohieu" như cad 2013 được mà không cần hiện hộp thoại.

Nhờ các bạn chỉ giúp. Cám ơn các bạn

M_XY_KV.dwg

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

Mình tính hỏi các bạn cái này nhưng không biết để đâu cho tiện, đành để ở đây, nếu không đúng xin thứ lỗi.

Mình có câu lệnh lisp như sau:

(command "_.insert" "M_XY_KV" p 1 "" 0 "1")

Đây là lệnh chèn block "M_XY_KV" có thuộc tính "1" tại vị trí p.

Nếu thực hiện từ cad2013 về trước thấy vẫn bình thường,

nhưng khi làm trên cad2017 nó lại hiện lên khung đối thoại để nhập.

Vậy làm sao cho nó nhận trị "sohieu" như cad 2013 được mà không cần hiện hộp thoại.

Nhờ các bạn chỉ giúp. Cám ơn các bạn

M_XY_KV.dwg

Bác thử (setvar 'attdia 0)  xem

  • 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

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

×