Chuyển đến nội dung
Diễn đàn CADViet
Đăng nhập để thực hiện theo  
maitheota

Lisp thay thế hàng loạt

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

Chào anh chị!

Em cần viết một lisp thay thế như sau: em tạo một file txt (có đường dẫn file là E:/flgoc.txt) chỉ có 1 cột chứa nội dung có trong bản vẽ cần thay thế, và một file txt khác (có đường dẫn file là E:/flthay.txt) chứa nội dung cần thay thế. Do lần đầu viết lisp, nên em chạy không được. Mong anh chị xem qua giúp em lỗi ở đâu.

Em cảm ơn rất nhiều!

Lisp của em như sau:

(defun c:thaythe()
    (setq flgoc "E:/flgoc.txt")
    (setq flthay "E:/flthay.txt")
    (setq goc (open flgoc "r"))
    (setq thay (open flthay "r"))
    (if (not goc) (progn
            (alert"Khong thay file goc!")
            (exit) )
           (if (not thay) (progn
            (alert"Khong thay file thay the!")
            (exit) )
        (while (setq lg (read-line goc))
            (setq lt (read-line thay))
    (defun c:hg (/ new_text old_text ss str)  (or vlax-ename->vla-object (vl-load-com))
           (setq old_text lg new_text lt)
      (ssget "_X" (list (cons 0 "*TEXT")(cons 1 ("*"old_text "*") )))
      (if (setq ss (vla-get-activeSelectionSet (vla-get-activedocument(vlax-get-acad-object))))
        (vlax-for obj ss      (setq str (vla-get-TextString obj))
        (while (vl-string-search old_text str)    (setq str (vl-string-subst new_text old_text str)) )      (vla-put-textstring obj str)
          )    )  )
        ))
    )
    (close goc)
    (close thay)
(princ)
)

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 đã sửa được rồi!

Nhưng còn một thắc mắc, đó là làm thế nào để kiểm xoát nó chạy? Em muốn bổ sung nó như sau: nếu như không tìm ra được đối tượng thay thế, thì mình lưu lại những đối tượng đó để kiểm tra sau, nhưng em không biết viết như thế nào! Mong mọi người giúp em với!

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

3 bài viết chỉ để hỏi và trả lời câu hỏi của chính mình? Nếu chầm chậm hơn 1 chút thì khỏi mất công post 3 bài?

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  

×