Tải bản đầy đủ (.doc) (25 trang)

Lập trình tự động thiết kế Auto CAD bằng ngôn ngữ Auto LISP

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (836.37 KB, 25 trang )

Bài tập lớn Tự động hóa Thiết kế

BÀI TẬP LỚN

TỰ ĐỘNG HÓA THIẾT KẾ
ĐỀ BÀI: SỬ DỤNG NGÔN NGỮ AUTOLISP THIẾT KẾ CHƯƠNG TRÌNH
VẼ MẶT BÍCH THƯỜNG 2D THEO TIÊU CHUẨN JIS 40K

SINH VIÊN TH: NGUYỄN TRỌNG ĐÀ
GIẢNG VIÊN HD: TRƯƠNG TIẾN PHÁT

HẢI PHÒNG 2013
Nguyễn Trọng Đà

Page 1

7/10/2019


Bài tập lớn Tự động hóa Thiết kế

MỤC LỤC
CHƯƠNG 1. TỔNG QUAN CHUNG...............................................................4
Lý do chọn........................................................................................................4
Mục đích...........................................................................................................4
Kết quả đạt được...............................................................................................4
CHƯƠNG 2. XÂY DỰNG CHƯƠNG TRÌNH.................................................5
Cơ sở lý thuyết..................................................................................................5
Phân tích số liệu chọn phương án thiết kế........................................................6
Nhận biết các nhu cầu...................................................................................6
Xác định vấn đề............................................................................................6


Tổng hợp.......................................................................................................6
Thực hiện......................................................................................................7
Thiết kế.........................................................................................................7
Thử nghiệm chương trình...........................................................................21
Hướng dẫn sử dụng....................................................................................23

Nguyễn Trọng Đà

Page 2

7/10/2019


Bài tập lớn Tự động hóa Thiết kế

DANH MỤC HÌNH VẼ
Hình 1.1: Kết quả tính toán................................................................................4
Hình 2.2: Tiêu chuẩn JIS....................................................................................5
Hình 2.3: Thử nghiệm với ND=25, hình chiếu đứng......................................21
Hình 2.4: Thử nghiệm với ND=25, hình chiếu bằng......................................22
Hình 2.5 Thử nghiệm với ND=250, hình chiếu đứng.....................................22
Hình 2.6: Thử nghiệm với ND=250, hình chiếu bằng....................................23
Hình 2.7: Bước 1................................................................................................24
Hình 2.8: Bước 2................................................................................................24
Hình 2.9: Bước 3................................................................................................25
Hình 2.10: Bước 4..............................................................................................25

Nguyễn Trọng Đà

Page 3


7/10/2019


Bài tập lớn Tự động hóa Thiết kế

CHƯƠNG 1.

TỔNG QUAN CHUNG

Lý do chọn
Đối với một con tàu thì hệ thống đường ống chiếm vị trí quan trọng hàng
đầu. Nó truyền dẫn công chất phục vụ cho hệ động lực, cân bằng tàu, cứu hỏa,
sinh hoạt, … Trên tàu số lượng đường ống là rất lớn, việc tính toán, thiết kế, bố
trí, lựa chọn tiêu chuẩn đường ông là 1 vấn đề rất khó và mất nhiều thời gian.
Từ các vấn đề, yêu cầu trên đặt ra chúng ta đi xây dựng chương trình tự
động hóa việc vẽ bích thường theo tiêu chuẩn JIS
Mục đích
Vẽ nhanh, chính xác bích thường theo tiêu chuẩn JIS
Phục vụ cho quá trình thiết kế, học tập và nghiên cứu.
Kết quả đạt được
Ta xây dựng được chương trình Autolisp cho việc vẽ bích thường theo tiêu
chuẩn JIS với giao diện người dùng thân thiện

Hình 1.1: Kết quả tính toán

Nguyễn Trọng Đà

Page 4


7/10/2019


Bài tập lớn Tự động hóa Thiết kế

CHƯƠNG 2.

XÂY DỰNG CHƯƠNG TRÌNH

Cơ sở lý thuyết
Dựa vào tiêu chuẩn:

Hình 2.2: Tiêu chuẩn JIS
Nguyễn Trọng Đà

Page 5

7/10/2019


Bài tập lớn Tự động hóa Thiết kế

