Đến nội dung


Hình ảnh

Thắc mắc về lệnh "Boundary"


  • Please log in to reply
17 replies to this topic

#1 hoacotu

hoacotu

    biết lệnh array

  • Members
  • PipPipPip
  • 182 Bài viết
Điểm đánh giá: 17 (tàm tạm)

Đã gửi 10 January 2009 - 07:10 PM


Các bạn làm ơn cho mình hoỉ về lệnh "Bo", ý nghiã cuả từng mục trên bảng lệnh "Bo".
Đặc biệt là 2 lưạ chọn: Region và Polyline là như thế naò được không???

Mình xin cảm ơn các bạn nhiêù!
  • 0

- Hoa cô tử -

[/color]

#2 vuducphonghp

vuducphonghp

    Chưa sử dụng CAD

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

Đã gửi 04 March 2009 - 05:10 PM


Các bạn làm ơn cho mình hoỉ về lệnh "Bo", ý nghiã cuả từng mục trên bảng lệnh "Bo".
Đặc biệt là 2 lưạ chọn: Region và Polyline là như thế naò được không???

Mình xin cảm ơn các bạn nhiêù!

Lệnh BO dùng để vẽ một vùng kín, lựa chọn của lệnh này cũng như khi bạn dùng lệnh HATCH. Ví dụ: Bạn có một polyline kín, khi dùng lệnh BO sẽ cho ban một Polyline kín nữa hoặc 1 region. Plyline thì bạn đã hiểu, còn region là 1 miền (đặc) để có thể sử dụng lệnh union, subtract và intersect. Chúc vui!
  • 0

#3 archnkd

archnkd

    Chưa sử dụng CAD

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

Đã gửi 04 March 2009 - 05:59 PM

:undecided: cái thằng region này kết hợp với uni,su,...xài để vẽ MB kiến trúc thì hay tuyệt bạn àh- bản vẽ rất chuyên nghiệp- xuất qua Max extrude luôn...
  • 0

#4 KE AN MAY DI VANG

KE AN MAY DI VANG

    biết lệnh adcenter

  • CADViet Team
  • PipPipPipPipPipPipPip
  • 822 Bài viết
Điểm đánh giá: 572 (tốt)

Đã gửi 04 March 2009 - 09:56 PM


Các bạn làm ơn cho mình hoỉ về lệnh "Bo", ý nghiã cuả từng mục trên bảng lệnh "Bo".
Đặc biệt là 2 lưạ chọn: Region và Polyline là như thế naò được không???

Mình xin cảm ơn các bạn nhiêù!


Bạn tham khảo bài viế :Gặp sự cố khi sử dụng lệnh BO, Nguyên nhân- Cách khắc phục

http://www.cadviet.c...?showtopic=3347
  • 0
KẺ ĂN MÀY DĨ VÃNG

#5 hoacotu

hoacotu

    biết lệnh array

  • Members
  • PipPipPip
  • 182 Bài viết
Điểm đánh giá: 17 (tàm tạm)

Đã gửi 05 March 2009 - 06:51 AM

Bạn tham khảo bài viế :Gặp sự cố khi sử dụng lệnh BO, Nguyên nhân- Cách khắc phục

http://www.cadviet.c...?showtopic=3347


Cảm ơn bạn nhiều!
Mình đã đọc bài của bạn. Bạn nói rằng bạn thường dùng lệnh Bo> Rev để tính diện tích và khối lượng của một hình. Vậy lệnh Rev dùng như thế nào hở bạn???


- Hoa cô tử -


  • 0

- Hoa cô tử -

[/color]

#6 KE AN MAY DI VANG

KE AN MAY DI VANG

    biết lệnh adcenter

  • CADViet Team
  • PipPipPipPipPipPipPip
  • 822 Bài viết
Điểm đánh giá: 572 (tốt)

Đã gửi 05 March 2009 - 07:46 AM

Cảm ơn bạn nhiều!
Mình đã đọc bài của bạn. Bạn nói rằng bạn thường dùng lệnh Bo> Rev để tính diện tích và khối lượng của một hình. Vậy lệnh Rev dùng như thế nào hở bạn???


- Hoa cô tử -


