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

Load lisp bang lenh

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

XIn hỏi làm sao để load tất cả *.(lsp, vlx, arx, fas) bằng lệnh LISP.

Ví dụ trong thư mục C:\\Load có các file lisp con 1,2.......

Vậy có lệnh nào Load tất cả các file trong đấy mà ko phải chỉ tên đích danh từng thằng không?

Cảm ơn mọi người trướ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
XIn hỏi làm sao để load tất cả *.(lsp, vlx, arx, fas) bằng lệnh LISP.

Ví dụ trong thư mục C:\\Load có các file lisp con 1,2.......

Vậy có lệnh nào Load tất cả các file trong đấy mà ko phải chỉ tên đích danh từng thằng không?

Cảm ơn mọi người trước.............

Bạn sử dụng hàm Load :

 

Hàm (Load ...)

CHỨC NĂNG: Gọi một chương trình ứng dụng vào AutoCad

CÚ PHÁP:

(Load “Tên_tệp”)

GIẢI THÍCH:

Tên_tệp: là tên tập tin có phần mở rộng *.LSP, .ARX, .ADS hoặc .EXE

Nếu chương trình đặt ngoài thư mục làm việc của AutoCad thì phải chỉ rõ đường dẫn của tệp tin đó

Ví dụ : file tong.lsp trong thư mục C:\\Load thì sử dụng hàm load như sau :

 

(Load "C:\\Load \\tong.lsp")

 

Nếu thư mục C:\\Load nằm trong thư mục làm việc của AutoCad (support file search Path)

thì chỉ cần Load như sau :

 

(Load "tong.lsp")

  • 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
XIn hỏi làm sao để load tất cả *.(lsp, vlx, arx, fas) bằng lệnh LISP.

Ví dụ trong thư mục C:\\Load có các file lisp con 1,2.......

Vậy có lệnh nào Load tất cả các file trong đấy mà ko phải chỉ tên đích danh từng thằng không?

Cảm ơn mọi người trước.............

Load 1 file thì bạn Tue_NV đã nói rồi, ssg xin bổ sung (mách nước thôi, bạn tự làm):

1- (vl-directory-files MyPath "*.lsp") -> return list của tất cả các file *.lsp trong MyPath

2- Dùng Foreach kết hợp với Load để load tất cả chúng mà không phải "chỉ tên đích danh từng thằng". Làm tương tự với các kiểu *.vlx, *.fas...

3- Nên thiết lập luôn Support File Search Path cho MyPath

 

Chúc thành công!

  • Vote tăng 6

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
Load 1 file thì bạn Tue_NV đã nói rồi, ssg xin bổ sung (mách nước thôi, bạn tự làm):

1- (vl-directory-files MyPath "*.lsp") -> return list của tất cả các file *.lsp trong MyPath

2- Dùng Foreach kết hợp với Load để load tất cả chúng mà không phải "chỉ tên đích danh từng thằng". Làm tương tự với các kiểu *.vlx, *.fas...

3- Nên thiết lập luôn Support File Search Path cho MyPath

 

Chúc thành công!

 

 

Cảm ơn nhiều, nhưng mình cũng một lần dùng cách này rồi, có chút vấn đề là khi mình tạo một list các đường dẫn thì có lúc nó cho kết quả không đúng đường dẫn làm lisp chạy sai.

Chẳng hạn đường dẫn là "C:\\my_lsp\\file1.lsp" "C:\\my_lsp\\file2.lsp" "C:\\my_lsp\\file3.vlx"................Thì có lúc đầu list như sau:

("fìle1.lsp" "C:\\my_lsp\\file2.lsp" "C:\\my_lsp\\file3.vlx" .......... "C:\\my_lsp\\")

Ý của mình ở đây là đường dẫn nó bị cắt và chắp nối không đúng nữa, đang rất thắc mắt.

Mình cần cái này là do máy chạy không được good nên khi cần thì mới dùng lisp load cho nhanh thôi (bổ sung menu tien ich cua minh ma)

Cảm ơn va mong mọi người giúp đỡ

 

 

