Đến nội dung


Hình ảnh
- - - - -

Nhờ viết lisp chèn dấu + vào giữa đơn vị hàng nghìn


  • Please log in to reply
4 replies to this topic

#1 thao_tedi

thao_tedi

    biết zoom

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

Đã gửi 05 December 2009 - 06:19 PM

Kính chào các bác.
Nhờ các bác viết giùm em một lisp chuyển số (là lý trình của trắc dọc) thành số có dấu cộng (+) phân cách đơn vị hàng nghìn. Ví dụ số 2200.000 thành số 2+200.000. Lisp này có thể chọn liền một lúc được nhiều số cùng một lúc.
Xin chân thành cảm ơn các bác trước!
  • 0

#2 Tue_NV

Tue_NV

    KS Võ Quang Tuệ

  • Moderator
  • PipPipPipPipPipPipPip
  • 4296 Bài viết
Điểm đánh giá: 3805 (đỉnh cao)

Đã gửi 05 December 2009 - 06:40 PM

Kính chào các bác.
Nhờ các bác viết giùm em một lisp chuyển số (là lý trình của trắc dọc) thành số có dấu cộng (+) phân cách đơn vị hàng nghìn. Ví dụ số 2200.000 thành số 2+200.000. Lisp này có thể chọn liền một lúc được nhiều số cùng một lúc.
Xin chân thành cảm ơn các bác trước!

Bạn sử dụng Lisp tgtext của Tue_NV nhé. Nó đáp ứng yêu cầu của bạn đấy
Lisp đây : Bai viet so 48 hoac bai viet so 43
Cách sử dụng :
Thêm chuỗi là dấu + cách vị trí cuối 7 kí tự (hoặc cách kí tự đầu 1 kí tự)
2+200.000 : dấu + cách vị trí cuối 7 kí tự (hoặc cách kí tự đầu 1 kí tự)
(nên sử dụng trường hợp là chuỗi cách kí tự cuối không nên sử dụng chuỗi cách kí tự đầu)

Command: tgtext -> gõ tgtext
undo Enter the number of operations to undo or
[Auto/Control/BEgin/End/Mark/Back] <1>: be
Command: cmdecho
Enter new value for CMDECHO <1>: 0
Chuoi muon them o giua :+ -> gõ +

Them Text cach ki tu Dau hay Them Text cach ki tu Cuoi < D / C >: C -> gõ C

Ban muon them chuoi nay cach vi tri cuoi bao nhieu ki tu :7 -> gõ 7

Chon chu muon chinh.
Select objects: Specify opposite corner: 2 found -> chon Text cần chỉnh

Select objects:

OKAy
  • 1

#3 thao_tedi

thao_tedi

    biết zoom

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

Đã gửi 05 December 2009 - 07:00 PM

Em down về và chạy lisp tgtext.lsp. Khi chạy nó báo lỗi như sau:
Command: tgtext

Chuoi muon them o giua :+

Them Text cach ki tu Dau hay Them Text cach ki tu Cuoi :c

Ban muon them chuoi nay cach vi tri cuoi bao nhieu ki tu :7

Chon chu muon chinh.; error: too many arguments


Lisp tgtext e down trên mạng như sau:

;; free lisp from cadviet.com

(defun c:tgtext()
(command "undo" "be")
(command "cmdecho" 0)
(setq gtext (getstring 5"\nChuoi muon them o giua :"))
(initget "D C")
(setq ans (getkword "\n Them Text cach ki tu Dau hay Them Text cach ki tu Cuoi :"))
(if (= ans "D")
(progn
(setq vitri (getint "\n Ban muon them chuoi nay cach vi tri dau bao nhieu ki tu :"))
(prompt "\nChon chu muon chinh.")
(setq ss (ssget \'((0 . "TEXT,MTEXT"))) n (sslength ss) i 0)


(while (< i n)
(setq e (entget(ssname ss i)))
(setq chuoicu (cdr(assoc 1 e)))

(setq tachdau (substr chuoicu 1 vitri))
(setq tachcuoi (substr chuoicu (1+ vitri) (strlen chuoicu)))
(setq chunoi (strcat tachdau gtext tachcuoi))
(setq e (subst (cons 1 chunoi) (assoc 1 e) e))
(entmod e)
(setq i (1+ i))
)
)
)

(if (= ans "C")
(progn
(setq vitri (getint "\n Ban muon them chuoi nay cach vi tri cuoi bao nhieu ki tu :"))
(prompt "\nChon chu muon chinh.")
(setq ss (ssget \'((0 . "TEXT,MTEXT"))) n (sslength ss) i 0)
(while (< i n)
(setq e (entget(ssname ss i)))
(setq chuoicu (cdr(assoc 1 e)))

(setq tachdau (substr chuoicu 1 (- (strlen chuoicu) vitri)))
(setq tachcuoi (substr chuoicu (+ (- (strlen chuoicu) vitri) 1) vitri))
(setq chunoi (strcat tachdau gtext tachcuoi))
(setq e (subst (cons 1 chunoi) (assoc 1 e) e))
(entmod e)
(setq i (1+ i))
)
)
)
(command "undo" "end")
(princ)
)

Mong các bác kiểm tra giúp em xem bị lỗi ở đâu. E dùng Civil 3D 2008 có bản quyền.
  • 0

#4 Tue_NV

Tue_NV

    KS Võ Quang Tuệ

  • Moderator
  • PipPipPipPipPipPipPip
  • 4296 Bài viết
Điểm đánh giá: 3805 (đỉnh cao)

Đã gửi 05 December 2009 - 08:44 PM

Em down về và chạy lisp tgtext.lsp. Khi chạy nó báo lỗi như sau:
Command: tgtext

Chuoi muon them o giua :+

Them Text cach ki tu Dau hay Them Text cach ki tu Cuoi :c

Ban muon them chuoi nay cach vi tri cuoi bao nhieu ki tu :7

Chon chu muon chinh.; error: too many arguments
Lisp tgtext e down trên mạng như sau:
....
Mong các bác kiểm tra giúp em xem bị lỗi ở đâu. E dùng Civil 3D 2008 có bản quyền.

Không có lỗi gì trong Lisp. Chỉ là do chức năng download của diễn đàn bị lỗi. Bạn hãy lấy code ngay trong bài viết số 48 của Tue_NV về chạy là được. Tue_NV buồn lắm vì bạn chẳng đọc kỹ bài viết của Tue_NV đã viết chi cả. Bạn hãy xem lại mình đi, bạn đã đọc kỹ bài viết trong topic mà Tue_NV đã Link cho bạn chưa? Bạn chỉ đọc bài viết 43 mà chẳng hề đọc bài viết số 48
Hãy lấy code của bài viết 48 về chạy nhé . Bài viết số 48 ghi ngay phía trên mỗi bài viết từ "Gửi vào #48"

Bạn sử dụng Lisp tgtext của Tue_NV nhé. Nó đáp ứng yêu cầu của bạn đấy
Lisp đây : Bai viet so 48 hoac bai viet so 43


  • 1

#5 thao_tedi

thao_tedi

    biết zoom

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

Đã gửi 06 December 2009 - 10:45 AM

Cám ơn bác nhiều.
Em thành thật xin lỗi bác là do em chưa đặt biến CMDECHO = 0. Bây giờ thì nó chạy tốt rồi.
Chúc các bác luôn mạnh khoẻ và gặp nhiều may mắn!
  • 0