Rev là lệnh tắt để vẽ hình 3D. Ví dụ khi bạn vẽ một đoạn ống tròn, bạn có hình cắt của cái ống. Dùng Bo để tạo ra đường khép kín mặt cắt thể hiện chiều dầy ống> chỉ chuột vào hai đầu của trục đối xứng nó ra tạo ra cho bạn hình 3D cái ống trụ.
Rev > chọn đối tượng là đường khép kín > Bấm chuột vào hai đầu trục đối xứng > Enter.
  • 1
KẺ ĂN MÀY DĨ VÃNG

#7 hg_aum

hg_aum

    biết vẽ circle

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

Đã gửi 30 September 2013 - 08:58 AM

chào các bác trên diễn đàn,em cũng dùng lệnh Bo mục đích là để tạo một đường bao khép kín bên ngoài các hình nhỏ(tạo đường biên cho một tờ bản đồ) đường biên này phải trùng khít với các cạnh bên ngoài,Nhưng khi dùng lệnh này em lại thấy nhưng chỗ cạnh khấp khúc hay cong gãy thì đường biên này bị lệch.Bác nào biết cách làm cho nó trùng khít giúp em được không ạ?em xin cám ơn nhiều!63415_lenh_bo.jpghttp://www.cadviet.c.../3/63415_bo.rar


  • 0

#8 phamthanhbinh

phamthanhbinh

    biết lệnh adcenter

  • Moderator
  • PipPipPipPipPipPipPip
  • 6009 Bài viết
Điểm đánh giá: 3113 (tuyệt vời)

Đã gửi 30 September 2013 - 10:40 AM

chào các bác trên diễn đàn,em cũng dùng lệnh Bo mục đích là để tạo một đường bao khép kín bên ngoài các hình nhỏ(tạo đường biên cho một tờ bản đồ) đường biên này phải trùng khít với các cạnh bên ngoài,Nhưng khi dùng lệnh này em lại thấy nhưng chỗ cạnh khấp khúc hay cong gãy thì đường biên này bị lệch.Bác nào biết cách làm cho nó trùng khít giúp em được không ạ?em xin cám ơn nhiều!http://www.cadviet.c.../3/63415_bo.rar

Hề hề hề,

Bạn nên xem lại thao tác dùng lệnh boundary của bạn. 

Lưu ý rằng vùng lấy boundary phải hoàn toàn nhìn thấy được trên màn hình mà không bị che khuất chút nào.

Mình đã test trên chính bản vẽ bạn gửi thì boundary vẫn cực ngon và chả kề bị lỗi như bạn nói.


  • 0
Chúc các quý Anh trên diễn đàn luôn khỏe, đẻ thêm được nhiều thứ để mót.

#9 hg_aum

hg_aum

    biết vẽ circle

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

Đã gửi 01 October 2013 - 09:57 AM

đây là toàn bộ thao tác của mình trên cad 2013,kết quả là  vẫn lỗi,rất mong được bạn chỉ rõ hơn,gửi cả hình ảnh nhé.63415_lenhbo.jpg63415_lenh_bo2.jpg63415_lenh_bo3.jpg


  • 0

#10 phamthanhbinh

phamthanhbinh

    biết lệnh adcenter

  • Moderator
  • PipPipPipPipPipPipPip
  • 6009 Bài viết
Điểm đánh giá: 3113 (tuyệt vời)

Đã gửi 01 October 2013 - 05:01 PM

đây là toàn bộ thao tác của mình trên cad 2013,kết quả là  vẫn lỗi,rất mong được bạn chỉ rõ hơn,gửi cả hình ảnh nhé.

Hề hề hề,

Cad2013 thì mình hổng có để check.

CAD2004 thì mình làm như sau:

1/- Đây là bản vẽ nguyêng gốc bạn gửi:

5194_hd1.png

2/- Xóa bỏ các phần thừa không cần thiết:

5194_hd2.jpg

3/- Zoom màn hình để nhìn thấy hết vùng chọn và nhập lệnh boundary, chọn pick internal point.

5194_hd3.jpg

4/- Đưa con trỏ vào trong vùng chọn và pick:

5194_hd4.jpg

5/- Xem cái boundary màu đỏ được tạo thành đã Ok xa lem chưa nhể???

