Chuyển đến nội dung
Diễn đàn CADViet
Đăng nhập để thực hiện theo  
Luongquocsonxd

NẠP ĐẠN (.LSP) CHO STARTUP SUITE ĐỂ "BẮN"

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

Để Load nhiều file Lisp cho chương trình Acad, để sau mỗi lần khởi động Acad thì file lisp sẽ tự động load.

Cách hay làm thủ công là: nhập lệnh APPLOAD sau đó bấm cái nút contents... và đi tìm file lisp để Add vào thế là xong

Hỏi: Có cách nào load 5 file lisp mà không cần dùng đến cách ở bên trên, ví dụ như là viết một hàm defun sau đó nhập lệnh thì tự động 5 file lisp kia "BAY" thẳng vào Contents... 

(CHÚ THÍCH: Contents... là cái biểu tượng hình cái cặp sau khi nhập lệnh APPLOAD)

  • Vote giảm 5

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

Viết hàm cho nó load lisp trong thư mục. Cứ bỏ lisp vào thư mục là nó load thôi.

  Bác chỉ cách viết hàm cho nó tự động load lisp trong thư mục với.

  Tôi nghĩ bác @naturooo dường như không hiểu ý nghĩa của STARTUP SUITE. Mục đích của nó là dù mở BẤT KỲ file dwg ở BẤT KỲ thư mục nào thì những lisp đó đều được load, chứ không phải bỏ lisp vào thư mục nào thì lisp đó mới được load. Chắc bác vẫn xài cad đời cũ (2007 chẳng hạn) nên nó vẫn cho load ở thư mục chứa file cad đang mở, chứ cad đời sau tuyệt đối không cho phép, nhất là sau cái vụ hoành hành của virus acad.fas.

  @Luongquocsonxd: Tôi chỉ biết dùng acad.lsp để tự động load lisp thôi, cách này đơn giản,  tuy không nạp đạn bắn phá gì cả nhưng hữu hiệu. Làm như sau:

- Tạo file tên acad.lsp (bằng notepad cũng được) trong đó có dòng đại khái:

(defun c:ab() (load "acad1") (load "acad2") (load "acad3") (load "acad4") (load "acad5")) , ab là tên lệnh.

- Đặt file acad.lsp vào trong thư mục có acad.exe và tất cả 5 file acad1.lsp ... acad5.lsp vào trong đó luôn.

- Mở cad, đánh options > system > Execute file settings > Load acad.lsp when opening each drawing.

- Tắt cad, bật bất cứ file nào, đánh lệnh ab và test xem có load đủ 5 file đó khô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
16 giờ trước, alisp đã nói:

  Bác chỉ cách viết hàm cho nó tự động load lisp trong thư mục với.

  Tôi nghĩ bác @naturooo dường như không hiểu ý nghĩa của STARTUP SUITE. Mục đích của nó là dù mở BẤT KỲ file dwg ở BẤT KỲ thư mục nào thì những lisp đó đều được load, chứ không phải bỏ lisp vào thư mục nào thì lisp đó mới được load. Chắc bác vẫn xài cad đời cũ (2007 chẳng hạn) nên nó vẫn cho load ở thư mục chứa file cad đang mở, chứ cad đời sau tuyệt đối không cho phép, nhất là sau cái vụ hoành hành của virus acad.fas.

  @Luongquocsonxd: Tôi chỉ biết dùng acad.lsp để tự động load lisp thôi, cách này đơn giản,  tuy không nạp đạn bắn phá gì cả nhưng hữu hiệu. Làm như sau:

- Tạo file tên acad.lsp (bằng notepad cũng được) trong đó có dòng đại khái:

(defun c:ab() (load "acad1") (load "acad2") (load "acad3") (load "acad4") (load "acad5")) , ab là tên lệnh.

- Đặt file acad.lsp vào trong thư mục có acad.exe và tất cả 5 file acad1.lsp ... acad5.lsp vào trong đó luôn.

- Mở cad, đánh options > system > Execute file settings > Load acad.lsp when opening each drawing.

- Tắt cad, bật bất cứ file nào, đánh lệnh ab và test xem có load đủ 5 file đó không.

Tôi chỉ hiểu nhét lisp vào STARUP SUITE để khi mở nó tự động load lisp thôi. Tất cả lisp tôi nhét vào thư mục. Còn STARUP SUITE tôi chỉ đưa lisp auto load tất cả lisp lisp có trong thư mục đấy thôi. Có lisp mới bỏ vào thư mục đấy là nó tự động load chứ k cần add vào đâu nữa.

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 thì giờ đang dùng 1 lisp của bác Quốc Mạnh.

Lisp load toàn bộ file lisp có trong 1 thư mục. Điểm mạnh của nó là ko giới hạn số lượng lisp load vào  ( 50 Lisp )

 

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, naturooo đã nói:

