Danh mục

Sử dụng AutoLisp trong AutoCad

Số trang: 6      Loại file: pdf      Dung lượng: 345.15 KB      Lượt xem: 5      Lượt tải: 0    
tailieu_vip

Hỗ trợ phí lưu trữ khi tải xuống: 3,000 VND Tải xuống file đầy đủ (6 trang) 0
Xem trước 2 trang đầu tiên của tài liệu này:

Thông tin tài liệu:

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...
Nội dung trích xuất từ tài liệu:
Sử dụng AutoLisp trong AutoCad 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ề VBAfor 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ằngAutoLisp để 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àoTools/Load ApplicationCử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 Cho vi trí thuoc ty lê:))(setq TLD ( getreal Cho ty lê dung: 1/))(setq TLN ( getreal Cho ty lê ngang: 1/))(setq Batdau ( getreal Cho cao dô bat dâu= ))(setq Saumax ( getreal Cho 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 (= Chu 0) (command text style vntime Ghichu 2 0 (Strcat + ( Rtos Chu 2 1 ) )))(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 Cho sô cac hô khoan:))(setq so 1) (while (( 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 22) ))) (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 Cho 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 ...

Tài liệu được xem nhiều: