Đến nội dung


Hình ảnh
- - - - -

[Yêu cầu] Lisp chỉnh sửa text.


  • Please log in to reply
9 replies to this topic

#1 lenamfr_tbt

lenamfr_tbt

    biết pan

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

Đã gửi 02 August 2012 - 09:26 PM

Giả sử em có đoạn text: "BỐ TRÍ CHUNG MỐ A0 (1/20)"
Tương tự em muốn có thêm các đoạn text khác: "BỐ TRÍ CHUNG MỐ A0 (2/20)" ; "BỐ TRÍ CHUNG MỐ A0 (3/20)"...........
Bình thường em phải copy đoạn text ban đầu ra, rồi edit.
Rất mong các anh (chị) viết hộ em cái lisp nào đó, để em không cần sử dụng lệnh edit mà vẫn làm được nhanh.
Thanhks!
  • 0

#2 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 02 August 2012 - 09:41 PM

Bạn vào link dưới đây sẽ có lisp rất hay để copy tăng dần.
http://lee-mac.com/numinc.html
  • 3

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


#3 lenamfr_tbt

lenamfr_tbt

    biết pan

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

Đã gửi 02 August 2012 - 10:22 PM

Thanks nhiều nhé
  • 0

#4 mathan

mathan

    biết vẽ rectang

  • Members
  • PipPip
  • 83 Bài viết
Điểm đánh giá: 57 (tàm tạm)

Đã gửi 03 August 2012 - 08:12 AM

Đơn giản hơn 1 chút bạn dùng thử LISP này coi

;; free lisp from CADViet.com - Code by Mathan
;; Danh STT ban ve tu dong
(defun c:STT()
(command "undo" "be")
(command "cmdecho" 0)
(setq gtext (getstring 5"\nChuoi TEXT truoc :"))
(setq gtext2 (getstring 5"\nChuoi TEXT Sau :"))
;(initget "D C")
;(setq ans (getkword "\n Buoc tiep theo (D) :"))
;(if (= ans "D")
; (progn
(setq vitri (getint "\n STT bat dau :"))
(setq buoc (getint "\n buoc tang :"))
(prompt "\nChon chu muon chinh.")
(setq ss (ssget))
(setq n (sslength ss))
(setq i 0)
(setq vitri (- vitri buoc))
(while (< i n)
(setq e (entget(ssname ss i)))
(setq vitri (+ vitri buoc))
(setq a1 (rtos vitri 2 0))
(setq chunoi (strcat gtext a1 gtext2))
(setq e (subst (cons 1 chunoi) (assoc 1 e) e))
(entmod e)
(setq i (1+ i))
)
; )
; )
(command "undo" "end")
(princ)
)
;;;;;;;;;;;;;;;;;;;;;;;;;;;;

  • 3
-----------
Hình đã gửi Hãy chia sẻ để thấy có được nhiều hơn điều mình muốn!
Best regard,

#5 duy267

duy267

    biết vẽ point

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

Đã gửi 05 August 2012 - 10:50 AM

Bạn vào link dưới đây sẽ có lisp rất hay để copy tăng dần.
http://lee-mac.com/numinc.html

Đúng là Leemac, làm những lisp thât kinh khủng(4599 dòng). Thanks bác Hạ.
  • 0

#6 lenamfr_tbt

lenamfr_tbt

    biết pan

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

Đã gửi 05 August 2012 - 05:24 PM

Thanks bác mathan. Nhưng bác có thể giải thích cách làm được không ạ. Em chưa hiểu ạ.
  • 0

#7 mathan

mathan

    biết vẽ rectang

  • Members
  • PipPip
  • 83 Bài viết
Điểm đánh giá: 57 (tàm tạm)

Đã gửi 06 August 2012 - 08:16 AM

Sau khi bạn đã copy text ra rất nhiều, bạn dùng lệnh STT, nhập vào tiền tố và hậu tố của tên bản vẽ, rùi nhập vào số bắt đầu, số gia tăng sau đó bạn chọn text theo thứ tự muốn tăng => xong
LISP mình viết cho trường hợp ít text và vị trí lung tung nữa. Nếu bạn dùng thử chưa thỏa mãn nhu cầu có thể yêu cầu thêm, mình có tgian sẽ bổ sung sau.
Vấn đề này không quá khó.
  • 0
-----------
Hình đã gửi Hãy chia sẻ để thấy có được nhiều hơn điều mình muốn!
Best regard,

#8 vanngu1990

vanngu1990

    biết pan

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

Đã gửi 06 August 2012 - 09:41 AM

thank các bác nhé..
  • 0

#9 lenamfr_tbt

lenamfr_tbt

    biết pan

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

Đã gửi 06 August 2012 - 11:24 AM

Em cám ơn các bác nhiều.
  • 0

#10 vinh06102vt

vinh06102vt

    biết zoom

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

Đã gửi 03 July 2016 - 09:28 AM

Đơn giản hơn 1 chút bạn dùng thử LISP này coi



;; free lisp from CADViet.com - Code by Mathan

;; Danh STT ban ve tu dong

(defun c:STT()

(command "undo" "be")

(command "cmdecho" 0)

(setq gtext (getstring 5"\nChuoi TEXT truoc :"))

(setq gtext2 (getstring 5"\nChuoi TEXT Sau :"))

;(initget "D C")

;(setq ans (getkword "\n Buoc tiep theo (D) :"))

;(if (= ans "D")

;   (progn

   (setq vitri (getint "\n STT bat dau :"))

   (setq buoc (getint "\n buoc tang :"))

   (prompt "\nChon chu muon chinh.")

   (setq ss (ssget))

   (setq n (sslength ss))

   (setq i 0)

   (setq vitri (- vitri buoc))

   (while (< i n)

   (setq e (entget(ssname ss i)))

   (setq vitri (+ vitri buoc))

   (setq a1 (rtos vitri 2 0))

   (setq chunoi (strcat gtext a1 gtext2))

   (setq e (subst (cons 1 chunoi) (assoc 1 e) e))

   (entmod e)

   (setq i (1+ i))

   )

;  )

;  )

(command "undo" "end")

(princ)

)

;;;;;;;;;;;;;;;;;;;;;;;;;;;;


Nhờ bác mathan giúp mình thêm chút xíu, lisp của bạn đã gần giống với nhu cầu của mình, nhưng mà mình muốn hiện ra các chữ kiểu G-01, G-02, G-03,..G-10,G-11. Hiện tại lisp của bạn chỉ hiện G-1, G-2, G-3,...G10,G-11,......Mong sớm nhận được hồi âm của bạn. mail mình: vinhdkc@gmail.com


  • -1