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

Nhờ Các Cao Thủ Giúp Load Trên 50 Lisp

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

E có vấn đề muốn hỏi các pro ạ. E có nhiều file .fas với file .vxl e sưu tầm được của các bác trên diễn đàn ạ. Nếu là file .lsp thì load chỗ cui có thể load bao nhiêu cũng được. Nhưng e load ở contents (ở lệnh Ap) nó chỉ cho e load giới hạn là 50 các loại thôi ạ. E dùng nối các file .fas của autocad nhưng chỉ file đầu nó chạy thôi ạ. E tìm giải pháp nhiều ngày nhưng ko được. Các bác có thể bảo cho e biết làm sao để load giới hạn trên 50 lisp của cad hay có cách nào để nối các file .fas lại với nhau ko ạ. E xin cảm ơ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

E có vấn đề muốn hỏi các pro ạ. E có nhiều file .fas với file .vxl e sưu tầm được của các bác trên diễn đàn ạ. Nếu là file .lsp thì load chỗ cui có thể load bao nhiêu cũng được. Nhưng e load ở contents (ở lệnh Ap) nó chỉ cho e load giới hạn là 50 các loại thôi ạ. E dùng nối các file .fas của autocad nhưng chỉ file đầu nó chạy thôi ạ. E tìm giải pháp nhiều ngày nhưng ko được. Các bác có thể bảo cho e biết làm sao để load giới hạn trên 50 lisp của cad hay có cách nào để nối các file .fas lại với nhau ko ạ. E xin cảm ơn ạ!

LÀM CÁI LISP MỚI TRONG ĐÓ CÓ:

(autoload "NAME1.LSP" '("LỆNH"))

(autoload "NAME2.FAS" '("LÊNH2"))

 

CHỈ load lisp này thôi là có các lisp khá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

- Cách của Mr. Bee, có cái hay là dùng đến lệnh nào thì mới tự động load LISP đó. Có chút hạn chế là phải liệt kê tất cả file (lsp, fas, vlx) và tên lệnh. Khi có lisp mới thì phải bổ sung...

- Cách của mình dưới đây thì không cần liệt kê như trên, nhưng hạn chế là load tất cả các file lisp 1 lần => có thể bị chậm chút xíu.

Tạo file lisp có nội dung:

 

(vl-load-com)
(setq #pathdirectory_lsp# "C:/THUVIEN/LISP")
(foreach ext  '("*.lsp" "*.fas" "*.vlx")
  (foreach x (vl-directory-files #pathdirectory_lsp# ext) (load (strcat #pathdirectory_lsp# "/" x))))
(princ)

*** Chỉ cần load file này thôi, và chú ý đường dẫn chứa lisp.

  • Vote tăng 2

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

- Cách của Mr. Bee, có cái hay là dùng đến lệnh nào thì mới tự động load LISP đó. Có chút hạn chế là phải liệt kê tất cả file (lsp, fas, vlx) và tên lệnh. Khi có lisp mới thì phải bổ sung...

- Cách của mình dưới đây thì không cần liệt kê như trên, nhưng hạn chế là load tất cả các file lisp 1 lần => có thể bị chậm chút xíu.

Tạo file lisp có nội dung:

*** Chỉ cần load file này thôi, và chú ý đường dẫn chứa lisp.

Uhm, có cách nào kết hợp cái hay của cả 2 cái trên không 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

Uhm, có cách nào kết hợp cái hay của cả 2 cái trên không nhỉ ? ^_^

Theo e tạo lấy 2 cái foder 1 cái làm như của Bác Mạnh, 1 cái foder làm kiểu như bác. 1 cái foder hay dùng 1 cái thì hnao đẹp trời thì dùng :D  :D  :D  :D

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

- Cách của Mr. Bee, có cái hay là dùng đến lệnh nào thì mới tự động load LISP đó. Có chút hạn chế là phải liệt kê tất cả file (lsp, fas, vlx) và tên lệnh. Khi có lisp mới thì phải bổ sung...

- Cách của mình dưới đây thì không cần liệt kê như trên, nhưng hạn chế là load tất cả các file lisp 1 lần => có thể bị chậm chút xíu.

Tạo file lisp có nội dung:

*** Chỉ cần load file này thôi, và chú ý đường dẫn chứa lisp.

anh cho hỏi nếu em có nhiều thư mục thì cần phải sửa lại đoạn code thế nào ah?  em cảm ơ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

anh cho hỏi nếu em có nhiều thư mục thì cần phải sửa lại đoạn code thế nào ah?  em cảm ơn

Bạn thử cái này xem

 

(vl-load-com)

(mapcar 'load
        (apply 'append
               (foreach d  '("C:/Autolisp" "D:/THUVIEN/Autolisp")
                 (mapcar '(lambda (e) (mapcar '(lambda (f) (strcat d "/" f)) (vl-directory-files d e)))
                         '("*.lsp" "*.fas" "*.vlx")))))
(princ)
  • 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

Bạn thử cái này xem

Em cảm ơn anh. Làm phiền anh cho em hỏi thêm một chút xíu nữa là đối với Foder có chứa > 50 lệnh thì nó báo Unknown command.  Press F1 for help. (50 lệnh trở xuống thì được), Khi có hai đường dẫn trở lên thì nó chỉ nhận đường dẫn cuối cùng anh ạ, còn lệnh ở đường dẫn trước thì nó báo Unknown command. đây là lisp em tạo anh xem giúp em:

(vl-load-com)
(mapcar 'load
        (apply 'append
               (foreach d  '("C:/Library Autolisp" "C:/Library Autolisp/Ban ve" "C:/Library Autolisp/Block" "C:/Library Autolisp/Thep")
                 (mapcar '(lambda (e) (mapcar '(lambda (f) (strcat d "/" f)) (vl-directory-files d e)))
                         '("*.lsp" "*.fas" "*.vlx")))))
(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

Sr...! Bajn thử lại cái này:

 

(vl-load-com)

(mapcar 'load
        (apply 'append
               (mapcar '(lambda (d)
                          (apply 'append
                                 (mapcar '(lambda (e) (mapcar '(lambda (f) (strcat d "/" f)) (vl-directory-files d e)))
                                         '("*.lsp" "*.fas" "*.vlx"))))
                       '("C:/Library Autolisp" "C:/Library Autolisp/Ban ve" "C:/Library Autolisp/Block" "C:/Library Autolisp/Thep"))))
(princ)
  • 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

Sr...! Bajn thử lại cái này:

Em cảm ơn anh, em đã thử vào thành công với những foder có số lượng lisp < 50 và đối với foder >50 thì nó chỉ nhận một vài lệnh còn đa phần là không hiểu lệnh, xin hỏi anh là có cách nào khắc phục không? nếu không được thì cũng rất là tuyệt 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

Bạn thử lại cái này xem sao! Nếu không vượt được 50 file, thì nhờ cao thủ nào lướt qua, hỗ trợ giùm...!

 

(vl-load-com)

(foreach d  '("C:/001" "D:/002")
  (mapcar 'load
          (mapcar '(lambda (f) (strcat d "/" f))
                  (apply 'append
                         (mapcar '(lambda (e) (vl-directory-files d e 1)) '("*.lsp" "*.fas" "*.vlx"))))))
(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

Bạn thử lại cái này xem sao! Nếu không vượt được 50 file, thì nhờ cao thủ nào lướt qua, hỗ trợ giùm

Không được anh ạ, dù sao cũng cảm ơn anh đã nhiệt tình giúp đỡ có thể do đống lisp của em có cái lisp nào đó bị lỗi hoặc hạn chế gì đó mà em không biết vì lisp em sưu tầm của nhiều người. Cảm ơn anh chúc anh sức khỏe

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

Sao mình làm theo các cách trên mà không được.

 Theo cách của quocmanh04tt

(vl-load-com)
(setq #pathdirectory_lsp# "d:/LISP")
(foreach ext  '("*.lsp" "*.fas" "*.vlx")
  (foreach x (vl-directory-files #pathdirectory_lsp# ext) (load (strcat #pathdirectory_lsp# "/" x))))
(princ)

Cách này thì nó báo lỗi : error: extra right paren on input

Chỉ có được vài lệnh sài được

-----------------------------------------------

Theo cách quocmanh04tt

2 Thư mục riêng củng không được

Cách này thì nó báo lỗi : error: extra right paren on input

 

xin mọi người chỉ giúp với, cám ơ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

×