03. Các hàm nhập liệu từ người dùng

đăng 02:21, 12 thg 10, 2011 bởi Lisp Việt   [ đã cập nhật 17:52, 12 thg 10, 2011 ]

 Các hàm sau sẽ tạm dừng chương trình để yêu cầu người dùng nhập dữ liệu vào từ bàn phím hoặc chuột


a. Hàm (getpoint ...)

CHỨC NĂNG: Chờ người dùng nhập toạ độ một diểm

CÚ PHÁP:

(getpoint [point] [prompt])


GIẢI THÍCH:

point: Nếu có, cho bằng 1 danh sách điểm , là điểm thứ nhất, còn điểm người dùng nhập vào sẽ là điểm thứ 2. Điểm thứ 2 có thể cho bằng toạ độ tương đối.

[prompt]: Nếu có, là dòng nhắc hoặc giải thích về dữ liệu sẽ nhập. Dòng nhắc phải được đặt trong ngoặc kép “ ”

VD:

(setq pt1 (getpoint “Cho tam duong tron:”))

Kết quả cho trên dòng nhắc:

Cho tam duong tron:


b. Hàm (getdist ...)

CHỨC NĂNG: Chờ người dùng nhập vào:

Một số thực là một khoảng cách

Toạ độ của 1 hoặc 2 điểm

Nếu nhập toạ độ điểm, AutoLisp hoàn trả khoảng cách giữa hai điểm

CÚ PHÁP:

(getdist [point] [prompt])

GIẢI THÍCH:

point: giống như  getpoint

[prompt]: là dòng nhắc hoặc giải thích về dữ liệu sẽ nhập

VD:

(setq r1 (getdist “Cho ban kinh duong tron:”))

Kết quả cho trên dòng nhắc:

Cho tam duong tron: - Nhập vào một số thực dương hoặc

Nhập toạ độ một điểm, dòng nhắc xuất hiện:

Second point: Tiếp tục nhập vào điểm thứ 2 để lấy khoảng cách giữ 2 điểm


c. Hàm (getangle ...)

CHỨC NĂNG: Chờ người dùng nhập vào:

Một số thực là số đo bằng độ của góc hoặc cung tròn

Toạ độ của 1 hoặc 2 điểm

Nếu nhập toạ độ điểm, AutoLisp hoàn trả góc nghiêng giữa đoạn thẳng nối hai điểm so với phương nằm ngang

 

Kết quả trả về: REAL ( số đo là Radian)

CÚ PHÁP:

(getangle [point] [prompt])

GIẢI THÍCH:

point: giống như  getpoint

[prompt]: là dòng nhắc hoặc giải thích về dữ liệu sẽ nhập

VD:

(setq a1 (getangle “Cho goc nghieng cua duong thang:”))

Kết quả cho trên dòng nhắc chờ người dùng nhập số liệu:

            Cho goc nghieng cua duong thang:


d. Hàm (getint ...)

CHỨC NĂNG: Chờ người dùng nhập vào một số nguyên

            Kết quả: INT

CÚ PHÁP:

(getint [prompt])

GIẢI THÍCH:

[prompt]: là dòng nhắc hoặc giải thích về dữ liệu sẽ nhập


e. Hàm (getreal ...)

CHỨC NĂNG: Chờ người dùng nhập vào một số thực

            Kết quả: REAL

CÚ PHÁP:

(getreal [prompt])

GIẢI THÍCH:

[prompt]: là dòng nhắc hoặc giải thích về dữ liệu sẽ nhập


f. Hàm (iniget...)

CHỨC NĂNG: Kiểm soát các kiểu giá trị nhập vào từ người dùng cho các hàm nhập số liệu họ getxxx. Hàm này, nếu dùng phải đặt trước các hàm nhập số liệu họ getxxx cần khống chế

CÚ PHÁP:

(iniget mã_số [“Chuỗi_định_dạng”])


GIẢI THÍCH:

mã_số: Giá trị mã số kiểm soát cách nhập số liệu vào. Giá trị mã_số và các hàm chịu tác động cho trong bảng sau:

Mã số

Chức năng kiểm soát

Hàm chịu tác động

0

Bình thường trả về Nil nếu gõ ENTER khi chưa nhập số liệu

