Đến nội dung


Hình ảnh

Quay lại vùng làm việc đã đánh dấu


  • Please log in to reply
11 replies to this topic

#1 pawuta

pawuta

    biết lệnh move

  • Members
  • PipPipPip
  • 126 Bài viết
Điểm đánh giá: -12 (hơi kém)

Đã gửi 15 April 2015 - 10:18 AM

Mọi người ơi! có ai biết cách đánh dấu 1 vùng làm việc trong autocad không?

Ý mình là zoom 1 vùng làm việc chi tiết 1 và đánh dấu lại (bằng lệnh), sau đó zoom ở vùng làm việc chi tiết 2 (hoặc bất cứ chỗ nào trong bản vẽ). Khi muốn trở về vùng làm việc chi tiết 1 (kích thước zoom như đã đánh dấu) thì chỉ cần đánh lệnh. Có ai biết giúp mình với nha! Thank mọi người trước nhé!


  • 0

#2 pawuta

pawuta

    biết lệnh move

  • Members
  • PipPipPip
  • 126 Bài viết
Điểm đánh giá: -12 (hơi kém)

Đã gửi 15 April 2015 - 10:37 AM

Các bạn viết giúp mình lisp như thế này nhé: (rút ngắn lại lệnh view)

- Đánh lệnh: CV: chọn vùng zoom, đặt tên vùng zoom (không hạn chế số vùng zoom)

- Đánh lệnh: HV, đánh tên vùng zoom nào sẽ hiện vùng zoom đó

Cảm ơn các bạn!


  • 0

#3 Tot77

Tot77

    biết lệnh adcenter

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

Đã gửi 15 April 2015 - 10:51 AM

Chẳng biết cad có lệnh nào tương tự không, nhưng cái này cũng đơn giản thôi, có điều chỉ cần 1 lệnh mà ko cần 2, khi nó hỏi vùng zoom thì gõ 1,3,4 ... tùy ý (vùng đầu tiên bắt đầu từ số 1 và dĩ nhiên bạn phải nhớ cái số vùng  zoom của mình), còn khi nó hỏi mà enter thì nó hiểu là tạo vùng zoom mới. Tên lệnh tôi đặt là zoo, bạn muốn đổi thì tùy ý.

(defun c:zoo (/ A B VUNG)
(if (and gl_zoom (setq vung (getint "\nChon vung da luu (hoac Enter de chon vung moi) :")))
(command "zoom" "w" (car (nth (1- vung) gl_zoom)) (last (nth (1- vung) gl_zoom)))
(progn
(command "zoom" "w" (setq a (getpoint)) (setq b (getpoint a)))
(setq gl_zoom (append gl_zoom (list (list a b)))))
)
(princ)
)

  • 1

#4 pawuta

pawuta

    biết lệnh move

  • Members
  • PipPipPip
  • 126 Bài viết
Điểm đánh giá: -12 (hơi kém)

Đã gửi 15 April 2015 - 12:43 PM

 

Chẳng biết cad có lệnh nào tương tự không, nhưng cái này cũng đơn giản thôi, có điều chỉ cần 1 lệnh mà ko cần 2, khi nó hỏi vùng zoom thì gõ 1,3,4 ... tùy ý (vùng đầu tiên bắt đầu từ số 1 và dĩ nhiên bạn phải nhớ cái số vùng  zoom của mình), còn khi nó hỏi mà enter thì nó hiểu là tạo vùng zoom mới. Tên lệnh tôi đặt là zoo, bạn muốn đổi thì tùy ý.

(defun c:zoo (/ A B VUNG)
(if (and gl_zoom (setq vung (getint "\nChon vung da luu (hoac Enter de chon vung moi) :")))
(command "zoom" "w" (car (nth (1- vung) gl_zoom)) (last (nth (1- vung) gl_zoom)))
(progn
(command "zoom" "w" (setq a (getpoint)) (setq b (getpoint a)))
(setq gl_zoom (append gl_zoom (list (list a b)))))
)
(princ)
)

Cảm ơn bạn rất rất nhiều, nhưng để reset lại từ đầu tên khung zoom thì làm cách nào vậy bạn, bạn thêm phần đặt tên cho vùng zoom mới thì quá oke, nếu đặt tên trùng với khung zoom trước thì nó sẽ thay thế khung zoom đó. Cảm ơn bạn nhé!


  • 0