Thế còn "3- Nên thiết lập luôn Support File Search Path cho MyPath" bằng lisp thì mình phải lam thế nào ạ, cái này chưa biết.........

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ảm ơn nhiều, nhưng mình cũng một lần dùng cách này rồi, có chút vấn đề là khi mình tạo một list các đường dẫn thì có lúc nó cho kết quả không đúng đường dẫn làm lisp chạy sai.

Chẳng hạn đường dẫn là "C:\\my_lsp\\file1.lsp" "C:\\my_lsp\\file2.lsp" "C:\\my_lsp\\file3.vlx"................Thì có lúc đầu list như sau:

("fìle1.lsp" "C:\\my_lsp\\file2.lsp" "C:\\my_lsp\\file3.vlx" .......... "C:\\my_lsp\\")

Ý của mình ở đây là đường dẫn nó bị cắt và chắp nối không đúng nữa, đang rất thắc mắt.

Mình cần cái này là do máy chạy không được good nên khi cần thì mới dùng lisp load cho nhanh thôi

...........

Thế còn "3- Nên thiết lập luôn Support File Search Path cho MyPath" bằng lisp thì mình phải lam thế nào ạ, cái này chưa biết.........

Bạn có thể vui lòng post luôn đoạn code mà bạn đã viết lên đây luôn được không?

Tue_NV nghĩ rằng MyPath của bạn có thể định nghĩa bị sai. Bạn đã viết rồi thì nên post lên đây để anh em góp ý nhé

 

Nên thiết lập luôn Support File Search Path cho MyPath" bằng lisp : tức là Những đường dẫn nào nằm trong Support File Search Path thì thiết lập cho MyPath hay MyPath là 1 tập hợp List chứa các đường dẫn Support File Search Path

-> Dùng hàm foreach duyệt qua từng phần tử của MyPath -> lấy các phần tử là các tệp tin .lsp; vlx.. và Load

  • 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 có thể vui lòng post luôn đoạn code mà bạn đã viết lên đây luôn được không?

Tue_NV nghĩ rằng MyPath của bạn có thể định nghĩa bị sai. Bạn đã viết rồi thì nên post lên đây để anh em góp ý nhé

 

Nên thiết lập luôn Support File Search Path cho MyPath" bằng lisp : tức là Những đường dẫn nào nằm trong Support File Search Path thì thiết lập cho MyPath hay MyPath là 1 tập hợp List chứa các đường dẫn Support File Search Path

-> Dùng hàm foreach duyệt qua từng phần tử của MyPath -> lấy các phần tử là các tệp tin .lsp; vlx.. và Load

 

 

Vì đang tập tành viết Lsp nên không có định hướng trước khi viết. DO vậy các file để không có hệ thống. File này lấy dữ liệu file kia nên không biết Post lên sao cho anh hiểu. Nhưng theo gợi ý em tìm trên diễn đàn cách add vào Support File Search Path nên đã thay đổi mã. Dù sao cũng cảm ơn anh quan tâm và nhiệt tình giúp đỡ. Tiện thể cho em hỏi là mình có thể Load file ở dạng ký tự thay thế không.

Ví dụ: (Load "c:\Anh*.lsp") hay (load "c:\\*.Lsp") không

Xin cảm ơn anh và mọi ngườ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ì đang tập tành viết Lsp nên không có định hướng trước khi viết. DO vậy các file để không có hệ thống. File này lấy dữ liệu file kia nên không biết Post lên sao cho anh hiểu. Nhưng theo gợi ý em tìm trên diễn đàn cách add vào Support File Search Path nên đã thay đổi mã. Dù sao cũng cảm ơn anh quan tâm và nhiệt tình giúp đỡ. Tiện thể cho em hỏi là mình có thể Load file ở dạng ký tự thay thế không.

Ví dụ: (Load "c:\Anh*.lsp") hay (load "c:\\*.Lsp") không

.......

Không được bạn à. Hàm Load chỉ load 1 file có tên tuổi rõ ràng như Tue_NV đã phân tích ở bài viết số 2.

Vì thế để Load các file thì bạn phải có 1 danh sách (List) chứa đường dẫncác file .lsp, .vlx , cách tạo ra một List danh sách này như bác ssg đã trình bày

 