Tôi chỉ hiểu nhét lisp vào STARUP SUITE để khi mở nó tự động load lisp thôi. Tất cả lisp tôi nhét vào thư mục. Còn STARUP SUITE tôi chỉ đưa lisp auto load tất cả lisp lisp có trong thư mục đấy thôi. Có lisp mới bỏ vào thư mục đấy là nó tự động load chứ k cần add vào đâu nữa.

Túm lại là bạn biết làm rồi và đang đố mọi người hay là bãn muốn vậy và đang hỏi mọi người cách làm?

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

  Bác chỉ cách viết hàm cho nó tự động load lisp trong thư mục với.

  Tôi nghĩ bác @naturooo dường như không hiểu ý nghĩa của STARTUP SUITE. Mục đích của nó là dù mở BẤT KỲ file dwg ở BẤT KỲ thư mục nào thì những lisp đó đều được load, chứ không phải bỏ lisp vào thư mục nào thì lisp đó mới được load. Chắc bác vẫn xài cad đời cũ (2007 chẳng hạn) nên nó vẫn cho load ở thư mục chứa file cad đang mở, chứ cad đời sau tuyệt đối không cho phép, nhất là sau cái vụ hoành hành của virus acad.fas.

  @Luongquocsonxd: Tôi chỉ biết dùng acad.lsp để tự động load lisp thôi, cách này đơn giản,  tuy không nạp đạn bắn phá gì cả nhưng hữu hiệu. Làm như sau:

- Tạo file tên acad.lsp (bằng notepad cũng được) trong đó có dòng đại khái:

(defun c:ab() (load "acad1") (load "acad2") (load "acad3") (load "acad4") (load "acad5")) , ab là tên lệnh.

- Đặt file acad.lsp vào trong thư mục có acad.exe và tất cả 5 file acad1.lsp ... acad5.lsp vào trong đó luôn.

- Mở cad, đánh options > system > Execute file settings > Load acad.lsp when opening each drawing.

- Tắt cad, bật bất cứ file nào, đánh lệnh ab và test xem có load đủ 5 file đó không.

Cad đời sau muốn load lisp trong thư mục thì nghiên cứu 2 biến hệ thống này:

SECURELOAD, TRUSTEDPATHS

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

Túm lại là bạn biết làm rồi và đang đố mọi người hay là bãn muốn vậy và đang hỏi mọi người cách làm?

Cái này có gì mà đánh đố đâu anh. Em thấy các tiền bối đã làm nhiều rồi, tra theo từ khóa là ra. Của em cùng toàn cóp nhặt rồi edit lại chứ có gì đâu.

Giờ rảnh ngồi máy gửi code em chế lại thôi chứ cũng không đủ khả năng viết:

(vl-load-com)
;; Add Support File Search Paths  -  Lee Mac
;; Adds a list of Support File Search Paths, excluding duplicates and invalid paths.
;; lst - [lst] list of paths to add, e.g. '("C:\\Folder1" "C:\\Folder2" ... )
;; Returns: [str] "ACAD" Environment String following modification
;; (LM:sfsp+ <lst>)
;; (LM:sfsp+ '("C:\\Folder1" "C:\\Folder2" "C:\\Folder3"))

(defun LM:sfsp+ ( lst )
    (   (lambda ( str lst )
            (if (setq lst
                    (vl-remove-if
                       '(lambda ( x )
                            (or (vl-string-search (strcase x) (strcase str))
                                (not (findfile x))
                            )
                        )
                        lst
                    )
                )
                (setenv "ACAD" (strcat str ";" (apply 'strcat (mapcar '(lambda ( x ) (strcat x ";")) lst))))
            )
        )
        (vl-string-right-trim ";" (getenv "ACAD"))
        (mapcar '(lambda ( x ) (vl-string-right-trim "\\" (vl-string-translate "/" "\\" x))) lst)
    )
)
;======================================================================================================================
(defun c:AutoLoadAllLisps ( / lst pth x dir )
  (princ "\nAutoRun AutoLoadAllLisps Programs!")
  (if (not (findfile "AutoLoadAllLisps.lsp"))
	(progn
	(setq dir (acet-ui-pickdir "" "" "Ch\U+1ECDn th\U+01B0 m\U+1EE5c ch\U+1EE9a t\U+1EC7p AutoLoadAllLisps.lsp")); de them vao Support File Search Path cua AutoCad"
	(setq dirtv (strcat dir "\\" "Thu vien"))
	(setq dirlk (strcat dir "\\" "Lisp khac"))
	(LM:sfsp+ (list dir dirtv dirlk));Ham them thu muc va SFSP cua AutoCad cua Lee Mac
	(setenv "PrinterStyleSheetDir" dirtv)
	);end progn
  )
  (setq pth (findfile "AutoLoadAllLisps.lsp"))
  (setq pth (vl-string-right-trim "AutoLoadAllLisps.lsp" pth))
  (setq lst (vl-directory-files pth "*.vlx" 1))
  (setq lst (append lst (vl-directory-files pth "*.fas" 1)))
  (setq lst (append lst (vl-directory-files pth "*.lsp" 1)))
  (setq lst (vl-remove "AutoLoadAllLisps.lsp" lst)) 
  (foreach x lst (load x))
  (princ "\nProgram AutoLoadAllLisps was Written by KLN!")
  (princ)
)
;======================================================================================================================
; AutoRun AutoLoadAllLisps Programs when Open AutoCad if Add this programs in Startup Suite in Appload!!!
(c:AutoLoadAllLisps)

 

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

