Chuyển đến nội dung
Diễn đàn CADViet
Đăng nhập để thực hiện theo  
dohoangviet1606

Nhờ sửa Lisp

Các bài được khuyến nghị

(DEFUN c:QQ ()

 

(setq BONG (car (entsel "\ Chon Bong")))
(setq DBBB (entget BONG))
(setq B2 (cdr(assoc 10 DBBB)))
(setq D1 (cdr(assoc 40 DBBB)))

 

(setq LED (car (entsel "\ Chon Mui ten")))
(setq DLED (entget LED))
(setq B1 (cdr(assoc 10 DLED)))
(command ".erase" LED "")


(setq D (distance B1 B2))
(setq D2 (- D D1))

(setq A (angle B1 B2))
(setq L1 (polar B1 A D2))

(command "qleader" B1 L1 "" "") (command)

)

---------------

Đậy là Lisp em tự viết để sửa nhanh mũi tên LE lệch khỏi tâm Bóng khi Move (dùng lệnh S "Stretch" để move bóng và điểm cuối mũi tên mà vẫn giữ nguyên điểm đầu mũi tên)

 

Ý tưởng ban đầu là quét ngược cả bóng và mũi tên để chọn đối tượng, nhưng em tham khảo theo sách mà không biết có hàm nào thực hiện được. Nên em đẫ dùng "entsel" để chọn từng đối tượng (bóng và mũi tên). Nhưng khi làm nhiều thì nó khá phiền dễ  missclick...

 

Nên em muốn nhờ các Bác sửa lại thành quét chuột để chọn cả  bóng và mũi tên cùng lúc với ạ!
 

qq.jpg

suabong-QQ.lsp

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

Nếu sợ missclick mà vẫn muốn dùng entget thì bạn dùng while như này:

(while (not (setq BONG (car (entsel "\n Chon Bong: ")))))
(while (not (setq LED (car (entsel "\n Chon Mui ten: ")))))

Hoặc nếu muốn dùng selection set:

(setq elst (vl-remove-if 'listp (mapcar 'cadr (if (ssget (list (cons 0 "*LEADER,CIRCLE"))) (ssnamex (ssget "_P"))))))
(setq BONG (car (vl-remove-if-not '(lambda (e) (wcmatch (cdr (assoc 0 (entget e))) "CIRCLE")) elst)))
(setq LED (car (vl-remove-if-not '(lambda (e) (wcmatch (cdr (assoc 0 (entget e))) "*LEADER")) elst)))

 

  • Like 2

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

Tạo một tài khoản hoặc đăng nhập để nhận xét

Bạn cần phải là một thành viên để lại một bình luận

Tạo tài khoản

Đăng ký một tài khoản mới trong cộng đồng của chúng tôi. Điều đó dễ mà.

Đăng ký tài khoản mới

Đăng nhập

Bạn có sẵn sàng để tạo một tài khoản ? Đăng nhập tại đây.

Đăng nhập ngay
Đăng nhập để thực hiện theo  

×