Chuyển đến nội dung
Diễn đàn CADViet
laivanyen

[Yêu cầu] Lisp cộng - trừ - nhân - chia 2 hàng số cho ra hàng thứ 3

Các bài được khuyến nghị

E nói theo bác DVH, tức là khi có ACET r mà vẫn miss cơ. Mặc dù e chạy vẫn phình phường

....

..... tôi muốn đưa vấn đề ra để các bác cùng nghiên cứu xem tại làm sao nó lại như vậy thôi.

Và liệu có đưa nó vào "Các Lỗi oái oăm trong Lisp" được không khi mà chúng ta thật sự chưa hiểu hết về nó?

......

@: Tue_NV, Ketxu, Tski259

Ngồi suốt gần cả ngày, rốt cuộc botay.com, còn phát hiện thêm một nỗi "oái oăm" nữa:

Với file cad đính kèm (lược bỏ từ file gốc của tski259), test với file Lsp tính ma trận của bác Tue_NV (khi còn dùng hàm Acet) thì nó thế này:

1). Test trên ma trận của bản vẽ đính kèm thì Miss.

2). Đổi chế độ canh lề của chúng sang Left rồi test thì OK.

3). Tạo một bản vẽ mới thì cỡ nào cũng OK.

Như vậy, bản vẽ của tski259 có gì đặc biệt chăng?

Các bác test thử xem sao nhé!

http://www.cadviet.com/upfiles/3/ha_test.zip

Chào bạn Ketxu cùng bạn DoanVanHa

Vấn đề đã được giải quyết, sao vẫn còn thấy bạn lăn tăn thế nhỉ??

Tại làm sao nó như vậy thì chịu, Tue_NV và bạn và tất cả chúng ta đều không giải thích được bởi lẽ chúng ta đang đứng với tư cách là người sử dụng. Chúng ta sử dụng những hàm mà Nhà sản xuất lập ra chỉ biết rằng tính năng của hàm đó như thế, tác dụng của hàm đó như thế

còn lỗi "oái oăm" của nó thì chịu, không giải thích được, chỉ biết là nên tìm hướng khắc phục nó mà thôi.

Ví dụ hàm /

(/ 2 3)

Chúng ta biết rằng hàm / trên lấy số 2 chia cho số 3, nhưng nào có biết cấu trúc của hàm / bên trong của nó ra làm sao đâu? Tại sao kết quả của hàm (/ 2 3) không ra 0.666667 mà lại ra là 0. Bạn hỏi tôi vậy. Tôi chịu, chẳng biết trả lời bạn là tại sao được? Tôi có thể chỉ cho bạn hướng khắc phục chỉ là đổi một trong hai số 2 và 3 trên thành số thực thì mới được. Tôi chỉ nói rằng Tại vì nó như thế, bởi vì tôi, bạn và chúng ta là người sử dụng. Những người mà Autodesk gọi là Developer.

 

Cũng giống như hàm (ACET-GEOM-SS-EXTENTS-FAST ss) vậy. Chúng ta chỉ biết là nó có chức năng là tìm điểm min, max trong 1 tập chọn ss. Chứ chúng ta nào có biết cấu trúc bên trong? Bạn hỏi tôi lỗi "oái oăm" trên tại làm sao 1 số máy sử dụng được, một số máy sử dụng không được? Bạn hãy xem lại câu trả lời của tôi ở trên vậy.

Tôi chỉ có thể chỉ cho bạn hướng giải quyết cho bạn thôi là "tẩy chay" cái hàm đó đi và hãy tự viết cho mình 1 hàm do bạn định nghĩa có tính năng tương tự như hàm ACET-GEOM-SS-EXTENTS-FAST và hãy thử nghiệm kết quả.

 

Các hàm mà bạn đã biết trong Lisp đến giờ đã có hàm nào bạn biết cấu trúc bên trong chưa? Xin thưa với bạn: cả chúng ta đều không biết cấu trúc của nó mà chỉ biết chức năng sử dụng của nó thôi bạn ạ. Bạn phải hiểu điều đó. Tai sao? -> Tại vì nó như vậy

