Luongquocsonxd 14 Báo cáo bài đăng Đã đăng Tháng 4 14, 2021 Để 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) 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
Danh Cong 422 Báo cáo bài đăng Đã đăng Tháng 4 14, 2021 Điểm trừ cho phong cách viết bài của 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
naturooo 36 Báo cáo bài đăng Đã đăng Tháng 4 14, 2021 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. 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
alisp 72 Báo cáo bài đăng Đã đăng Tháng 4 14, 2021 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
naturooo 36 Báo cáo bài đăng Đã đăng Tháng 4 15, 2021 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
Danh Cong 422 Báo cáo bài đăng Đã đăng Tháng 4 15, 2021 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
duy782006 1.554 Báo cáo bài đăng Đã đăng Tháng 4 15, 2021 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
NTHAHT 84 Báo cáo bài đăng Đã đăng Tháng 4 15, 2021 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
naturooo 36 Báo cáo bài đăng Đã đăng Tháng 4 15, 2021 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
alisp 72 Báo cáo bài đăng Đã đăng Tháng 4 15, 2021 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
Doan Nguyen Van 491 Báo cáo bài đăng Đã đăng Tháng 4 15, 2021 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
naturooo 36 Báo cáo bài đăng Đã đăng Tháng 4 15, 2021 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
Doan Nguyen Van 491 Báo cáo bài đăng Đã đăng Tháng 4 15, 2021 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
Doan Van Ha 3.202 Báo cáo bài đăng Đã đăng Tháng 4 15, 2021 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
Doan Nguyen Van 491 Báo cáo bài đăng Đã đăng Tháng 4 15, 2021 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
naturooo 36 Báo cáo bài đăng Đã đăng Tháng 4 15, 2021 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