Phân tích số liệu chọn phương án thiết kế
Nhận biết các nhu cầu
Các con tàu hiện đại ngày nay đều trang bị hệ thống ống cực kì phức tạp
và đã được tiêu chuẩn hóa các có kích thước, đường kính, ... xác định trước.
Việc thiết kế nếu thực hiện thủ công bằng tay hay trên máy tính sẽ tốn rất nhiều
thời gian và tiền bạc gây ra sự nhàm chán và sai sót với kỹ sư thiết kế.Chính vì
vậy nhu cầu về một chương trình tự động thiết kế các chi tiết của hệ thống ông
rất cao

Xác định vấn đề
Ở đây có hai vấn đề cần xác định là người sử dụng tự động hóa và người
thực hiện tự động hóa :
Người sử dụng tự động hóa cần biết một số vấn đề sau :
- Người sử dụng chương trình là những kí sư thiết kế, sinh viên, giảng
viên, họ đều là những người có kiến thức chuyên môn cao và kiến thức về phần
mềm AutoCAD và AutoLISP họ có thể điều chỉnh chương trình cho phù hợp với
thói quen và yêu cầu sử dụng.
Người thực hiện tự động hóa cần có một số vân đề sau :
- Người thực hiện tự động hóa là sinh viên cần biết AutoCAD và
AutoLISP, khai thác và sử dụng các tính năng ưu việt của nó. Ngoài ra người
dùng còn phải cập nhập tin tức, tài liệu về sản phẩm đang thiết kế tự động hóa.
- Cơ sở thiết kế phải có đủ phần mềm và các trang thiết bị sử dụng khai
thác phần mềm dự định thiết kế.
- Khả năng tài chính cũng đòi hỏi người thực hiện phải có đủ tài chính để
cập nhậm phần mềm hay tài liệu xoay quanh phần mềm thiết kế và sản phẩm
thiết kế.
Tổng hợp
Từ những phân tích trên ta xây dựng chương trình tự động vẽ mặt bích
thường theo tiêu chuẩn JIS 40K bằng ngôn ngữ lập trình AUTOLISP trên ứng
dụng nền AUTOCAD sử dụng giao diện người dùng

Nguyễn Trọng Đà

Page 6

7/10/2019


Bài tập lớn Tự động hóa Thiết kế


Thực hiện
2.1.1.1. Xem xét, nghiên cứu các quá trình hoặc sản phẩm tự động hóa

tương tự
- Cần học hỏi từ những sản phẩm và quá trình tự động hóa tương tự để bắt
đầu một cách đúng hướng, tránh cách lỗi gặp phải khi thực hiện.
2.1.1.2. Học hỏi những người có kinh nhiệm

- Tiếp thu những kinh nghiệm của người khác, để tích lũy kiến thức cho
bản thân nhằm thực hiện chương trình tự động hóa một cách hiệu quả nhất.
2.1.1.3. Ứng dụng công nghệ

