Chuyển đến nội dung
Diễn đàn CADViet
tranducanh18

Em xin trợ giúp dim kích thước.

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

image.png.8423322506f61b4c6c827baaf4d7c89d.pngEm đang có loạt dim kích thước trùng với đường gióng. Giờ em muốn nâng đường dim cách đường gióng 1 khoảng cách cụ thể thì làm cách nào vậy ạ. Mong các cao nhân chỉ giúp chứ giờ ngồi dim lại thì quá khổ. Em 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
35 phút trước, Lương Sơn đã nói:

gửi bạn lisp bạt đầu dim này. Lisp mình tải ở trong diễn đàn luôn.

CD-CUTDIM; BD-BATDAUDIM.lsp

Cảm ơn anh! Anh cho em hỏi lệnh BD này có cách nào kiểm soát được khoảng cách đường gióng dim nó move (offset) ra ko vậy anh?

 

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
13 phút trước, tannguyen291 đã nói:

có phải bạn muốn như thế này

giphy.gif

Rất tiếc cái này mình không chia sẻ được

Cũng ko hẳn anh, cái của anh là dim mới, còn cái em cần tìm là biến những phần dim sẵn chân dim trùng với đỉnh dim sẽ thành dim có chân dim giữ nguyên và đỉnh dim có khoảng cách theo ý mì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
9 phút trước, tranducanh18 đã nói:

Cũng ko hẳn anh, cái của anh là dim mới, còn cái em cần tìm là biến những phần dim sẵn chân dim trùng với đỉnh dim sẽ thành dim có chân dim giữ nguyên và đỉnh dim có khoảng cách theo ý mình ạ!

  

Điều quan trọng là bạn muốn text dim ở vị trí nào so với dim (trên dưới trái phải). nếu chọn từng dim và pick hướng như lệnh offset thì dễ. nhưng nếu bạn chọn tất cả trong bản vẽ thì điều này gần như bất khả thi.

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
5 phút trước, tannguyen291 đã nói:

Điều quan trọng là bạn muốn text dim ở vị trí nào so với dim (trên dưới trái phải). nếu chọn từng dim và pick hướng như lệnh offset thì dễ. nhưng nếu bạn chọn tất cả trong bản vẽ thì điều này gần như bất khả thi.

Dạ, vì bản vẽ quy hoạch có hàng chục ngàn dim nên chọn từng dim thì ko khác gì làm lại rồi anh. Hoặc tối thiểu cũng phải chọn được từng cụm một offset ra ạ, hoặc như kiểu lệnh offset hàng loạt là chọn giá trị - hoặc + vậy ạ 

 

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
9 phút trước, tranducanh18 đã nói:

 Dạ, vì bản vẽ quy hoạch có hàng chục ngàn dim nên chọn từng dim thì ko khác gì làm lại rồi anh. Hoặc tối thiểu cũng phải chọn được từng cụm một offset ra ạ, hoặc như kiểu lệnh offset hàng loạt là chọn giá trị - hoặc + vậy ạ 

  

Mình nghĩ ra 1 phương pháp đơn giản nhất với 2 lệnh

1 lệnh chọn tất cả dim: tách text dim và dim 1 khoảng cho trước không cần biết đúng sai.

lệnh thứ 2 bạn chọn những dim bị sai và lisp sẽ reverse lại. đợi mình nghiên cứu code rồi sẽ quay lại

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

Bạn thử lisp này:

(defun C:eDimLocation (/ ss e ds goc pt13 pt14 pt10)
  ; @Gia_Bach
  ; edit dimension line location
  (defun dxf(id entdata) (cdr (assoc id entdata)) )
  
  (if (setq ss (ssget "_:L"'((0 . "DIMENSION")  )) )
    (progn
      (or *kc* (setq *kc* 100))
      (initget 2)
      (setq khcach (getint (strcat"\nNhap khoang cach <" (rtos *kc*) ">:"))	)
      (if khcach (setq *kc* khcach) (setq khcach *kc*))
      
      (foreach e (vl-remove-if 'listp (mapcar 'cadr (ssnamex ss)))
	(setq ds (entget e)
	      pt10 (dxf 10 ds)
	      pt13 (dxf 13 ds)
	      pt14 (dxf 14 ds)	      )
	(if (equal pt10 pt14 0.001)
	  (setq goc (+ (/ pi 2)(angle pt13 pt14)))
	  (setq goc (angle pt10 pt14)) )
	(setq ds (subst (cons 10 (polar pt10 goc *kc*)) (assoc 10 ds) ds))
	(entmod ds)	) ) )  
  (princ)  )

 

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

thớt dùng cái này của mình xem sao

lệnh Move text dim: MTD

Lệnh đảo text dim: RVD

(defun c:mtd (/ ss dis i eng pt1 pt2 pt3 pt4 ang)
  (setq 
    ss (ssget '((0 . "DIMENSION"))) i (sslength ss)
    dis (getdist "\nDistance Dim:")
  )
  (repeat i
    (setq 
      i (1- i)
      eng (entget (ssname ss i))
      pt1 (cdr (assoc 13 eng))
      pt2 (cdr (assoc 14 eng))
      ang (+ (/ pi 2) (angle pt1 pt2))
      pt3 (polar pt1 ang dis)
      eng (subst (cons 10 pt3) (assoc 10 eng) eng)
    )
    (entmod eng)
  )
  (princ)
)

(defun c:rvd (/ ss i eng pt1 pt2 pt3 pt4)
  (setq ss (ssget '((0 . "DIMENSION"))) i (sslength ss))
  (repeat i
    (setq 
      i (1- i)
      eng (entget (ssname ss i))
      pt1 (cdr (assoc 13 eng))
      pt3 (cdr (assoc 10 eng))
      pt3 (polar pt3 (angle pt3 pt1 ) (* 2 (distance pt1 pt3)))
      eng (subst (cons 10 pt3) (assoc 10 eng) eng)
    )
    (entmod eng)
  )
  (princ)
)

 

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

Em cảm ơn anh Gia_bach và anh Tannguyen291 ạ, lips của hai anh dùng rất ok, em kết hợp cả 2 để sửa thủ công cũng nhanh hơn rất nhiều ạ. Em đã thử test trên file thấy dùng ổn. Em cảm ơn các anh rất nhiề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
22 phút trước, tannguyen291 đã nói:

bạn sẽ phát khóc khi nhìn cái này 

giphy.gif

giphy.gif

Dạ, bình thường em làm là trùng với đường gióng để cho gọn bản vẽ, chỉ có lần này chủ đầu tư yêu cầu nên mới phải tách có khoảng cách anh, chứ dim tổng ấy em vẫn dùng được ạ. Em cảm ơn anh nhiề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

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

×