Toàn bộ các hàm getxxx trừ hàm getstr

1

Không cho phép người dùng gõ ENTER khi chưa nhập số liệu

getint, getreal, getdist, getangle, getpoint, getkword...

2

Không cho phép nhập số 0

getint, getreal, getdist, getangle, getpoint,

4

Không cho phép nhập số âm

getint, getreal, getdist,

8

Cho phép nhập toạ độ điểm nằm ngoài LIMITS của bản vẽ

getpoint, getcorner

Nếu mã số có giá trị tổng của mốtố giá trị cho trong bảng thì chức năng kiểm soát sẽ là tổng các chức năng.

Chuỗi_dịnh_dạng: Là một chuỗi ký tự dùng làm từ khoá hỗ trợ cho các hàm getxxx có các tuỳ chọn khi nhập số liệu

+ Mỗi từ khoá cách nhau một dấu trống

+ Các chữ cái viết hoa viết liền nhau trong từ khoá sẽ là dấu hiệu của từ khoá. Khi nhập số liệu, người dùng gõ theo các chữ cái viết hoa để lựa chọn

+ Nếu tất cả các chữ cái trong từ khoá đều viết hoa thì các từ khoá cách nhau bằng dấu phẩy (,)

VD1:

(iniget 1)

(setq a1 (getdist “Cho ban kinh:”))

Kết quả cho trên dòng nhắc chờ người dùng nhập số liệu:

                        Cho ban kinh:

            Nếu người dùng gõ ENTER mà không nhập gì cả sẽ có dòng thông báo:

                        Requires numeric distance or two poionts

                        Cho ban kinh:

            Đợi người dùng nhập liệu chương trình mới tiếp tục


VD2:

(iniget 1 “DAi ROng”)

(setq d1 (getdist “DAi/ROng/<Cho duong cheo>:”))

Kết quả cho trên dòng nhắc chờ người dùng nhập số liệu:

                        DAi/ROng/<Cho duong cheo>:

            Người dùng có thể nhập số thực hoặc các chữ cái DA hoặc RO


g. Hàm (getkword ...)

CHỨC NĂNG: Chờ người dùng nhập vào một ký tự hoặc một chuỗi ký tự liền nhau không có dấu trống

Kết quả trả về: STR

CÚ PHÁP:

(getkword [prompt])

GIẢI THÍCH:

Hàm này luôn đặt sau hàm initget, nếu chuỗi nhập vào không trùng với từ khoá trong hàm initget trước đó, getkword yêu cầu nhập lại

Hàm này thường áp dụng khi người dùng nhập vào các lựa chọn

[prompt]: là dòng nhắc nên chỉ rõ các từ khoá để người dùng dễ nhập dữ liệu.

VD:

(initget “VUong DAgiac:”)

(getkword “Nhap cac lua chon: VUong/DAgiac:”)

Kết quả cho trên dòng nhắc:

            Nhap cac lua chon: VUong/DAgiac:

            Ta chỉ cần nhập các chữ cái:

            VU kết quả trả về: “vuong”

            DA kết quả trả về: “dagiac”


h. Hàm (getstring ...)

CHỨC NĂNG: Chờ người dùng nhập vào một chuỗi ký tự . Nếu chuỗi ký tự dài hơn 132 ký tự, hàm chỉ lấy 132 ký tự

            Kết quả: STR

CÚ PHÁP:

(getstring [string] [prompt])


GIẢI THÍCH:

[string]: Nếu không có hoặc nhận giá trị Nil, không được nhập dấu trống, nếu gõ dấu trống tương đương gõ ENTER kết thúc nhập.

Nếu có giá trị khác Nil cho phép nhập cả dấu trống. Kết thúc nhập phải gõ ENTER

[prompt]: là dòng nhắc hoặc giải thích về dữ liệu sẽ nhập


i. Hàm (getvar ...)

CHỨC NĂNG: Lấy giá trị hiện hành của biến hệ thống trong AutoCad

CÚ PHÁP:

(getvar varname)

GIẢI THÍCH:

varname: Tên biến hệ thống

VD:

 (getvar “DIMLFAC” 10)

             ---> cho giá trị biến DIMLFAC = 10

Comments