Đến nội dung


Hình ảnh
- - - - -

Lisp Ghép Text Cần Giúp Đỡ


  • Please log in to reply
123 replies to this topic

#41 phamthanhbinh

phamthanhbinh

    biết lệnh adcenter

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

Đã gửi 02 November 2011 - 10:30 AM

Hoặc là bạn chuyển phương thức chọn thành ssget như của bác Bình, hoặc nếu muốn giữ code bác gia_bach thì thêm redraw vào :


(defun c:at2t (/ data edata ent i sel ss str);All Text to Text
(defun dxf (tag obj) (cdr (assoc tag obj)))
(setq ss (ssadd))
(while (setq sel (entsel "\nChon cac Text can noi voi nhau: "))
(setq ent (car sel))
(if (= (dxf 0 (entget ent)) "TEXT")
(progn
(ssadd ent ss)
(redraw ent 3)
)
))
(if (> (sslength ss) 0)
(progn
(setq i 0
data (entget (ssname ss 0))
str (dxf 1 data))
(while (setq ent (ssname ss (setq i (1+ i))))
(setq edata (entget ent)
str (strcat str " " (dxf 1 edata)) )
(entdel ent) )
(entmod (subst (cons 1 str) (assoc 1 data) data)) )
(princ "\nKhong chon duoc Text !"))
(princ))

Hề hề hề,
É é, bác ketxu ơi, hình như còn phải thêm (redraw ent 4) nữa thì phải?????
@ Bác DoanVanHa: Chắc bác chửa cho nó ăn sáng mà bắt no làm việc ngay nên nó đơ thui mà..... Cho nó một suất 75.000 VNĐ là nó lại chạy veo véo bác ạ....
  • 0
Chúc các quý Anh trên diễn đàn luôn khỏe, đẻ thêm được nhiều thứ để mót.

#42 ketxu

ketxu

    Copier - Paster - Editor

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

Đã gửi 02 November 2011 - 10:39 AM

Sau khi đã entdel những thằng bị Highlight rồi thì ta bỏ qua redraw 4 ạ ^^
Thằng đầu tiên sau khi entmod nó rồi thì nó cũng bị un-highlight luôn ^^
  • 0

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


#43 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 November 2011 - 10:41 AM

Hề hề hề,
É é, bác ketxu ơi, hình như còn phải thêm (redraw ent 4) nữa thì phải?????
@ Bác DoanVanHa: Chắc bác chửa cho nó ăn sáng mà bắt no làm việc ngay nên nó đơ thui mà..... Cho nó một suất 75.000 VNĐ là nó lại chạy veo véo bác ạ....


Hình như không cần (redraw ent 4) vì trong trường hợp này thằng ent bị biến chất rồi
@PTB: Vào "Sửa" hoặc "Sử dụng trình soạn thảo đầy đủ" thì chuột nó "sống" nhưng vào "Trả lời" thì nó "chết" là sao?
  • 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.


#44 mokara30

mokara30

    biết zoom

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

Đã gửi 03 November 2011 - 04:29 PM

Thanks pac phamthanhbinh và pac ketxu nhé,
@phamthanbinh, em thử thay phần code của pac nhưng vẫn không có kết quả,
@ketxu, lisp của pac em load thử và chạy thì báo lỗi thế này nè "Command: at2t ; error: too many arguments"
Pac nào có cao kiến giúp em thêm chút xíu nữa nhé.
Chân thành cám ơn!
  • 0

#45 ketxu

ketxu

    Copier - Paster - Editor

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

Đã gửi 03 November 2011 - 05:04 PM

Có ai bị như mokara hem nhỉ ^^ Mình down về test bình thường :) Chắc bị lỗi trong quá trình down.
Nếu bạn thích chọn từng cái 1 thì viết thêm 1 cái khác cũng được :)

(defun c:test (/ dxf str data tmp);All Text to Text
(defun dxf (tag obj) (cdr (assoc tag obj)))
(if
(and
(setq sel (entsel "\nChon Text dau tien : "))
(wcmatch (dxf 0 (setq data (entget (car sel)))) "*TEXT")
(setq str (dxf 1 data))
)
(while
(and
(setq tmp (entsel "\nChon Text tiep theo : "))
(wcmatch (dxf 0 (entget (setq tmp (car tmp)))) "*TEXT")
(setq str (strcat str " " (dxf 1 (entget tmp))))
)
(entdel tmp)
(entmod (subst (cons 1 str) (assoc 1 data) data))
)
)
)

  • 0

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


#46 xuandung87hp

xuandung87hp

    biết vẽ circle

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

Đã gửi 16 March 2012 - 08:16 AM

