Chuyển đến nội dung
Diễn đàn CADViet
Doan Van Ha

Tạo đường bao cho các đường kín

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

Tôi đang gặp 1 bài toán xuất phát từ công việc: có n đường kín (kiểu LWPOLYLINE, CIRCLE, ELLIPSE) nằm bất kỳ. Làm sao để vẽ được đường bao ngoài cho tất cả các đường này (nếu tồn tại)?

Hoặc vẽ được đường bao cho từng nhóm m đường (với m < n) khi m đường này có chung đường bao ngoài? Nhờ các cao thủ giúp. Xin cám ơ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
Tôi đang gặp 1 bài toán xuất phát từ công việc: có n đường kín (kiểu LWPOLYLINE, CIRCLE, ELLIPSE) nằm bất kỳ. Làm sao để vẽ được đường bao ngoài cho tất cả các đường này (nếu tồn tại)?

Hoặc vẽ được đường bao cho từng nhóm m đường (với m < n) khi m đường này có chung đường bao ngoài? Nhờ các cao thủ giúp. Xin cám ơn!

Như thế này phải không?

(defun c:vb ( / MakeRectang LST)
(defun MakeRectang (PT1 PT2 Linetype LTScale Layer Color xdata)
(entmakex (list '(0 . "LWPOLYLINE")
 '(100 . "AcDbEntity")
 (cons 8 (if Layer Layer (getvar "Clayer")))
 (cons 6 (if Linetype Linetype "bylayer"))
 (cons 48 (if LTScale LTScale 1))
 (cons 62 (if Color Color 256))
 '(100 . "AcDbPolyline")
 (cons 90 4)
 (cons 70 1)
 (cons 10 PT1)
 (cons 10 (list (car PT1) (cadr PT2)))
 (cons 10 PT2)
 (cons 10 (list (car PT2) (cadr PT1))))))
(prompt "Chon cac doi tuong can ve duong bao")
(setq LST (ACET-GEOM-SS-EXTENTS-FAST (ssget)))
(MakeRectang (car LST) (cadr LST) nil nil nil nil nil)
(princ))

Chú ý: cái này vẽ đuờng bao cho mọi đối tuợng bất 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
Như thế này phải không?

(defun c:vb ( / MakeRectang LST)
(defun MakeRectang (PT1 PT2 Linetype LTScale Layer Color xdata)
(entmakex (list '(0 . "LWPOLYLINE")
 '(100 . "AcDbEntity")
 (cons 8 (if Layer Layer (getvar "Clayer")))
 (cons 6 (if Linetype Linetype "bylayer"))
 (cons 48 (if LTScale LTScale 1))
 (cons 62 (if Color Color 256))
 '(100 . "AcDbPolyline")
 (cons 90 4)
 (cons 70 1)
 (cons 10 PT1)
 (cons 10 (list (car PT1) (cadr PT2)))
 (cons 10 PT2)
 (cons 10 (list (car PT2) (cadr PT1))))))
(prompt "Chon cac doi tuong can ve duong bao")
(setq LST (ACET-GEOM-SS-EXTENTS-FAST (ssget)))
(MakeRectang (car LST) (cadr LST) nil nil nil nil nil)
(princ))

Chú ý: cái này vẽ đuờng bao cho mọi đối tuợng bất kỳ

