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

Tập các lệnh AutoLISP

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

Sau đây là tất cả các tập lệnh của AutoLisp.

 

Ký hiệu

+ (add)

- (subtract)

* (multiply)

/ (divide)

=(equal to)

/= (not equal to)

> (greater than)

>= (greater than or equal to)

~ (bitwise NOT)

1+ (increment)

1- (decrement)

 

A

abs

acad_colordlg

acad_helpdlg

acad-pop-dbmod

acad-push-dbmod

acad_strlsort

acdimenableupdate

acet-layerp-mode

acet-layerp-mark

acet-laytrans

acet-ms-to-ps

acet-ps-to-ms

action_tile

add_list

alert

alloc

and

angle

angtof

angtos

append

apply

arx

arxload

arxunload

ascii

assoc

atan

atof

atoi

atom

atoms-family

autoarxload

autoload

 

B

Boole

boundp

 

C

caddr

cadr

car

cdr

chr

client_data_tile

close

command

cond

cons

cos

cvunit

 

D

defun

defun-q

defun-q-list-ref

defun-q-list-set

dictadd

dictnext

dictremove

dictrename

dictsearch

dimx_tile

dimy_tile

distance

distof

done_dialog

 

E

end_image

end_list

entdel

entget

entlast

entmake

entmakex

entmod

entnext

entsel

entupd

eq

equal

*error*

eval

exit

exp

expand

expt

 

F

fill_image

findfile

fix

float

foreach

function

 

G

gc

gcd

get_attr

get_tile

getangle

getcfg

getcname

getcorner

getdist

getenv

getfiled

getint

getkword

getorient

getpoint

getreal

getstring

getvar

graphscr

grclear

grdraw

grread

grtext

grvecs

 

H

handent

help

 

I

if

initdia

initget

inters

itoa

 

L

lambda

last

layoutlist

length

list

listp

load

load_dialog

log

logand

logior

lsh

 

M

mapcar

max

mem

member

menucmd

menugroup

min

minusp

mode_tile

 

N

namedobjdict

nentsel

nentselp

new_dialog

not

nth

null

numberp

 

O

open

or

osnap

 

P

polar

prin1

princ

print

progn

prompt

 

Q

quit

quote

 

R

read

read-char

read-line

redraw

regapp

rem

repeat

reverse

rtos

 

S

set

set_tile

setcfg

setenv

setfunhelp

setq

setvar

setview

sin

slide_image

snvalid

sqrt

ssadd

ssdel

ssget

ssgetfirst

sslength

ssmemb

ssname

ssnamex

sssetfirst

startapp

start_dialog

start_image

start_list

strcase

strcat

strlen

subst

substr

 

T

tablet

tblnext

tblobjname

tblsearch

term_dialog

terpri

textbox

textpage

textscr

trace

trans

type

 

U

unload_dialog

untrace

 

V

vector_image

ver

vl-acad-defun

vl-acad-undefun

vl-arx-import

vl-bb-ref

vl-bb-set

vl-catch-all-apply

vl-catch-all-error-message

vl-catch-all-error-p

vl-cmdf

vl-consp

vl-directory-files

vl-doc-export

vl-doc-import

vl-doc-ref

vl-doc-set

vl-every

vl-exit-with-error

vl-exit-with-value

vl-file-copy

vl-file-delete

vl-file-directory-p

vl-file-rename

vl-file-size

vl-file-systime

vl-filename-base

vl-filename-directory

vl-filename-extension

vl-filename-mktemp

vl-get-resource

vl-list*

vl-list->string

vl-list-exported-functions

vl-list-length

vl-list-loaded-vlx

vl-load-all

vl-load-com

vl-load-reactors

vl-mkdir

vl-member-if

vl-member-if-not

vl-position

vl-prin1-to-string

vl-princ-to-string

vl-propagate

vl-registry-delete

vl-registry-descendents

vl-registry-read

vl-registry-write

vl-remove

vl-remove-if

vl-remove-if-not

vl-some

vl-sort

vl-sort-i

vl-string->list

vl-string-elt

vl-string-left-trim

vl-string-mismatch

vl-string-position

