Đến nội dung


Hình ảnh
- - - - -

Ứng dụng REACTOR trong quản lý bản vẽ theo layer.


  • Please log in to reply
50 replies to this topic

#41 NTD

NTD

    biết lệnh rotate

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

Đã gửi 18 July 2012 - 12:43 PM

Thưa bác là đã nói với thầy hôm đi OFF rồi nhưng thầy còn đang chảnh , kêu là : Em đang biên soạn giáo trình chưa xong mà hiện h các em gái cứ bu vào làm phiền tất cả các buổi tối trong tuần . Gớm mặt :D
  • 0

#42 cancer_xd

cancer_xd

    biết lệnh fillet

  • Members
  • PipPipPipPip
  • 207 Bài viết
Điểm đánh giá: 45 (tàm tạm)

Đã gửi 25 October 2013 - 07:10 PM

có ai biết lỗi này là gì không, khi mình load lisp lên thì có thông báo ở dòng command "; error: malformed list on input" . Khi đánh lệnh Layer_on hoặc off đều có thông báo là không có lệnh này . Thank


  • 0

#43 Doan Van Ha

Doan Van Ha

    biết lệnh adcenter

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

Đã gửi 26 October 2013 - 07:51 AM

có ai biết lỗi này là gì không, khi mình load lisp lên thì có thông báo ở dòng command "; error: malformed list on input" . Khi đánh lệnh Layer_on hoặc off đều có thông báo là không có lệnh này . Thank

Xem mục:

c). Các thông báo lỗi và nguyên nhân có thể:

Của link này:

http://www.cadviet.c...cho-nguoi-dung/


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


#44 thanhlam03xt

thanhlam03xt

    biết vẽ pline

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

Đã gửi 26 October 2013 - 08:32 AM

Ứng dụng REACTOR trong quản lý bản vẽ theo layer.

Trong truờng hợp quản lý bản vẽ theo layer, thông thuờng các đối tuợng khác nhau sẽ thuộc các layer khác nhau (có ngoại lệ).
VD : đối tuợng LINE thuộc layer “LINE”, đối tuợng Text thuộc layer “TEXT”, đối tuợng Dimension (kích thuớc) thuộc layer “DIMENSION”, ...
Cách vẽ thông thuờng là :
1. vẽ đối tuợng truớc, sau đó mới tạo layer rồi chuyển đối tuợng qua layer đó.
2. cách thứ 2 là tạo hàng loạt layer theo qui định, sau đó truớc khi vẽ đối tuợng sẽ set layer tuơng ứng về hiện hành. Vd : vẽ đối tuợng LINE thì set layer “LINE” về hiện hành.

Cách vẽ thứ 1 có lợi điểm là không cần quan tâm đến layer hiện hành, sau khi hoàn thành có thể sử dụng lệnh FILTER hay LISP để lọc các kiểu đối tuợng rồi chuyển qua layer tuơng ứng.
Cách vẽ thứ 2 có vẻ rắc rối hơn vì mỗi lần vào lệnh CAD lại phải thay đổi layer tuơng ứng về hiện hành.
Do đó phát sinh nhu cầu : làm thế nào để mỗi khi tạo đối tuợng mới, CAD “hiểu đuợc” chúng ta muốn đặt đối tuợng đó vào Layer tuơng ứng? (không cần thiết phải qua buớc set layer)
Truớc đây tôi có viết 1 lisp sử dụng biến hệ thống "CMDACTIVE", nhưng quả thật trong các t/hợp các lệnh có liên quan đến hộp thoại “vấn đề chưa đuợc giải quyết rốt ráo”.
Link tham khảo

Rất may là các lệnh REACTOR (hàm VLR-***) có cung cấp cho chúng ta cách giải quyết vấn đề.
Các bạn có thể tham khảo thêm trong “tàng kinh” của VisualLisp.
Cụ thể là : (vlr-command-reactor data callbacks) cho phép xây dựng các hành động tuơng ứng với các khả năng có thể xảy ra (tạm gọi là sự kiện) khi gọi 1 lệnh CAD.
Một vài sự kiện khi gọi 1 lệnh CAD :
- sự kiện bắt đầu gọi lệnh : :vlr-commandWillStart
- sự kiện khi lệnh kết thúc: :vlr-commandEnded
- sự kiện hủy bỏ lệnh : :vlr-commandCancelled

