Tài liệu Sử dụng AutoLisp trong AutoCad - Pdf 97

Sử dụng AutoLisp trong AutoCad

Trong lĩnh vực đồ họa (AutoCad), ngôn ngữ lập trình AutoLisp được ứng
dụng rộng rãi. Tuy nhiên ngôn ngữ AutoLisp có những hạn chế nhất định
và phức tạp. Những lỗi mở ngoặc, đóng ngoặc () rất khó chịu và không
phải dễ dàng tìm ra. Sau 1 thời gian nghiên cứu về AutoLisp, tôi ko tiếp tục
nữa.
Theo tôi, những bạn ngành kỹ thuật (có dùng AutoCad) nếu biết về VBA
for Excel thì nên sử dụng VBA for AutoCad, không nên dùng AutoLisp.
Sau đây tôi giới thiệu ti
ện ích vẽ mặt cắt địa chất công trình (chưa được hoàn chỉnh) bằng
AutoLisp để các bạn tham khảo.
Chương trình gồm 2 file: Matcat.dwg và GTmoi.lsp.
Để chạy chương trình, đầu tiên bạn mở file Matcat.dwg trong AutoCad2004. Sau đó vào
Tools/Load Application Cửa sổ Load/Unload Application hiện ra, bạn chọn file GTMoi.lsp trong look in: Sau đó chọn Load rồi Close. Nếu việc Load thành công thì máy sẽ báo:

Để chạy được GTMoi.lsp, đầu tiên bạn đặt chế độ Osnap off.
Sau đó ở dòng command, bạn gõ TL (thước tỷ lệ). Khi vào xong các yêu cầu thì sẽ thoát lệnh.
Dòng command trống xuất hiện, bạn vào HK (Hố khoan), rồi nhập các yêu cầu vào.
Để hiểu hơn các lệnh AutoLisp, mời các bạn xem code:
; Ve mat cat dia chat cong trinh
( defun C:TL ( / Saumax )
(setq Vitri ( getpoint "\nCho vi trí thuoc ty lê:"))
(setq TLD ( getreal " \nCho ty lê dung: 1/"))
(setq TLN ( getreal " \nCho ty lê ngang: 1/"))

(setq Kh3chu( polar Kh2chu (-(/ PI 2)) 7.5))
(command "Color" "7")
(command "text" "style" "T3" Kh1chu "2" "0" "Ký hiÖu")
(command "text" "style" "T3" Kh2chu "2" "0" "Cao ®é HK (m)")
(command "text" "style" "T3" Kh3chu "2" "0" "Kho¶ng c¸ch (m)")
); end of defun
(defun C:HK()
; Bat dau vao so lieu cac ho khoan
(setq Sohk ( getreal "\nCho sô cac hô khoan:"))
(setq so 1)
(while (<= so Sohk)
(setq Chuoi ( getstring ( strcat "\nCho tên HK thu " (rtos so 2 0 )":" )))
(setq Caodo ( getreal ( strcat "\nCho cao dô hô khoan thu " (rtos so 2 0 )":" )))
(setq Ktg ( polar Vitri (-(/ PI 2)) (/(*(- Batdau Caodo) 1000) TLD ) ))
(if (= so 1) (setq Khcach 0 ))
(setq KC (/ (* Khcach 1000 ) TLN))
(setq K1 ( polar Ktg 0 (+ 25 KC ) ) )
(setq Tg K1)
(setq Dosau ( getreal ( strcat "\nCho dô sâu hô khoan thu " (rtos so 2 0 )":" )))
(setq Lop( getint ( strcat " \nCho sô lop hô khoan thu " (rtos so 2 0 )":" )))
(setq D1( polar Tg 0 1.5 ))
(setq DC1( polar Tg (-(/ PI 2)) (* Dosau(/ 1000 TLD))) )
(setq DC2( polar DC1 0 1.5))
(setq Chuhk( Polar Kh1chu 0 (+ KC 42)))
(setq Chucaodo( Polar Kh2chu 0 (+ KC 34)))
(setq Gach( Polar Khch2 0 (+ KC 25 0.75)))
(setq Tam( Polar Gach (/ PI 2) 12 ))
(command "Color" "1")
(command "Circle" Tam "1.3" "")
(command "line" Tam "@0,1.3" "@0,-2.6" "")

( command "Text" "Justify" "R" Ghicaodo "1.8" "0"(rtos Cddlop 2 2))
( setq solop( + 1 solop ))
); end of while
(command "Color" "7")
(command "line" tg DC1 "" )
(if ( >= Caodo 0) (command "text" "style" "T3" Chucaodo "2" "0" (Strcat "+"( Rtos Caodo 2
2) )))
(if ( < Caodo 0) (command "text" "style" "T3" Chucaodo "2" "0" (rtos Caodo 2 2 ) ))
(command "Color" "2")
(command "line" DC1 DC2 D1 "")
(command "Color" "7")
(command "Text" "style" "T3" Chuhk "2.5" "0" Chuoi )
(command "Color" "1")
(if (= so 1)
( progn
( setq DCD ( polar DC1 0 -10 ))
( command "line" tg "@ -10,0" DCD "" )
)
)
(if (= so Sohk)
( progn
( setq DCC ( polar DC2 0 10))
( command "line" D1 "@ 10,0" DCC "" )
)
)
(if (< so Sohk)
( progn
(setq Khcach1( getreal ( strcat "\nCho khoang cách hô khoan thu " (rtos (+ so 1) 2 0 ) " toi hô
khoan truoc do (m):" )))
(setq Gachgiua( polar Gach (-(/ PI 2 )) 5 ))


Nhờ tải bản gốc

Tài liệu, ebook tham khảo khác

Music ♫

Copyright: Tài liệu đại học © DMCA.com Protection Status