Thứ Hai, 12 tháng 4, 2010

Trò chơi xếp lisp:


Để viết lisp mình dùng phương pháp giống như chơi trò xếp gạch, nghĩa là các đoạn đã viết thành công mình sẽ lưu lại thành kiểu từ điển sau đó thì xếp nó lại với nhau theo nhu cầu của mình. Xin chia sẽ với các bạn bộ từ điển viết lisp của mình.

Đoạn mở đầu cho tất cả các lisp:
(defun c:tenlenh ()
(command "undo" "be")

Trong đó tenlenh là cái mà bạn gỏ vào thanh command để thực thi lệnh lisp.


Đoạn kết thúc cho tất cả các lisp:
(command "undo" "end")
(princ)
)


Còn tất cả các đoạn bên dưới thì ghép vào giữa hai đoạn trên thì coi như bạn viết được lisp rồi đó.


Lưu bắt điểm tự động :
(setq luubatdiem (getvar "osmode"))

Trả lại bắt điểm tự động:
(setvar "osmode" luubatdiem)

Lưu tên layer hiện hành :
(setq luulayer (getvar "clayer"))

Trả lại layer hiện hành :
(setvar "clayer" luulayer)

Lưu bán kính lệnh fillet hiện hành :
(setq luubankinh (getvar "filletrad"))

Trả lại bán kính lệnh fillet hiện hành :
(setvar "filletrad" luubankinh)

Lưu kiểu chử hiện hành :
(setq luukieuchu (getvar "TEXTSTYLE"))

Trả lại kiểu chử hiện hành :
(setvar "TEXTSTYLE" luukieuchu)

Đoạn chọn điểm a bằng clik chuột trái:
(setq a (getpoint "\nChon diem: "))

Đoạn chọn điểm b bằng clik chuột trái có đường dẩn hướng nối với điểm a:
(setq b (getpoint a"\nChon diem: "))

Đoạn lấy khoảng cách từ a đến b:
(setq daiab (distance a b))
Đoạn lấy góc mà đoạn ab tạo với trục x: (giá trị thu được là radian)
(setq gocab (angle a b))

Đoạn đổi giá trị góc từ radian sang độ:
(setq gocdo (* 180 (/ gocradian pi)))

Đoạn vẽ line từ a tới b:
(command ".line" a b "")

Đoạn vẽ circle tâm a bán kính a b:
(command ".circle" a b)

Đoạn chọn 1 nhóm đối tượng lưu thành biến doituong:
(setq doituong (ssget))

Đoạn chọn 1 nhóm đối tượng bằng cách chọn pline bao quanh lưu thành biến doituong:
(setq plst (acet-geom-vertex-list (car (entsel "\n Chon pline gioi han"))))
(setq doituong (ssget "wp" plst))

Đoạn move nhóm đối tượng doituong từ a tới b:
(command ".move" doituong "" a b)

Đoạn move nhóm đối tượng vừa chọn trước đó từ a tới b:
(command ".move" "previous" "" a b)

Đoạn move đối tượng vừa được tạo mới nhất từ a tới b:
(command ".move" "last" "" a b)

Đoạn làm xuất hiện bảng chọn color của cad và trả về giá trị mau là số từ 1 đến 225.
(princ "\nChon mau lop :")(setq mau (acad_colordlg 7))

Đoạn lưu giá trị là số: Biến kết quả để dùng là biến giatri
(if (= giatri nil)
(setq giatri1 5.0)
(setq giatri1 giatri)
)
(setq giatri (GETREAL (strcat "\nNhap so can luu: <" (rtos giatri1 2 2) ">")))
(if (= giatri nil)
(setq giatri giatri1)
)

Đoạn lưu kết quả là chử: Biến kết quả để dùng là giatric
(if (= giatric nil)
(setq giatric1 "mau")
(setq giatric1 giatric)
)
(setq giatric (GETSTRING (strcat "\nNhap chu can luu: <" giatric1 ">")))
(if (= giatric "")
(setq giatric giatric1)
)

Không có nhận xét nào:

Đăng nhận xét