Các bác có thể sửa lisp cho e theo yêu cầu như sau không ạ:
+ Ghép 2 dtext thành 1 text, text có height lớn hơn là phần nguyên, text còn lại là phần thập phân ( ví dụ như 4 và 5 ghép thành 4.5)
+ Ngăn cách giữa 2 text là dấu chấm
+ Có thể quét nhìu cặp text như vậy trong một bình đồ, với đk ghép 2 text có khoảng cách gần nhau nhất
Thanks các bác rất nhiếu!
  • 0

#47 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 16 March 2012 - 08:27 AM

Các bác có thể sửa lisp cho e theo yêu cầu như sau không ạ:
+ Ghép 2 dtext thành 1 text, text có height lớn hơn là phần nguyên, text còn lại là phần thập phân ( ví dụ như 4 và 5 ghép thành 4.5)
+ Ngăn cách giữa 2 text là dấu chấm
+ Có thể quét nhìu cặp text như vậy trong một bình đồ, với đk ghép 2 text có khoảng cách gần nhau nhất
Thanks các bác rất nhiếu!

Hề, hề!
Hôm qua post bài sai quy định nên qua "tạm trú" bên thùng rác rồi.
Đây là lisp theo y/c dựa vào bản vẽ hôm qua bạn gởi. Hết sức chú ý để chọn đối tượng!

