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

How to use Visual LISP Editor

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

Tue_NV còn hay thường dùng chức năng AutoComplex của VL (Có thể là các hàm của Lisp hoặc khi đã Load Project thì có thể sử dụng bộ hàm con do mình viết sẵn trong Project để coding nhanh chóng

Đơn giản viết vài chữ rồi Control+Shift+Spacebar

4652_vlide.png

  • 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

Tue_NV còn hay thường dùng chức năng AutoComplex của VL (Có thể là các hàm của Lisp hoặc khi đã Load Project thì có thể sử dụng bộ hàm con do mình viết sẵn trong Project để coding nhanh chóng

Đơn giản viết vài chữ rồi Control+Shift+Spacebar

4652_vlide.png

Xin hỏi anh Tuệ một chút, khi dùng Apropos (Control+Shift+Spacebar) thì phải nhấp chột phải vào hàm rồi copy to clipboard rồi lại paste hay sao. Nếu như vậy thì bất tiện hơn nhiều so với Backup/Auto-completion của 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

Nó tùy thuộc vào mức độ hoàn thiện của từ khóa gợi ý của bạn.

Chức năng này không chỉ có tác dụng với hàm mà còn có tác dụng với cả biến trong cửa sổ soạn thảo. Với các hàm và biến đã sử dụng trong cửa sổ soạn thảo thì bạn chỉ cần nhấn tổ hợp Ctrl_space, nếu từ khóa gợi ý đến nhiều hàm hoặc biến thì cứ nhấn thêm 1 vài lần đến khi ra được hàm hoặc biến cần viết.

  • 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 anh Tuệ một chút, khi dùng Apropos (Control+Shift+Spacebar) thì phải nhấp chột phải vào hàm rồi copy to clipboard rồi lại paste hay sao. Nếu như vậy thì bất tiện hơn nhiều so với Backup/Auto-completion của N++.

 

AutoComplete : Nó cũng giống như N++. Khi bạn đã có bộ hàm con trong Project. Bạn bấm nút Load nó lên và sử dụng từ khoá gợi ý là nó Complete cho mình. Nhưng ưu điểm hơn N++, vì N++ có thể bạn phải viết thêm các hàm để Complex, nhưng với VL thì tất cả hàm con được load, tất cả các hàm Lisp đã có thể Complete được rồi. Không phải copy paste đâu bạ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

... Tải về nó hỏng hết dấu xuống dòng nên cad ko hiểu. Cadviet nhiều lisp bị lỗi như thế. :(

 

Mặc dù, đây chỉ là một vấn đề rất nhỏ, em cũng xin được trình bày, nhằm mục đích phục vụ cho các bạn mới bắt đầu như em! Vấn đề Visual LISP Code Formatting

VLISP có thể phân loại được các thành phần trong code và gán cho mỗi loại đó một màu sắc (có thể hiểu chỉnh lại theo thị hiếu cá nhân). Điều này, giúp cho chúng ta có thể trực quan phát hiện một điều bất thường nhỏ nào đó, ví dụ đơn giản, nếu bỏ lỡ một dấu " (quotes) thì phần code tiếp theo sau sẽ hiển thị bằng một màu hồng (theo mặc định màu text string là màu hồng - bạn có thể hiệu chỉnh thành màu khác). Hoặc, nếu bạn viết chưa đúng tên hàm, tên hàm sẽ không chuyển sang màu xanh (Blue), giúp bạn nhận biết và sửa lại...

 

Một số LISP trong diễn đàn / mục Viết lisp theo yêu cầu, sau khi down về, nó không còn giữ được format ban đầu mà chỉ đơn thuần nằm trên một dòng, Tuy nhiên, điều này không hề là "lisp bị lỗi như thếnhư các bạn nói, một cách format đơn giản bằng VLISP, như sau: Tools » Format Code in Editor (Ctrl-Alt-F) hoặc: Tools » Format Code in Selection (Ctrl-Shift-F). Hoặc chỉ đơn giản là bạn hãy chọn vào các biểu tượng trên thanh công cụ: TOOLS, mô tả trong hình sau:

 

118347_sonhnhnhiiii.jpg

 

Mặc dù chỉ là một vấn đề rất nhỏ, em cũng hi vọng là nó có thể giúp ích cho một số ít các bạn mới bắt đầu học LISP giống như em!

Chúc anh chị em trên diễn đàn một ngày cuối tuần thật ý nghĩa và nhiều niềm vui!

 

@ lyky: em là men chứ đâu là women đâu, nhầm nhé!

@ Tue_NV & ThuyLinh313: Cảm ơn 2 anh chị đã hướng dẫn một tiện ích thật hay!

  • Vote tăng 3

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ề ý thứ 2 của Song Nhi thì không phải bao giờ cũng có thể format các lisp bị lỗi nằm trên 1 dòng trở về 1 lisp đúng.

Điều này chỉ làm được khi trong dòng đó không chứa các string giải thích. VD đơn giản dưới đây thì không thể format được, mà yêu cầu người format phải hiểu bản chất code lisp nữa.

(defun HA();Test1 (setq a 1);Test2 (setq b 2)) 

  • 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

AutoComplete : Nó cũng giống như N++. Khi bạn đã có bộ hàm con trong Project. Bạn bấm nút Load nó lên và sử dụng từ khoá gợi ý là nó Complete cho mình. Nhưng ưu điểm hơn N++, vì N++ có thể bạn phải viết thêm các hàm để Complex, nhưng với VL thì tất cả hàm con được load, tất cả các hàm Lisp đã có thể Complete được rồi. Không phải copy paste đâu bạn

Anh Tuệ có thể giải thích một chút(hoặc hướng dẫn cách làm) làm sao VL hiểu được các hàm mà không cần copy paste không. Thanks.

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

Làm sao VL hiểu được các hàm mà không cần copy paste không. Thanks.

 

VLISP sẽ tự động hiểu và gợi ý cho bạn những hàm đã load: "Tuỳ thuộc vào mức độ hoàn thiện của từ khoá bạn nhập", giống như chức năng Auto-Correction của điện thoại khi bạn viết tin nhắn vậy đó, đối với tiếng latin thì bạn có thể tắt chức năng này đi, vì không mấy hiệu quả, đối với tiếng Hoa (nói chung là Hán tự), chức năng này là mặc định, và ngược lại, nó tỏ ra rất hiệu quả!

 

118347_songnhi123.jpg

 

Có cần phải copy - paste gì đâu bạn?! Sau khi VLISP hiển thị dãy hàm gợi ý lên, bạn dùng chuột chọn đúng hàm bạn muốn là được! Thực sự không hiểu bạn nói copy/paste như thế nào nữa, vì có muốn copy/paste cũng đâu có cách nào làm được?!! Bạn cứ mở trình Visual LISP Editor lên, vọc thử là sẽ hiểu được mà! Đối với mọi hàm có sẵn khác, cũng đều ứng dụng được!

 

@ Doan Van Ha: Cám ơn bác đã nhắt nhở! Khi có chú thích thì sau khi format xong chúng ta phải làm thủ công lại mới được ạ!

@ duy267: Bác có thể nói cụ thể hơn là bạn đã copy -paste như thế nào không?

  • 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ần phải copy - paste gì đâu bạn?! Bạn cứ mở trình Visual LISP Editor lên, vọc thử là sẽ hiểu được mà! Đối với mọi hàm có sẵn khác, cũng đều ứng dụng được!

 

Mình đã thử nhưng vẫn phải copy-paste. Mình đã làm sai chăng? Ví dụ khi mình gõ "(get", nhấn Cltr+Shift+Space thì hiện ra một đống hàm bắt đầu bằng "get". Bây giờ mình muốn chọn hàm "getint" thì phải làm thế nào?

Với N++ thì khi bạn gõ tới đâu nó sẽ hiểu tới đó và bạn có thể dùng phím mũi tên để chọn hàm rất tiện. Thanks.

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ử nhưng vẫn phải copy-paste. Mình đã làm sai chăng? Ví dụ khi mình gõ "(get", nhấn Cltr+Shift+Space thì hiện ra một đống hàm bắt đầu bằng "get". Bây giờ mình muốn chọn hàm "getint" thì phải làm thế nào?

Với N++ thì khi bạn gõ tới đâu nó sẽ hiểu tới đó và bạn có thể dùng phím mũi tên để chọn hàm rất tiện. Thanks.

 

Có 1 số TH ngoại lệ như hàm get hiện ra hộp thoại Apropos result. Sao bạn không gợi nhớ thêm từ cho nó để nó hiện ra danh sách xổ xuống như trên hình vẽ mình post. 

 

- Bạn thử gõ geti rồi Ctrol+Shift+Space

- Bạn thử gõ getc rồi Ctrol+Shift+Space

- Bạn thử gõ ent rồi Ctrol+Shift+Space

- Bạn đã có 1 project hãy thử làm HD của Tue_NV ở bài viết trên

 

Bạn đã xem hình mình post ở bài viết trên thì thấy sau khi bấm chữ -> có 1 danh sách xổ xuống và chọn thôi (giống N++)

Từ danh sách xổ xuống thì chọn bằng chuột. Nếu hàm đã hoàn chỉnh tất nhiên sẽ tự complete

VLISP cái này ưu điểm hơn N++ nhiều. Tue_NV dùng các hàm VL, VLA ..... và các hàm trong bộ project của mình thì coding nhanh, gọn và nhàn hơn rất nhiều. N++ dẫu có thêm hàm cho chức năng Complete thì sao đủ bằng VL đượ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

1). VL có thể chọn được hàm do người dùng viết từ list function nếu đã được load.

N++ không chọn được hàm người dùng viết dù đã load, vì nó không được nạp vào thư viện (?).

2). Với N++: tất cả hàm có trong thư viện, khi được gọi đến bất cứ 1, 2, 3... từ gợi nhớ nào cũng đều xuất hiện list function để chọn.

Với VL: phải cần nhập đủ 1 số từ gợi nhớ cần thiết thì mới xuất hiện list function để chọ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

Bạn đã xem hình mình post ở bài viết trên thì thấy sau khi bấm chữ -> có 1 danh sách xổ xuống và chọn thôi (giống N++)

Từ danh sách xổ xuống thì chọn bằng chuột. Nếu hàm đã hoàn chỉnh tất nhiên sẽ tự complete

VLISP cái này ưu điểm hơn N++ nhiều. Tue_NV dùng các hàm VL, VLA ..... và các hàm trong bộ project của mình thì coding nhanh, gọn và nhàn hơn rất nhiều. N++ dẫu có thêm hàm cho chức năng Complete thì sao đủ bằng VL được?

 

Em hiểu rồi, giống như Thùy Linh đã nói:

 

Nó tùy thuộc vào mức độ hoàn thiện của từ khóa gợi ý của bạn.

Chức năng này không chỉ có tác dụng với hàm mà còn có tác dụng với cả biến trong cửa sổ soạn thảo. Với các hàm và biến đã sử dụng trong cửa sổ soạn thảo thì bạn chỉ cần nhấn tổ hợp Ctrl_space, nếu từ khóa gợi ý đến nhiều hàm hoặc biến thì cứ nhấn thêm 1 vài lần đến khi ra được hàm hoặc biến cần viết.

 

Một lần nữa xin càm ơn tất 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

Xem cú pháp hàm trực tiếp trong VLISP

Trong quá trình coding, nhiều lúc không nhớ chính xác cú pháp của hàm, chúng ta sẽ làm cách nào?
Đối với MS. Excel; VBA … Sau khi các bạn nhập hàm, sẽ xuất hiện một dòng nhắc cú pháp, ví dụ:

 

22665_h1_1.jpg

 

Đối với Visual LISP IDE, mặc dù không trực quan như vậy, nhưng khi cần thiết – chúng ta không cần thiết phải phải truy cập một cách gián tiếp – bằng cách vào Help hoặc vào Internet để tìm kiếm. Một cách trực tiếp là chúng ta tô chọn đối tượng muốn tìm hiểu, vào Help trên thanh Tools (hoặc tổ hợp phím Ctrl+F1)

 

22665_2.jpg

 
Chúc các bạn thật nhiều niềm vui! Mong chờ sự chia sẽ kinh nghiệm sử dụng trình VLISP của các bạn!

 

P/S: @ Tue_NV: Cám ơn Bác đã hướng dẫn chúng tôi chức năng AutoComplex, vote Bác. Xin được hỏi thêm Bác là sau khi chọn, các hàm được in ra dưới dạng chữ IN HOA, làm sao để sau khi chọn, hàm in ra với dạng chữ thường vậy Bác? Chúc Bác thật nhiều sức khỏe và thành công trong công việc!

  • 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

Chức năng xem trước giao diện DCL của VLISP

 

Ở đây chúng ta không nói về kiến thức để thiết kế một giao diện DCL, chúng ta chỉ đơn thuần xét đến chức năng xem trước giao diện DCL trong VLISP. Các bạn có thể tham khảo thêm về DCL: Tại đây
 
Trước tiên, các bạn copy đoạn code sau, paste vào cửa sổ soạn thảo (Ctrl+N) của VLISP, lưu lại với tên là: *.DCL
 

LAYER:dialog {
              label="Chuc nang xem truoc DCL";
              spacer_1;
              :boxed_radio_column{
                            label="Cai dat Layer";
                            :radio_button{
                                          label="Su dung Layer hien huu";
                                          key="IsCuLA";                              
                                          }
                            :radio_button{
                                          label="Cai dat Layer";
                                          key="IsSetLA";
                                          }
                            :popup_list{
                                          key="La";
                                          }
                            }
              ok_cancel;
              }

 
Vào Tools » Interface Tools » Preview DCL in Editor (Preview DCL in Selection).
 

22665_h1_2.jpg

 
VLISP chuyển sang cửa sổ ACAD và hiển thị hộp thoại xem trước như sau:
 

22665_h2.jpg

 
Chúng ta sử dụng chức năng này để thiết kế hộp thoại DCL, bởi DCL được viết toàn bằng code, trong khi hộp thoại của các ngôn ngữ lập trình hướng đối tượng khác, được thiết kế trực quan!

  • 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

Không cần phải save as. Muốn chuyển đổi định dạng code trong một cửa sổ soạn thảo chỉ cần vào tool, window attributes, rồi cái gì đó (dòng thứ hai thì phải), lựa chọn định dạng code muốn đổi

  • Vote giảm 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

Không cần phải save as. Muốn chuyển đổi định dạng code trong một cửa sổ soạn thảo chỉ cần vào tool, window attributes, rồi cái gì đó (dòng thứ hai thì phải), lựa chọn định dạng code muốn đổi

 

Bác Thaistreetz đang hướng dẫn anh em tiện ích gì của VLISP vậy ạ? Em có làm theo hướng dẫn trên: Vào Tools / Window Attributes / Configure Current ... (dòng thứ 2)

 

118347_songnhiiiaaa.jpg

 

Trong cửa sổ này:

1. Cho phép điều chỉnh lại màu sắc hiển thị cho code

2. Transparent foreground

3. Transparent background

4. Sets tab spacing

5. Sets the left margin

 

Em không hiểu chuyển đổi định dạng code là ntn? Bác Thaistreetz làm ơn giải thích rõ vấn đề này được 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

Đóng gói một ứng dụng VLX bằng VLISP

 

Bạn muốn đóng gói một ứng dụng bao gồm LSP và hộp thoại DCL, Visual LISP có thể giúp bạn điều này qua các bước sau đây:

1.  Trong menu file VLISP chọn: Make Application>New Application Wizard.

2.  Trong trang đầu tiên: nếu không kèm theo DCL --> chọn: Simple, ngược lại chọn: Expert.

3.  Trong Application Location, tìm đến đường dẫn chứ file LISP. Và đặt tên ứng dụng tại Application Name.

4.  Xác định các tập tin LSP mà bạn cần tạo ứng dụng.

5.  Thêm các tập tin DCL.

 

Cụ thể theo hình sau:

 

118347_songngngngnhi.jpg

 

Chúc các bạn cuối tuần thật vui vẻ!

  • 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ổ sung thêm 2 ý của SongNhi:

1). Ngoài LSP và DCL, còn đóng gói được một số kiểu file khác nữa.