Còn vấn đề đua vào lỗi "oái oăm" chắc bạn cũng đã rõ vì những lời mà Tue_NV đã viết ở trên

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

Chào bạn Ketxu cùng bạn DoanVanHa

Vấn đề đã được giải quyết, sao vẫn còn thấy bạn lăn tăn thế nhỉ??

Tại làm sao nó như vậy thì chịu, Tue_NV và bạn và tất cả chúng ta đều không giải thích được bởi lẽ chúng ta đang đứng với tư cách là người sử dụng. Chúng ta sử dụng những hàm mà Nhà sản xuất lập ra chỉ biết rằng tính năng của hàm đó như thế, tác dụng của hàm đó như thế

còn lỗi "oái oăm" của nó thì chịu, không giải thích được, chỉ biết là nên tìm hướng khắc phục nó mà thôi.

Ví dụ hàm /

(/ 2 3)

Chúng ta biết rằng hàm / trên lấy số 2 chia cho số 3, nhưng nào có biết cấu trúc của hàm / bên trong của nó ra làm sao đâu? Tại sao kết quả của hàm (/ 2 3) không ra 0.666667 mà lại ra là 0. Bạn hỏi tôi vậy. Tôi chịu, chẳng biết trả lời bạn là tại sao được? Tôi có thể chỉ cho bạn hướng khắc phục chỉ là đổi một trong hai số 2 và 3 trên thành số thực thì mới được. Tôi chỉ nói rằng Tại vì nó như thế, bởi vì tôi, bạn và chúng ta là người sử dụng. Những người mà Autodesk gọi là Developer.

 

Cũng giống như hàm (ACET-GEOM-SS-EXTENTS-FAST ss) vậy. Chúng ta chỉ biết là nó có chức năng là tìm điểm min, max trong 1 tập chọn ss. Chứ chúng ta nào có biết cấu trúc bên trong? Bạn hỏi tôi lỗi "oái oăm" trên tại làm sao 1 số máy sử dụng được, một số máy sử dụng không được? Bạn hãy xem lại câu trả lời của tôi ở trên vậy.

Tôi chỉ có thể chỉ cho bạn hướng giải quyết cho bạn thôi là "tẩy chay" cái hàm đó đi và hãy tự viết cho mình 1 hàm do bạn định nghĩa có tính năng tương tự như hàm ACET-GEOM-SS-EXTENTS-FAST và hãy thử nghiệm kết quả.

 

Các hàm mà bạn đã biết trong Lisp đến giờ đã có hàm nào bạn biết cấu trúc bên trong chưa? Xin thưa với bạn: cả chúng ta đều không biết cấu trúc của nó mà chỉ biết chức năng sử dụng của nó thôi bạn ạ. Bạn phải hiểu điều đó. Tai sao? -> Tại vì nó như vậy

Còn vấn đề đua vào lỗi "oái oăm" chắc bạn cũng đã rõ vì những lời mà Tue_NV đã viết ở trên

Bác nói gì tôi cũng đồng ý, riêng điều bác nói là "lăn tăn" thì tôi không đồng ý. Bởi lẽ, cũng bản vẽ đó mà bác và Ketxu test được, còn tôi và tski259 test không được, thì phải tìm hiểu chứ. Đứng ở góc độ người sử dụng lsp thì bỏ cái acet đi là xong, điều này tôi OK. Nhưng đứng ở góc độ muốn tìm hiểu bản chất thì tôi không đồng ý. Bởi nếu giả dụ phương án bỏ acet không thể giải quyết được bài toán thì hóa ra cái lsp của bác chạy được ở máy này mà không chạy được ở máy khác, chắc bác chẳng chịu đâu nhỉ.

Nhưng mà thôi, tôi xin dừng ở đây vậy.

Chúc bác một ngày chủ nhật nhiều niềm vui!

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