#5 Tot77

Tot77

    biết lệnh adcenter

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

Đã gửi 15 April 2015 - 02:40 PM

Cái này thì có lưu tên view, chú ý là có phân biệt chữ hoa-thường, tốt nhất xài chữ thường.

Nếu tên nào chưa có thì nhấp 2 điểm đầu cuối, tên nào đã có thì sau khi zoom về chỗ view đó nó cũng đòi 

nhấp 2 điểm đầu cuối để  reset, nếu ko muốn reset thì cứ enter.

(defun c:zoo (/ TEN VUNG)
(defun datvung (tn / A B)
(if (setq a (getpoint (if tn "\nChon diem dau (Enter neu khong reset view):"
"\nChon diem dau :")))
(progn
(command "zoom" "w" a (setq b (getpoint a "\nChon diem cuoi:")))
(if tn
(setq gl_zoom (subst (list ten (list a b)) vung gl_zoom ))
(setq gl_zoom (append gl_zoom (list (list ten (list a b))))))
)
)
)
(setvar 'cmdecho 0)
(if (/= "" (setq ten (getstring "\nTen view :")))
(if (setq vung (assoc ten gl_zoom))
(progn
(command "zoom" "w" (car (last vung)) (last (last vung))) 
(datvung t))
(datvung nil)
)
)
(setvar 'cmdecho 1)
(princ)
)

  • 1

#6 ndtnv

ndtnv

    biết lệnh minsert

  • Members
  • PipPipPipPipPipPip
  • 437 Bài viết
Điểm đánh giá: 384 (khá)

Đã gửi 15 April 2015 - 04:16 PM

Dùng lệnh view của cad tốt hơn vì không chịu ảnh hưởng của UCS

(defun SaView (n) (vl-cmdf "-VIEW" "Save" n)(princ))
(defun ReView (n) (vl-cmdf "-VIEW" "Restore" n) (princ))
(defun C:CV () (SaView (getstring "\nTen view :")))
(defun C:HV () (ReView (getstring  "\nTen view :")))
 
; Nếu muốn gọi nhanh có thể đặt tên lệnh tắt như VD sau
;(tôi đang dùng cách này) 
(defun C:V1 () (ReView "1")) (defun C:VV1 () (SaView "1"))
(defun C:V2 () (ReView "2")) (defun C:VV2 () (SaView "2"))
(defun C:V3 () (ReView "3")) (defun C:VV3 () (SaView "3"))
(defun C:V4 () (ReView "4")) (defun C:VV4 () (SaView "4"))
(defun C:V5 () (ReView "5")) (defun C:VV5 () (SaView "5"))

  • 1

#7 pawuta

pawuta

    biết lệnh move

  • Members
  • PipPipPip
  • 126 Bài viết
Điểm đánh giá: -12 (hơi kém)

Đã gửi 15 April 2015 - 06:03 PM

 

Cái này thì có lưu tên view, chú ý là có phân biệt chữ hoa-thường, tốt nhất xài chữ thường.

Nếu tên nào chưa có thì nhấp 2 điểm đầu cuối, tên nào đã có thì sau khi zoom về chỗ view đó nó cũng đòi 

nhấp 2 điểm đầu cuối để  reset, nếu ko muốn reset thì cứ enter.

(defun c:zoo (/ TEN VUNG)
(defun datvung (tn / A B)
(if (setq a (getpoint (if tn "\nChon diem dau (Enter neu khong reset view):"
"\nChon diem dau :")))
(progn
(command "zoom" "w" a (setq b (getpoint a "\nChon diem cuoi:")))
(if tn
(setq gl_zoom (subst (list ten (list a b)) vung gl_zoom ))
(setq gl_zoom (append gl_zoom (list (list ten (list a b))))))
)
)
)
(setvar 'cmdecho 0)
(if (/= "" (setq ten (getstring "\nTen view :")))
(if (setq vung (assoc ten gl_zoom))
(progn
(command "zoom" "w" (car (last vung)) (last (last vung))) 
(datvung t))
(datvung nil)
)
)
(setvar 'cmdecho 1)
(princ)
)

Oke, con gà đen, cảm ơn bạn rất nhiều nhé, xài good lắm. chúc bạn luôn thành công trong cuộc sống


  • 0

#8 pawuta

pawuta

    biết lệnh move

  • Members
  • PipPipPip
  • 126 Bài viết
Điểm đánh giá: -12 (hơi kém)

Đã gửi 15 April 2015 - 06:07 PM

 

Dùng lệnh view của cad tốt hơn vì không chịu ảnh hưởng của UCS

(defun SaView (n) (vl-cmdf "-VIEW" "Save" n)(princ))
(defun ReView (n) (vl-cmdf "-VIEW" "Restore" n) (princ))
(defun C:CV () (SaView (getstring "\nTen view :")))
(defun C:HV () (ReView (getstring  "\nTen view :")))
 
; Nếu muốn gọi nhanh có thể đặt tên lệnh tắt như VD sau
(tôi đang dùng cách này) 
(defun C:V1 () (ReView "1")) (defun C:VV1 () (SaView "1"))
(defun C:V2 () (ReView "2")) (defun C:VV2 () (SaView "2"))
(defun C:V3 () (ReView "3")) (defun C:VV3 () (SaView "3"))
(defun C:V4 () (ReView "4")) (defun C:VV4 () (SaView "4"))
(defun C:V5 () (ReView "5")) (defun C:VV5 () (SaView "5"))

cảm ơn bạn, nhưng mình không biết sử dụng cái này như thế nào, mình đánh lệnh HV thì cad không có hiệu ứng gì hết


  • 0

#9 Tue_NV

Tue_NV

    KS Võ Quang Tuệ

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

Đã gửi 15 April 2015 - 06:52 PM

CAD có lệnh View (tắt là V) có thể đặt vùng chọn theo tên

Khi cần có thể gọi tên đó ra và Zoom đến vùng chọn đó 1 cách dễ dàng 


  • 1

#10 pawuta

pawuta

    biết lệnh move

  • Members
  • PipPipPip
  • 126 Bài viết
Điểm đánh giá: -12 (hơi kém)

Đã gửi 15 April 2015 - 10:58 PM

CAD có lệnh View (tắt là V) có thể đặt vùng chọn theo tên

Khi cần có thể gọi tên đó ra và Zoom đến vùng chọn đó 1 cách dễ dàng 

lệnh view có trong cad do thao tác hơi chậm chút, nên mình muốn dùng lisp để nhanh hơn, cảm ơn bạn nhé!


  • 0

#11 pawuta

pawuta

    biết lệnh move

  • Members
  • PipPipPip
  • 126 Bài viết
Điểm đánh giá: -12 (hơi kém)

Đã gửi 15 April 2015 - 11:19 PM

cảm ơn bạn, nhưng mình không biết sử dụng cái này như thế nào, mình đánh lệnh HV thì cad không có hiệu ứng gì hết

oke, lisp hay, thank bạn nhiều nhé!


  • 0

#12 dinhphuongkx

dinhphuongkx

    Chưa sử dụng CAD

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

Đã gửi 17 April 2015 - 01:23 PM

 

Chẳng biết cad có lệnh nào tương tự không, nhưng cái này cũng đơn giản thôi, có điều chỉ cần 1 lệnh mà ko cần 2, khi nó hỏi vùng zoom thì gõ 1,3,4 ... tùy ý (vùng đầu tiên bắt đầu từ số 1 và dĩ nhiên bạn phải nhớ cái số vùng  zoom của mình), còn khi nó hỏi mà enter thì nó hiểu là tạo vùng zoom mới. Tên lệnh tôi đặt là zoo, bạn muốn đổi thì tùy ý.

(defun c:zoo (/ A B VUNG)
(if (and gl_zoom (setq vung (getint "\nChon vung da luu (hoac Enter de chon vung moi) :")))
(command "zoom" "w" (car (nth (1- vung) gl_zoom)) (last (nth (1- vung) gl_zoom)))
(progn
(command "zoom" "w" (setq a (getpoint)) (setq b (getpoint a)))
(setq gl_zoom (append gl_zoom (list (list a b)))))
)
(princ)
)

Rất hay cảm ơn anh :)


  • 0