1. Trang chủ
  2. » Công Nghệ Thông Tin

Tài liệu Sử dụng AutoLisp trong AutoCad pdf

6 1K 10
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Sử dụng AutoLisp trong AutoCAD
Chuyên ngành AutoCAD and AutoLisp
Định dạng
Số trang 6
Dung lượng 345,15 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

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.. Th

Trang 1

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:

Trang 2

Sau đó chọn Load rồi Close Nếu việc Load thành công thì máy sẽ báo:

Trang 3

Để 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 Batdau ( getreal " \nCho cao dô bat dâu= "))

(setq Saumax ( getreal " \nCho dô sâu hô khoan max= "))

(command "Color" "7")

(setq Soo (+( / (* Saumax 100 ) TLD) 1) )

(setq Vtchu ( polar Vitri 0 4 ))

(if ( >= Batdau 0) (command "text" "style" "vntime" Vtchu "2" "0" (Strcat "+"( Rtos Batdau 2 1) )))

(if ( < Batdau 0) (command "text" "style" "vntime" Ghichu "2" "0" (Rtos Batdau 2 1 ) ))

(setq dem 1 )

(while (<= dem Soo )

(setq Vitri1( polar Vitri (-(/ PI 2)) (-(* dem 10) 10 )))

(setq X1( polar Vitri1 (-(/ PI 2)) 10 ) )

(setq Y1( polar X1 0 1.5 ))

(command "rectangle" Vitri1 Y1 )

(if (= (rem dem 2) 0 ) (command "solid" Vitri1 "@1.5,0" "@-1.5,-10" "@1.5,0" ""))

(setq Ghichu( polar X1 0 4 ))

(setq Khdich (/ TLD 100))

(setq Chu (- Batdau (* dem Khdich ) ) )

(if ( >= Chu 0) (command "text" "style" "vntime" Ghichu "2" "0" (Strcat "+" ( Rtos Chu 2 1 ) )))

Trang 4

(if ( < Chu 0) (command "text" "style" "vntime" Ghichu "2" "0" (Rtos Chu 2 1 ) )) (setq dem ( + 1 dem ))

); end of while

(command "Color" "1")

(setq Khch( polar Vitri (-(/ PI 2)) (* (+ Soo 1 ) 10 ) ) )

(setq Khch1( polar Khch (-(/ PI 2)) 8 ))

(setq Khch2( polar Khch1 (-(/ PI 2)) 8 ))

(setq Kh1( polar Khch 0 -15 ))

(command "line" Kh1 "@0,-24" "@30,0" "@ 0,24" "C" "")

(setq Kh1chu( polar Kh1 -1.1 5.8))

(setq Kh2chu( polar Kh1chu (-(/ PI 2)) 7.5))

(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 "line" Gach "@ 0, -8" "")

( setq solop 1 )

( while ( <= solop Lop )

(command "Color" "1")

( setq Saulop( getreal ( strcat " \nCho dụ sõu lop thu " (rtos solop 2 0 )":" )))

Trang 5

( setq Cddlop(- Caodo Saulop))

( setq D2( polar D1 (-(/ PI 2 )) (* Saulop (/ 1000 TLD) )))

( setq D3( polar D2 0 -1.5 ))

( setq Ghidosau( polar D2 0.5 1.2 ))

( setq Ghicaodo( polar Ghidosau 0 -2.8 ))

(if (= so 1)

( progn

( command "line" D3 "@ -10,0" "" )

(command "line" D2 "@ 3,0" "" )

)

)

(if (> so 1)

( progn

( command "line" D2 "@ 3,0" "")

(command "line" D3 "@ -2,0" "" )

)

)

(if (= so Sohk)

( progn

( command "line" D2 "@ 10,0" "" )

(command "line" D3 "@ -2,0" "" )

)

)

( command "Color" "7")

( command "Text" "style" "vn1" Ghidosau "2.0" "0" ( Rtos Saulop 2 1))

( 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

Trang 6

( 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 ))

(setq ChuKcach( polar Gachgiua 0 (-( / (* Khcach1 1000) 2 TLN) 2)))

(command "text" "style" "T3" ChuKcach "2" "0" (rtos Khcach1 2 1 ) )

)

)

(command "redraw" "")

(setq Khcach (+ Khcach Khcach1 ) )

(setq so(+ 1 so ))

); end of while so ho khoan

(setq Kh2 (polar Kh1 (-(/ PI 2)) 8))

(setq Kh3 (polar Kh2 (-(/ PI 2)) 8))

(setq Cuoi3 (polar Gach 0 10 ))

(setq Cuoi2 (polar Cuoi3 (/ PI 2) 8))

(setq Cuoi1 (polar Cuoi2 (/ PI 2) 8))

(setq Cuoi4 (polar Cuoi3 (-(/ PI 2)) 8))

(command "line" Kh2 Cuoi2 "")

(command "line" Kh3 Cuoi3 "")

(command "rectangle" Kh1 Cuoi4 )

(command "Color" "1")

); end of defun

 

Ngày đăng: 19/01/2014, 20:20

TỪ KHÓA LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w