vl-string-right-trim

vl-string-search

vl-string-subst

vl-string-translate

vl-string-trim

vl-symbol-name

vl-symbol-value

vl-symbolp

vl-unload-vlx

vl-vbaload

vl-vbarun

vl-vlx-loaded-p

vlax-3D-point

vlax-add-cmd

vlax-create-object

vlax-curve-getArea

vlax-curve-getClosestPointTo

vlax-curve-getClosestPointToProjection

vlax-curve-getDistAtParam

vlax-curve-getDistAtPoint

vlax-curve-getEndParam

vlax-curve-getEndPoint

vlax-curve-getFirstDeriv

vlax-curve-getParamAtDist

vlax-curve-getParamAtPoint

vlax-curve-getPointAtDist

vlax-curve-getPointAtParam

vlax-curve-getSecondDeriv

vlax-curve-getStartParam

vlax-curve-getStartPoint

vlax-curve-isClosed

vlax-curve-isPeriodic

vlax-curve-isPlanar

vlax-dump-object

vlax-ename->vla-object

vlax-erased-p

vlax-for

vlax-get-acad-object

vlax-get-object

vlax-get-or-create-object

vlax-get-property

vlax-import-type-library

vlax-invoke-method

vlax-ldata-delete

vlax-ldata-get

vlax-ldata-list

vlax-ldata-put

vlax-ldata-test

vlax-make-safearray

vlax-make-variant

vlax-map-collection

vlax-method-applicable-p

vlax-object-released-p

vlax-product-key

vlax-property-available-p

vlax-put-property

vlax-read-enabled-p

vlax-release-object

vlax-remove-cmd

vlax-safearray-fill

vlax-safearray-get-dim

vlax-safearray-get-element

vlax-safearray-get-l-bound

vlax-safearray-get-u-bound

vlax-safearray-put-element

vlax-safearray-type

vlax-safearray->list

vlax-tmatrix

vlax-typeinfo-available-p

vlax-variant-change-type

vlax-variant-type

vlax-variant-value

vlax-vla-object->ename

vlax-write-enabled-p

vlisp-compile

vlr-acdb-reactor

vlr-add

vlr-added-p

vlr-beep-reaction

vlr-command-reactor

vlr-current-reaction-name

vlr-data

vlr-data-set

vlr-deepclone-reactor

vlr-docmanager-reactor

vlr-dwg-reactor

vlr-dxf-reactor

vlr-editor-reactor

vlr-insert-reactor

vlr-linker-reactor

vlr-lisp-reactor

vlr-miscellaneous-reactor

vlr-mouse-reactor

vlr-notification

vlr-object-reactor

vlr-owner-add

vlr-owner-remove

vlr-owners

vlr-pers

vlr-pers-list

vlr-pers-p

vlr-pers-release

vlr-reaction-name

vlr-reaction-set

vlr-reactions

vlr-reactors

vlr-remove

vlr-remove-all

vlr-set-notification

vlr-sysvar-reactor

vlr-toolbar-reactor

vlr-trace-reaction

vlr-type

vlr-types

vlr-undo-reactor

vlr-wblock-reactor

vlr-window-reactor

vlr-xref-reactor

vports

 

W

wcmatch

while

write-char

write-line

 

X

xdroom

xdsize

 

Z

zerop

 

Hy vọng là dần dần theo thời gian chúng ta sẽ cùng diễn giải được ý nghĩa từng lệnh của LISP.

  • 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
Em muốn biết các lệnh của lisp, từ cơ bản cho đến nâng cao ấy. Mong các anh chị hướng dẫn.

 

Bác Hoành đã liệt kê toàn bộ các lệnh lisp, theo ABC chứ không phải là từ cơ bản đến nâng cao. Bạn có thể vào Help - AutoLISP Reference tham khảo thêm về cú pháp các lệnh cũng như các ví dụ có sẵn.

Để hiểu toàn bộ các lệnh, cần phải có một quá trình khá "dày". Nếu bạn mới bắt đầu tìm hiểu lisp, mình đề nghị:

1) Phải có một quyển sách về lisp bằng tiếng Việt