Cad đời sau muốn load lisp trong thư mục thì nghiên cứu 2 biến hệ thống này:

SECURELOAD, TRUSTEDPATHS

 Khi nói "cad đời sau tuyệt đối không cho phép" ý tôi muốn nói là không cho phép Tự động load khi mở file trong thư mục, chứ cad vẫn cho load bằng tay chứ bạn, 2 cái biến bạn đưa lên chỉ ảnh hưởng khi load tay thôi.

Tôi nghĩ cad làm như vậy nguyên nhân là để tránh mấy cái con virus acad.fas, khi máy bị nhiễm con này rồi thì mở bất cứ file nào thì trong thư mục của nó xuất hiện file acad.fas. Các bác nào xài cad 2007 chắc biết rõ chuyện này.

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

Theo mình nghĩ chúng ta không nên bàn sâu đến vấn đề cad có làm được hay không, mà hãy nghĩ đến ta có viết được nó hay không.

Cá nhân mình đã viết được lisp load toàn bộ thư mục.

Nhưng còn băn khoăn 1 điều, làm sao để nhận diện được thư mục đang chứa file lisp mình load 1 cách tự động.

Bởi vì có đôi lần đổi sang máy khác, mình đem theo đống lisp, muốn load lại thì phải chỉnh lại đường dẫn.

Như vậy, có cách nào để biết được đường dẫn của file lisp khi vừa load vào cad khô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
12 phút trước, Doan Nguyen Van đã nói:

Theo mình nghĩ chúng ta không nên bàn sâu đến vấn đề cad có làm được hay không, mà hãy nghĩ đến ta có viết được nó hay không.

Cá nhân mình đã viết được lisp load toàn bộ thư mục.

Nhưng còn băn khoăn 1 điều, làm sao để nhận diện được thư mục đang chứa file lisp mình load 1 cách tự động.

Bởi vì có đôi lần đổi sang máy khác, mình đem theo đống lisp, muốn load lại thì phải chỉnh lại đường dẫn.

Như vậy, có cách nào để biết được đường dẫn của file lisp khi vừa load vào cad không?

Bác xem lisp m up ở trên. Chỉ cần dẫn lần đầu đến thư mục chứ lisp thôi chứ k cần chỉnh lại trong lisp nữa.

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, naturooo đã nói:

Bác xem lisp m up ở trên. Chỉ cần dẫn lần đầu đến thư mục chứ lisp thôi chứ k cần chỉnh lại trong lisp nữa.

Có vẻ bạn không hiểu ý mình.

Cách load lisp chỉnh đường dẫn mình không nói.

nếu chỉ cần bấm lệnh AP, chọn file lisp, trong lisp nhận ra được thư mục đang load. Vậy là được

Áp dụng trường hợp hay đổi máy mà không cần chỉnh lại đường dẫn, chỉ cần load file là đc 

Ca này chắc khó 

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
12 phút trước, Doan Nguyen Van đã nói:

Có vẻ bạn không hiểu ý mình.

Cách load lisp chỉnh đường dẫn mình không nói.

nếu chỉ cần bấm lệnh AP, chọn file lisp, trong lisp nhận ra được thư mục đang load. Vậy là được

Áp dụng trường hợp hay đổi máy mà không cần chỉnh lại đường dẫn, chỉ cần load file là đc 

Ca này chắc khó 

Đây ư?

 

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
3 phút trước, Doan Van Ha đã nói:

Đây ư?

 

Cháu có xem qua bài viết này nhưng khi load thử thì không thấy hiện, cháu dùng cad 2014, liệu có bị sai đời cad k 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
43 phút trước, Doan Nguyen Van đã nói:

Có vẻ bạn không hiểu ý mình.

Cách load lisp chỉnh đường dẫn mình không nói.

nếu chỉ cần bấm lệnh AP, chọn file lisp, trong lisp nhận ra được thư mục đang load. Vậy là được

Áp dụng trường hợp hay đổi máy mà không cần chỉnh lại đường dẫn, chỉ cần load file là đc 

Ca này chắc khó 

Đúng là k hiểu ý bạn. Phương án của mình cũng chỉ cần load file là được mà 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

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
Đăng nhập để thực hiện theo  

×