Đến nội dung


Hình ảnh
5 stars - based on 24598 reviews
- - - - -

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


  • Please log in to reply
12 replies to this topic

#1 kuakider

kuakider

    Chưa sử dụng CAD

  • Members
  • Pip
  • 3 Bài viết
Điểm đánh giá: 0 (bình thường)

Đã gửi 14 June 2017 - 07:34 PM

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 ạ!


  • 0

#2 Bee

Bee

    biết dimbaseline

  • Members
  • PipPipPipPipPip
  • 367 Bài viết
Điểm đánh giá: 107 (tàm tạm)

Đã gửi 14 June 2017 - 10:09 PM

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.


  • 1

#3 quocmanh04tt

quocmanh04tt

    biết lệnh adcenter

  • Members
  • PipPipPipPipPipPipPip
  • 803 Bài viết
Điểm đánh giá: 381 (khá)

Đã gửi 14 June 2017 - 10:50 PM

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


  • 1

#4 kuakider

kuakider

    Chưa sử dụng CAD

  • Members
  • Pip
  • 3 Bài viết
Điểm đánh giá: 0 (bình thường)

Đã gửi 14 June 2017 - 11:22 PM

E cảm ơn 2 bác rất rất nhiều. E làm theo cách của cả 2 bác e đều làm được rồi ạ. Thả tim <3


  • 0

#5 Bee

Bee

    biết dimbaseline

  • Members
  • PipPipPipPipPip
  • 367 Bài viết
Điểm đánh giá: 107 (tàm tạm)

Đã gửi 15 June 2017 - 11:14 AM

- 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ỉ ? ^_^


  • 0

#6 kuakider

kuakider

    Chưa sử dụng CAD

  • Members
  • Pip
  • 3 Bài viết
Điểm đánh giá: 0 (bình thường)

Đã gửi 15 June 2017 - 11:38 AM

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


  • 0

#7 huyenle

huyenle

    biết vẽ line

  • Members
  • PipPip
  • 23 Bài viết
Điểm đánh giá: 1 (bình thường)

Đã gửi 22 July 2017 - 08:04 PM

- 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


  • 0

#8 quocmanh04tt

quocmanh04tt

    biết lệnh adcenter

  • Members
  • PipPipPipPipPipPipPip
  • 803 Bài viết
Điểm đánh giá: 381 (khá)

Đã gửi 23 July 2017 - 09:32 AM

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)

  • 1

#9 huyenle

huyenle

    biết vẽ line

  • Members
  • PipPip
  • 23 Bài viết
Điểm đánh giá: 1 (bình thường)

Đã gửi 23 July 2017 - 10:09 AM

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)

  • 0

#10 quocmanh04tt

quocmanh04tt

    biết lệnh adcenter

  • Members
  • PipPipPipPipPipPipPip
  • 803 Bài viết
Điểm đánh giá: 381 (khá)

Đã gửi 23 July 2017 - 11:14 AM

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)

  • 1

#11 huyenle

huyenle

    biết vẽ line

  • Members
  • PipPip
  • 23 Bài viết
Điểm đánh giá: 1 (bình thường)

Đã gửi 23 July 2017 - 02:34 PM

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.


  • 0

#12 quocmanh04tt

quocmanh04tt

    biết lệnh adcenter

  • Members
  • PipPipPipPipPipPipPip
  • 803 Bài viết
Điểm đánh giá: 381 (khá)

Đã gửi 23 July 2017 - 03:32 PM

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)

  • 0

#13 huyenle

huyenle

    biết vẽ line

  • Members
  • PipPip
  • 23 Bài viết
Điểm đánh giá: 1 (bình thường)

Đã gửi 23 July 2017 - 04:00 PM

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


  • 0