;Doan Van Ha - CADViet.com - Ngay 16-3-2012
;Muc dich: Noi tung cap text kieu num gan nhau nhat, bang dau ".". VD: noi "5" va "3" thanh "5.3".
(defun C:HA(/ ss lst1 lst2 pt1 pt2 dis ent3)
(princ "\nChon tap hop cac Text can noi...")
(setq ss (ssget '((0 . "TEXT") (8 . "SOLON-2011,SOBE-2011"))))
(setq lst1 (vl-remove-if 'listp (mapcar 'cadr (ssnamex (chiaSS ss "SOLON-2011")))))
(setq lst2 (vl-remove-if 'listp (mapcar 'cadr (ssnamex (chiaSS ss "SOBE-2011")))))
(if (/= (length lst1) (length lst2))
(alert "Yeu cau so luong 2 nhom Text phai bang nhau!")
(progn
(foreach ent1 lst1
(setq pt1 (cdr (assoc 10 (entget ent1))))
(setq dis (* 2 (distance pt1 (cdr (assoc 10 (entget (nth 0 lst2)))))))
(foreach ent2 lst2
(setq pt2 (cdr (assoc 10 (entget ent2))))
(if (< (distance pt1 pt2) dis)
(setq dis (distance pt1 pt2) ent3 ent2)))
(entmod (subst (cons 1 (strcat (cdr (assoc 1 (entget ent1))) "." (cdr (assoc 1 (entget ent3))))) (assoc 1 (entget ent1)) (entget ent1))))
(foreach ent2 lst2
(entdel ent2))))
(princ))
;----- Chia ss thanh ss1 va ss2 theo lop doi tuong.
(defun chiaSS(ss lop)
(acet-list-to-ss (vl-remove-if '(lambda(x) (null (wcmatch (acet-dxf 8 (entget x)) lop))) (acet-ss-to-list ss))))

  • 2

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


#48 xuandung87hp

xuandung87hp

    biết vẽ circle

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

Đã gửi 16 March 2012 - 08:37 AM

Thanks bác Doan Van Ha rất nhiều. :D
  • 0

#49 ketxu

ketxu

    Copier - Paster - Editor

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

Đã gửi 16 March 2012 - 08:42 AM

Trong bài toán tìm cặp, theo ketxu nên dùng while để loại bỏ những thằng đã xét rồi ^^
  • 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


#50 xuandung87hp

xuandung87hp

    biết vẽ circle

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

Đã gửi 16 March 2012 - 08:50 AM

Thanks 2 bác. Bác Ha cho e hỏi là lisp này e thấy chỉ dùng đựoc trong bản vẽ e up lên, e thử sang bản khác lại không dùng đựoc. Em không rành về lisp nên mong bác giúp đỡ vì em có làm rất nhiều bản vẽ như thế này.
  • 0

#51 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 16 March 2012 - 08:54 AM

Trong bài toán tìm cặp, theo ketxu nên dùng while để loại bỏ những thằng đã xét rồi ^^

Hôm trước có đọc 1 bài nói rằng nếu dùng được cả repeat, while, foreach thì nên dùng foreach để tăng tốc độ (dựa vào kinh nghiệm người ta chứ không thấy sách vở nói).
Nghĩ rằng dùng while để loại bớt thì số objects xét càng ít dần đi, cũng tăng tốc độ và rất có lý.
Nhưng, hình như foreach nó cũng loại dần những object đã xét chứ nhỉ?
Tốc độ là 1 vấn đề cực quan trọng. Rất muốn bác nào có kinh nghiệm thảo luân về vấn đề này cái thì sướng lắm!
  • 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.


#52 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 16 March 2012 - 09:02 AM

Thanks 2 bác. Bác Ha cho e hỏi là lisp này e thấy chỉ dùng đựoc trong bản vẽ e up lên, e thử sang bản khác lại không dùng đựoc. Em không rành về lisp nên mong bác giúp đỡ vì em có làm rất nhiều bản vẽ như thế này.

Post bản vẽ ấy lên. Nhớ là del bớt cho nó nhẹ nghe!
  • 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.


#53 ketxu

ketxu

    Copier - Paster - Editor

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

Đã gửi 16 March 2012 - 09:05 AM

Trong trường hợp dùng 2 vòng foreach lồng nhau thì lại khác ạ. Vòng lặp foreach thứ 2 của bác ứng với mỗi item trong lst1 sẽ luôn kiểm tra lại lần lượt từng item trong lst2, bất kể trong lst2 đó đã có 1 thằng ăn cặp với item cũ của lst1 rồi ^^
Về cá nhân thì ketxu thích viết foreach do nó dễ hình dung, nhưng dạo này qua 1 số kiểm nghiệm lại thích dùng mapcar hoặc while hơ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


#54 xuandung87hp

xuandung87hp

    biết vẽ circle

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

Đã gửi 16 March 2012 - 09:22 AM

Bác Doan Van Ha coi dùm e. Em làm nhiều về vấn đề này. Thường text cao độ bị tách thành 2 text. Text phần nguyên lớn hơn text phần thập phân. Bác sửa e cái lisp trên để có thể làm cho tất cả bản vẽ giống như trên. Thanks bác nhiều.
http://www.cadviet.c...93_drawing2.dwg
  • 0

#55 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 16 March 2012 - 09:53 AM

Bác Doan Van Ha coi dùm e. Em làm nhiều về vấn đề này. Thường text cao độ bị tách thành 2 text. Text phần nguyên lớn hơn text phần thập phân. Bác sửa e cái lisp trên để có thể làm cho tất cả bản vẽ giống như trên. Thanks bác nhiều.
http://www.cadviet.c...93_drawing2.dwg

Bạn gởi lên 2 bản vẽ, cuối cùng không thể tìm ra quy luật cho các cặp text của bạn để mần lisp chính xác được!!!
Tôi chỉ mần theo 1 nguyên tắc: chọn từng cặp (số lớn, số bé) gần nhau nhất và nối chúng lại.
Do đó, hãy kiểm tra bản vẽ để không có thằng text ngoại lai nào lọt vào đó.
Không biết bản vẽ thứ 3, 4, 5... thì nó thế nào nữa đây.
Đồng ý thì mần?
  • 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.


#56 xuandung87hp

xuandung87hp

    biết vẽ circle

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

Đã gửi 16 March 2012 - 10:02 AM

Đúng rùi đó bác, 2 text này thì text phần nguyên có height lớn hơn, phần thập phân thì height nhỏ hơn. Nhưng e dùng lisp "ha" sang bản vẽ khác cùng tính chất thì ko chọn đựoc text, hình như phải chuyển layer "SOLON-2011" & "SOBE-2011" thì đựoc, nhưng lại ko nối 2 text lại được. Bác xem hộ e nhé.Thanks bác!
  • 0

#57 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 16 March 2012 - 11:10 AM

Đúng rùi đó bác, 2 text này thì text phần nguyên có height lớn hơn, phần thập phân thì height nhỏ hơn. Nhưng e dùng lisp "ha" sang bản vẽ khác cùng tính chất thì ko chọn đựoc text, hình như phải chuyển layer "SOLON-2011" & "SOBE-2011" thì đựoc, nhưng lại ko nối 2 text lại được. Bác xem hộ e nhé.Thanks bác!

Lisp này xử lý theo height của 2 nhóm text. Yêu cầu text số lớn phải có height lớn hơn text số nhỏ. Các text phải đi liền từng cặp, không có text "ngoại lai" trong đó.
Vì các text trên các bản vẽ bạn gởi là rất "vô kỹ luật" nên hết sức thận trọng khi chọn chúng!!!

;Doan Van Ha - CADViet.com - Ngay 16-3-2012
;Muc dich: Noi tung cap text kieu num gan nhau nhat, bang dau ".". VD: noi "5" va "3" thanh "5.3".
;Doi tuong chon va phan nhom theo height cua text.
(defun C:HA2(/ ss lst1 lst2 pt1 pt2 dis ent3)
(setq ent1 (car (entsel "\nChon text so lon lam mau: ")) ent2 (car (entsel "\nChon text so be lam mau: ")))
(setq lay1 (cdr (assoc 8 (entget ent1))) lay2 (cdr (assoc 8 (entget ent2))))
(princ "\nChon tap hop cac Text can noi...")
(setq ss (ssget (list (cons -4 "<AND") (cons 0 "TEXT") (cons -4 "<OR") (cons 8 lay1) (cons 8 lay2) (cons -4 "OR>") (cons -4 "AND>")))) ;OK
(setq lst (vl-remove-if 'listp (mapcar 'cadr (ssnamex ss))))
(setq lst (vl-sort lst '(lambda (e1 e2) (> (cdr (assoc 40 (entget e1))) (cdr (assoc 40 (entget e2)))))))
(if (/= (rem (length lst) 2) 0)
(alert "Yeu cau so luong 2 nhom Text phai bang nhau!")
(progn
(setq lst1 (LM:SubList lst 0 (/ (length lst) 2)) lst2 (LM:SubList lst (/ (length lst) 2) (/ (length lst) 2)))
(foreach ent1 lst1
(setq pt1 (cdr (assoc 10 (entget ent1))))
(setq dis (* 2 (distance pt1 (cdr (assoc 10 (entget (nth 0 lst2)))))))
(foreach ent2 lst2
(setq pt2 (cdr (assoc 10 (entget ent2))))
(if (< (distance pt1 pt2) dis)
(setq dis (distance pt1 pt2) ent3 ent2)))
(entmod (subst (cons 1 (strcat (cdr (assoc 1 (entget ent1))) "." (cdr (assoc 1 (entget ent3))))) (assoc 1 (entget ent1)) (entget ent1)))
(entmod (subst (cons 62 1) (assoc 62 (entget ent1)) (entget ent1)))) ;thich mau nao thi thay con so 1 (mau do) la duoc.
(foreach ent2 lst2
(entdel ent2))))
(princ))
(defun LM:SubList ( lst start len ) (cond ((null lst) nil) ((< 0 start) (LM:SubList (cdr lst) (1- start) len)) ((null len) lst) ((< 0 len) (cons (car lst) (LM:SubList (cdr lst) start (1- len))))))

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


#58 xuandung87hp

xuandung87hp

    biết vẽ circle

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

Đã gửi 16 March 2012 - 11:21 AM

Cảm ơn bạn nhiều quá. Mình cũng thấy đống text này vô kỷ luật, nhưng hình như bạn hiểu lầm ý mình
+ Minh nói Text có height cao hơn sẽ là phần nguyên, height nhỏ hơn là phần thập phân, ví dụ cao độ: 1.3 thi gồm 2 text : text 1 có height cao hơn, còn text 3 có height nhỏ hơn.Đống text mình up nó có quy luật này đó. Bạn xem lại giúp mình nha.
+ Nối 2 text gần nhau như bên trên bạn đã làm rùi
  • 0

#59 ketxu

ketxu

    Copier - Paster - Editor

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

Đã gửi 16 March 2012 - 11:35 AM

@xuandung87hp : file bản vẽ của bạn mỗi cặp To-Nhỏ có khi đi kèm point, nhưng lại có khi k đi kèm Point nào. Cặp này lúc trước thì khác layer, n lúc sau lại giống layer. CÓ Text (theo mình nghĩ là số chẵn) nên nằm thui lui 1 mình, chẳng có thằng thập phân nào đi kèm. Có text lại chỉ có mỗi thập phân (chắc 0.3)
=> Kết luận là : khó lường, vì vậy đừng trách bác ĐVH

@bác ĐVH : đoạn (and (alert "Yeu cau so luong 2 nhom Text phai bang nhau!") (exit)) sẽ không thực hiện theo như ý bác muốn đâu, vì alert luôn trả về Nil :)
  • 0

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


#60 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 16 March 2012 - 11:37 AM

Cảm ơn bạn nhiều quá. Mình cũng thấy đống text này vô kỷ luật, nhưng hình như bạn hiểu lầm ý mình
+ Minh nói Text có height cao hơn sẽ là phần nguyên, height nhỏ hơn là phần thập phân, ví dụ cao độ: 1.3 thi gồm 2 text : text 1 có height cao hơn, còn text 3 có height nhỏ hơn.Đống text mình up nó có quy luật này đó. Bạn xem lại giúp mình nha.
+ Nối 2 text gần nhau như bên trên bạn đã làm rùi

Bạn xem lại cách dùng lệnh HA2 này nhé:
1). Chọn text lớn làm mẫu: bấm chọn vào text trước dấu chấm.
2). Chọn text bé làm mẫu: bấm chọn text sau dấu chấm.
3). Chọn tất cả text.
  • 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.