2). Số file đóng gói là có giới hạ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

Bổ sung thêm 2 ý của SongNhi:

1). Ngoài LSP và DCL, còn đóng gói được một số kiểu file khác nữa.

2). Số file đóng gói là có giới hạn. 

 

2) Giới hạn là bao nhiêu bác? Tue_NV đóng gói nhiều 30 file lsp mà chẳng thấy giới hạ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

2) Giới hạn là bao nhiêu bác? Tue_NV đóng gói nhiều 30 file lsp mà chẳng thấy giới hạn??????

Có 2 lần tôi đóng gói nhiều file. Nhớ như thế này:

- 1 lần tầm 10 files (không nhớ chính xác lắm).

- 1 lần đúng 13 files. Đóng 12 thì OK, đóng 13 thì NO.

Không tìm ra quy luật. Chẳng hiểu do số file hay dung lượng file hay gì gì nữa, mà sự việc là thế.

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ó 2 lần tôi đóng gói nhiều file. Nhớ như thế này:

- 1 lần tầm 10 files (không nhớ chính xác lắm).

- 1 lần đúng 13 files. Đóng 12 thì OK, đóng 13 thì NO.

Không tìm ra quy luật. Chẳng hiểu do số file hay dung lượng file hay gì gì nữa, mà sự việc là thế.

 

