Thứ Ba, 15 tháng 11, 2011

Lisp xén vòng tròn ra làm 2 bằng 2 điểm.

Theo yêy cầu của bạn TAM mình viết lisp này.
-Tác dụng xén vòng tròn ra hai nửa bằng đường thẳng giả định đi qua 2 điểm chỉ định.
-Tên lệnh CDT.
-Thao tác:
+Nhập lệnh.
+Chọn đường tròn.
+Chọn điểm thứ nhất.
+Chọn điểm thứ hai.
Hai điểm này không nhất thiết nằm trên đường tròn chỉ cần nằm trong phạm vi vòng tròn hoặc ngoài và cắt qua đường tròn là được.

Bạn copy nội dung và tạo file lisp nhé!


(defun c:cdt ()
(command "undo" "be")

(setq ddd (entsel "\nChon duong tron"))
(while
(or
(null ddd)
(/= "CIRCLE" (cdr (assoc 0 (entget (car ddd)))))
)
(princ "\nDoi tuong khong phai la duong tron! Chon lai")
(setq ddd (entsel "\nChon duong tron"))
)

(setq DT (car ddd))
(setq DTM (entget DT))
(setq BANKINH (cdr (assoc 40 DTM)))
(setq BANKINH (* 2 BANKINH))


(command "copy" ddd "" (list 0 0) (list 0 0))
(setq dtmoi (entlast))
(setq a (getpoint "\nChon diem thu nhat: "))
(setq b (getpoint a"\nChon diem thu hai: "))

(setq luubatdiem (getvar "osmode"))
(setvar "osmode" 0)

(setq gocab (angle a b))
(setq gocba (angle b a))
(setq a (polar a gocba BANKINH))
(setq b (polar b gocab BANKINH))

(command "BREAK" ddd "f" a b)
(command "BREAK" dtmoi b a)

(command "undo" "end")
(setvar "osmode" luubatdiem)
(Princ)
)

Không có nhận xét nào:

Đăng nhận xét

Khi viết nhận xét mong bạn không đứng vai trò nặc danh! Bạn có thể chọn Name/Url trong đó Url là http://duy782006.blogspot.com/ như vậy hay hơn nặc danh bạn nhé.