24/12/2025

Lisp miễn phí move text về cao độ giá trị text T2Z | AutoLISP Reviewer

Ứng dụng được phát triển/Sưu tầm bởi đội ngũ AutoLISP Thật là đơn giản
   

Thông tin thêm: 👉👉👉

Lệnh T2Z

Move Text về cao độ Z = giá trị text

1 Thêm class T2Z by lisp.vn.lsp

Lưu mã sau dưới dạng tệp tin T2Z by lisp.vn.lsp
Code:
(defun c:T2Z (/ ss i ent pnt txt val new_pnt)
  (princ "\nChọn Text để đưa về cao độ thực (Z)...")
  (setq ss (ssget '((0 . "TEXT,MTEXT"))))
  
  (if ss
    (progn
      (setq i 0)
      (repeat (sslength ss)
        (setq ent (entget (ssname ss i)))
        (setq pnt (cdr (assoc 10 ent))) ; Lấy tọa độ hiện tại (X Y Z)
        (setq txt (cdr (assoc 1 ent)))  ; Lấy giá trị chữ
        
        ;; Chuyển nội dung text thành số thực
        (setq val (distof txt))
        
        (if val
          (progn
            ;; Tạo tọa độ mới với Z = giá trị text
            (setq new_pnt (list 10 (car pnt) (cadr pnt) val))
            ;; Cập nhật lại thực thể Text bằng entmod
            (setq ent (subst new_pnt (assoc 10 ent) ent))
            (entmod ent)
            (setq i (1+ i))
          )
        )
      )
      (princ (strcat "\nĐã cập nhật cao độ Z cho " (itoa i) " đối tượng."))
    )
    (princ "\nKhông chọn được đối tượng nào.")
  )
  (princ "\nCreate by lisp.vn")
  (princ)
)

Lệnh T2P

Vẽ 1 point có cao độ bằng giá trị Text chọn.

1 Thêm class T2P by lisp.vn.lsp

Lưu mã sau dưới dạng tệp tin T2P by lisp.vn.lsp
Code:
(defun c:T2P (/ ss i ent pnt txt val)
  (princ "\nChọn các đối tượng Text để chuyển thành Point...")
  (setq ss (ssget '((0 . "TEXT,MTEXT")))) ; Chỉ chọn Text hoặc MText
  
  (if ss
    (progn
      (setq i 0)
      (repeat (sslength ss)
        (setq ent (entget (ssname ss i)))
        (setq pnt (cdr (assoc 10 ent))) ; Lấy tọa độ điểm chèn (X Y Z)
        (setq txt (cdr (assoc 1 ent)))  ; Lấy nội dung Text
        
        ;; Chuyển nội dung text thành số thực
        (setq val (distof txt))
        
        (if val
          (progn
            ;; Tạo điểm Point mới với X, Y giữ nguyên và Z = val
            (entmake (list
                       '(0 . "POINT")
                       (list 10 (car pnt) (cadr pnt) val)
                     )
            )
          )
        )
        (setq i (1+ i))
      )
      (princ (strcat "\nĐã chuyển đổi thành công " (itoa i) " điểm."))
    )
    (princ "\nKhông tìm thấy đối tượng Text nào.")
  )
  (princ "\nCreate by lisp.vn")
  (princ)
)


Link tải (MediaFire)




---------------------------------------------------------------------------------------------
Ứng dụng được phát triển bởi đội ngũ AutoLISP Thật là đơn giản - Tác giả ứng dụng in D2P

    

Mọi thông tin xin liên hệ Fanpage AutoLISP Thật là đơn giản!
Cảm ơn bạn đã theo dõi!

Không có nhận xét nào:

Đăng nhận xét

Lisp Vẽ FeatureLine từ mặt Solid | Civil3D | AutoLISP Reviewer

Ứng dụng được phát triển/Sưu tầm bởi đội ngũ AutoLISP Thật là đơn giản     Thông tin thêm: 👉👉👉