Page 111 - Kỷ yếu hội thảo quốc tế: Ứng dụng công nghệ mới trong công trình xanh - lần thứ 9 (ATiGB 2024)
P. 111
102 TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT - ĐẠI HỌC ĐÀ NẴNG
(mapcar 'setvar '(CMDECHO OSMODE) '(0 513)) (CK:EndUndo (CK:acdoc))
(CK:qleader dd) (if (not (wcmatch (strcase msg) "*BREAK,*EXIT*,*CANCEL*"))
(if (> (car d1) (car d2)) (princ (strcat "\n** @CaoKhanh-Error: " msg " **")))
(progn (princ))
(vl-cmdf "_insert" "Left-Fillet.dwg" d2(* (getvar "dimscale") 0.7) (* (getvar (CK:StartUndo (CK:acdoc))
"dimscale") 0.7) 0) (setq lst_var '(CMDECHO OSMODE CLAYER)
(vl-cmdf "_explode" (entlast))) old_var (mapcar 'getvar lst_var))
(progn (mapcar 'setvar '(CMDECHO OSMODE) '(0 513))
(vl-cmdf "_insert" "Right-Fillet.dwg" d2 (* (getvar "dimscale") 0.7) (* (getvar (setq stair (getstring "\n Han tron (T) or Han thang <R>: "))
"dimscale") 0.7) 0) (CK:qleader dd)
(vl-cmdf "_explode" (entlast)))) (if (equal (strcase stair) "T")
(mapcar 'setvar lst_var old_var) (progn
(CK:EndUndo (CK:acdoc)) (if (> (car d1) (car d2))
(princ)) (progn
Đây là một đoạn mã, mô tả cấu trúc chung của (vl-cmdf "_insert" "Hantronthangtrai.dwg" d2 (* (getvar "dimscale") 0.7) (*
một mối hàn. Dưới đây là là cấu trúc và chức năng (getvar "dimscale") 0.7) 0)
của hàm này. (vl-cmdf "_explode" (entlast)))
a. Khởi tạo biến và bắt lỗi (progn
Thiết lập giá trị cho biến “Modemacro” để hiển (vl-cmdf "_insert" "Hantronthangphai.dwg" d2 (* (getvar "dimscale") 0.7) (*
thị thông tin về người tạo hàm, đồng thời định nghĩa (getvar "dimscale") 0.7) 0)
hàm “error” để xử lý các lỗi phát sinh trong quá trình
chạy hàm. (vl-cmdf "_explode" (entlast)))))
(progn
b. Ghi lại các thao tác
Gọi hàm “CK:StartUndo” để bắt đầu ghi lại và (if (> (car d1) (car d2))
thao tác người dùng. Lưu trữ các biến hệ thống như (progn
“CMDECHO”, “OSMODE”, “CLAYER” để có (vl-cmdf "_insert" "Hantronstairtrai.dwg" d2 (* (getvar "dimscale") 0.7) (*
thể khôi phục sau khi hoàn thành. (getvar "dimscale") 0.7) 0)
c. Vẽ mối hàn góc (vl-cmdf "_explode" (entlast)))
Người dùng được yêu cầu chọn hai điểm xác định (progn
chiều dài và vị trí của mối hàn. Kiểm tra vị trí của hai
điểm, nếu điểm thứ nhất nằm bên trái thì vẽ mối hàn (vl-cmdf "_insert" "Hantronstairphai.dwg" d2 (* (getvar "dimscale") 0.7) (*
góc bên trái, ngược lại vẽ mối hàn góc bên phải. Sử (getvar "dimscale") 0.7) 0)
dụng hàm “_insert” để chèn các XREF vào bản vẽ, (vl-cmdf "_explode" (entlast))))))
sau đó dùng hàm “_explode” để giải phóng mối hàn (mapcar 'setvar lst_var old_var)
ra khỏi một khối block.
(CK:EndUndo (CK:acdoc))
d. Khôi phục các thiết lập ban đầu
(princ))
Khôi phục các biến hệ thống đã làm ở bước thứ
hai, đồng thời gọi hàm “CK:EndUndo” để kết thúc Ở đoạn code này có hai sự lựa chọn khi thực hiện
ghi lại các thao tác. một mối hàn, chọn chữ “T” để thực hiện đoạn lệnh
thứ nhất, và chọn chữ “R” để thực hiện đoạn lệnh thứ
Trong trường hợp mối hàn có nhiều lựa chọn, thì hai. Đây là một tuỳ biến của mối hàn, có thể mở rộng
chúng ta có thể sử dụng cấu trúc chung như dưới đây:
cho nhiều hơn hai lựa chọn.
(defun c:HT (/ *error* d1 d2 dd stair)
(setvar "Modemacro" "Cao Thanh Kh\U+00E1nh - Steel Structure - Design
Division.")
(defun *error* (msg)
(and lst_var (mapcar 'setvar lst_var old_var))
ISBN: 978-604-80-9779-0