5194_hd5.jpg


  • 0
Chúc các quý Anh trên diễn đàn luôn khỏe, đẻ thêm được nhiều thứ để mót.

#11 hg_aum

hg_aum

    biết vẽ circle

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

Đã gửi 01 October 2013 - 10:34 PM

ôi,bạn hiểu nhầm ý định của mình rồi,đó là đường biên trong thửa(một thửa nhỏ của cả tờ bản đồ với nhiều thửa nhỏ),mục đích của mình là vẽ đường  bao quanh biên ngoài nhất của các thửa đó.Đường màu xanh ngoài nhất bạn ạ


  • 0

#12 namnhim

namnhim

    biết vẽ polygon

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

Đã gửi 01 October 2013 - 10:47 PM

Bạn dùng thử cái này xem có đúng ý không. Trước khi quét vùng cần Boundary thì cần tắt bớt 1 số Layer đối tượng bên trong thửa như là nhà hoặc ao và chỉ để đối tượng là thửa đất thôi nhé!

(defun c:BN (/ boun_lst cnt i ov sec ss time vl)
(command "-layer" "n" "BOUNDARY" "l" "CONTINUOUS" "BOUNDARY" "c" 4 "BOUNDARY" "")
   (command "-layer" "s" "BOUNDARY" "")
  (vl-load-com)
  (command "_.undo" "_begin")  
  (if (setq ss (ssget '((0 . "LINE"))))
    (progn
      (setq vl '("DELOBJ" "CMDECHO") ; Sys Var list
	    ov (mapcar 'getvar vl))  ; Get Old values
      (setq time (getvar "millisecs"))
      (mapcar 'setvar vl '( 1 0))
      (setq ss (break_SSLine ss))
      (command "region" ss "")
      (if (setq ss (ssget "x" '((0 . "region"))))
	(progn
	  (setq i 0)
	  (while (< i (sslength ss))
	    (if (> (sslength ss) 50)
	      (princ (strcat "Objects Convert " (itoa i) "\r"))  )
	    (command "explode" (ssname ss i))
	    (command "pedit" "l" "" "j" (ssget "p") "" "")
	    (setq boun_lst (cons (entlast) boun_lst))
	    (setq i (1+ i))    )
	  (setq boun_lst(moveAreaMax boun_lst))
	  (setq sec (/ (- (getvar "MILLISECS") time) 1000.0)  )
	  (if (>(setq cnt (length boun_lst))0)
	    (princ (strcat "\nTao duoc " (itoa cnt)
			   " duong bao voi Th/gian = "(rtos sec 2 2) " s."))
	    (princ (strcat "\nSorry! Khong tao duoc duong bao!")))  ))
      (mapcar 'setvar vl ov)))
  (command "_.undo" "_end")
  (princ))

(defun moveAreaMax (lst / area otmp tmp)
  (setq	tmp 0
	otmp nil)
  (foreach e lst
    (if (> (setq area (vla-get-area (vlax-ename->vla-object e))) tmp)
      (setq tmp area
	    otmp e)) )
  (if otmp
    (progn
      (entdel otmp)
      (vl-remove otmp lst)  )  ))

(defun break_SSLine (ss / ds ent intpts lastentindatabase lst masterlist oc sslst)
  (defun ssget->vla-list (ss / i ename allobj)
    (setq i -1)
    (while (setq  ename (ssname ss (setq i (1+ i))))
      (setq allobj (cons (vlax-ename->vla-object ename) allobj))       )
    allobj  )

  (defun list->3pair (old / new)
    (while (setq new (cons (list (car old) (cadr old) (caddr old)) new)
                 old (cdddr old)))
    (reverse new)  )
  
  (defun get_interpts (obj1 obj2 / iplist)
    (if (not (vl-catch-all-error-p
	       (setq iplist (vl-catch-all-apply
                            'vlax-safearray->list
                            (list
                              (vlax-variant-value
                                (vla-intersectwith obj1 obj2 acextendnone) ))))))
    iplist  ))
  
;;====================================
;;  CAB - get last entity in datatbase
(defun GetLastEnt ( / ename result )
  (if (setq result (entlast))
    (while (setq ename (entnext result))
      (setq result ename)    )  )
  result)

(defun GetNewSS (ename / new)
  (setq new (ssadd))
  (cond
    ((null ename) (alert "Ename nil"))
    ((eq 'ENAME (type ename))
      (while (setq ename (entnext ename))
        (if (entget ename) (ssadd ename new)) )    )
    ((alert "Ename wrong type."))  )
  new)

(defun break_line (ent brkptlst / pt1 pt2  x)
  (if brkptlst
    (progn
      (setq brkptlst (mapcar '(lambda(x) (list x (vlax-curve-getdistatparam ent
						   ;; ver 2.0 fix
						   (cond ((vlax-curve-getparamatpoint ent x))
							 ((vlax-curve-getparamatpoint ent
							    (vlax-curve-getclosestpointto ent x))))))
				) brkptlst))
      ;; sort primary list on distance
      (setq brkptlst (vl-sort brkptlst '(lambda (a1 a2) (< (cadr a1) (cadr a2)))))
      (setq pt1 (car(car brkptlst)))
      (foreach e (cdr brkptlst)
	(setq pt2 (car e))
	(entmake (list '(0 . "LINE")(cons 10 pt1)(cons 11 pt2) ))
	(setq pt1 pt2)
	(and *BrkVerbose* (princ (setq *brkcnt* (1+ *brkcnt*))) (princ "\r"))	)      ) ))
  
  ;;+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  ;;         S T A R T  S U B R O U T I N E   H E R E              
  ;;+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  (setq LastEntInDatabase (GetLastEnt))
  (if ss
    (progn
      (setq oc 0
            ssLst (ssget->vla-list ss))
      (if (> (length ssLst) 22) (setq *BrkVerbose* t) )
      (and *BrkVerbose*
	   (princ (strcat "Objects to be Checked: "
			  (rtos (* 0.5(length ssLst)(length ssLst))2 0) "\n")))
      ;;  CREATE a list of entity & it's break points
      (foreach obj ssLst
        (setq lst nil)
	;; check for break pts with other objects in ss2brkwith
	(foreach intobj (vl-remove obj ssLst)
	  (if (and (not (equal obj intobj))
		   (setq intpts (get_interpts obj intobj)))
	    (setq lst (append (list->3pair intpts) lst)) )  )
	(if lst
	  (setq masterlist (cons (cons (vlax-vla-object->ename obj) lst) masterlist)) ) )
      
      (and *BrkVerbose* (princ "\nBreaking Objects.\n"))
      (setq *brkcnt* 0) ; break counter
      (if masterlist
        (foreach obj2brk masterlist
          (break_line (car obj2brk) (cdr obj2brk)) ) ) ) )
;;==============================================================
   (and (zerop *brkcnt*) (princ "\nNone to be broken."))
   (setq *BrkVerbose* nil)
  (GetNewSS LastEntInDatabase) ; return list of enames of new objects
)

  • 0

#13 hg_aum

hg_aum

    biết vẽ circle

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

Đã gửi 02 October 2013 - 01:43 PM

mình thử rồi nhưng không thấy kết quả.bạn thử trên bản vẽ mình up lên thấy ổn không?mà nếu chỉ tạo ở lớp thửa(10)thì không được.Vì nếu mương,hoặc ao(31,32) hay đường (23) ở ngoài biên , ta mà tắt đi thì đường biên sẽ sai bạn ạ.


  • 0

#14 phamthanhbinh

phamthanhbinh

    biết lệnh adcenter

  • Moderator
  • PipPipPipPipPipPipPip
  • 6009 Bài viết
Điểm đánh giá: 3113 (tuyệt vời)

Đã gửi 02 October 2013 - 02:11 PM

ôi,bạn hiểu nhầm ý định của mình rồi,đó là đường biên trong thửa(một thửa nhỏ của cả tờ bản đồ với nhiều thửa nhỏ),mục đích của mình là vẽ đường  bao quanh biên ngoài nhất của các thửa đó.Đường màu xanh ngoài nhất bạn ạ

Hề hề hề,

Vậy là bạn muốn cái này:

5194_hd6.jpg

hay là cái này:

5194_hd7.jpg

Hay đúng hơn là cái này nhể:

5194_hd8.jpg


  • 0
Chúc các quý Anh trên diễn đàn luôn khỏe, đẻ thêm được nhiều thứ để mót.

#15 hg_aum

hg_aum

    biết vẽ circle

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

Đã gửi 02 October 2013 - 06:38 PM

đúng rồi bạn ạ.Mình muốn đường bao ngoài cùng đó nhưng điều kiện là phải ôm khít đường biên của các cạnh thửa( đường nối).Túm lại giống như ta vẽ đường biên giới vậy nên trùng khít các cạnh về phía ngoài là điều tất nhiên.


  • 0

#16 phamthanhbinh

phamthanhbinh

    biết lệnh adcenter

  • Moderator
  • PipPipPipPipPipPipPip
  • 6009 Bài viết
Điểm đánh giá: 3113 (tuyệt vời)

Đã gửi 02 October 2013 - 07:09 PM

đúng rồi bạn ạ.Mình muốn đường bao ngoài cùng đó nhưng điều kiện là phải ôm khít đường biên của các cạnh thửa( đường nối).Túm lại giống như ta vẽ đường biên giới vậy nên trùng khít các cạnh về phía ngoài là điều tất nhiên.

Hề hề hề,

vậy chứ nó trùng như vậy bạn đã thấy OK chưa???

Nếu OK thì chỉ là cách thức bạn thực hiện lệnh boundary chưa đúng chứ bản thân lệnh chả có tí lỗi nào cả. Bằng chứng chính là cái hình mình đã post để bạn xem.

Để có thể hiểu đúng và thực hiện tốt cái lệnh này, bạn có thể tham khảo trong help của CAD. Nó nói khá rõ và qua đó bạn sẽ hiểu vì sao khi dùng như bạn lại bị lỗi. 

Vì vốn tiếng Anh của mình không tốt nên chỉ có thể hiểu ngầm nó nói gì chứ không đảm bảo là mình hiểu đúng nên cũng chả thể dịch ra giúp bạn được.

Nếu nói nôm theo cách mình hiểu thì lệnh boundary yêu cầu bạn phải chọn một vùng kín đơn với các đường bao không trùng lặp hay giao cát nhau. Vì thế nếu bạn làm không đúng sẽ dính lỗi như trên.

Hy vong bạn hiểu và làm được theo yêu cầu của bạn.


  • 1
Chúc các quý Anh trên diễn đàn luôn khỏe, đẻ thêm được nhiều thứ để mót.

#17 hg_aum

hg_aum

    biết vẽ circle

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

Đã gửi 03 October 2013 - 12:10 AM

thank bạn nhiều nhé,mình tìm ra cách rồi,thay vì dùng lệnh "bo" mình dùng lệnh region là ok luôn bạn ạ.


  • 1

#18 Hoan1111

Hoan1111

    biết lệnh adcenter

  • Members
  • PipPipPipPipPipPipPip
  • 2587 Bài viết
Điểm đánh giá: 692 (tốt)

Đã gửi 03 October 2013 - 12:24 AM

Nếu nói nôm theo cách mình hiểu thì lệnh boundary yêu cầu bạn phải chọn một vùng kín đơn với các đường bao không trùng lặp hay giao cát nhau. Vì thế nếu bạn làm không đúng sẽ dính lỗi như trên.

Hy vong bạn hiểu và làm được theo yêu cầu của bạn.

 

 Lệnh Bo chỉ cho Pick internal point chứ không cho quét chọn tất cả các đối tương như lệnh Region, 

không hiểu bác Bình  đã thao tác lệnh như thế nào để ra nhanh được đường "biên giới" ???

 

Thanks anh  hg_aum: Đúng là dùng lệnh Region vừa rẻ vừa giòn !

Command: reg REGION
Select objects: Specify opposite corner: 177 found
Select objects:
36 loops extracted.
1 loop rejected.
    Null region, possible coincident edges : 1 loop.
35 Regions created.
Command: Specify opposite corner:
Command:


  • 0

66 Câu Phật Học Cho Cuộc Sống : http://ngocchinh.com...-cho-cuoc-song/

Gió đưa cây cải về trời / Rau răm ở lại chịu lời đắng cay...