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.
Đăng nhập để thực hiện theo  
hantinh

[yêu cầu] Nhờ viết lsp thay đổi khoảng cách giữa các chữ trong text

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

hantinh    45

Nhờ các cao thủ về lsp viết giúp mình cái lsp thay đổi khoảng cách text(textfit). cái phiên bản cad  asd của mình nó hok cho thay đổi lệnh textfit thành lệnh TF. mà mình thì rất hay dùng đến nó.

- khi cho ngắn khoảng cách text lại mình có thể pick hoặc nhập giá trị

Vd: khoảng cách bạn đầu là 1 thì khi thay đổi mình có thể pick trên bản vẽ hoặc nhập vào từ bàn phím

54284_11_1.png

- khi mình muốn nó có khoảng cách giống ban đầu thì chi cần nhập vao giá trị 1 là nó co giá trin mặc đị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
Tue_NV    3.841

Phải chăng cái này thay đổi về độ rộng của Text? Vậy thì thay đổi trong Properties (thông số Width factor) là được 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
hantinh    45

!Tue_vn: nếu dùng trong Properties thì lâu nên muốn dùng lsp cho nó nhanh ấy mà. vì mỗi lần lại phải vào đó 1 lần lâu lém. HIk. Nhiều hôm xếp toàn dí việc gấp chạy bở hơi tai luô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
Tot77    501

Bạn dùng lisp này, nhập độ rộng hiện tại , chọn text , nó sẽ bắt các text có độ rộng đó, sau đó bạn muốn làm gì thì vào properties.

 


(defun c:test(/ ro)
  (defun ssfrom (sl / ss0) (setq ss0 (ssadd)) (foreach v sl (ssadd v ss0)) ss0)
  (setq ro (getreal "\nChon Text co do rong:"))
  (sssetfirst nil (ssfrom (vl-remove nil (mapcar '(lambda(x) (if (= ro (acet-dxf 41 (entget x))) x nil))
(acet-ss-to-list (ssget '((0 . "TEXT"))))))))
)

(defun c:test(/ ro)
  (defun ssfrom (sl / ss0) (setq ss0 (ssadd)) (foreach v sl (ssadd v ss0)) ss0)
  (setq ro (getreal "\nChon Text co do rong:"))
  (sssetfirst nil (ssfrom (vl-remove nil (mapcar '(lambda(x) (if (= ro (acet-dxf 41 (entget x))) x nil))
(acet-ss-to-list (ssget '((0 . "TEXT"))))))))
)
  • 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
Tue_NV    3.841

Còn Lisp này hỏi nhập độ rộng mới -> chọn Text  -> sẽ thay đổi độ rộng cho Text

 

(defun c:tf(/ ss tw)
(defun Tue-ent-mod (dxf ename newValue / entget-ename)
  ;;;;;Ex: (Tue-ent-mod 1 (ssname (TUE-ss-entsel '((0 . "TEXT")) "\npick chon doi tuong TEXT / An phim bat ki de thoat :")  0)"TUE")
  ;;;;;;;;-->> Thay Text thanh chuoi "TUE"
  ;;;;;;;;dxf = 62 ma mau object; dxf = 6 ma Linetype cuar object
  (setq entget-ename (entget ename))
  (if (and (or (= dxf 62) (= dxf 6)) (null (assoc dxf entget-ename)))
          (setq entget-ename (append entget-ename (list (cons dxf newValue))))
  )
  (setq entget-ename (subst (cons dxf newValue) (assoc dxf entget-ename) entget-ename))
  (entmod entget-ename)
  ename
)
(defun Tue-ss-list (L-ss-vlaobj / n L Lst ssg vlaobj)
 
  (mapcar 'set '(ssg vlaobj) L-ss-vlaobj)
  (setq L (sslength ssg))
  (Repeat L
        (setq ename (ssname ssg (setq L (1- L))))
          (setq Lst (cons (if vlaobj (vlax-ename->vla-object ename) ename) Lst))
  )
)
(if (setq ss (ssget '((0 . "TEXT"))))
  (progn
    (setq tw (getreal "\n Nhap do rong chu :"))
    (foreach x (Tue-ss-list (list ss))
      (Tue-ent-mod 41 x tw)
    )
  )
)
)
  • Vote tăng 3

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

Đăng nhập để thực hiện theo  

×