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

[Yêu cầu] Lisp vẽ nhanh line nối giữa các nhóm point

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

Các bác viết dùm em lisp vẽ line nối các nhóm point với nhau với ạ. lisp cụ thể như sau:

+ chọn các point thuộc nhóm point A (đối tượng đầu vào là point)

+ chọn các point thuộc nhóm point B

-> lisp chạy ra kết quả nối được các point nhóm A với B bằng các line như hình minh họa:

point.png

Các bác giúp em với nhé. Em thanks các bác nhiều nhiều :)

  • Vote tăng 1

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

Lisp vẽ các line nối group point1 và group point2.

(defun C:HA( / ss1 ss2 entlst1 entlst2 p1 p2)
;Doan Van Ha - CADViet.com - Ngay 30/11/2012
;Chuc nang: Ve cac Line noi Group Point1 va Group Point2.
(command "undo" "be") (vl-load-com)
(if
 (and
  (princ "\nChon nhom point 1...")
  (setq ss1 (ssget '((0 . "Point"))))
  (princ "\nChon nhom point 2...")
  (setq ss2 (ssget '((0 . "Point")))))
 (progn
  (setq entlst1 (vl-remove-if 'listp (mapcar 'cadr (ssnamex ss1))))
  (setq entlst2 (vl-remove-if 'listp (mapcar 'cadr (ssnamex ss2))))
  (foreach ent1 entlst1
   (setq p1 (cdr (assoc 10 (entget  ent1))))
   (foreach ent2 entlst2
(setq p2 (cdr (assoc 10 (entget  ent2))))
(entmake (list (cons 0 "LINE") (cons 10 p1) (cons 11 p2)))))))
(command "undo" "end")
(princ))

  • Vote tăng 3

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

Lisp vẽ các line nối group point1 và group point2.

 

Hài, chậm chân sau bác Hà rồi, hì . Thôi chẳng lẽ viết ra lại để không úp đại vậy

lệnh là THU (thử)

(defun c:thu(/ A B e i j)
 (vl-load-com)
 (alert "\nchon point nhom A")(princ)
 (setq a (list) b (list))
 (foreach e
(acet-ss-to-list
 	(ssget (list (cons 0 "POINT"))))
(setq A (append A (list(cdr(assoc 10 (entget e)))))))
 (alert "\nchon point nhom B")(princ)
 (foreach e
(acet-ss-to-list
 	(ssget (list (cons 0 "POINT"))))
(setq B (append B (list(cdr(assoc 10 (entget e)))))))
 (princ "\nNoi cac diem")(princ)
 (foreach i A
(foreach j B
 	(entmakex
(list '(0 . "LINE")
  	(cons 10 i)
  	(cons 11 j)
  	))
 	)
)
 )

  • Vote tăng 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

lisp đều ổn rồi các bác ạ. Thanks các bác đã nhiệt tình giúp đỡ :)

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  

×