Như vậy đối với truờng hợp muốn Cad “hiểu đuợc” Layer tuơng ứng với mỗi lệnh, chúng ta phải xây dựng các hàm :
- đáp ứng sự kiện bắt đầu gọi lệnh ":vlr-commandWillStart
- đáp ứng sự kiện khi lệnh kết thúc “:vlr-commandEnded”
- đáp ứng sự kiện khi hủy bỏ lệnh “:vlr-commandEnded”
- tạo 1 danh sách các lệnh và layer tưong úng .

VD: khi gọi lệnh LINE, CAD sẽ kiểm tra xem layer hiện hành có phải là “LINE” không ?
- Nếu đúng → kết thúc
- Nếu sai → chuyển layer “LINE” về hiện hành (nếu chưa có : tao mới layer)
Tuơng tự cho các sự kiện khi kết thúc lệnh LINE hay sự kiện khi hủy bỏ lệnh (nguời dùng nhấn phím Cancel)

Chú ý :
- vì mỗi nguời (cty) có qui định về Layer khác nhau nên cần phải có 1 buớc hiệu chỉnh cho phù hợp.
Cụ thể là tìm dòng (setq COMLAYLST (list
(list "DIMANGULAR" "KT-DIM" )
(list "DTEXT" "TEXT" )
….....................
; Add your own command layer lists here....
))

thay thế hay bổ sung-xóa các cặp danh sách tuơng ứng theo định dạng (list "tênLệnhCadViếtHoa" "tênLayer" ).
VD : thay dòng (list "DTEXT" "TEXT" ) bằng (list "DTEXT" "ChuSo" )
hay thêm (list "LINE" "DuongThang" )
(setq COMLAYLST (list
(list "DIMANGULAR" "KT-DIM" )
(list "DTEXT" "ChuSo" ) (list "LINE" "DuongThang" )
))

