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

[ Hỏi Code Lisp add thêm giá trị vào Mtext]

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

Nhờ các Bác chỉ giáo:
Mình có Mtext có n dòng, muốn add thêm giá trị vào dòng n+1 thì code lisp như thế nào? chân thènh cảm ơn!

ví dụ:  

Ban đầu:  

(1 . {\C3;Z3.M.HG.53}
2.91
{\C6;0.37})

Sau khi chạy code: thêm giá trị      2.397

(1 . {\C3;Z3.M.HG.53}
2.91
{\C6;0.37\P2.397})

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
1 giờ} trướ}c, anhGeodesy đã nói:

Nhờ các Bác chỉ giáo:
Mình có Mtext có n dòng, muốn add thêm giá trị vào dòng n+1 thì code lisp như thế nào? chân thènh cảm ơn!

ví dụ:  

Ban đầu:  

(1 . {\C3;Z3.M.HG.53}
2.91
{\C6;0.37})

Sau khi chạy code: thêm giá trị      2.397

(1 . {\C3;Z3.M.HG.53}
2.91
{\C6;0.37\P2.397})

Cách bá đạo là: bạn cứ add bằng cad rồi sau đó lấy entget rồi tìm cách xử bằng entmod.

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
1 giờ} trướ}c, Doan Van Ha đã nói:

Cách bá đạo là: bạn cứ add bằng cad rồi sau đó lấy entget rồi tìm cách xử bằng entmod.

(defun c:adt ()
  (setvar "cmdecho" 0)
  (progn
    (setq lst
       (entget
         (car (entsel
            "\nCHON MTEXT CAN ADD GIA TRI: "
          )
         )
       )
    )
    (setq olditem (assoc 1 lst))
    (setq EL (strcat "\\P" (Rtos 2.39 2 2)))
    (setq newitem (subst (list 1 (car olditem) (cadr olditem) EL)
             olditem
             lst
          )
    )
    (entmod lst)
  )
  (setvar "cmdecho" 1)
  (princ)
)

 

Nhờ Bác @Doan Van Ha  Thông Não giúp cháu. Cháu đã thử nhưng trình độ còn non.

Chỉnh sửa theo anhGeodesy
Định dạng mã Code

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
1 giờ} trướ}c, anhGeodesy đã nói:

(defun c:adt ()
  (setvar "cmdecho" 0)
  (progn
    (setq lst
       (entget
         (car (entsel
            "\nCHON MTEXT CAN ADD GIA TRI: "
          )
         )
       )
    )
    (setq olditem (assoc 1 lst))
    (setq EL (strcat "\\P" (Rtos 2.39 2 2)))
    (setq newitem (subst (list 1 (car olditem) (cadr olditem) EL)
             olditem
             lst
          )
    )
    (entmod lst)
  )
  (setvar "cmdecho" 1)
  (princ)
)

 

Nhờ Bác @Doan Van Ha  Thông Não giúp cháu. Cháu đã thử nhưng trình độ còn non.

Sẵn bạn gởi bản vẽ (2007) để dễ test.

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 giờ trước, anhGeodesy đã nói:

Nhờ các Bác chỉ giáo:
Mình có Mtext có n dòng, muốn add thêm giá trị vào dòng n+1 thì code lisp như thế nào? chân thènh cảm ơn!

ví dụ:  

Ban đầu:  

(1 . {\C3;Z3.M.HG.53}
2.91
{\C6;0.37})

Sau khi chạy code: thêm giá trị      2.397

(1 . {\C3;Z3.M.HG.53}
2.91
{\C6;0.37\P2.397})

(defun c:adt  (/ ent str)
  (if (setq ent (car (entsel "\nPick Mtext: ")))
    (progn (setq str (cdr (assoc 1 (entget ent)))
                 str (strcat (vl-string-right-trim "}" str) "\\P2.397}"))
           (vla-put-textstring (vlax-ename->vla-object ent) str)))
  (princ))

  • 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
7 giờ trước, NTHAHT đã nói:

(defun c:adt  (/ ent str)
  (if (setq ent (car (entsel "\nPick Mtext: ")))
    (progn (setq str (cdr (assoc 1 (entget ent)))
                 str (strcat (vl-string-right-trim "}" str) "\\P2.397}"))
           (vla-put-textstring (vlax-ename->vla-object ent) str)))
  (princ))

@NTHAHT  Cảm ơn bác đã thông não giúp em. xử lý cái chuỗi này nó nhì nhằng thật.

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

×