Sau khi có 1 danh sách (List) chứa đường dẫn các file .lsp, .vlx -> bạn nghiên cứu sử dụng hàm foreach duyệt qua từng phần tử của List này và qua mỗi phần tử trong List -> bạn sử dụng hàm Load để Load chúng

 

Hãy đọc thật kỹ lại bài của bác ssg. Nó là chìa khoá để bạn giải quyết thành công bài toán này đấy

Chúc bạn thành công :tongue2:

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ảm ơn nhiều, nhưng mình cũng một lần dùng cách này rồi, có chút vấn đề là khi mình tạo một list các đường dẫn thì có lúc nó cho kết quả không đúng đường dẫn làm lisp chạy sai.

1- Chẳng hạn đường dẫn là "C:\\my_lsp\\file1.lsp" "C:\\my_lsp\\file2.lsp" "C:\\my_lsp\\file3.vlx"................Thì có lúc đầu list như sau:

("fìle1.lsp" "C:\\my_lsp\\file2.lsp" "C:\\my_lsp\\file3.vlx" .......... "C:\\my_lsp\\")

Ý của mình ở đây là đường dẫn nó bị cắt và chắp nối không đúng nữa, đang rất thắc mắt.

Mình cần cái này là do máy chạy không được good nên khi cần thì mới dùng lisp load cho nhanh thôi (bổ sung menu tien ich cua minh ma)

Cảm ơn va mong mọi người giúp đỡ

2- Thế còn "3- Nên thiết lập luôn Support File Search Path cho MyPath" bằng lisp thì mình phải lam thế nào ạ, cái này chưa biết.........

1- Không bao giờ có chuyện đó! Vl-directory-files chỉ return list of filename & ext, và/hoặc directory name, không chứa path. Bạn lật Help ra xem sẽ rõ hơn. Nhiều khả năng là bạn coding sai cái gì đó, nghe bạn Tue_NV, post code lên đi...

2- Cái này đã từng đề cập trên diễn đàn. Ssg post lại:

(defun addspath(s) ;;;Add support file search path

(setenv "ACAD" (strcat (getenv "ACAD") ";" s))

)

Áp dụng: (addspath mypath)

  • 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

bac tue oiiiiiii, em co bo lisp ten la lenh nhom luu o ổ D em muốn nhờ bác viết hộ em 1 lisp load tất cả các lisp kia để sử dụng, bộ lisp của em có file .lsp, vlx ròi sau do em ap lẹnh lisp vừa tạo vào contenst de luu 1 lisp do thoi, em ko rành về lisp nên nhờ bác giúp, em cảm ơn bác trướ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

Bạn chỉ có thể unload từng lệnh thôi, chứ không unload cả file được, 

thí dụ dùng (vl-acad-undefun "c:tt") để unload lệnh tt.

Còn nếu là file vlx thì (vl-unload-vlx "ten file vlx không có .vlx")

  • 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

Thì chắc là thua chứ sao!! :o  :o

Muốn biết mình đã load những hàm lệnh gì thì (atoms-family 0) , nhưng nó cho ra một cái list khá dài (gần 5000 hàm + lệnh, cả của cad và của ng dùng load vào).

Cho nên nếu biết tên lệnh thì có thể dùng vl-acad-undefun ở trên để unload nó.

  • 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

Không được bạn à. Hàm Load chỉ load 1 file có tên tuổi rõ ràng như Tue_NV đã phân tích ở bài viết số 2.

Vì thế để Load các file thì bạn phải có 1 danh sách (List) chứa đường dẫncác file .lsp, .vlx , cách tạo ra một List danh sách này như bác ssg đã trình bày

 

Sau khi có 1 danh sách (List) chứa đường dẫn các file .lsp, .vlx -> bạn nghiên cứu sử dụng hàm foreach duyệt qua từng phần tử của List này và qua mỗi phần tử trong List -> bạn sử dụng hàm Load để Load chúng

 

Hãy đọc thật kỹ lại bài của bác ssg. Nó là chìa khoá để bạn giải quyết thành công bài toán này đấy

Chúc bạn thành công tongue2.gif

Bạn Tue_NV ơi,

Có thể cho một ví dụ về cách tạo list danh sách các file .lsp, vlx và kết hợp với hàm foreach như bạn nói được ko, đang tìm hiểu nhưng bí quá, cảm ơn bạ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


×