2) Tham khảo thêm Help của chính Acad

3) Thực hành ngay bằng các ví dụ áp dụng cụ thể và đơn giản nhất. Nếu chưa biết bắt đầu như thế nào, bạn có thể nêu một ví dụ về yêu cầu cụ thể, mình sẽ hướng dẫn bạn từng bước để thực hiện yêu cầu đó.

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 nêu các chức năng của hàm AutoLISP có tên đầu từ A-F:

 

- (abs so) : trả về giá trị tuyệt đối của so

- (alert chuoicanhbao): hiển thị chuỗi cảnh báo trong hộp thoại.

- (and bt1 bt2 bt3 ...): thực hiện phép toán logic and giữa các biểu thức

- (angle p1 p2): trả về góc của véc tơ giữa 2 điểm p1 p2 với trục X.

- (angtof chuoi [donvi]) trả về góc dạng số thực của giá trị chuỗi (string). nếu đơn vị được đặt vào chuỗi sẽ được hiểu theo: 0-Độ, 1-Độ phút giây, 2-Grads, 3-Radians, 4-Surveyor's units.

- (angtos angle [unit [precision]]): ngược lại với lệnh angtof.

- (append lst1 lst2): trộn hai tập hợp lst1 và lst2 thành 1 tập hợp chung. VD: (append '(1 2 3) '(4 5 6)) = '(1 2 3 4 5 6)

- (apply tenham lst): trả về kết quả của việc sử dụng hàm tenham với các đối số là các phần tử thuộc lst. VD: (apply '+ '(1 2 3)) trả về kết quả là 6.

- (ascii chu): trả về mã ASCII của chữ. VD: (ascii "A") bằng 65.

- (assoc so lst): trả về phần tử dạng tập hợp có thành phần đầu tiên là so trong tập hợp các phần tử như vậy. Ví dụ: (assoc 'size '((name box) (width 3) (size 4.7263) (depth 5))) có kết quả là (SIZE 4.7263).

- (atan so1 [so2]) trả về góc có tang bằng số 1. Khi số 2 xuất hiện, nó sẽ trả về góc có tang bằng so1/so2 (đề phòng trường hợp so2 =0 vẫn được)

 

- (atof chuoi) trả về số thực được thể hiện trong chuoi. (atof "3.14") bằng 3.14

- (atoi chuoi) giống atof ngoại trừ nó là số nguyên.

 

- (caddr lst) lấy phần tử đứng thứ 3 trong danh sách.

- (cadr lst) lấy phần tử đứng thứ 2 trong danh sách.

- (car lst) lấy phần tử đứng đầu trong danh sách.

- (cdr lst) lấy phần còn lại của danh sách trừ phần tử đầu tiên.

- (chr num) trả về ký tự có mã ascii là num

- (close fhnd) đóng một file handle được mở bằng hàm open.

- (command tham_so1 tham_so2 ...) gửi vào dòng lệnh AutoCAD lệnh hay các tham số. hàm này rất thông dụng để tương tác với AutoCAD.

- (cond (dk1 kq1) (dk2 kq2) ...) hàm rẽ nhánh điều kiện, nếu dk1 đúng hàm cond sẽ trả về kq1, nếu dk2 đúng hàm sẽ trả về kq2,... Hàm này giống như cấu trúc case trong một số nguôn ngữ lập trình khác.

