Đến nội dung


Hình ảnh
- - - - -

Find và Replace trong nhiều bản vẽ


  • Please log in to reply
38 replies to this topic

#21 Doan Van Ha

Doan Van Ha

    biết lệnh adcenter

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

Đã gửi 08 July 2015 - 11:11 AM

Bác Gia_Bach cho hỏi tí: vì sao tôi dùng thì nó báo 2 files cfg và dcl không ghi được?


  • 1

* 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.


#22 gia_bach

gia_bach

    biết lệnh adcenter

  • CADViet Team
  • PipPipPipPipPipPipPip
  • 1431 Bài viết
Điểm đánh giá: 1425 (rất tốt)

Đã gửi 08 July 2015 - 12:07 PM

Bác Gia_Bach cho hỏi tí: vì sao tôi dùng thì nó báo 2 files cfg và dcl không ghi được?

 

Chắc liên quan đến hệ điều hành và hàm _GetSavePath

(tôi dùng win8.1 Cad2014-2015) 

(defun _GetSavePath ( / tmp )
    (cond      
      ( (setq tmp (getvar 'ROAMABLEROOTPREFIX))
        (strcat (vl-string-right-trim "\\" (vl-string-translate "/" "\\" tmp)) "\\Support")
      )
      ( (setq tmp (findfile "ACAD.pat"))
        (vl-string-right-trim "\\" (vl-string-translate "/" "\\" (vl-filename-directory tmp)))
      )
      ( (vl-string-right-trim "\\" (vl-filename-directory (vl-filename-mktemp))) )
    )
  )

PS : Bác mà cũng ... hỏi, thì e rằng   .... :(


  • 1

#23 Lisphnvn72015

Lisphnvn72015

    biết vẽ line

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

Đã gửi 08 July 2015 - 12:43 PM

Cám ơn Doan Van Ha và Gia_bach

Sao mình dùng Win 7  64 bite và cả cad 2007 lẫn 2015 vẫn báo lỗi thế nhỉ


  • 0

#24 Lisphnvn72015

Lisphnvn72015

    biết vẽ line

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

Đã gửi 08 July 2015 - 12:46 PM

thật không thể hiểu được ! (bị lỗi sao có thể kết  luận là rất hay)

 

 

"Find and Replace" là LISP của Lee Mac, một nhãn hiệu chất lượng có thể nói là "thật tuyệt vời"

15454_fnr2.png

 

 

Thế thì có vấn đề gì ở đây?

Cá nhân tôi cho rằng v/đề là ở người sử dụng, thực là hàm hồ khi kết luận dòng thông báo "1 Drawing ..... No Replacements Made"  là Lisp bị lỗi.

nôi dung thông báo đại khái là "Đã xử lý 1 bản vẽ và kết quả là không thực hiện việc thay thế được bất kỳ đối tượng nào" (do người dùng nhập nội dung trong mục tìm kiếm "Find What" không có trong bản vẽ)

Tôi xác nhận lại, đây là dòng thông báo kết quả sau khi Lisp chạy xong, không phải lỗi.

Lỗi (nếu có) chắc là vốn tiếng Anh của bạn.

Mình nói hay là về mặt ý tưởng của lệnh find and replace đó!


  • 1

#25 Doan Van Ha

Doan Van Ha

    biết lệnh adcenter

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

Đã gửi 08 July 2015 - 02:36 PM

Chắc liên quan đến hệ điều hành và hàm _GetSavePath

(tôi dùng win8.1 Cad2014-2015) 


PS : Bác mà cũng ... hỏi, thì e rằng   .... :(

Thay bằng hàm trên thì ghi 2 files được, gọi dialog được, nhưng find hoặc raplace thì không nhúc nhích gì đến đối tượng cả, mặc dầu text được chọn trực tiếp (không thể sai). Và nó báo y như bạn Lisphnvn72015 đang hỏi vậy.

Có lẽ bị lỗi thật?


  • 1

* 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.


#26 gia_bach

gia_bach

    biết lệnh adcenter

  • CADViet Team
  • PipPipPipPipPipPipPip
  • 1431 Bài viết
Điểm đánh giá: 1425 (rất tốt)

Đã gửi 08 July 2015 - 03:17 PM

Thay bằng hàm trên thì ghi 2 files được, gọi dialog được, nhưng find hoặc raplace thì không nhúc nhích gì đến đối tượng cả, mặc dầu text được chọn trực tiếp (không thể sai). Và nó báo y như bạn Lisphnvn72015 đang hỏi vậy.

Có lẽ bị lỗi thật?

Ví dụ: Thay thế chuỗi "CV" bằng chuỗi "CadViet" các file trong thư mục "C:\ObjectARX 2015" (không bao gồm thư mục con)

chú ý : mặc định có phân biệt chữ Hoa và chữ thường, có thể vào Options để chọn.

15454_fnr.png

 

15454_fnrres.png


  • 0

#27 Lisphnvn72015

Lisphnvn72015

    biết vẽ line

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

Đã gửi 08 July 2015 - 03:21 PM

Thế là nó không thay trên bản vẽ hả gia_bach


  • 0

#28 gia_bach

gia_bach

    biết lệnh adcenter

  • CADViet Team
  • PipPipPipPipPipPipPip
  • 1431 Bài viết
Điểm đánh giá: 1425 (rất tốt)

Đã gửi 08 July 2015 - 03:37 PM

Thế là nó không thay trên bản vẽ hả gia_bach

Xử lý 2 file, nhưng chỉ tìm và thay thế được file   word puzle.dwg , file còn lai không có text thỏa đ/kiện tìm kiếm.

15454_fnrres1.png


  • 1

#29 Lisphnvn72015

Lisphnvn72015

    biết vẽ line

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

Đã gửi 08 July 2015 - 03:46 PM

Chắc liên quan đến hệ điều hành và hàm _GetSavePath

(tôi dùng win8.1 Cad2014-2015) 

(defun _GetSavePath ( / tmp )
    (cond      
      ( (setq tmp (getvar 'ROAMABLEROOTPREFIX))
        (strcat (vl-string-right-trim "\\" (vl-string-translate "/" "\\" tmp)) "\\Support")
      )
      ( (setq tmp (findfile "ACAD.pat"))
        (vl-string-right-trim "\\" (vl-string-translate "/" "\\" (vl-filename-directory tmp)))
      )
      ( (vl-string-right-trim "\\" (vl-filename-directory (vl-filename-mktemp))) )
    )
  )

PS : Bác mà cũng ... hỏi, thì e rằng   .... :(

Mình ngu lâu không hiểu dùng cái này thế nào?

Vẫn không xài được dù đã vào cad 2015 bạn ạ!


  • 0

#30 Doan Van Ha

Doan Van Ha

    biết lệnh adcenter

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

Đã gửi 08 July 2015 - 03:59 PM

@Gia_Bach: nói chung mấy thứ đó thì biết, nhưng nó không thay mà chỉ báo 2 dòng như bạn kia thôi, ngoài ra không có gì thêm.


  • 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.


#31 gia_bach

gia_bach

    biết lệnh adcenter

  • CADViet Team
  • PipPipPipPipPipPipPip
  • 1431 Bài viết
Điểm đánh giá: 1425 (rất tốt)

Đã gửi 08 July 2015 - 04:05 PM

@Gia_Bach: nói chung mấy thứ đó thì biết, nhưng nó không thay mà chỉ báo 2 dòng như bạn kia thôi, ngoài ra không có gì thêm.

Chắc có nhầm lẫn khi pick trên hộp thoại ?

Bác thử tìm dòng :

          (setq dwLst
            (cond
              ( (eq "1" *BFind_cur*)
                (list
                  (cond
                    ( (eq "" (vla-get-FullName acdoc))
                      (strcat (vl-string-right-trim "\\" (vla-get-Path acdoc)) "\\" (vla-get-Name acdoc))
                    )
                    ( (vla-get-FullName acdoc) )
                  )
                )
              )
              ( (eq "1" *BFind_opn*)
                (vlax-for doc (vla-get-documents acapp)
                  (setq dwlst
                    (cons
                      (if (eq "" (vla-get-fullname doc))
                        (strcat (vl-string-right-trim "\\" (vla-get-path doc)) "\\" (vla-get-name doc))
                        (vla-get-fullname doc)
                      )
                      dwlst
                    )
                  )
                )
                dwlst
              )
              ( t
                (_GetAllFiles *BFind_pat* (eq "1" *BFind_sub*) "*.dwg")
              )
            )
          ) 

và  thay thế bằng : (setq dwLst (_GetAllFiles "d:\\folder_name" nil "*.dwg") 

với folder_name là thư mục ở ổ D


  • 0

#32 Lisphnvn72015

Lisphnvn72015

    biết vẽ line

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

Đã gửi 08 July 2015 - 08:58 PM

Không biết bac Doan Van Ha đã chay được chương trình chưa ạ?

Em chưa được. Nếu bác chạy được rồi hướng dẫn giúp em với!


  • 0

#33 Doan Van Ha

Doan Van Ha

    biết lệnh adcenter

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

Đã gửi 08 July 2015 - 09:58 PM

Đã thay mọi thứ bác Gia_Bach đề nghị. Kết quả: test thư mục có 4 bản thì nó duyệt qua cả 4 nhưng không thay, kể cả text nằm ngay trên bản vẽ hiện hành thuộc thư mục đã chọn.

Nói chung, lisp này nếu dùng được thì hay, nhưng chạy chậm. Thấy mọi người bàn tán nên cũng bà tám cho vui, còn thực tế thì chưa bao giờ dùng nên cũng không mặn mà lắm trong việc tìm nguyên nhân.

Lúc nào hứng sẽ đào lên lại.

Hiện nó đang báo như thế này:

Command:

BFIND

Select Object:

Select Object:

Working, Please Wait.......

<< 4 Drawings Processed >>

<< No Replacements Made >>


  • 1

* 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.


#34 Lisphnvn72015

Lisphnvn72015

    biết vẽ line

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

Đã gửi 09 July 2015 - 07:24 AM

Đã thay mọi thứ bác Gia_Bach đề nghị. Kết quả: test thư mục có 4 bản thì nó duyệt qua cả 4 nhưng không thay, kể cả text nằm ngay trên bản vẽ hiện hành thuộc thư mục đã chọn.

Nói chung, lisp này nếu dùng được thì hay, nhưng chạy chậm. Thấy mọi người bàn tán nên cũng bà tám cho vui, còn thực tế thì chưa bao giờ dùng nên cũng không mặn mà lắm trong việc tìm nguyên nhân.

Lúc nào hứng sẽ đào lên lại.

Hiện nó đang báo như thế này:

Command:

BFIND

Select Object:

Select Object:

Working, Please Wait.......

<< 4 Drawings Processed >>

<< No Replacements Made >>

em cũng thế bác ạ!

Mình muốn nó thay luôn text trên các bản vẽ đang mở hay chỉ trên 1 bản vẽ chạy chương trình mà cũng không tìm ra cách chạy được anh nhỉ!


  • 0

#35 tien2005

tien2005

    biết lệnh properties

  • Members
  • PipPipPipPip
  • 257 Bài viết
Điểm đánh giá: 94 (tàm tạm)

Đã gửi 09 July 2015 - 03:21 PM

Bác Gia_Bach cho hỏi tí: vì sao tôi dùng thì nó báo 2 files cfg và dcl không ghi được?

Vấn đề không ghi được file trước đây mình có đề cập nhưng không giải quyết được, đành phải cày đặt lại autocad

@Ha chạy lạy lisp (khi chưa sửa) xem còn bị lổi trên hay không. Nếu vẫn bị mình nghĩ nó bị lỗi tại dòng lệnh (open fn "w") trong hàm _WriteConfig, mặc dù biến fn vẫn hợp lệ nhưng cacd báo open string nil

Nếu @Ha đã sửa được lỗi này thì thì AE cadviet lại có them kinh nghiệm xử lý cái lỗi "oái ăm" này ^^


  • 1

#36 Lisphnvn72015

Lisphnvn72015

    biết vẽ line

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

Đã gửi 09 July 2015 - 04:23 PM

Mình viết lisp chỉ ở mức độ ABC nên không hiểu nhiều về chương trình này

Nhưng mình thấy nó rất hay đấy!

nếu Bạn nào chạy được nó để chia sẻ mọi người ứng dụng thì rất hay.


  • 0

#37 Lisphnvn72015

Lisphnvn72015

    biết vẽ line

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

Đã gửi 09 July 2015 - 09:06 PM

Mình viết lisp chỉ ở mức độ ABC nên không hiểu nhiều về chương trình này

Nhưng mình thấy nó rất hay đấy!

nếu Bạn nào chạy được nó để chia sẻ mọi người ứng dụng thì rất hay.


  • 0

#38 Lisphnvn72015

Lisphnvn72015

    biết vẽ line

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

Đã gửi 11 July 2015 - 09:25 PM

 

Kính chào diễn đàn, mình mới sưu tầm được 1 lisp find and replace rất hay, nhưng khi chạy bị lỗi;

Lỗi báo:

 

<< 1 Drawings Processed >>
<< No Replacements Made >>
mà không hiểu sai ở đâu?

Xin mọi người giúp đỡ!

Trân trọng!

 

Mong mọi người giúp sử dụng chương trình này!


  • 0

#39 Lisphnvn72015

Lisphnvn72015

    biết vẽ line

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

Đã gửi 16 July 2015 - 08:55 PM

Mong mọi người giúp sử dụng chương trình này!


  • 0