Đến nội dung


Hình ảnh
- - - - -

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


  • Please log in to reply
13 replies to this topic

#1 Doan Van Ha

Doan Van Ha

    biết lệnh adcenter

  • CADViet Team
  • PipPipPipPipPipPipPip
  • 5454 Bài viết
Điểm đánh giá: 2626 (tuyệt vời)

Đã gửi 26 December 2010 - 09:49 AM

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!
  • 0

* Chỉ nên yêu cầu Lisp khi bạn làm việc đó mất cả ngày nhưng họ chỉ viết 1 giờ. Đừng nêu yêu cầu Lisp khi bạn chỉ làm 1 giờ nhưng bắt họ phải mất cả ngày.

* Nhờ viết lisp cũng như đi khám bệnh. Chỉ gởi căn cước và than sắp chết thì không bác sỹ nào cứu sống được.


#2 Thaistreetz

Thaistreetz

    biết lệnh adcenter

  • Advance Member
  • PipPipPipPipPipPipPip
  • 903 Bài viết
Điểm đánh giá: 505 (tốt)

Đã gửi 26 December 2010 - 12:57 PM

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ỳ
  • 0

Hình đã gửi
IN HIM, I TRUST. THE TRUST IN MY GOD


#3 Doan Van Ha

Doan Van Ha

    biết lệnh adcenter

  • CADViet Team
  • PipPipPipPipPipPipPip
  • 5454 Bài viết
Điểm đánh giá: 2626 (tuyệt vời)

Đã gửi 26 December 2010 - 08:03 PM

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.c...e_duong_bao.dwg)
  • 0

* Chỉ nên yêu cầu Lisp khi bạn làm việc đó mất cả ngày nhưng họ chỉ viết 1 giờ. Đừng nêu yêu cầu Lisp khi bạn chỉ làm 1 giờ nhưng bắt họ phải mất cả ngày.

* Nhờ viết lisp cũng như đi khám bệnh. Chỉ gởi căn cước và than sắp chết thì không bác sỹ nào cứu sống được.


#4 hoanthanh2010

hoanthanh2010

    biết pan

  • Members
  • Pip
  • 8 Bài viết
Điểm đánh giá: 1 (bình thường)

Đã gửi 26 December 2010 - 09:56 PM

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?
  • 0

#5 Thaistreetz

Thaistreetz

    biết lệnh adcenter

  • Advance Member
  • PipPipPipPipPipPipPip
  • 903 Bài viết
Điểm đánh giá: 505 (tốt)

Đã gửi 26 December 2010 - 11:01 PM

Hình đã gửi
Hình đã gửiHình đã gửiHình đã gửiHình đã gửi 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ề Hình đã gửi

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?

Hình đã gửiHình đã gửiHình đã gửiHình đã gửi Em cũng chịu lun
  • 0

Hình đã gửi
IN HIM, I TRUST. THE TRUST IN MY GOD


#6 gia_bach

gia_bach

    biết lệnh adcenter

  • CADViet Team
  • PipPipPipPipPipPipPip
  • 1436 Bài viết
Điểm đánh giá: 1426 (rất tốt)

Đã gửi 27 December 2010 - 07:48 AM

Hình đã gửi
..............

Phải cái này không ? (Của 1 Pro nguời Nga nè)
Hình đã gửi
  • 1

#7 Doan Van Ha

Doan Van Ha

    biết lệnh adcenter

  • CADViet Team
  • PipPipPipPipPipPipPip
  • 5454 Bài viết
Điểm đánh giá: 2626 (tuyệt vời)

Đã gửi 27 December 2010 - 08:13 AM

Phải cái này không ? (Của 1 Pro nguời Nga nè)
Hình đã gửi

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.
  • 1

* Chỉ nên yêu cầu Lisp khi bạn làm việc đó mất cả ngày nhưng họ chỉ viết 1 giờ. Đừng nêu yêu cầu Lisp khi bạn chỉ làm 1 giờ nhưng bắt họ phải mất cả ngày.

* Nhờ viết lisp cũng như đi khám bệnh. Chỉ gởi căn cước và than sắp chết thì không bác sỹ nào cứu sống được.


#8 Thaistreetz

Thaistreetz

    biết lệnh adcenter

  • Advance Member
  • PipPipPipPipPipPipPip
  • 903 Bài viết
Điểm đánh giá: 505 (tốt)

Đã gửi 27 December 2010 - 08:21 AM

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.
  • 1

Hình đã gửi
IN HIM, I TRUST. THE TRUST IN MY GOD


#9 hoanthanh2010

hoanthanh2010

    biết pan

  • Members
  • Pip
  • 8 Bài viết
Điểm đánh giá: 1 (bình thường)

Đã gửi 27 December 2010 - 08:22 AM

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 .
  • 0

#10 Thaistreetz

Thaistreetz

    biết lệnh adcenter

  • Advance Member
  • PipPipPipPipPipPipPip
  • 903 Bài viết
Điểm đánh giá: 505 (tốt)

Đã gửi 27 December 2010 - 08:29 AM

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.
  • 0

Hình đã gửi
IN HIM, I TRUST. THE TRUST IN MY GOD


#11 gia_bach

gia_bach

    biết lệnh adcenter

  • CADViet Team
  • PipPipPipPipPipPipPip
  • 1436 Bài viết
Điểm đánh giá: 1426 (rất tốt)

Đã gửi 27 December 2010 - 12:12 PM

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è
Hình đã gửi
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.
  • 3

#12 Nguyen Hoanh

Nguyen Hoanh

    biết lệnh adcenter

  • Moderator
  • PipPipPipPipPipPipPip
  • 4106 Bài viết
Điểm đánh giá: 4495 (đỉnh cao)

Đã gửi 27 December 2010 - 01:46 PM

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.
  • 2

#13 Doan Van Ha

Doan Van Ha

    biết lệnh adcenter

  • CADViet Team
  • PipPipPipPipPipPipPip
  • 5454 Bài viết
Điểm đánh giá: 2626 (tuyệt vời)

Đã gửi 27 December 2010 - 01:48 PM

Lisp của 1 Pro nguời Nga nè
Hình đã gửi
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.
  • 0

* Chỉ nên yêu cầu Lisp khi bạn làm việc đó mất cả ngày nhưng họ chỉ viết 1 giờ. Đừng nêu yêu cầu Lisp khi bạn chỉ làm 1 giờ nhưng bắt họ phải mất cả ngày.

* Nhờ viết lisp cũng như đi khám bệnh. Chỉ gởi căn cước và than sắp chết thì không bác sỹ nào cứu sống được.


#14 Doan Van Ha

Doan Van Ha

    biết lệnh adcenter

  • CADViet Team
  • PipPipPipPipPipPipPip
  • 5454 Bài viết
Điểm đánh giá: 2626 (tuyệt vời)

Đã gửi 27 December 2010 - 01:59 PM

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.
  • 0

* Chỉ nên yêu cầu Lisp khi bạn làm việc đó mất cả ngày nhưng họ chỉ viết 1 giờ. Đừng nêu yêu cầu Lisp khi bạn chỉ làm 1 giờ nhưng bắt họ phải mất cả ngày.

* Nhờ viết lisp cũng như đi khám bệnh. Chỉ gởi căn cước và than sắp chết thì không bác sỹ nào cứu sống được.