Đến nội dung


Hình ảnh
- - - - -

Lisp thay thế hàng loạt


  • Please log in to reply
3 replies to this topic

#1 maitheota

maitheota

    Chưa sử dụng CAD

  • Members
  • Pip
  • 3 Bài viết
Điểm đánh giá: 1 (bình thường)

Đã gửi 12 June 2015 - 10:37 AM

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)
)


  • 0

#2 maitheota

maitheota

    Chưa sử dụng CAD

  • Members
  • Pip
  • 3 Bài viết
Điểm đánh giá: 1 (bình thường)

Đã gửi 13 June 2015 - 08:17 AM

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!


  • 0

#3 maitheota

maitheota

    Chưa sử dụng CAD

  • Members
  • Pip
  • 3 Bài viết
Điểm đánh giá: 1 (bình thường)

Đã gửi 13 June 2015 - 08:23 AM

lisp em sửa rồi, ai có nhu cầu sử dụng nha :Dhttp://www.cadviet.c...6_thaythe_2.lsp


  • 1

#4 Doan Van Ha

Doan Van Ha

    biết lệnh adcenter

  • CADViet Team
  • PipPipPipPipPipPipPip
  • 5451 Bài viết
Điểm đánh giá: 2625 (tuyệt vời)

Đã gửi 13 June 2015 - 10:56 AM

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?


  • 0

* Chỉ nên yêu cầu Lisp khi bạn làm việc đó mất cả ngày nhưng họ chỉ viết 1 giờ. Đừng nêu yêu cầu Lisp khi bạn chỉ làm 1 giờ nhưng bắt họ phải mất cả ngày.

* Nhờ viết lisp cũng như đi khám bệnh. Chỉ gởi căn cước và than sắp chết thì không bác sỹ nào cứu sống được.