Bác nói gì tôi cũng đồng ý, riêng điều bác nói là "lăn tăn" thì tôi không đồng ý. Bởi lẽ, cũng bản vẽ đó mà bác và Ketxu test được, còn tôi và tski259 test không được, thì phải tìm hiểu chứ. Đứng ở góc độ người sử dụng lsp thì bỏ cái acet đi là xong, điều này tôi OK. Nhưng đứng ở góc độ muốn tìm hiểu bản chất thì tôi không đồng ý. Bởi nếu giả dụ phương án bỏ acet không thể giải quyết được bài toán thì hóa ra cái lsp của bác chạy được ở máy này mà không chạy được ở máy khác, chắc bác chẳng chịu đâu nhỉ.

Nhưng mà thôi, tôi xin dừng ở đây vậy.

Chúc bác một ngày chủ nhật nhiều niềm vui!

Giữa 2 vấn đề :

Thứ nhất là vấn đề được giải quyết xong (được tìm hiểu từ vấn đề thứ hai) -> Rút ra hướng giải quyết

Thứ hai là vấn đề là mắc lỗi chưa giải quyết

 

=> Liệu có cần phải tìm hiểu vấn đề thứ 2 khi nó được giải quyết xong nhỉ?

=> Trường hợp vấn đề 2 chưa được giải quyết thì tìm hiểu và giải quyết nó cho được như bạn nói là đúng. Nhưng đây : vấn đề được giải quyết xong -> Rút ra hướng giải quyết thì tìm hiểu mần chi nữa bạn?

 

Quan điểm của bạn tìm hiểu nữa khi vấn đề giải quyết xong. Có cần nữa hay không nhỉ?

Quan điểm của tôi : không cần tìm hiểu nữa khi vấn đề giải quyết xong và quan tâm đến hướng giải quyết vấn đề của nó thì hơn. Tại sao nó như vậy? -> Chịu, không giải thích được.

 

Xin lỗi quan điểm bất đồng. Và Tue_NV cũng sẽ dừng bài viết nói về quan điểm này của mình tại đây.

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

2 bác viết dài thế ^^

@bác Tuệ :E có lăn tăn gì vấn đề đấy đâu, mót theo hoài còn không hết ấy chứ ^^

À, Câu hỏi của bác có câu trả lời trong sách là phép tính 2 số nguyên => ra 1 số nguyên, vì nó quy định luật chơi thế mà. Khà khà.Bác ĐVH muốn tìm ra vấn đề, nó là điều tốt mà, cằm men đâu có vui ^^

@ ĐVH : nếu chắc chắn do ACET, e biết (ACET-GEOM-SS-EXTENTS-FAST ss) tương đương với (acet-geom-ss-extents ss Nil) , Nil = No shrink wrap. Vậy bác thử thay hàm bác Tuệ viết bằng (acet-geom-ss-extents ss T) xem có đc không ? Vì máy e chạy bình thường nên rất tiếc k test cùng các bác cho vui được.

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

2 bác viết dài thế ^^

@bác Tuệ :E có lăn tăn gì vấn đề đấy đâu, mót theo hoài còn không hết ấy chứ ^^

À, Câu hỏi của bác có câu trả lời trong sách là phép tính 2 số nguyên => ra 1 số nguyên, vì nó quy định luật chơi thế mà. Khà khà.Bác ĐVH muốn tìm ra vấn đề, nó là điều tốt mà, cằm men đâu có vui ^^

@ ĐVH : nếu chắc chắn do ACET, e biết (ACET-GEOM-SS-EXTENTS-FAST ss) tương đương với (acet-geom-ss-extents ss Nil) , Nil = No shrink wrap. Vậy bác thử thay hàm bác Tuệ viết bằng (acet-geom-ss-extents ss T) xem có đc không ? Vì máy e chạy bình thường nên rất tiếc k test cùng các bác cho vui được.

Tranh luận một hồi, cuối cùng không còn là Acet hay không Acet nữa. Vấn đề là tại sao LSP chạy OK ở máy này mà không OK ở máy khác. Tôi tin tưởng tuyệt đối rằng, sẽ có một buổi đẹp trời nào đó, chúng ta cùng biết tại làm sao. Chứ chẳng có hàm LSP nào mà nó lại phụ thuộc máy tính cả, trừ khi nó bị lỗi, nó bị cài thiếu, nó bị virut...!

Rất cám ơn những chia sẻ của Ketxu!

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

