Chuyển đến nội dung
Diễn đàn CADViet
minhmani

Nhờ mọi người viết giúp lisp tạo đường bao

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

Hiện tại mình đang cần 1 lisp tạo đường bao dựa vào các đường khống chế, cụ thể ( Trong bản vẽ đi kèm)

Tóm tắt nội dung lisp:

+ Lệnh "bao"

+ Chọn các đường khống chế , chọn xong hết thì enter

+ Sau khi chọn xong sẽ tạo ra 1 đường bao với layer "bao". 

Mong mọi người giúp đỡ :D

TN mau tao duong bao.dwg

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

cám ơn bác Duong Nhat Duy, lisp này cũng ok bác ạ, nhưng mà cái này lại k dùng được cho Trường hợp 2 như trong bản vẽ của e bác ạ :D

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

1375004227_ezgif.com-video-to-gif(2).gif.6cd1073f87c07659acd244818ae7e8b7.gif

Thử xem oke không bạn.

(defun c:te (/ ss pt l1 l2 pt2)
  (setq ss (ssget (list (cons 0 "LWPOLYLINE,LINE"))))
  (setq pt (getpoint "\nPick point"))
  (setq l1 (acet-ss-zoom-extents ss))
  (setq l2 (acet-ss-zoom-extents (ssget "_X")))
  (command "Move" ss "" "_NON" (car l1) "_NON" (cadr l2))
  (setq pt2 (polar pt (angle (car l1) (cadr l2)) (distance (car l1) (cadr l2))))
  (acet-ss-zoom-extents ss)
  (command "BOUNDARY" pt2 "" )
  (setq ss (ssadd (entlast) ss))
  (command "Move" ss "" "_NON" (cadr l2) "_NON" (car l1))
  (acet-ss-zoom-extents ss)
  )

 

  • Like 2
  • 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
6 giờ trước, Doan Nguyen Van đã nói:

1375004227_ezgif.com-video-to-gif(2).gif.6cd1073f87c07659acd244818ae7e8b7.gif

Thử xem oke không bạn.


(defun c:te (/ ss pt l1 l2 pt2)
  (setq ss (ssget (list (cons 0 "LWPOLYLINE,LINE"))))
  (setq pt (getpoint "\nPick point"))
  (setq l1 (acet-ss-zoom-extents ss))
  (setq l2 (acet-ss-zoom-extents (ssget "_X")))
  (command "Move" ss "" "_NON" (car l1) "_NON" (cadr l2))
  (setq pt2 (polar pt (angle (car l1) (cadr l2)) (distance (car l1) (cadr l2))))
  (acet-ss-zoom-extents ss)
  (command "BOUNDARY" pt2 "" )
  (setq ss (ssadd (entlast) ss))
  (command "Move" ss "" "_NON" (cadr l2) "_NON" (car l1))
  (acet-ss-zoom-extents ss)
  )

 

đúng rồi đúng rồi bác Doan Nguyen Van :D. Lần nào lên đây nhờ mọi người viết Lisp cũng ưng lisp của bác nhất :D

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
1 phút trước, minhmani đã nói:

đúng rồi đúng rồi bác Doan Nguyen Van :D. Lần nào lên đây nhờ mọi người viết Lisp cũng ưng lisp của bác nhất :D

Người khác còn chưa ra tay thôi, lisp mình viết đơn giản có thể có trường hợp không đúng yêu cầu của bạn 

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
Vào lúc 26/3/2020 tại 08:54, Doan Nguyen Van đã nói:

1375004227_ezgif.com-video-to-gif(2).gif.6cd1073f87c07659acd244818ae7e8b7.gif

Thử xem oke không bạn.


(defun c:te (/ ss pt l1 l2 pt2)
  (setq ss (ssget (list (cons 0 "LWPOLYLINE,LINE"))))
  (setq pt (getpoint "\nPick point"))
  (setq l1 (acet-ss-zoom-extents ss))
  (setq l2 (acet-ss-zoom-extents (ssget "_X")))
  (command "Move" ss "" "_NON" (car l1) "_NON" (cadr l2))
  (setq pt2 (polar pt (angle (car l1) (cadr l2)) (distance (car l1) (cadr l2))))
  (acet-ss-zoom-extents ss)
  (command "BOUNDARY" pt2 "" )
  (setq ss (ssadd (entlast) ss))
  (command "Move" ss "" "_NON" (cadr l2) "_NON" (car l1))
  (acet-ss-zoom-extents ss)
  )

 

Phức tạp nhỉ.

Lệnh boundary có thể làm nhiếu hơn bạn nghĩ mà.

Thử

(defun c:bo1(/ ss)
  (setq ss (ssget))
  (command "_.Boundary" "A" "B" "N" ss "" ""))

  • Like 1
  • 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
8 phút trước, ngokiet đã nói:

Phức tạp nhỉ.

Lệnh boundary có thể làm nhiếu hơn bạn nghĩ mà.

Thử

(defun c:bo1(/ ss)
  (setq ss (ssget))
  (command "_.Boundary" "A" "B" "N" ss "" ""))

E ít dùng lệnh này nên chưa tìm hiểu kỹ ^^ 

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

×