- để tắt Reactor gọi lệnh Layer_Off, bật Reactor lại gọi lệnh Layer_On
- trong t/hợp Layer tuơng ứng ở tình trạng : Lock, Freeze, Thaw kết quả còn bị lỗi. <_<
Duới đây là toàn bộ code của Ứng dụng REACTOR trong quản lý bản vẽ theo layer.

  (if (vl-catch-all-error-p LAYOBJ)

    (not (print (vl-catch-all-error-message LAYOBJ)))

    (progn

      (if (= (strcase (vla-get-name LAYOBJ)) (strcase (getvar "clayer")))

        (setvar "clayer" "0")      )

      (vla-put-lock LAYOBJ _linenums:0'>(vl-load-com)(defun StartCommand (CALL CALLBACK / COMLAYLST)  (setq COMLAYLST (list		    (list "DIMANGULAR" "KT-DIM" )		    (list "DIMALIGNED" "KT-DIM" )		    (list "DIMBASELINE" "KT-DIM" )		    (list "DIMCENTER" "KT-DIM"  )		    (list "DIMCONTINUE" "KT-DIM" )		    (list "DIMDIAMETER" "KT-DIM")		    (list "DIMLINEAR" "KT-DIM")		    (list "DIMRADIUS" "KT-DIM" )		    (list "QDIM" "KT-DIM" )		    (list "LEADER" "KT-DIM" )		    (list "TEXT" "TEXT" )		    (list "MTEXT" "TEXT" )		    (list "DTEXT" "TEXT" )                    ; Add your own command layer lists here....		    ))  (if (setq N (assoc (strcase (car CALLBACK)) COMLAYLST))    (progn      (setq *Currentlayers* (cons (getvar "CLAYER") *Currentlayers*))      (if (setq objLay(make_layers (cadr N) ))	(vla-put-activelayer *DOC* objLay  )    )    )    (setq *Currentlayers* (cons nil *Currentlayers*))  )  (princ)  )(defun MAKE_LAYERS (LAY_NAM / LAYOBJ LAYSOBJ )   (or *DOC* (setq *DOC* (vla-get-activedocument (vlax-get-acad-object))))  (setq LAYSOBJ (vla-get-layers *DOC*))  (if (tblobjname "layer" LAY_NAM)    (setq LAYOBJ (vla-item LAYSOBJ LAY_NAM))    (setq LAYOBJ (vl-catch-all-apply 'vla-add (list LAYSOBJ LAY_NAM)))  )  (if (vl-catch-all-error-p LAYOBJ)    (not (print (vl-catch-all-error-message LAYOBJ)))    (progn      (if (= (strcase (vla-get-name LAYOBJ)) (strcase (getvar "clayer")))        (setvar "clayer" "0")      )      (vla-put-lock LAYOBJ :vlax-false)      (vla-put-layeron LAYOBJ :vlax-true)      (vla-put-freeze LAYOBJ :vlax-false)      	      LAYOBJ  )  ))(defun endCommand (CALL CALLBACK)  (if *Currentlayers*    (if (car *Currentlayers*)      (progn        (vla-put-lock          (vla-item            (vla-get-layers *DOC*)            (car *Currentlayers*)  )          :vlax-false        )        (setvar "CLAYER" (car *Currentlayers*)) ) ) )  (setq *Currentlayers* (cdr *Currentlayers*)))(defun cancelCommand (CALL CALLBACK)  (if *Currentlayers*    (if (car *Currentlayers*)      (progn        (vla-put-lock          (vla-item            (vla-get-layers *DOC*)            (car *Currentlayers*)  )          :vlax-false        )        (setvar "CLAYER" (car *Currentlayers*)) ) ) )  (setq *Currentlayers* (cdr *Currentlayers*)))(defun C:Layer_On ()    (and *vlr-CWS (not (vlr-added-p *vlr-CWS)) (vlr-add *vlr-CWS))  (and *vlr-CE (not (vlr-added-p *vlr-CE)) (vlr-add *vlr-CE))  (and *vlr-CC (not (vlr-added-p *vlr-CC)) (vlr-add *vlr-CC))  (or *vlr-CWS      (setq *vlr-CWS (vlr-command-reactor nil '((:vlr-commandwillstart . StartCommand)))))  (or *vlr-CE     (setq *vlr-CE (vlr-command-reactor nil '((:vlr-commandEnded . endCommand)))))  (or *vlr-CC     (setq *vlr-CC (vlr-command-reactor nil '((:vlr-commandCancelled . cancelCommand)))))  (princ "\nLayer Reactor ON")  (princ))(c:Layer_On)(defun C:Layer_Off ()  (and *vlr-CWS (vlr-added-p *vlr-CWS) (vlr-remove *vlr-CWS))  (and *vlr-CE (vlr-added-p *vlr-CE) (vlr-remove *vlr-CE))  (and *vlr-CC (vlr-added-p *vlr-CC) (vlr-remove *vlr-CC))  (princ "\nLayer Reactor OFF")  (princ))

Sao mình tải về và add vào nhưng ko dung duoc, gõ lênh layer_on  thì không được


  • 0
Sống trên đời cần có một tấm lòng.....

#45 thanhlam03xt

thanhlam03xt

    biết vẽ pline

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

Đã gửi 26 October 2013 - 08:54 AM

Sao ,mình tảlisissp ve và add vào thi báo lỗi

Gõ lệnh AP và enter thì tại dòng command báo lỗi:

 error: malformed list on input

Nhờ mọi người giúp đỡ! thanks!


  • 0
Sống trên đời cần có một tấm lòng.....

#46 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 26 October 2013 - 09:36 PM

Hình như Forum bị lỗi gì đó nên nội dung Lisp bị thay đổi.

Bạn download file tại đây : http://www.cadviet.c...actor_layer.lsp


  • 0

#47 thanhlam03xt

thanhlam03xt

    biết vẽ pline

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

Đã gửi 30 October 2013 - 02:39 PM

Hình như Forum bị lỗi gì đó nên nội dung Lisp bị thay đổi.

Bạn download file tại đây : http://www.cadviet.c...actor_layer.lsp

Cảm ơn bác gia_bach nhieu


  • 0
Sống trên đời cần có một tấm lòng.....

#48 intelligent

intelligent

    biết vẽ circle

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

Đã gửi 02 December 2013 - 07:27 PM

Ứng dụng REACTOR trong quản lý bản vẽ theo layer.

Trong truờng hợp quản lý bản vẽ theo layer, thông thuờng các đối tuợng khác nhau sẽ thuộc các layer khác nhau (có ngoại lệ).
VD : đối tuợng LINE thuộc layer “LINE”, đối tuợng Text thuộc layer “TEXT”, đối tuợng Dimension (kích thuớc) thuộc layer “DIMENSION”, ...
Cách vẽ thông thuờng là :
1. vẽ đối tuợng truớc, sau đó mới tạo layer rồi chuyển đối tuợng qua layer đó.
2. cách thứ 2 là tạo hàng loạt layer theo qui định, sau đó truớc khi vẽ đối tuợng sẽ set layer tuơng ứng về hiện hành. Vd : vẽ đối tuợng LINE thì set layer “LINE” về hiện hành.

Cách vẽ thứ 1 có lợi điểm là không cần quan tâm đến layer hiện hành, sau khi hoàn thành có thể sử dụng lệnh FILTER hay LISP để lọc các kiểu đối tuợng rồi chuyển qua layer tuơng ứng.
Cách vẽ thứ 2 có vẻ rắc rối hơn vì mỗi lần vào lệnh CAD lại phải thay đổi layer tuơng ứng về hiện hành.
Do đó phát sinh nhu cầu : làm thế nào để mỗi khi tạo đối tuợng mới, CAD “hiểu đuợc” chúng ta muốn đặt đối tuợng đó vào Layer tuơng ứng? (không cần thiết phải qua buớc set layer)
Truớc đây tôi có viết 1 lisp sử dụng biến hệ thống "CMDACTIVE", nhưng quả thật trong các t/hợp các lệnh có liên quan đến hộp thoại “vấn đề chưa đuợc giải quyết rốt ráo”.
Link tham khảo

Rất may là các lệnh REACTOR (hàm VLR-***) có cung cấp cho chúng ta cách giải quyết vấn đề.
Các bạn có thể tham khảo thêm trong “tàng kinh” của VisualLisp.
Cụ thể là : (vlr-command-reactor data callbacks) cho phép xây dựng các hành động tuơng ứng với các khả năng có thể xảy ra (tạm gọi là sự kiện) khi gọi 1 lệnh CAD.
Một vài sự kiện khi gọi 1 lệnh CAD :
- sự kiện bắt đầu gọi lệnh : :vlr-commandWillStart
- sự kiện khi lệnh kết thúc: :vlr-commandEnded
- sự kiện hủy bỏ lệnh : :vlr-commandCancelled

Như vậy đối với truờng hợp muốn Cad “hiểu đuợc” Layer tuơng ứng với mỗi lệnh, chúng ta phải xây dựng các hàm :
- đáp ứng sự kiện bắt đầu gọi lệnh ":vlr-commandWillStart
- đáp ứng sự kiện khi lệnh kết thúc “:vlr-commandEnded”
- đáp ứng sự kiện khi hủy bỏ lệnh “:vlr-commandEnded”
- tạo 1 danh sách các lệnh và layer tưong úng .

VD: khi gọi lệnh LINE, CAD sẽ kiểm tra xem layer hiện hành có phải là “LINE” không ?
- Nếu đúng → kết thúc
- Nếu sai → chuyển layer “LINE” về hiện hành (nếu chưa có : tao mới layer)
Tuơng tự cho các sự kiện khi kết thúc lệnh LINE hay sự kiện khi hủy bỏ lệnh (nguời dùng nhấn phím Cancel)

Chú ý :
- vì mỗi nguời (cty) có qui định về Layer khác nhau nên cần phải có 1 buớc hiệu chỉnh cho phù hợp.
Cụ thể là tìm dòng (setq COMLAYLST (list
(list "DIMANGULAR" "KT-DIM" )
(list "DTEXT" "TEXT" )
….....................
; Add your own command layer lists here....
))

thay thế hay bổ sung-xóa các cặp danh sách tuơng ứng theo định dạng (list "tênLệnhCadViếtHoa" "tênLayer" ).
VD : thay dòng (list "DTEXT" "TEXT" ) bằng (list "DTEXT" "ChuSo" )
hay thêm (list "LINE" "DuongThang" )
(setq COMLAYLST (list
(list "DIMANGULAR" "KT-DIM" )
(list "DTEXT" "ChuSo" ) (list "LINE" "DuongThang" )
))

- để tắt Reactor gọi lệnh Layer_Off, bật Reactor lại gọi lệnh Layer_On
- trong t/hợp Layer tuơng ứng ở tình trạng : Lock, Freeze, Thaw kết quả còn bị lỗi. <_<
Duới đây là toàn bộ code của Ứng dụng REACTOR trong quản lý bản vẽ theo layer.

  (if (vl-catch-all-error-p LAYOBJ)

    (not (print (vl-catch-all-error-message LAYOBJ)))

    (progn

      (if (= (strcase (vla-get-name LAYOBJ)) (strcase (getvar "clayer")))

        (setvar "clayer" "0")      )

      (vla-put-lock LAYOBJ _linenums:0'>(vl-load-com)(defun StartCommand (CALL CALLBACK / COMLAYLST)  (setq COMLAYLST (list		    (list "DIMANGULAR" "KT-DIM" )		    (list "DIMALIGNED" "KT-DIM" )		    (list "DIMBASELINE" "KT-DIM" )		    (list "DIMCENTER" "KT-DIM"  )		    (list "DIMCONTINUE" "KT-DIM" )		    (list "DIMDIAMETER" "KT-DIM")		    (list "DIMLINEAR" "KT-DIM")		    (list "DIMRADIUS" "KT-DIM" )		    (list "QDIM" "KT-DIM" )		    (list "LEADER" "KT-DIM" )		    (list "TEXT" "TEXT" )		    (list "MTEXT" "TEXT" )		    (list "DTEXT" "TEXT" )                    ; Add your own command layer lists here....		    ))  (if (setq N (assoc (strcase (car CALLBACK)) COMLAYLST))    (progn      (setq *Currentlayers* (cons (getvar "CLAYER") *Currentlayers*))      (if (setq objLay(make_layers (cadr N) ))	(vla-put-activelayer *DOC* objLay  )    )    )    (setq *Currentlayers* (cons nil *Currentlayers*))  )  (princ)  )(defun MAKE_LAYERS (LAY_NAM / LAYOBJ LAYSOBJ )   (or *DOC* (setq *DOC* (vla-get-activedocument (vlax-get-acad-object))))  (setq LAYSOBJ (vla-get-layers *DOC*))  (if (tblobjname "layer" LAY_NAM)    (setq LAYOBJ (vla-item LAYSOBJ LAY_NAM))    (setq LAYOBJ (vl-catch-all-apply 'vla-add (list LAYSOBJ LAY_NAM)))  )  (if (vl-catch-all-error-p LAYOBJ)    (not (print (vl-catch-all-error-message LAYOBJ)))    (progn      (if (= (strcase (vla-get-name LAYOBJ)) (strcase (getvar "clayer")))        (setvar "clayer" "0")      )      (vla-put-lock LAYOBJ :vlax-false)      (vla-put-layeron LAYOBJ :vlax-true)      (vla-put-freeze LAYOBJ :vlax-false)      	      LAYOBJ  )  ))(defun endCommand (CALL CALLBACK)  (if *Currentlayers*    (if (car *Currentlayers*)      (progn        (vla-put-lock          (vla-item            (vla-get-layers *DOC*)            (car *Currentlayers*)  )          :vlax-false        )        (setvar "CLAYER" (car *Currentlayers*)) ) ) )  (setq *Currentlayers* (cdr *Currentlayers*)))(defun cancelCommand (CALL CALLBACK)  (if *Currentlayers*    (if (car *Currentlayers*)      (progn        (vla-put-lock          (vla-item            (vla-get-layers *DOC*)            (car *Currentlayers*)  )          :vlax-false        )        (setvar "CLAYER" (car *Currentlayers*)) ) ) )  (setq *Currentlayers* (cdr *Currentlayers*)))(defun C:Layer_On ()    (and *vlr-CWS (not (vlr-added-p *vlr-CWS)) (vlr-add *vlr-CWS))  (and *vlr-CE (not (vlr-added-p *vlr-CE)) (vlr-add *vlr-CE))  (and *vlr-CC (not (vlr-added-p *vlr-CC)) (vlr-add *vlr-CC))  (or *vlr-CWS      (setq *vlr-CWS (vlr-command-reactor nil '((:vlr-commandwillstart . StartCommand)))))  (or *vlr-CE     (setq *vlr-CE (vlr-command-reactor nil '((:vlr-commandEnded . endCommand)))))  (or *vlr-CC     (setq *vlr-CC (vlr-command-reactor nil '((:vlr-commandCancelled . cancelCommand)))))  (princ "\nLayer Reactor ON")  (princ))(c:Layer_On)(defun C:Layer_Off ()  (and *vlr-CWS (vlr-added-p *vlr-CWS) (vlr-remove *vlr-CWS))  (and *vlr-CE (vlr-added-p *vlr-CE) (vlr-remove *vlr-CE))  (and *vlr-CC (vlr-added-p *vlr-CC) (vlr-remove *vlr-CC))  (princ "\nLayer Reactor OFF")  (princ))

em tham gia diễn đàn đc gần một năm rồi nhưng hôm nay mới có thời gian đọc bài viết của anh, đọc đi đọc lại mấy lần vẫn chưa thấy chán. đọc xong em hiểu mình đang đứng ở đâu những gì mình biết chỉ như một hạt cát giữa sa mạc rộng lớn. cảm ơn anh GIA BẠCH  đã chia sẻ kiến thức, để em biết mình còn phải học hỏi nhiều. thanks very much!


  • 0

#49 phimt21

phimt21

    Chưa sử dụng CAD

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

Đã gửi 13 March 2014 - 12:02 PM

Em mới học CAD. Các bác cho em hỏi bản CAD của em bị như thế này là sao VD: 1 Line đang ở Layer "Net Thay". Khi mình chọn nó và muốn chuyển sang Layer " Net Truc " nhưng khi em chọn line rồi chọn Layer " Net Truc"  thì Line lại không thay đổi gì 


  • 0

#50 sgcq

sgcq

    Hội Hai Lúa

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

Đã gửi 13 March 2014 - 12:38 PM

:D :D :D

Câu hỏi này khó ... trả lời.

Bạn nên tìm một thầy bói.

:D :D :D 


  • 0

12728974_230210507314169_718723558582070 HỘI HAI LÚA

           fanpage: https://www.facebook.com/HoiHaiLua/

 

 

 

 

 

 


#51 Hoan1111

Hoan1111

    biết lệnh adcenter

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

Đã gửi 13 March 2014 - 08:29 PM

Lâu không gặp anh Hai Lúa, em mong hoài! :) :) :)

 

:D :D :D

Câu hỏi này khó ... trả lời.

Bạn nên tìm một thầy bói.

:D :D :D

 

http://tinnong.vn/pa...u-bay-15-3.aspx

 

Em mới học CAD. Các bác cho em hỏi bản CAD của em bị như thế này là sao VD: 1 Line đang ở Layer "Net Thay". Khi mình chọn nó và muốn chuyển sang Layer " Net Truc " nhưng khi em chọn line rồi chọn Layer " Net Truc"  thì Line lại không thay đổi gì 

 

Trường hợp của anh rất đơn giản! Có hai khả năng:

1/ Layer "Net Thay"nó đang ở ByBlock, nên chọn line rồi chọn Layer " Net Truc"  sẽ không thấy nó chuyển mầu sang Layer " Net Truc". Muốn nó chuyển mầu sang Layer " Net Truc" anh phải chuyển nó sang  ByLayer:

dfd1110_zpse48283f4.jpg

2/ Không thấy nét trục nó  đứt rời ra từng khúc là do Linetype scale của nó có giá trị nhỏ  >>> Tăng giá trị Linetype scale là được như ý!


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