Ồ không, như thế này cơ! (http://www.cadviet.com/upfiles/3/ve_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

sao mình không chạy được lips của bạn vây? mình chon lệnh vb xong chọn đối tượng rồi không biết làm thế nào nữa? lệnh này có thể nối đường spl với đường line không?

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

doanvanha001.jpg

77.gif77.gif77.gif77.gif Em chịu rồi. Bác nào viết dùm em được cái hàm con như thế này em hậu tạ 100 phát thank lun. hề hề 38.gif

 

sao mình không chạy được lips của bạn vây? mình chon lệnh vb xong chọn đối tượng rồi không biết làm thế nào nữa?

Cài Express tool đi bạn

 

có thể nối đường spl với đường line không?

77.gif77.gif77.gif77.gif Em cũng chịu lun

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
Phải cái này không ? (Của 1 Pro nguời Nga nè)

eco.gif

Cái này đã đạt được mục đích cuối cùng là tạo được đường bao. Tuy nhiên, còn vấp 1 vấn đề là phải chọn đối tượng 2 lần. Dẫu sao, cũng hay lắm rồi. Bạn chỉ cho xem demo mà chưa cho xin file lsp. Hy vọng bạn sẽ giúp, cám ơn 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
Cái này đã đạt được mục đích cuối cùng là tạo được đường bao. Tuy nhiên, còn vấp 1 vấn đề là phải chọn đối tượng 2 lần. Dẫu sao, cũng hay lắm rồi. Bạn chỉ cho xem demo mà chưa cho xin file lsp. Hy vọng bạn sẽ giúp, cám ơn nhiều.

Cảm ơn thì bấm thank cho bác ấy đi. đây là nguời ta biểu diễn thì nguời ta làm thành 2 lần cho dễ xem chứ nhìn cái kết quả như thế kia thì chắc có thể chọn 1 nhát ăn ngay đuợc.

  • 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
sao mình không chạy được lips của bạn vây? mình chon lệnh vb xong chọn đối tượng rồi không biết làm thế nào nữa? lệnh này có thể nối đường spl với đường line không?

không , ý mình là mình đã vào được lệnh,load lips từu applecation , nhập lện vb chọn được các đối tượng, xong không thể kế thúc lệnh để lips thưc hiên lệnh .

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
không , ý mình là mình đã vào được lệnh,load lips từu applecation , nhập lện vb chọn được các đối tượng, xong không thể kế thúc lệnh để lips thưc hiên lệnh .

Bạn làm như mình bảo chưa vậy? ko có express tool thì lisp vẫn chạy. nhưng ra được kết quả là chuyện khác. bạn có chạy đến... tết Congo cũng chẳng ra kết quả đâu.

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ái này đã đạt được mục đích cuối cùng là tạo được đường bao. Tuy nhiên, còn vấp 1 vấn đề là phải chọn đối tượng 2 lần. Dẫu sao, cũng hay lắm rồi. Bạn chỉ cho xem demo mà chưa cho xin file lsp. Hy vọng bạn sẽ giúp, cám ơn nhiều.

Lisp của 1 Pro nguời Nga nè

eco.gif

Link down http://www.caduser.ru/forum/index.php

- còn vấp 1 vấn đề là phải chọn đối tượng 2 lần : có chi théc méc thì vô đó request luôn nha.

  • 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 của 1 Pro nguời Nga nè

...

Link down http://www.caduser.ru/forum/index.php

- còn vấp 1 vấn đề là phải chọn đối tượng 2 lần : có chi théc méc thì vô đó request luôn nha.

gia_bach hài hước phết!

 

Về nguyên lý, bài toán này không khó.

 

Bước 1: Convert hình kín về Region

Bước 2: Dùng lệnh Uni, để nối các Region lại với nhau.

  • 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 của 1 Pro nguời Nga nè

eco.gif

Link down http://www.caduser.ru/forum/index.php

- còn vấp 1 vấn đề là phải chọn đối tượng 2 lần : có chi théc méc thì vô đó request luôn nha.

Quá tuyệt! Rất cám ơn Bạn Gia_Bach.

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
gia_bach hài hước phết!

 

Về nguyên lý, bài toán này không khó.

 

Bước 1: Convert hình kín về Region

Bước 2: Dùng lệnh Uni, để nối các Region lại với nhau.

Bác Nguyen Hoanh quá Pro luôn! Tôi thử 2 lệnh của Bác thì OK ngay. Tôi đang xem file của pro người Nga xem có gì hay hơn ý Bác không. Nhưng dù gì thì Bác vẫn quá pro.

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

×