@NguyenNgocSon: để xuất text kết quả có màu theo ý của bạn thì bạn tìm dòng này: (DXF 40 SSn) 0 "R"(DXF 7 SSn) (DXF 8 SSn) nil nil)

đổi giá trị nil mình đánh dấu đỏ thành mã màu bạn muốn. Ví dụ bạn muốn là màu 3 thì: (DXF 40 SSn) 0 "R"(DXF 7 SSn) (DXF 8 SSn) 3 nil)

@Thaistreetz: Rất cám ơn Thái, mình đã sửa và oke khi chọn điểm ghi kết quả; Cho mình hỏi là muốn đổi màu chữ khi mình chọn ghi kết quả vào text thì sửa ntn ?

Cám ơn !

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

Đã thử nhưng không được ?

Không biết CAD của Bạn có trục trặc gì không, chứ mình thử thay đoạn CODE trong bài 40 của Bác Tue_NV vào CODE trong bài 25, mình vẫn thấy Lisp vẫn chạy và nhớ phép tính trong lần chạy trước đó mà :mellow: . Còn không, bạn thử thêm cách này nữa xem sao: bỏ (xóa) biến "ctnc" trong khai báo biến cục bộ của Code bài số 25

(defun c:cs(/ ss sx ss3 lis1 lis2 lis3 en1 en2 n i ii ptkq nn mm li li1 stp ctnc ctnch shang oldlu)

;Copy right by Tue_NV......

sửa lại thành

(defun c:cs(/ ss sx ss3 lis1 lis2 lis3 en1 en2 n i ii ptkq nn mm li li1 stp ctnch shang oldlu)

;Copy right by Tue_NV......

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

Hiện tại lisp đã xuất kết quả ra 1 hàng(cột) riêng biệt, Nhưng khi dùng chức năng ghi đè kết quả vào hàng ( cột ) khác thì bị lỗi. Mong bác hoàn thiện nốt. Vì lisp này rất hay !

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

Select objects: 1 found

 

Select objects:

 

Chon hang-cot text thu 2

 

Select objects: 1 found

 

Select objects:

; error: bad argument type: numberp: nil

 

Lỗi này là lỗi gì vậy các bác, em chỉ nhân 2 số với nhau thôi

Lisp của bác Thaistreetz

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

cho mình xin lisp mà cộng, trừ nhân chia cả 1 hàng hay cột với 1 số cố định ( nhập bằng tay ). Kết quả xuất ra có thể là hàng hay cột mới hoặc chính là hàng hay cột ban đầu có dc k??? xin các bác giúp mình với

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

cho mình xin lisp mà cộng, trừ nhân chia cả 1 hàng hay cột với 1 số cố định ( nhập bằng tay ). Kết quả xuất ra có thể là hàng hay cột mới hoặc chính là hàng hay cột ban đầu có dc k??? xin các bác giúp mình với

Lisp + - * / vào 1 nhóm (hàng/cột) và trả kết quả ngay tại nhóm (hàng/cột) đó.

 

;; Cong/Tru/Nhan/Chia 1 nhom (hang hoac cot) cho 1 so. Tra ve ket qua ngay tai vi tri cua chung.
;; CadViet.com - ngay 23/7/2013
(defun C:HA( / #SS->List toan so ss elist)
 (defun #SS->List (ss / i lst)
  (repeat (setq i (sslength ss))
   (setq lst (cons (ssname ss (setq i (1- i))) lst))))
 (if
  (and
   (not (initget "C T N H"))
   (setq toan (getkword "\nPhep toan [Cong/Tru/Nhan/cHia: "))
   (not (initget 3))
   (setq so (getreal "\nNhap so: "))
   (setq ss (ssget '((0 . "*Text")))))
  (progn
   (setq toan
    (cond
     ((= toan "C") +)
     ((= toan "T") -)
     ((= toan "N") *)
     ((= toan "H") /)))
   (foreach ent (#SS->List ss)
    (setq elist (entget ent))
    (entmod (subst (cons 1 (rtos (toan (atof (cdr (assoc 1 elist))) so) 2 2)) (assoc 1 elist) elist)))))
 (princ))
 
  • Vote tăng 1

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

 

mình đã sửa lại để chơi đuợc cả hàng lẫn cột đây. post lâu lắm rồi mới thấy có bạn ý kiến nên chắc cũng ít người có nhu cầu này nhỉ.

(defun c:srt (/ DXF MakeText HANG I LAP LSTKQ PT0 PTI SS1 SS2 SS3 SSN SSN3 TBS1 TBS2 TBS3)(defun DXF (code en)	(cdr (assoc code (entget en))))(defun entmod-en (code value en / RES)(setq RES (entget en '("*")))(entmod (subst (cons code value) (assoc code RES) RES)))(defun MakeText (point string Height Ang justify Style Layer Color xdata / Lst); Ang: Radial(setq Lst (list '(0 . "TEXT")(cons 8 (if Layer Layer (getvar "Clayer")))(cons 62 (if Color Color 256))(cons 10 point)(cons 40 Height)(cons 1 string)(if Ang (cons 50 Ang))(cons 7 (if Style Style (getvar "Textstyle")))(cons -3 (if xdata (list xdata) nil)))justify (strcase justify))(cond ((= justify "C") (setq Lst (append Lst (list (cons 72 1) (cons 11 point)))))((= justify "R") (setq Lst (append Lst (list (cons 72 2) (cons 11 point)))))((= justify "M") (setq Lst (append Lst (list (cons 72 4) (cons 11 point)))))((= justify "TL") (setq Lst (append Lst (list (cons 72 0) (cons 11 point) (cons 73 3)))))((= justify "TC") (setq Lst (append Lst (list (cons 72 1) (cons 11 point) (cons 73 3)))))((= justify "TR") (setq Lst (append Lst (list (cons 72 2) (cons 11 point) (cons 73 3)))))	((= justify "ML") (setq Lst (append Lst (list (cons 72 0) (cons 11 point) (cons 73 2)))))((= justify "MC") (setq Lst (append Lst (list (cons 72 1) (cons 11 point) (cons 73 2)))))((= justify "MR") (setq Lst (append Lst (list (cons 72 2) (cons 11 point) (cons 73 2)))))((= justify "BL") (setq Lst (append Lst (list (cons 72 0) (cons 11 point) (cons 73 1)))))((= justify "BC") (setq Lst (append Lst (list (cons 72 1) (cons 11 point) (cons 73 1)))))((= justify "BR") (setq Lst (append Lst (list (cons 72 2) (cons 11 point) (cons 73 1))))))(entmakex Lst));endmaketext(setq pheptinh (cond (pheptinh) ("Cong")))(initget "Cong Tru Nhan CHia")(setq pheptinh (cond ((getkword (strcat "\nchon phep tinh: [Cong/Tru/Nhan/CHia/] <" pheptinh ">: "))) (pheptinh)))(prompt "\nChon Hang-Cot so thu nhat..")(if (setq SS1 (ssget '((0 . "TEXT"))))(progn (prompt "Chon Hang-Cot so thu hai..")(if (setq SS2 (ssget '((0 . "TEXT"))))(progn(Setq TBS1 (ACET-GEOM-SS-EXTENTS-FAST SS1) SS1 (acet-ss-to-list SS1)TBS2 (ACET-GEOM-SS-EXTENTS-FAST SS2) SS2 (acet-ss-to-list SS2))(if (> (abs(- (car (car TBS1)) (car (cadr TBS1)))) (abs(- (cadr (car TBS1)) (cadr (cadr TBS1)))))(setq Hang TSS1 (vl-sort SS1 '(lambda (e1 e2) (< (cadr (assoc 10 (entget e1))) (cadr (assoc 10 (entget e2)))))))(setq Hang nilSS1 (vl-sort SS1 '(lambda (e1 e2) (> (caddr (assoc 10 (entget e1))) (caddr (assoc 10 (entget e2))))))))(if (> (abs(- (car (car TBS2)) (car (cadr TBS2)))) (abs(- (cadr (car TBS2)) (cadr (cadr TBS2)))))(setq SS2 (vl-sort SS2 '(lambda (e1 e2) (< (cadr (assoc 10 (entget e1))) (cadr (assoc 10 (entget e2)))))))(setq SS2 (vl-sort SS2 '(lambda (e1 e2) (> (caddr (assoc 10 (entget e1))) (caddr (assoc 10 (entget e2))))))))(if (> (length SS1) (length SS2)) (setq lap (length SS1) i 0) (setq lap (length SS2) i 0))(setq LstKQ '())(if (setq PT0 (getpoint (strcat "\nchon diem dat " (if Hang "hang" "cot") " ket qua. Enter de ghi va Hang-Cot text khac")))(progn (vl-cmdf "ucs" "w")(repeat lap(setq SSn (nth i SS1))(maketext(if (= hang nil)(setq PTi (list (car PT0) (cadr (DXF 10 SSn))))(setq PTi (list (car (DXF 10 SSn)) (cadr PT0))))(cond ((eq pheptinh "Cong")	(rtos (+ (atof (DXF 1 SSn)) (atof (DXF 1 (nth i SS2)))) 2 2))((eq pheptinh "Tru")	(rtos (- (atof (DXF 1 SSn)) (atof (DXF 1 (nth i SS2)))) 2 2))((eq pheptinh "Nhan")	(rtos (* (atof (DXF 1 SSn)) (atof (DXF 1 (nth i SS2)))) 2 2))((eq pheptinh "CHia")	(rtos (/ (atof (DXF 1 SSn)) (atof (DXF 1 (nth i SS2)))) 2 2)))(DXF 40 SSn) 0 "R"(DXF 7 SSn) (DXF 8 SSn) nil nil)(setq  i (1+ i)))(vl-cmdf "ucs" "p"))(progn(prompt "\nChon Hang hoac Cot text de ghi ket qua")(if (setq SS3 (ssget '((0 . "TEXT"))))(setq TBS3 (ACET-GEOM-SS-EXTENTS-FAST SS3)SS3 (acet-ss-to-list SS3))(EXIT))(if (> (abs(- (car (car TBS3)) (car (cadr TBS3)))) (abs(- (cadr (car TBS3)) (cadr (cadr TBS3)))))(setq SS3 (vl-sort SS3 '(lambda (e1 e2) (< (cadr (assoc 10 (entget e1))) (cadr (assoc 10 (entget e2)))))))(setq SS3 (vl-sort SS3 '(lambda (e1 e2) (> (caddr (assoc 10 (entget e1))) (caddr (assoc 10 (entget e2))))))))(vl-cmdf "undo" "begin")(repeat lap(setq SSn (nth i SS1))(if (setq SSn3 (nth i SS3))(entmod-en 1(cond ((eq pheptinh "Cong")	(rtos (+ (atof (DXF 1 SSn)) (atof (DXF 1 (nth i SS2)))) 2 2))((eq pheptinh "Tru")	(rtos (- (atof (DXF 1 SSn)) (atof (DXF 1 (nth i SS2)))) 2 2))((eq pheptinh "Nhan")	(rtos (* (atof (DXF 1 SSn)) (atof (DXF 1 (nth i SS2)))) 2 2))((eq pheptinh "CHia")	(rtos (/ (atof (DXF 1 SSn)) (atof (DXF 1 (nth i SS2)))) 2 2))) SSn3)(progn(alert (strcat "tap hop text khong du de ghi ket qua. Thieu "(rtos (- lap i) 2 0)" text"))(vl-cmdf "undo" "end")(EXIT)))(setq  i (1+ i)))(vl-cmdf "undo" "end")));if);progn)));if(princ));end

he hôm nay vẫn còn người sử dụng đó bác à

thanks bác

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

Tạo một tài khoản hoặc đăng nhập để nhận xét

Bạn cần phải là một thành viên để lại một bình luận

Tạo tài khoản

Đăng ký một tài khoản mới trong cộng đồng của chúng tôi. Điều đó dễ mà.

Đăng ký tài khoản mới

Đăng nhập

Bạn có sẵn sàng để tạo một tài khoản ? Đăng nhập tại đây.

Đăng nhập ngay

×