Sự việc là thế, là chưa chắc chắn, bác lại đưa ra câu khẳng định thế  :lol:

Có 1 cách khử quy luật chưa biết này là gom tất cả file Lisp vào 1 file Lsp duy nhất rồi đóng gói

 

@bạn Nhacotung : Phiền bạn post bài sang topic khác nhé. Mình tạm xoá bài viết của bạn trong topic này. 

Ở topic này đang thảo luận đến việc sử dụng VL.

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

Chạy Debug code LISP bán tự động

 

Sau khi trở lại VLIDE chúng ta vào Debug » Animate và đánh dấu tùy chọn này.

 

12). Về check lỗi: VL ưu việt hơn N++ (xin xem thêm bài viết của Lyky ở trên, dù nó chưa thực sự đầy đủ).

 

Hôm nay SN xin được trình bày cách chạy Debug bán tự động, không dùng tiện ích Animate, nghĩa là khi chạy debug chúng ta không check chọn Animate trong tab Debug. Vẫn chạy trên đoạn code cũ trong #6, như sau:

(defun c:test ( / ss i sl total entity elist )
(if (setq ss (ssget '((0 . "LINE"))))
    (progn
      (setq i -1 sl (sslength ss) total 0)
      (while (<= (setq i (1+ i)) sl)
        (setq entity (ssname ss i)
              elist  (entget entity)
              total  (+ total (distance (cdr (assoc 10 elist)) (cdr (assoc 11 elist))))))
      (princ (strcat "\nTotal Length: " (rtos total)))))
(princ))
1. Trước tiên, SN liệt kê một số phím nóng cần dùng:

 

Step Into    : F8

Step Over  : Sh-F8

Step Out    : Ct-Sh-F8

 

Continue                 : Ct-F8

Reset to Top Level : Ct-R

Quit Current Level  : Ct-Q

 

Watch Window: Ct-Sh-W

Add Watch      : Ct-W

 

Toggle Breakpoint  : F9

Last Breakpoint      : Ct-F9

Clear All Breakpoint: Ct-Sh-F9

 

Load Selection        : Ct-Sh-E

Load Text in Editor  : Ct-Alt-E

Check Selection      : Ct-Sh-C

Check Text in Editor: Ct-Alt-C

 

2. Các bước 1; 2; 3.1 Adding Break Points và 3.2 Watching Variables thực hiện như hướng dẫn #6. Đến 3.3 chúng ta không dùng tiện ích Animate, thực hiện như sau: Cho chạy lại đoạn code đến khi gặp "điểm dừng" đầu tiên dùng F8 (Continue) để chạy dần từng bước một (hoặc Sh-F8) và theo dõi sự thay đổi giá trị của 2 biến “i” và “entity” trên cửa sổ Watch Window. Việc sửa lỗi sau khi xác định nguyên nhân lỗi - thực hiện như cũ.

 

Thật ra, không phải do tốc độ chạy Debug bằng Animate quá nhanh làm các bạn không theo dõi kịp! Bạn có thể tuỳ chỉnh tốc độ này tại:

 

118347_songnhiiiiiiiiiiii.jpg

 

Đơn vị là mili giây (10-3 giây). Tuy nhiên, với các làm bán tự động này, các bạn có thể kiểm tra giá trị của bất kỳ biến nào (mặc dù chưa được add vào Watch Window) tại mỗi vị trí dừng, bằng cách: tô chọn biến đó chọn: Load Selection (hoặc: Ct-Sh-E). Giá trị sẽ hiển thị trên Visual LISP Console.

 

Ngoài ra, SN còn muốn liệt kê thêm một số phím nóng giúp bạn kiểm tra nhanh từng cụm ()

 

Ct-[: Chuyển dấu nháy đến ( mở đầu khối hoàn chỉnh phía trước.

Ct-]: Chuyển dấu nháy đến ) kết thúc khối hoàn chỉnh phía sau.

 

Ct- Sh-[: Tô chọn khối hoàn chỉnh (...) phía trước vị trí dấu nháy hiện tại.

Ct- Sh-]: Tô chọn khối hoàn chỉnh (...) phía sau vị trí dấu nháy hiện tại.

 

Mời các Bác tiếp tục chia sẽ những kinh nghiệm sử dụng trình soạn thảo VLISP IDE!

  • Vote tăng 3

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êm chức năng "thu gom rác" : biến toàn cục -> biến cục bộ

 

@ Song Nhi: Hảo Song Nhi! Đối với những Lisp đã check rồi và "dọn rác" theo cách anh Gia_Bach đã hướng dẫn, sau khi check lại sẽ không còn Global Var, trừ trường hợp vì ý đồ khác của người viết!

 

Trong vấn đề giải phóng bộ nhớ sau khi chạy LISP cũng còn nhiều vấn đề khác, cần được quan tâm, trước tiên bạn cần nắm các khái niệm biến cục bộ; biến toàn cục và các tính chất của nó, nếu cần thiết các bạn có thể tham khảo tại đây, hoặc tìm kiếm trên diễn đàn.

 

Danh sách trả về trong tiện ích kiểm tra của VLIDE sẽ liệt kê tất cả các đối tượng được xác định trong code. Danh sách này có thể bao gồm: Các ký hiệu bảo vệ (chẳng hạn như các hàm hoặc các hằng số được bảo vệ). Nếu các đối tượng đó đều vô tình cục bộ hóa, chương trình của bạn có thể không chạy như mong đợi ...

 

Vì vậy, các bạn cần lưu ý thêm, khi thanh lọc bộ nhớ bằng cách chép danh sách xuất ra của biến toàn cục vào phía sau: (defun( /, cần loại ra các đối tượng sau đây, không thanh lọc chúng, như sau:

 

1. Ký hiệu bảo vệ (được đánh dấu màu xanh), chẳng hạn như các hàm hoặc các hằng số được bảo vệ (ví dụ: Vlax-true).

 

2. Đối tượng trong DCL được xác định tại thời gian chạy (chẳng hạn như: $key, $reason, $value, $data).

 

3. Từ Pause, như có thể được sử dụng trong command expressions, vd: (command "rotate" pause ""...

 

4. Biến mà bạn muốn giữ lại giá trị sau khi chạy vì mục đích khác (nào đó!?), danh sách các biến trả về bởi các tiện ích kiểm tra được sắp xếp theo thứ tự abc, cho nên bằng cách đặt trước tên biến toàn cục với dấu sao (*) hoặc ... , làm cho nó xuất hiện ở đầu của danh sách để chúng ta có thể dễ dàng loại bỏ ra.

 

Không nhất nhiết check đối với một LISP đầy đủ, đối với một file tổng hợp nhiều LISP, bạn cũng có thể Check toàn bộ, bằng cách chọn Check edit window trên thanh công cụ Tools. Danh sách trả ra tổng hợp như sau:

 

22665_lyky_2.jpg

 

Đối với danh sách trả về sau khi check, các biến ở dạng chữ in hoa, về mặt hình thức nếu bạn muốn chuyển về chữ thường, hãy chạy list đó qua hàm sau:

(defun VarList (lst) (vl-princ-to-string (mapcar '(lambda ( x ) (strcase (vl-princ-to-string x) t)) lst)))
;;; Vi du:
(VarList '( C a d V i e t. c o m)) ---> "(c a d v i e t. c o m)"

Sau đó, bạn hãy lựa chọn những đối tượng mà bạn muốn cục bộ hóa, chép vào phía sau: (defun( /  để giải phóng bộ nhớ, tiết kiệm dung lượng và hạn chế tương tác giữa các LISP với nhau!

 

Nguồn bài viết: Lý Mẹc

 

Chúc các bạn thật nhiều niềm vui, hình như các bạn không thích topic này lắm?!

Có cách nào làm cho nó sinh động lên không? Các bạn vui lòng đóng gốp ý kiến!

  • Vote tăng 4

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


×