- (cons a :lol: trả về một tập hợp có 2 phần tử (a . :lol:. VD: (cdr (cons a :() bằng a. (car (cons a :D) bằng b. Khi B là một tập hợp thì (cons a :D là một tập hợp mới có a là phần tử đầu tiên và các phần tử còn lại chính là b.

- (cos goc) cos của góc

- (defun fname() Noidungham) là hàm định nghĩa một hàm mới có tên là fname và mã lệnh là Noidungham

- (distance p1 p2) Trả về khoảng cách giữa hai điểm p1 p2.

- (entdel ent) xóa đối tượng có tên là ent nếu đối tượng đó có trong bản vẽ. Nếu một đối tượng vừa được xóa bằng lệnh entdel, có thể phục hồi lại cũng chính bằng lệnh này. Có nghĩa là khi sử dụng 2 lệnh entdel liên tục cho cùng 1 đối tượng thì không có gì xảy ra.

- (entget ent) lấy thông tin của đối tượng.

- (entlast) lấy tên của đối tượng cuối cùng.

- (entmake lst) tạo một đối tượng có các thông số trong lst. Các thông số này giống như thông số có được từ lệnh entget ent. Nếu sử dụng lệnh (entmake (entget ent)) có nghĩa là tạo thêm một đối tượng giống hệt đối tượng ent.

- (entmod lst) giống hàm entmake, nhưng để update đối tượng.

- (entnext [ent]) đối tượng kế tiếp của đối tượng ent. Nếu đối tượng ent không được chỉ định, hàm sẽ trả về đối tượng đầu tiên.

- (entsel dong_nhac) hiển thị dòng nhắc để pick một đối tượng. Kết quả trả về là 1 list chấm (giống như kết quả của hàm cons) trong đó phần tử đầu tiên là ename của đối tượng. Phần tử thứ 2 là tọa độ pick.

- (entupd ent) update lại đối tượng ent. Cần dùng khi đối tượng này vừa được sửa đổi bằng hàm entmod, nhưng bản vẽ lại chưa regen.

- (eq a :D so sánh a với b có bằng nhau không.

- (equal a b saiso) so sánh a với b có bằng nhau không, nếu a với b chênh nhau ít hơn saiso thì xem như là bằng.

- (*error*) hàm sẽ được gọi khi xuất hiện lỗi.

- (exit) thoát một hàm.

- (exp num) tương đương với e^num, trả về kết quả của số e mũ num.

- (expt a B) trả về a^b - a mũ b.

 

 

- (findfile filename) trả về chuỗi đầy đủ của tên file. Ví dụ (findfile "acad.exe") sẽ trả về: "C:\\Program Files\\AutoCAD 2007\\acad.exe".

- (fix r) trả về giá trị số nguyên của số thực r.

- (float n) ngược lại với fix, trả về giá trị kiểu thực của số nguyên n. Nhiều người cảm giác hàm float có vẻ thừa. Nhưng thực tế thì không, ví dụ: (/ 2 3) bằng 0, còn (/ (float 2) 3) bằng 0.666667.

- (foreach a lst thuchien) hàm lặp (như vòng lặp for trong các ngôn ngữ lập trình khác). quét giá trị biến a qua tất cả các phần tử trong lst. Mỗi lần như thế thì thực thi mã lệnh trong thuchien.

  • 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

woa! chỉ mới giới thiệu sơ qua thôi mà đã ko biết hướng đi rồi. Vậy mà em cứ nghĩ autolisp đơn giản thôi. cám ơn anh Nguyen Hoanh nha! Anh có thể giới thiệu vài tên sách cơ bản được ko, cái quan trọng là anh biết tường loại sách cho mỗi thời điểm để học á. Một lần nữa cám ơn anh nhiều.

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
Sách cũng nhiều loại. Nhưng mình thấy có quyển AutoLisp-VisualLisp cũng tàm tạm.

 

Nói chung anh liệt kê các lệnh trên thì được rồi. Em muốn anh có thể nói sơ về cách tạo ra 1 file autolisp rồi cách lấy nó ra trong cad để dùng. Có thể nêu một số ví dụ sử dụng hàm và kết hợp với một số hàm khác chẳng hạn. Em cám ơn anh nhiều!.

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 thử vào http://www.cadviet.com/forum/index.php?sho...entry1155 xem có giúp ích được bạn chút nào không?

 

Cách sử dụng lisp (2 cách):

1. Bạn copy và save mã nguồn vào một file text có đuôi là .lsp. Khởi động ACAD. Dùng menu tools > load application, chọn file bạn vừa save. Xem lại trong file lsp có dòng nào có defun c:xxx thì xxx là lệnh để gọi hàm, nhưng thường thì ai cho lisp cũng sẽ cho tên Hàm.

2. Copy rồi paste mã lệnh lisp trực tiếp vào dòng lệnh của AutoCAD.

  • 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

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


×