- Người thực hiện phải nghiên cứu nhiều công nghệ kết hợp với tính sáng
tạo và trí tuệ của bản thân, đưa ra lựa chọn công nghệ hợp lý.
Thiết kế
2.1.1.4. Code lệnh mô tả hộp thoại
begin: dialog{
label = "Flange";
:spacer{width=20;}
:boxed_row {
label = "Insert point";
:edit_box {label = "&X_Axis";key =
"edit_X";edit_width = 4;}
:edit_box {label = "&Y_Axis";key =
"edit_Y";edit_width = 4;}
}
:boxed_row {
label = "Nominal Diameter";
:popup_list {

label = "Select nomial diameter: ";
edit_width = 6;
key = "edit_code";
value = "0";
list = "\n10 \n15 \n20 \n25 \n32
\n40 \n50 \n65 \n80 \n100 \n125 \n150 \n200 \n250";
}
}
:boxed_row {
label = "Orthographic projection";
:radio_button {label="Front"; key =
"rd";value = "1";}
:radio_button {label="Bottom"; key =
"rd_f";value = "0";}
}
Nguyễn Trọng Đà

Page 7

7/10/2019


Bài tập lớn Tự động hóa Thiết kế

:boxed_row {
label = "Rotate angle";
:edit_box {label = "Enter rotate angle:
";edit_width = 6;key = "angl";value = "0";}
}
ok_cancel_err;

}
2.1.1.5. Code lệnh thực hiện
(defun c:da (/ DCL_ID)
(command "_limits" "0,0" "297,210")
(command "layer" "set" "0" "")
(setq DCL_ID (load_dialog "bd.DCL"))
(if (not (new_dialog "begin" DCL_ID))
(exit)
)
(if (= (numberp X) T)
(set_tile "edit_X" (rtos X))
)
(if (= (numberp Y) T)
(set_tile "edit_Y" (rtos Y))
)
(if (= (numberp angl) T)
(set_tile "angl" (rtos angl))
)
(if (= (numberp code) T)
(set_tile "edit_code" (rtos code))
)
(if (= (numberp rd1) T)
(set_tile "rd" (rtos rd1))
)
(if (= (numberp rd2) T)
(set_tile "rd_f" (rtos rd2))
)
(action_tile
"edit_X"
"(setq X (atof (get_tile \"edit_X\")))"

)
(action_tile
"edit_Y"
"(setq Y (atof (get_tile \"edit_Y\")))"
)
(action_tile
"angl"
"(setq angl (atof (get_tile \"angl\")))"
)
(action_tile
"edit_code"
Nguyễn Trọng Đà

Page 8

7/10/2019


Bài tập lớn Tự động hóa Thiết kế

"(setq code (atof (get_tile \"edit_code\")))"

)
(action_tile "rd" "(setq rx (atof
(get_tile \"rd\")))")
(action_tile "rd_f" "(setq rx (atof
(get_tile \"rd_f\")))")
(action_tile "accept" "(done_dialog 1)")
(action_tile "rd" "(setq rd1 (atoi $value)) (setq
rd2 0)")

(action_tile "rd_f" "(setq rd2 (atoi $value))
(setq rd1 0)")
(action_tile "cancel" "(done_dialog 1) (exit)")
(start_dialog)
(unload_dialog DCL_ID)
(setq A1 (list x y 0))
(cond
((= code 0)
(setq OD 8.65)
(setq d0 8.9)
(setq D 55)
(setq t1 18)
(setq TL 26)
(setq a 17)
(setq b 19)
(setq r 5)
(setq f 1)
(setq g 26)
(setq dn 0)
(setq C 37.5)
(setq BL 4)
(setq h 9.5)
(setq S1 14)
(setq m 6)
(setq S2 14)
(setq n 5)
)
((= code 1)
(setq OD 10.85)
(setq d0 11.1)

(setq D 57.5)
(setq t1 20)
(setq TL 30)
(setq a 19.5)
(setq b 21.5)
(setq r 5)
(setq f 1)
(setq g 27.5)
(setq dn 0)
(setq C 40)
Nguyễn Trọng Đà

Page 9

7/10/2019


Bài tập lớn Tự động hóa Thiết kế

(setq
(setq
(setq
(setq
(setq
(setq

BL 4)
h 9.5)
S1 16.25)
m 6)

S2 16.25)
n 5)

)
((= code 2)
(setq OD 13.6)
(setq d0 13.85)
(setq D 60)
(setq t1 20)
(setq TL 30)
(setq a 22.5)
(setq b 24.5)
(setq r 5)
(setq f 1)
(setq g 30)
(setq dn 0)
(setq C 42.5)
(setq BL 4)
(setq h 9.5)
(setq S1 19)
(setq m 6)
(setq S2 19)
(setq n 5)
)
((= code 3)
(setq OD 17.25)
(setq d0 17.25)
(setq D 65)
(setq t1 22)
(setq TL 32)

(setq a 27.5)
(setq b 29.5)
(setq r 5)
(setq f 1)
(setq g 35)
(setq dn 0)
(setq C 47.5)
(setq BL 4)
(setq h 9.5)
(setq S1 23.9)
(setq m 6)
(setq S2 23.9)
(setq n 5)
)
((= code 4)
(setq OD 21.35)
Nguyễn Trọng Đà

Page 10

7/10/2019


Bài tập lớn Tự động hóa Thiết kế

(setq
(setq
(setq
(setq
(setq

(setq
(setq
(setq
(setq
(setq
(setq
(setq
(setq
(setq
(setq
(setq
(setq

d0 21.6)
D 70)
t1 24)
TL 35)
a 32)
b 34)
r 3)
f 2)
g 40)
dn 0)
C 52.5)
BL 4)
h 9.5)
S1 28.25)
m 6)
S2 28.25)
n 5)


)
((= code 5)
(setq OD 24.3)
(setq d0 24.55)
(setq D 80)
(setq t1 24)
(setq TL 35)
(setq a 35)
(setq b 37)
(setq r 6)
(setq f 2)
(setq g 45)
(setq dn 0)
(setq C 60)
(setq BL 4)
(setq h 11.5)
(setq S1 31.25)
(setq m 6)
(setq S2 31.25)
(setq n 5)
)
((= code 6)
(setq OD 30.25)
(setq d0 30.55)
(setq D 82.5)
(setq t1 26)
(setq TL 38)
(setq a 43)
(setq b 45)

(setq r 6)
(setq f 2)
(setq g 52.5)
Nguyễn Trọng Đà

Page 11

7/10/2019


Bài tập lớn Tự động hóa Thiết kế

(setq
(setq
(setq
(setq
(setq
(setq
(setq
(setq

dn 0)
C 65)
BL 8)
h 9.5)
S1 37.25)
m 6)
S2 37.25)
n 5.5)


)
((= code 7)
(setq OD 38.15)
(setq d0 38.55)
(setq D 100)
(setq t1 30)
(setq TL 44)
(setq a 53)
(setq b 55)
(setq r 8)
(setq f 2)
(setq g 65)
(setq dn 31.15)
(setq C 80)
(setq BL 8)
(setq h 11.5)
(setq S1 45.75)
(setq m 7)
(setq S2 45.75)
(setq n 7)
)
((= code 8)
(setq OD 44.55)
(setq d0 45.15)
(setq D 105)
(setq t1 32)
(setq TL 46)
(setq a 59)
(setq b 62)
(setq r 8)

(setq f 2)
(setq g 70)
(setq dn 36.95)
(setq C 85)
(setq BL 8)
(setq h 11.5)
(setq S1 52.75)
(setq m 7.5)
(setq S2 52.75)
(setq n 7)
)
Nguyễn Trọng Đà

Page 12

7/10/2019


Bài tập lớn Tự động hóa Thiết kế

((= code 9)
(setq OD 57.15)
(setq d0 57.75)
(setq D 125)
(setq t1 36)
(setq TL 52)
(setq a 72.5)
(setq b 75.5)
(setq r 8)
(setq f 2)

(setq g 82.5)
(setq dn 48.55)
(setq C 102.5)
(setq BL 8)
(setq h 12.5)
(setq S1 66.5)
(setq m 8.5)
(setq S2 66.5)
(setq n 7)
)
((= code 10)
(setq OD 69.9)
(setq d0 70.7)
(setq D 150)
(setq t1 40)
(setq TL 58)
(setq a 91)
(setq b 94)
(setq r 8)
(setq f 2)
(setq g 100)
(setq dn 60.4)
(setq C 125)
(setq BL 8)
(setq h 13.5)
(setq S1 80.25)
(setq m 9.5)
(setq S2 80.25)
(setq n 7)
)

((= code 11)
(setq OD 82.6)
(setq d0 83.5)
(setq D 177.5)
(setq t1 44)
(setq TL 64)
(setq a 100)
(setq b 104)
(setq r 8)
Nguyễn Trọng Đà

Page 13

7/10/2019


Bài tập lớn Tự động hóa Thiết kế

(setq
(setq
(setq
(setq
(setq
(setq
(setq
(setq
(setq
(setq

f 2)

g 120)
dn 71.6)
C 147.5)
BL 12)
h 16.5)
S1 94)
m 11)
S2 94)
n 7)

)
((= code 12)
(setq OD 108.15)
(setq d0 109.1)
(setq D 202.5)
(setq t1 50)
(setq TL 72)
(setq a 127.5)
(setq b 131.5)
(setq r 8)
(setq f 2)
(setq g 145)
(setq dn 95.45)
(setq C 172.5)
(setq BL 12)
(setq h 16.5)
(setq S1 121.5)
(setq m 13)
(setq S2 121.5)
(setq n 7)

)
((= code 13)
(setq OD 133.7)
(setq d0 134.75)
(setq D 237.5)
(setq t1 56)
(setq TL 80)
(setq a 155)
(setq b 159)
(setq r 10)
(setq f 2)
(setq g 177.5)
(setq dn 118.6)
(setq C 205)
(setq BL 12)
(setq h 16.5)
(setq S1 149)
(setq m 15)
(setq S2 149)
Nguyễn Trọng Đà

Page 14

7/10/2019


Bài tập lớn Tự động hóa Thiết kế

(setq n 7)


)

)
(cond
((<= code 7)
(cond
((= rd1 1)
(setq A2 (polar A1 0 S2))
(setq A3 (polar A1 0 g))
(setq AT3 (polar A3 (/ pi 2) f))
(setq A4 (polar AT3 0 f))
(setq A5 (polar AT3 0 (- D g)))
(setq A6 (polar A5 (/ pi 2) (- t1 f)))
(setq A7 (polar A6 (- 0 pi) (- D (+ a r))))
(setq AT7 (polar A7 (- 0 pi) r))
(setq A8 (polar AT7 (/ pi 2) r))
(setq A10 (polar A1 (/ pi 2) TL))
(setq A11 (polar A10 (- 0 pi) S1))
(setq A12 (polar A10 (- 0 pi) a))
(setq AT9 (polar A10 0 S1))
(setq A9 (polar A10 0 a))
(setq A13 (polar A12 (- 0 (/ pi 2)) (- TL (+ t1
r))))
(setq AT14 (polar A13 (- 0 (/ pi 2)) r))
(setq A14 (polar AT14 (- 0 pi) r))
(setq A15 (polar A14 (- 0 pi) (- D (+ a r))))
(setq A16 (polar A15 (- 0 (/ pi 2)) (- t1 f)))
(setq A17 (polar A16 0 (- D (+ g f))))
(setq AT18 (polar A17 0 f))
(setq A18 (polar AT18 (- 0 (/ pi 2)) f))

(setq A19 (polar A1 (- 0 pi) S2))
(setq D1 (polar A1 0 C))
(setq D2 (polar D1 (/ pi 2) f))
(setq D3 (polar D1 (/ pi 2) t1))
(setq D4 (polar D3 (/ pi 2) 10))
(setq D5 (polar D2 (- 0 (/ pi 2)) 10))
(setq L5 (polar D3 (- 0 pi) h))
(setq L6 (polar D3 0 h))
(setq L7 (polar D2 (- 0 pi) h))
(setq L8 (polar D2 0 h))
(setq DX1 (polar A1 (- 0 pi) C))
(setq DX2 (polar DX1 (/ pi 2) f))
(setq DX3 (polar DX1 (/ pi 2) t1))
(setq DX4 (polar DX3 (/ pi 2) 10))
(setq DX5 (polar DX2 (- 0 (/ pi 2)) 10))
(setq LX5 (polar DX3 (- 0 pi) h))
(setq LX6 (polar DX3 0 h))
(setq LX7 (polar DX2 (- 0 pi) h))
(setq LX8 (polar DX2 0 h))
Nguyễn Trọng Đà

Page 15

7/10/2019


Bài tập lớn Tự động hóa Thiết kế

(setq AT10 (polar A10 (/ pi 2) 10))
(setq AT1 (polar A1 (- 0 (/ pi 2)) 10))

(setq B3 (polar A1 (/ pi 2) (- TL m)))
(setq B2 (polar B3 0 d0))
(setq B4 (polar B3 (- 0 pi) d0))
(setq B5 (polar B4 (- 0 (/ pi 2)) (- TL (+ m
n))))
(setq B1 (polar B2 (- 0 (/ pi 2)) (- TL (+ m
n))))
(setq M1 (polar L8 (/ pi 4) 1))
(setq M2 (polar A16 (/ pi 4) 1))
(command "_zoom" "_c" A1 (* 2 D))
(command "layer" "set" "0" "")
(command "_line" A3 A1 "")
(command "_arc" A4 "e" A3 "r" f)
(command "_line" A5 A4 "")
(command "_line" A6 A5 "")
(command "_line" A7 A6 "")
(command "_arc" A8 "e" A7 "r" r)
(command "_line" A9 A8 "")
(command "_line" A10 A9 "")
(command "_line" A12 A10 "")
(command "_line" A12 A13 "")
(command "_arc" A14 "e" A13 "r" r)
(command "_line" A15 A14 "")
(command "_line" A16 A15 "")
(command "_line" A17 A16 "")
(command "_arc" A18 "e" A17 "r" f)
(command "_line" A18 A1 "")
(command "_line" L5 L7 "")
(command "_line" L6 L8 "")
(command "_line" LX5 LX7 "")

(command "_line" LX6 LX8 "")
(command "_line" B1 B2 "")
(command "_line" B1 B5 "")
(command "_line" B4 B5 "")
(command "_line" B4 B2 "")
(command "_arc" A11 "e" B4 "r" m)
(command "_arc" B2 "e" AT9 "r" m)
(command "layer" "m" "2" "c" "2" "" "l" "center"
"" "")
(command "_line" D4 D5 "")
(command "_line" DX4 DX5 "")
(command "_line" AT10 AT1 "")
(command "layer" "set" "0" "")
(command "_arc" B5 "e" A19 "r" n)
(command "_arc" A2 "e" B1 "r" n)
(command "_zoom" "_c" A1 (* 2 D))

Nguyễn Trọng Đà

Page 16

7/10/2019


Bài tập lớn Tự động hóa Thiết kế

"")
"")
"")


(command "layer" "m" "3" "c" "3" "" "l" "" ""
(command "bhatch" "p" "ansi31" (/ TL 10) "0" m1
(command "bhatch" "p" "ansi31" (/ TL 10) "0" m2

(command "bhatch" "p" "ansi31" (/ TL 10) "0"
AT18 "")
(command "bhatch" "p" "ansi31" (/ TL 10) "0" AT3
"")
(setq AO10 (polar AT10 0 D))
(setq AO1 (polar AT1 (- 0 pi) D))
(setq obj (ssget "_C" AO10 AO1))
(command "_rotate" obj "" A1 angl)
)
((= rd2 1)
(setq i 1)
(setq GOC (/ (* 2 pi) BL))
(setq DT1 (polar A1 0 (+ D 10)))
(setq DT2 (polar A1 (- 0 pi) (+ D 10)))
(setq DT3 (polar A1 (/ pi 2) (+ D 10)))
(setq DT4 (polar A1 (- 0 (/ pi 2)) (+ D 10)))
(command "_zoom" "_c" A1 (* 2 D))
(command "layer" "set" "0" "")
(command "_circle" A1 D)
(command "_circle" A1 d0)
(command "_circle" A1 S1)
(command "_circle" A1 a)
(command "layer" "m" "2" "c" "2" "" "l" "center"
"" "")
(command "layer" "set" "2" "")
(command "_circle" A1 C)

(command "layer" "new" "4" "color" "4" "4"
"ltype" "hidden" "4"
"")
(command "layer" "set" "4" "")
(command "_circle" A1 S2)
(command "_circle" A1 g)
(command "_zoom" "_c" A1 (* 2 D))
(command "layer" "set" "2" "")
(command "_line" DT1 DT2 "")
(command "_line" DT3 DT4 "")
(repeat BL
(setq LO (polar A1 (* i goc) C))
(command "layer" "set" "0" "")
(command "_circle" LO h)
(command "layer" "set" "2" "")
(setq DTH1 (polar A1 (* i goc) (+ C (* 2 h))))
(setq DTH2 (polar A1 (* i goc) (- C (* 2 h))))
Nguyễn Trọng Đà

Page 17

7/10/2019


Bài tập lớn Tự động hóa Thiết kế

(command "_line" DTH1 DTH2 "")
(setq i (+ i 1))
)


)
)

)
((> code 7)
(cond
((= rd1 1)
(setq A2 (polar A1 0 S2))
(setq A3 (polar A1 0 g))
(setq AT3 (polar A3 (/ pi 2) f))
(setq A4 (polar AT3 0 f))
(setq A5 (polar AT3 0 (- D g)))
(setq A6 (polar A5 (/ pi 2) (- t1 f)))
(setq A7 (polar A6 (- 0 pi) (- D (+ a r))))
(setq AT7 (polar A7 (- 0 pi) r))
(setq A8 (polar AT7 (/ pi 2) r))
(setq A10 (polar A1 (/ pi 2) TL))
(setq A11 (polar A10 (- 0 pi) S1))
(setq A12 (polar A10 (- 0 pi) a))
(setq AT9 (polar A10 0 S1))
(setq A9 (polar A10 0 a))
(setq A13 (polar A12 (- 0 (/ pi 2)) (- TL (+ t1
r))))
(setq AT14 (polar A13 (- 0 (/ pi 2)) r))
(setq A14 (polar AT14 (- 0 pi) r))
(setq A15 (polar A14 (- 0 pi) (- D (+ a r))))
(setq A16 (polar A15 (- 0 (/ pi 2)) (- t1 f)))
(setq A17 (polar A16 0 (- D (+ g f))))
(setq AT18 (polar A17 0 f))
(setq A18 (polar AT18 (- 0 (/ pi 2)) f))

(setq A19 (polar A1 (- 0 pi) S2))
(setq D1 (polar A1 0 C))
(setq D2 (polar D1 (/ pi 2) f))
(setq D3 (polar D1 (/ pi 2) t1))
(setq D4 (polar D3 (/ pi 2) 10))
(setq D5 (polar D2 (- 0 (/ pi 2)) 10))
(setq L5 (polar D3 (- 0 pi) h))
(setq L6 (polar D3 0 h))
(setq L7 (polar D2 (- 0 pi) h))
(setq L8 (polar D2 0 h))
(setq DX1 (polar A1 (- 0 pi) C))
(setq DX2 (polar DX1 (/ pi 2) f))
(setq DX3 (polar DX1 (/ pi 2) t1))
(setq DX4 (polar DX3 (/ pi 2) 10))
(setq DX5 (polar DX2 (- 0 (/ pi 2)) 10))
(setq LX5 (polar DX3 (- 0 pi) h))
(setq LX6 (polar DX3 0 h))
Nguyễn Trọng Đà

Page 18

7/10/2019


Bài tập lớn Tự động hóa Thiết kế

(setq LX7 (polar DX2 (- 0 pi) h))
(setq LX8 (polar DX2 0 h))
(setq AT10 (polar A10 (/ pi 2) 10))
(setq AT1 (polar A1 (- 0 (/ pi 2)) 10))

(setq B3 (polar A1 (/ pi 2) (- TL m)))
(setq B2 (polar B3 0 d0))
(setq B4 (polar B3 (- 0 pi) d0))
(setq B5 (polar B4 (- 0 (/ pi 2)) (- TL (+ m (+
n (- d0 dn))))))
(setq B1 (polar B2 (- 0 (/ pi 2)) (- TL (+ m (+
n (- d0 dn))))))
(setq M1 (polar L8 (/ pi 4) 1))
(setq M2 (polar A16 (/ pi 4) 1))
(setq K1 (polar A1 (- 0 pi) dn))
(setq K2 (polar K1 (/ pi 2) n))
(setq KD1 (polar A1 0 dn))
(setq KD2 (polar KD1 (/ pi 2) n))
(command "_zoom" "_c" A1 (* 2 D))
(command "layer" "set" "0" "")
(command "_line" A3 A1 "")
(command "_arc" A4 "e" A3 "r" f)
(command "_line" A5 A4 "")
(command "_line" A6 A5 "")
(command "_line" A7 A6 "")
(command "_arc" A8 "e" A7 "r" r)
(command "_line" A9 A8 "")
(command "_line" A10 A9 "")
(command "_line" A12 A10 "")
(command "_line" A12 A13 "")
(command "_arc" A14 "e" A13 "r" r)
(command "_line" A15 A14 "")
(command "_line" A16 A15 "")
(command "_line" A17 A16 "")
(command "_arc" A18 "e" A17 "r" f)

(command "_line" A18 A1 "")
(command "_line" L5 L7 "")
(command "_line" L6 L8 "")
(command "_line" LX5 LX7 "")
(command "_line" LX6 LX8 "")
(command "_line" B1 B2 "")
(command "_line" B1 B5 "")
(command "_line" B4 B5 "")
(command "_line" B4 B2 "")
(command "_arc" A11 "e" B4 "r" m)
(command "_arc" B2 "e" AT9 "r" m)
(command "layer" "m" "2" "c" "2" "" "l" "center"
"" "")
(command "_line" D4 D5 "")
(command "_line" DX4 DX5 "")
Nguyễn Trọng Đà

Page 19

7/10/2019


Bài tập lớn Tự động hóa Thiết kế

"")
"")
"")

(command
(command

(command
(command
(command
(command
(command
(command
(command

"_line" AT10 AT1 "")
"layer" "set" "0" "")
"_line" K1 K2 "")
"_line" KD1 KD2 "")
"_line" K2 KD2 "")
"_arc" B5 "e" K2 "r" (- d0 dn))
"_arc" KD2 "e" B1 "r" (- d0 dn))
"_zoom" "_c" A1 (* 2 D))
"layer" "m" "3" "c" "3" "" "l" "" ""

(command "bhatch" "p" "ansi31" (/ TL 10) "0" m1
(command "bhatch" "p" "ansi31" (/ TL 10) "0" m2

(command "bhatch" "p" "ansi31" (/ TL 10) "0"
AT18 "")
(command "bhatch" "p" "ansi31" (/ TL 10) "0" AT3
"")
(setq AO10 (polar AT10 0 D))
(setq AO1 (polar AT1 (- 0 pi) D))
(setq obj (ssget "_C" AO10 AO1))
(command "_rotate" obj "" A1 angl)
)

((= rd2 1)
(setq i 1)
(setq GOC (/ (* 2 pi) BL))
(setq DT1 (polar A1 0 (+ D 10)))
(setq DT2 (polar A1 (- 0 pi) (+ D 10)))
(setq DT3 (polar A1 (/ pi 2) (+ D 10)))
(setq DT4 (polar A1 (- 0 (/ pi 2)) (+ D 10)))
(command "_zoom" "_c" A1 (* 2 D))
(command "layer" "set" "0" "")
(command "_circle" A1 D)
(command "_circle" A1 d0)
(command "_circle" A1 S1)
(command "_circle" A1 a)
(command "layer" "m" "2" "c" "2" "" "l" "center"
"" "")
(command "layer" "set" "2" "")
(command "_circle" A1 C)
(command "layer" "new" "4" "color" "4" "4"
"ltype" "hidden" "4"
"")
(command "layer" "set" "4" "")
(command "_circle" A1 g)
(command "_zoom" "_c" A1 (* 2 D))
(command "layer" "set" "2" "")
(command "_line" DT1 DT2 "")
(command "_line" DT3 DT4 "")
Nguyễn Trọng Đà

Page 20


7/10/2019


Bài tập lớn Tự động hóa Thiết kế

)

(repeat BL
(setq LO (polar A1 (* i goc) C))
(command "layer" "set" "0" "")
(command "_circle" LO h)
(command "layer" "set" "2" "")
(setq DTH1 (polar A1 (* i goc) (+ C (* 2 h))))
(setq DTH2 (polar A1 (* i goc) (- C (* 2 h))))
(command "_line" DTH1 DTH2 "")
(setq i (+ i 1))
)
)
)
)

)

Thử nghiệm chương trình
2.1.1.6. Thử nghiệm chương trình vẽ mặt bích có đường kính danh nghĩa

25mm, vẽ hình chiếu đứng:

Hình 2.3: Thử nghiệm với ND=25, hình chiếu đứng


Nguyễn Trọng Đà

Page 21

7/10/2019


Bài tập lớn Tự động hóa Thiết kế

2.1.1.7. Thử nghiệm chương trình vẽ mặt bích có đường kính danh nghĩa

25mm, vẽ hình chiếu bằng:

Hình 2.4: Thử nghiệm với ND=25, hình chiếu bằng
2.1.1.8. Thử nghiệm chương trình vẽ mặt bích có đường kính danh nghĩa

250mm, vẽ hình chiếu đứng:

Hình 2.5 Thử nghiệm với ND=250, hình chiếu đứng

Nguyễn Trọng Đà

Page 22

7/10/2019


Bài tập lớn Tự động hóa Thiết kế

2.1.1.9. Thử nghiệm chương trình vẽ mặt bích có đường kính danh nghĩa


250mm, vẽ hình chiếu bằng:

Hình 2.6: Thử nghiệm với ND=250, hình chiếu bằng
2.1.1.10. Kết luận

Các hình vẽ và kích thước của mặt bích do chương trình vẽ đều trùng
khớp toàn toàn với tiêu chuẩn JIS 40K . Chương trình đã thiết kế là chính xác và
có thể được đưa vào sử dụng
Hướng dẫn sử dụng
Bước 1:
Copy file db.DCl vào thư mục Support của Autocad
Bước 2:
Mở chương trình Autocad. Sau đó vào Tool -> AutoLISP -> Load
Application -> Chọn đường dẫn đến file Flange.LSP -> Nhấn Load.

Nguyễn Trọng Đà

Page 23

7/10/2019


Bài tập lớn Tự động hóa Thiết kế

Hình 2.7: Bước 1
Hộp thoại Load/Unload Application hiện ra => Chọn đường dẫn đến file
Flange.LSP -> Nhấn Load

Hình 2.8: Bước 2

Bước 3
Tắt hết các chức năng truy bắt điểm OSNAP, POLAR, ORTHOR

Nguyễn Trọng Đà

Page 24

7/10/2019


Bài tập lớn Tự động hóa Thiết kế

Hình 2.9: Bước 3
Bước 3:
Tại dòng lệnh của ACAD gõ lệnh DA sau đó thực hiện các yêu cầu hiện
trên hộp thoại

Hình 2.10: Bước 4

Nguyễn Trọng Đà

Page 25

7/10/2019


×