Đến nội dung


Hình ảnh
- - - - -

[XIN LISP] Find and Replace cho Text, MText, ATT Block, Dimension.


  • Please log in to reply
3 replies to this topic

#1 loprjnce

loprjnce

    biết vẽ line

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

Đã gửi 18 June 2013 - 12:58 PM

Chào AE Cadviet,

Tình hình là mình có tìm hiểu và Search kĩ trên các Topic của forum mình rùi, và cũng có tìm code nước ngoài rùi, nhưng họ viết khá phức tạp và dài. Nhưng không thấy Lisp phù hợp với nhu cầu của mình nên mạo muội xin các pro code dùm 1 lisp với nhu cầu sau:

 

- Quét chọn vùng cần Find & Replace

-Tự động Replace với các String đã được gán thành 1 Association List trước trong Code - vD: setq 1stSource '(("A"."AA")("B"."BB")...) hoặc <sau này mở rộng thêm> bằng cách lấy nguồn từ 1 file ".txt" viết bằng 2 cột tương ứng Find và cột Replace (phân cách bằng 1 ký tự TAB), có thể áp dụng cho Text, Mtext, ATT của Block, Dimension trong vùng quét. (Giống hệt thao tác mình Find & Replace nhưng Lisp có thể áp dụng cho nhiều file, và không phải thao tác điền từng cặp A-AA, B-BB).

- Thoát lệnh, Purge All và Zoom All.

 

Cảm ơn AE Cadviet rất nhiều.

 

P/s: Mình xin lisp này vì thấy nó cũng hữu ích để mọi người Format chuẩn lại bản vẽ, và mình cũng dùng nó để học thêm (mình đang học Lisp, lần trước có xin được Lisp của a @Ketxu lisp tìm và đổi Layer (khá hay), hiện đang ngâm cứu nhưng vẫn chưa hiểu rõ)  :)

 

- Sẵn các pro cho mình hỏi có tài liệu nào nói về cách dùng DXF Group Code trong các lệnh nào cụ thể chút thì share cho mình với nha. Vì có đọc các tài liệu và ví dụ LISP rùi, có thấy dùng 8 cho Layer Name, .... mà mình không tìm ra được nguyên lý của lệnh nên cứ mơ hồ về phương pháp DXF Group Code. Cảm ơn AE trước nhiều. ^^ (có đọc trong Help của CAD rùi, mà không tìm thấy cách áp dụng cho các lệnh - có gì mong đc chỉ bảo thêm)


  • 0

#2 ketxu

ketxu

    Copier - Paster - Editor

  • Moderator
  • PipPipPipPipPipPipPip
  • 5679 Bài viết
Điểm đánh giá: 2605 (tuyệt vời)

Đã gửi 18 June 2013 - 04:07 PM

Nếu thêm các đối tượng trong Block thì lâu và dài là đúng rồi

Kết hợp thao tác tìm và thay thế ở nhiều file thì bạn thử tìm lisp Bfind của LeeMac nhé

 

- Câu cuối, nó nằm trong help của CAD, bạn vào vlide rồi bật Help, vừa code vừa học luôn :)


  • 1

Thành viên nhóm CadMagic.
Mời bạn ghé thăm facebook nhóm - Page viết lisp theo yêu cầu  :
CAD MAGIC


#3 loprjnce

loprjnce

    biết vẽ line

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

Đã gửi 19 June 2013 - 11:44 AM

@Ketxu: Thanks a Ket, để e tìm Lisp Bfind của LeeMac xem thử có phù hợp không. OKie chắc học trong Help thôi.


  • 0

#4 loprjnce

loprjnce

    biết vẽ line

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

Đã gửi 19 June 2013 - 02:14 PM

Nếu thêm các đối tượng trong Block thì lâu và dài là đúng rồi

Kết hợp thao tác tìm và thay thế ở nhiều file thì bạn thử tìm lisp Bfind của LeeMac nhé

 

- Câu cuối, nó nằm trong help của CAD, bạn vào vlide rồi bật Help, vừa code vừa học luôn :)

E test bản Bfind của LeeMac rùi, nhưng có 1 vài thiếu sót và 1 vẫn chưa áp dụng được.

- Chỉ chọn file hoặc toàn bộ Drawing Entities để Replace (E cần tìm theo những đối tượng được chọn nữa)

- Kết quả không chính xác theo từng ký tự mình tìm (nếu dùng ngôn ngữ khác - Japanese vì e vẽ bản vẽ Nhật)

     VD: Mình tìm ( hay bằng < và ) thay bằng > thì kết quả sẽ sai hoặc không Replace. (Theo e nghĩ có lẽ Lisp không hiểu được trọn vẹn các ký tự như lệnh find trong CAD nên lúc thì tìm ko đc lúc thì sai kết quả)

 

Thân. Mong được hướng dẫn thêm.


  • 0