Chuyển đến nội dung
Diễn đàn CADViet
  • Thông báo

    • Nguyen Hoanh

      CADViet đã hoàn tất nâng cấp   14/09/2017

      Chào các bạn, CADViet đã hoàn tất việc nâng cấp lên phiên bản mới. Tất cả các chức năng đã hoạt động theo kỳ vọng của ban quản trị. Nếu có vấn đề gì cần phản hồi, các bản post ở đây nhé: Trân trọng, Nguyễn Hoành.
colombus

xin giúp đỡ lisp dời dimension text...

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

Tôi đã tìm kiếm trên mạng và chỉ tìm được đến chỗ này http://cadtips.cadalyst.com/edit-dimension/move-dimension-text-position-with-xy-coordinates và không có file download.

 

Tôi mong muốn có được 1 lisp mà khi click vào text dimension thì nó nhảy lên hoặc nhảy xuống một đoạn bằng giá trị nhập vào đồng thời nó ghi nhớ giá trị này làm giá trị mặc định để lần sau khi thực hiện sẽ không phải nhập lại từ bàn phím.

 

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

Tôi đã tìm được 1 cách không dùng autolisp.

 

1. Trên QUICK PROPERTIES panel (cho Dimension) ta chọn customize để điều chỉnh xuất hiện text position X và text position Y

2. Chọn các kích thước (trong dãy kích thưóc) cần dời lên / xuống

3. Trên QUICK PROPERTIES panel click vào biểu tượng máy tính nằm ngang hàng với text position X / Y .

4. Hiện lên bảng tính toán ta thêm vào + a hay -a đằng sau tọa độ rất dài với rất nhiều số thập phân (với a là giá trị cần dời theo X / Y). Xong nhấn Apply là được.

 

Tuy có hơi thủ công nhưng có có thể chỉnh được nhiều dimension trong dãy (nằm ngang / thẳng đứng) cùng 1 lúc.

Đối với dãy dimension xiên ta tiến hành đổi trục X cho song song với dãy dimension rồi thực hiện như trên.

 

Rất tiếc cho những ai tắt chức năng QUICK PROPERTIES panel. (Ctrrl+Shift+P)

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

rất khó hiểu ,không rõ bác có thể chụp ảnh, gửi file yêu cầu, mong muốn và cách làm thủ công hiện giờ trong cad không cảm ơn bác

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
Xin lỗi cho tôi thắc mắc ké một chút là sao tôi làm 1 lisp lệnh

(command "-style" "Chuin" ".VntimeH" "3" "1" "0" "n" "n" "")

Nhưng khi load xong nó toàn tự bật lên bảng appload.

Có ai biết giúp dùm.

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ử xem:

(defun c:dtp (/ ss ename obj i txt-po delta-x delta-y sta-po end-po ang-diml xxx yyy new-po-x new-po-y direct)
(if (setq ss (ssget '((0 . "DIMENSION"))))
(progn (setq i -1
delta-x (getreal "\nKhoang dich Text theo chieu // dimline: ")
delta-y (getreal "\nKhoang dich Text theo chieu Vuong goc dimline: "))
(while (setq ename (ssname ss (setq i (1+ i))))
(setq obj (vlax-ename->vla-object ename))
(if (null delta-x)
(setq delta-x 0))
(if (null delta-y)
(setq delta-y 0))
(setq txt-po (cdr (assoc 11 (entget ename)))
sta-po (cdr (assoc 10 (entget ename)))
end-po (cdr (assoc 14 (entget ename)))
ang-diml (- (angle sta-po end-po) (* pi 0.5)))
(cond ((= ang-diml (* pi 0.5 -1)) (setq direct -1))
((<= ang-diml (* pi 0.5)) (setq direct 1))
((<= ang-diml (* pi 1.0)) (setq direct -1))
((<= ang-diml (* pi 1.5)) (setq direct -1))
((< ang-diml (* pi 2.0)) (setq direct 1)))
(setq xxx (* (cos ang-diml) direct)
yyy (* (sin ang-diml) direct))
(setq new-po-x (list (+ (car txt-po) (* delta-x xxx)) (+ (cadr txt-po) (* delta-x yyy)) 0.0)
new-po-y (list (- (car new-po-x) (* delta-y yyy)) (+ (cadr new-po-x) (* delta-y xxx)) 0.0))
(vla-put-textposition obj (vlax-3d-point new-po-y)))))
(princ))

(vl-load-com)

  • Vote tăng 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ử xem:

(defun c:dtp (/ ss ename obj i txt-po delta-x delta-y sta-po end-po ang-diml xxx yyy new-po-x new-po-y direct)

(if (setq ss (ssget '((0 . "DIMENSION"))))

(progn (setq i -1

delta-x (getreal "\nKhoang dich Text theo chieu // dimline: ")

delta-y (getreal "\nKhoang dich Text theo chieu Vuong goc dimline: "))

(while (setq ename (ssname ss (setq i (1+ i))))

(setq obj (vlax-ename->vla-object ename))

(if (null delta-x)

(setq delta-x 0))

(if (null delta-y)

(setq delta-y 0))

(setq txt-po (cdr (assoc 11 (entget ename)))

sta-po (cdr (assoc 10 (entget ename)))

end-po (cdr (assoc 14 (entget ename)))

ang-diml (- (angle sta-po end-po) (* pi 0.5)))

(cond ((= ang-diml (* pi 0.5 -1)) (setq direct -1))

((<= ang-diml (* pi 0.5)) (setq direct 1))

((<= ang-diml (* pi 1.0)) (setq direct -1))

((<= ang-diml (* pi 1.5)) (setq direct -1))

((< ang-diml (* pi 2.0)) (setq direct 1)))

(setq xxx (* (cos ang-diml) direct)

yyy (* (sin ang-diml) direct))

(setq new-po-x (list (+ (car txt-po) (* delta-x xxx)) (+ (cadr txt-po) (* delta-x yyy)) 0.0)

new-po-y (list (- (car new-po-x) (* delta-y yyy)) (+ (cadr new-po-x) (* delta-y xxx)) 0.0))

(vla-put-textposition obj (vlax-3d-point new-po-y)))))

(princ))

(vl-load-com)

 

Vâng như thế này là rất tốt rồi bác à. Tôi xin cảm ơn sự giúp đỡ của bác.

 

Như yêu cầu của tôi ban đầu thì cũng không cần khoảng dời theo phương song song dimline . Vì thế nếu như bác bỏ cho tôi cái phần này thì tốt hơn nữa. Không chỉ là bớt đi 1 cú gõ phím "space bar" mà làm như thế sẽ đỡ bị nhầm lẫn trong thao tác vẽ.

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

Vâng như thế này là rất tốt rồi bác à. Tôi xin cảm ơn sự giúp đỡ của bác.

 

Như yêu cầu của tôi ban đầu thì cũng không cần khoảng dời theo phương song song dimline . Vì thế nếu như bác bỏ cho tôi cái phần này thì tốt hơn nữa. Không chỉ là bớt đi 1 cú gõ phím "space bar" mà làm như thế sẽ đỡ bị nhầm lẫn trong thao tác vẽ.

Vâng , chỉ cần xoá đi dòng

 

delta-x (getreal "\nKhoang dich Text theo chieu // dimline: ")

 

là ổ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

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


×