Chuyển đến nội dung
Diễn đàn CADViet
  • Thông báo

    • Nguyen Hoanh

      CADViet đã hoàn tất nâng cấp   14/09/2017

      Chào các bạn, CADViet đã hoàn tất việc nâng cấp lên phiên bản mới. Tất cả các chức năng đã hoạt động theo kỳ vọng của ban quản trị. Nếu có vấn đề gì cần phản hồi, các bản post ở đây nhé: Trân trọng, Nguyễn Hoành.
namhai

Lisp đánh số thứ tự bản vẽ tự động?

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

Bạn đã đọc kỹ chưa?

Tue_NV nói là cách thức của nó hoạt động tương tự như lệnh array

Hàng từ trái -> phải : khoảng cách hàng >0

Hàng từ phải -> trái : khoảng cách hàng < 0

 

Cột từ dưới lên trên : khoảng cách cột >0

Cột từ trên xuống dưới : khoảng cách cột <0

 

Mong là bạn hiểu.

Tue_NV upload file Lisp này có chỉnh sửa theo ý bạn

Tên lệnh dsbv

http://www.cadviet.com/upfiles/dsbv_1.vlx

Lisp này rất hay. Lệnh:

Command: dsbv

Ban ve dau tien la ban ve so :1

Cho diem chen cua ban ve dau tien :

So hang ban ve :2

Nhap khoang cach hang cua ban ve :-56

So cot ban ve :2

Nhap khoang cach cot cua ban ve :76

Bác có thể sửa lisp trên định dạng theo kiểu 01/05:

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

OK, mình update giúp bạn đây, hy vọng bạn vừa ý

;; free lisp from cadviet.com : ketxu update from @Tue_NV
(defun c:shbv(/ dau tong po po1 ent i pre sotong)
(prompt "\n Danh so hieu ban ve dang n/m ")
(setvar "cmdecho" 0)
(setq pre "< KC, CN KT>: ")
(wtxt pre '(0 0 0))
(command "ddedit" (entlast) "") 
(setq pre (cdr(assoc 1 (entget(entlast)))))
;(setq pre (strcat pre ": "))
(entdel (entlast))
(setq dau (getint "\n Danh so bat dau (n):"))
(setq tong (getint "\n Danh so tong (m):") i 1)
(if (< tong 10) (setq sotong (strcat "0" (itoa tong))) (setq sotong (itoa tong))) 
(setq po (getpoint 
(strcat "\n Cho diem chen cua so: " (if (< dau 10) (strcat pre "0" (itoa dau)) (itoa dau)) "/" sotong)))
(wtxt (strcat (if (< dau 10) (strcat pre "0" (itoa dau)) (itoa dau)) "/" sotong) po)

(Repeat (- tong dau)
(setq po1 (getpoint po 
(strcat "\n Cho diem chen cua so: " (if (< (+ dau i) 10) (strcat pre "0" (itoa (+ dau i))) (itoa (+ dau i))) "/" sotong)))

(command "copy" "L" "" po po1) 
(setq ent (entget(entlast)))
(setq ent 
(subst 
(cons 1 (strcat (if (< (+ dau i) 10) (strcat pre "0" (itoa (+ dau i))) (itoa (+ dau i))) "/" sotong)) (assoc 1 ent) ent))
(entmod ent)
(setq i (1+ i))
(setq po po1)
)
(princ)
)
;
(defun wtxt(txt p / sty d h1 h2 wf h) ;;;Write txt on graphic screen at p
(setq    sty (getvar "textstyle")    
d (tblsearch "style" sty)    
h1 (cdr (assoc 40 d))    
h2 (cdr (assoc 42 d))    
wf (cdr (assoc 41 d)))
(if (> h1 0) (setq h h1) (setq h h2))
(entmake (list (cons 0 "TEXT") (cons 7 sty) (cons 40 h) (cons 41 wf)(cons 72 4)(cons 11 p) (cons 1 txt) (cons 10 p))))

 

 

Lisp rất hay, nhưng đến phần " cho điểm chèn của số" mình muốn click thay số vào text có sẵn được không??.Nhờ bác sửa dùm. Thanks cả nhà.

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

Lâu rồi mà không thấy ai trả lời dùm với.

Hề hề hề,

Không hiểu cái yêu cầu của bạn thì làm sao mà trả lời??? Hãy cho một ví dụ cụ thể về cái text sẵn có ây nhé.

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

Hề hề hề,

Không hiểu cái yêu cầu của bạn thì làm sao mà trả lời??? Hãy cho một ví dụ cụ thể về cái text sẵn có ây nhé.

Theo mình ý bạn ấy là: trước khi đánh số chọn trước vị trí text sẵn ở tại vị trí muốn đánh số để text không bị nhảy.Lisp đang dùng khi chọn vị trí của text nếu điểm chèn không chuẩn sẽ bị nhảy không đúng vị trí?

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

Theo mình ý bạn ấy là: trước khi đánh số chọn trước vị trí text sẵn ở tại vị trí muốn đánh số để text không bị nhảy.Lisp đang dùng khi chọn vị trí của text nếu điểm chèn không chuẩn sẽ bị nhảy không đúng vị trí?

Hề hề hề,

Phải chăng bạn ấy muốn cái như thế này:

;; free lisp from cadviet.com : ketxu update from @Tue_NV
(defun c:shbv(/ dau tong po po1 ent i pre sotong en en1)
(command "undo" "be")
(prompt "\n Danh so hieu ban ve dang n/m ")
(setvar "cmdecho" 0)
(setq pre "< KC, CN KT>: ")
(wtxt pre '(0 0 0))
(command "ddedit" (entlast) "") 
(setq pre (cdr(assoc 1 (entget(entlast)))))
;(setq pre (strcat pre ": "))
(entdel (entlast))
(setq dau (getint "\n Danh so bat dau (n):"))
(setq tong (getint "\n Danh so tong (m):") i 1)
(if (< tong 10) (setq sotong (strcat "0" (itoa tong))) (setq sotong (itoa tong))) 
(setq po (cdr (assoc 11 (entget (car (setq en (entsel 
        (strcat "\n Hay chon text can thay the boi " pre (if (< dau 10) (strcat "0" (itoa dau)) (itoa dau)) "/" sotong))))))))
;;;;(getpoint (strcat "\n Cho diem chen cua so: " (if (< dau 10) (strcat pre "0" (itoa dau)) (itoa dau)) "/" sotong)))
(command "erase" en "")
(wtxt (strcat pre (if (< dau 10) (strcat "0" (itoa dau)) (itoa dau)) "/" sotong) po)

(Repeat (- tong dau)
(setq po1 (cdr (assoc 11 (entget (car (setq en1 (entsel 
          (strcat "\n Hay chon text can thay the boi " pre (if (< (+ dau i) 10) (strcat "0" (itoa (+ dau i))) (itoa (+ dau i))) "/" sotong))))))))
;;;(getpoint po (strcat "\n Cho diem chen cua so: " (if (< (+ dau i) 10) (strcat pre "0" (itoa (+ dau i))) (itoa (+ dau i))) "/" sotong)))
(command "erase" en1 "")
(command "copy" "L" "" po po1) 
(setq ent (entget(entlast)))
(setq ent 
(subst 
(cons 1 (strcat pre (if (< (+ dau i) 10) (strcat "0" (itoa (+ dau i))) (itoa (+ dau i))) "/" sotong)) (assoc 1 ent) ent))
(entmod ent)
(setq i (1+ i))
(setq po po1)
)
(command "undo" "e")
(princ)
)
;
(defun wtxt(txt p / sty d h1 h2 wf h) ;;;Write txt on graphic screen at p
(setq    sty (getvar "textstyle")    
d (tblsearch "style" sty)    
h1 (cdr (assoc 40 d))    
h2 (cdr (assoc 42 d))    
wf (cdr (assoc 41 d)))
(if (> h1 0) (setq h h1) (setq h h2))
(entmake (list (cons 0 "TEXT") (cons 7 sty) (cons 40 h) (cons 41 wf)(cons 72 4)(cons 11 p) (cons 1 txt) (cons 10 p))))

 

@Bác Tue_NV và Ketxu: Mạn phép sửa lại tí chút cái lisp của các bác cái chổ :

(wtxt (strcat (if (< dau 10) (strcat pre "0" (itoa dau)) (itoa dau)) "/" sotong) po)

Có nhẽ phải là:

(wtxt (strcat pre (if (< dau 10) (strcat "0" (itoa dau)) (itoa dau)) "/" sotong) po)

mới đúng ạ.

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ạn cho mình hỏi? có đánh được stt với block ATT không

vd mình có khung bv thế này

http://www.cadviet.com/upfiles/3/danh_so_thu_tu.dwg

ban danh' so tt jup minh` nhe'

tức là làm sao để bạn thay thế được số kt (text ATT)thành từ kt-01 đến kt-10....vv :blink:

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ạn cho mình hỏi? có đánh được stt với block ATT không

vd mình có khung bv thế này

http://www.cadviet.com/upfiles/3/danh_so_thu_tu.dwg

ban danh' so tt jup minh` nhe'

tức là làm sao để bạn thay thế được số kt (text ATT)thành từ kt-01 đến kt-10....vv :blink:

Bạn nên tham khảo thêm hàm attout, attin. Dùng hàm attout để xuất các thuộc tính ra file txt, chỉnh sửa các thuộc tính trong file txt này. Xong, Dùng hàm attin để cập nhập lại giá trị thuộc tính mình muốn chỉnh sửa. Như vậy, bản vẽ có khung tên là 1 block có thuộc tính sẽ thuận lợi chỉnh sửa hơn nhiều.

Chúc bạn thành công.

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ạn cho mình hỏi? có đánh được stt với block ATT không

vd mình có khung bv thế này

http://www.cadviet.com/upfiles/3/danh_so_thu_tu.dwg

ban danh' so tt jup minh` nhe'

tức là làm sao để bạn thay thế được số kt (text ATT)thành từ kt-01 đến kt-10....vv :blink:

Bạn ngó qua đây xem sao

Block Order

Phiên bản đầy đủ không còn (chắc do tiêu đề không rõ ràng) nhưng vẫn còn cái backup ^^

  • 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

Hề hề hề,

Phải chăng bạn ấy muốn cái như thế này:

;; free lisp from cadviet.com : ketxu update from @Tue_NV
(defun c:shbv(/ dau tong po po1 ent i pre sotong en en1)
(command "undo" "be")
(prompt "\n Danh so hieu ban ve dang n/m ")
(setvar "cmdecho" 0)
(setq pre "< KC, CN KT>: ")
(wtxt pre '(0 0 0))
(command "ddedit" (entlast) "") 
(setq pre (cdr(assoc 1 (entget(entlast)))))
;(setq pre (strcat pre ": "))
(entdel (entlast))
(setq dau (getint "\n Danh so bat dau (n):"))
(setq tong (getint "\n Danh so tong (m):") i 1)
(if (< tong 10) (setq sotong (strcat "0" (itoa tong))) (setq sotong (itoa tong))) 
(setq po (cdr (assoc 11 (entget (car (setq en (entsel 
        (strcat "\n Hay chon text can thay the boi " pre (if (< dau 10) (strcat "0" (itoa dau)) (itoa dau)) "/" sotong))))))))
;;;;(getpoint (strcat "\n Cho diem chen cua so: " (if (< dau 10) (strcat pre "0" (itoa dau)) (itoa dau)) "/" sotong)))
(command "erase" en "")
(wtxt (strcat pre (if (< dau 10) (strcat "0" (itoa dau)) (itoa dau)) "/" sotong) po)

(Repeat (- tong dau)
(setq po1 (cdr (assoc 11 (entget (car (setq en1 (entsel 
          (strcat "\n Hay chon text can thay the boi " pre (if (< (+ dau i) 10) (strcat "0" (itoa (+ dau i))) (itoa (+ dau i))) "/" sotong))))))))
;;;(getpoint po (strcat "\n Cho diem chen cua so: " (if (< (+ dau i) 10) (strcat pre "0" (itoa (+ dau i))) (itoa (+ dau i))) "/" sotong)))
(command "erase" en1 "")
(command "copy" "L" "" po po1) 
(setq ent (entget(entlast)))
(setq ent 
(subst 
(cons 1 (strcat pre (if (< (+ dau i) 10) (strcat "0" (itoa (+ dau i))) (itoa (+ dau i))) "/" sotong)) (assoc 1 ent) ent))
(entmod ent)
(setq i (1+ i))
(setq po po1)
)
(command "undo" "e")
(princ)
)
;
(defun wtxt(txt p / sty d h1 h2 wf h) ;;;Write txt on graphic screen at p
(setq    sty (getvar "textstyle")    
d (tblsearch "style" sty)    
h1 (cdr (assoc 40 d))    
h2 (cdr (assoc 42 d))    
wf (cdr (assoc 41 d)))
(if (> h1 0) (setq h h1) (setq h h2))
(entmake (list (cons 0 "TEXT") (cons 7 sty) (cons 40 h) (cons 41 wf)(cons 72 4)(cons 11 p) (cons 1 txt) (cons 10 p))))

 

@Bác Tue_NV và Ketxu: Mạn phép sửa lại tí chút cái lisp của các bác cái chổ :

(wtxt (strcat (if (< dau 10) (strcat pre "0" (itoa dau)) (itoa dau)) "/" sotong) po)

Có nhẽ phải là:

(wtxt (strcat pre (if (< dau 10) (strcat "0" (itoa dau)) (itoa dau)) "/" sotong) po)

mới đúng ạ.

 

 

Rất cảm ơn 2 bạn đã hiểu đúng ý mình :D.

Không biết có phải tại máy mình không???, khi kick vào text có sẵn thì text mới bị nhảy lung tung và dồn lại 1 cục...

Nhờ bạn kiểm tra lại dùm.

Cảm ơn nhiều nhiều.

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

Em có lisp này để đánh số bản vẽ có chứa block ATT

(defun c:dsbv (/ ans ins lst blkName tagName ent);Block Order
;; By : Gia_Bach, www.CadViet.com ;;
(vl-load-com)
(while (not (and
(setq ent (car (nentsel "\n Chon thuoc tinh can danh so: ")))
(if ent (eq (cdr (assoc 0 (entget ent))) "ATTRIB") ) ) )
(princ "\n Ban chon nham roi! ") )
(setq blkName (cdr (assoc 2 (entget (cdr (assoc 330 (entget ent))))))
tagName (cdr (assoc 2 (entget ent))) )

(initget 1 "Yes No")
(setq x (getkword "\nBan co muon nhap Tien to ? (Yes or No) "))
(if (= x "Yes")
(progn
(or prefix (setq prefix "KC-"))
(setq ans (getstring t (strcat "\n Nhap tien to <<"prefix ">> :")))
(if (/= ans "")(setq prefix ans)) )
(setq prefix ""))

(or stt (setq stt 1))
(initget 6)
(setq ans (getint (strcat "\n Nhap so bat dau <<"(itoa stt) ">> :")))
(if ans (setq stt ans))
(if (> stt 9)
(setq str (strcat prefix (itoa stt)))
(setq str (strcat prefix "0" (itoa stt))) )

(princ "\nChon Khung ten can danh so thu tu :")
(if (ssget(list (cons 0 "INSERT")(cons 66 1)(cons 2 blkName)))
(progn
(vlax-for e (vla-get-ActiveSelectionSet (vla-get-ActiveDocument (vlax-get-Acad-Object)))
(setq ins (vlax-safearray->list (variant-value (vla-get-InsertionPoint e)))
lst (cons (list e ins)lst)) )
(setq lst (vl-sort lst '(lambda (x y) (or (> (cadr (cadr x)) (cadr (cadr y)))
(and (< (car (cadr x)) (car (cadr y)))
(= (cadr (cadr x)) (cadr (cadr y))) ) ) ) ))
(foreach e (append (mapcar 'car lst) )
(foreach Att (vlax-invoke e 'GetAttributes)
(if (= (vla-get-TagString att) tagName)
(vla-put-TextString att str) ))
(setq stt (+ 1 stt))
(if (> stt 9)
(setq str (strcat prefix (itoa stt)))
(setq str (strcat prefix "0" (itoa stt))) ) ) ) )
(princ))

Giờ em muốn hiện số block được chọn thì làm như thế nào ?

Em thêm đoạn :

(alert(strcat "Tong so doi tuong Block la :" stt))

vào giữa đoạn:

(setq str (strcat prefix (itoa stt)))

(alert(strcat "Tong so doi tuong Block la :" stt))

(setq str (strcat prefix "0" (itoa stt))) ) ) ) )

Không thấy kết quả ?

Mong các bác chỉ giúp.

Hoặc có thể thêm đoạn mã để lấy ra số đối tượng ATT được chọn ?

  • 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

Bạn ngó qua đây xem sao

Block Order

Phiên bản đầy đủ không còn (chắc do tiêu đề không rõ ràng) nhưng vẫn còn cái backup ^^

cám ơn các bạn

mình đã có câu trả lời

rất tuyệt vời khi có lít này

bay giờ đánh tt bản vẽ blok ATT, trong vài giây rồi he he :rolleyes:

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

cám ơn các bạn

mình đã có câu trả lời

rất tuyệt vời khi có lít này

bay giờ đánh tt bản vẽ blok ATT, trong vài giây rồi he he :rolleyes:

Block ATT là thế nào vậy bạn?? . Mù tịt về cái này..... hic

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

OK, mình update giúp bạn đây, hy vọng bạn vừa ý

;; free lisp from cadviet.com : ketxu update from @Tue_NV(defun c:shbv(/ dau tong po po1 ent i pre sotong)(prompt "\n Danh so hieu ban ve dang n/m ")(setvar "cmdecho" 0)(setq pre "< KC, CN KT>: ")(wtxt pre '(0 0 0))(command "ddedit" (entlast) "") (setq pre (cdr(assoc 1 (entget(entlast)))));(setq pre (strcat pre ": "))(entdel (entlast))(setq dau (getint "\n Danh so bat dau (n):"))(setq tong (getint "\n Danh so tong (m):") i 1)(if (< tong 10) (setq sotong (strcat "0" (itoa tong))) (setq sotong (itoa tong))) (setq po (getpoint (strcat "\n Cho diem chen cua so: " (if (< dau 10) (strcat pre "0" (itoa dau)) (itoa dau)) "/" sotong)))(wtxt (strcat (if (< dau 10) (strcat pre "0" (itoa dau)) (itoa dau)) "/" sotong) po)(Repeat (- tong dau)(setq po1 (getpoint po (strcat "\n Cho diem chen cua so: " (if (< (+ dau i) 10) (strcat pre "0" (itoa (+ dau i))) (itoa (+ dau i))) "/" sotong)))(command "copy" "L" "" po po1) (setq ent (entget(entlast)))(setq ent (subst (cons 1 (strcat (if (< (+ dau i) 10) (strcat pre "0" (itoa (+ dau i))) (itoa (+ dau i))) "/" sotong)) (assoc 1 ent) ent))(entmod ent)(setq i (1+ i))(setq po po1))(princ));(defun wtxt(txt p / sty d h1 h2 wf h) ;;;Write txt on graphic screen at p(setq    sty (getvar "textstyle")    d (tblsearch "style" sty)    h1 (cdr (assoc 40 d))    h2 (cdr (assoc 42 d))    wf (cdr (assoc 41 d)))(if (> h1 0) (setq h h1) (setq h h2))(entmake (list (cons 0 "TEXT") (cons 7 sty) (cons 40 h) (cons 41 wf)(cons 72 4)(cons 11 p) (cons 1 txt) (cons 10 p))))

Lisp này hay rồi nhưng nếu cách thức hoạt động dạng array như lisp dsbv của bác Tue_VN thì hay quá.

Mong các pro thêm phần này vào nữa.

P/S: phần số thì thay đổi theo cấp số cộng, còn phần chữ thì cố định, và tùy ý người sử dụng chọn. Vd: abc-01 hoặc xyz-01

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

Em tìm mãi mà không thấy có, ai biết link không cho em xin vơi?

Hề hề hề,

1/- Bạn đã tìm thấy cái chi ??? Mình không tin trên diễn đàn chưa co lisp copy tăng dần hay giảm dần. Hãy tìm với từ khóa lisp copy tăng dần. hoặc lisp đánh số thứ tự.

2/- Nếu tất cả các lisp đã có trên diễn đàn chưa đáp ứng đúng yêu cầu của bạn thì hãy gửi cả bản vẽ thể hiện các yêu cầu của bạn lên, có thế mọi người mới biết đường mà giúp.

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

Em đã tìm rồi mà khộng thấy, có lisp copy tăng dần nhưng không phải lisp em cần, ý em là giờ em có 1 đường polyline, em muốn đánh số thứ tự cho các điểm trên đường polyline, chọn được điểm bắt đầu và số bắt đầu ghi. Bác nào có thể giúp em voi?

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ạn post bản vẽ lên và thể hiện y/c trên bản vẽ. Nếu chiều nay không ai viết thì tôi sẽ giúp bạn.

ví dụ em có 1 đường pollyline, có 10 điểm chẳng hạn, từ điểm 1 đến điểm 10. giờ em muốn có lisp kiểu như thế này anh ah:

gõ lệnh\ pick vào đường polyline\ chọn điểm bắt đầu đánh số\ chọn số đầu tiên\ chọn bước nhảy.

Bác hiểu ý em không ạ? ví dụ em muốn đánh số cho 10 điểm của đường polyline là từ 1 đến 10, em gõ lệnh, pick vào được polyline\ chọn điểm đầu đường polyline\ nhập 1\ bước nhảy 1. kiểu như thế đấy.

Mong bác giúp được em.hi

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

Quick code. Lần sau bạn nhớ chú ý cách đặt vấn đề và nội quy box này :

 

(defun c:test(/ i adoc)(vl-load-com)(command "undo" "be")
(setq i -1 a (acet-geom-vertex-list (car (entsel "\nChon Pline :"))))
(mapcar '(lambda(x y)(or (eval x) (set x y))
(set x (cond ((getreal (strcat "\nNhap " (vl-princ-to-string x) ": <" (rtos (eval x) 2 2) ">")))
	((eval x))
  )
))
'(1st inc h)'(1 1 1))
(mapcar
'(lambda(x)
 (vla-addtext
  (cond  (adoc)
	((setq adoc (vla-get-modelspace (vla-get-activedocument (vlax-get-acad-object)))))
  )
  (rtos (+ 1st (* (setq i (1+ i)) inc)) 2 0)  
  (vlax-3d-point x)
  h
 )
)
(if (wcmatch (getstring "\nGiu nguyen chieu ? <y> ") ",[yY]")
 a
 (reverse a)
)
)(command "undo" "en")
)

  • Vote tăng 4

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

Ketxu gửi cho anh cái tool hoàn thiện của em cho anh nhé. Lần trước em đang viết dở dang ý. Tra cứu mã và có ví dụ đi kèm.

Em gửi vào heaven2407@gmail.com cho anh nhé. Anh sẽ ngâm cứu dần dần và sẽ post trả lời thay các bác cho đỡ mệt (mấy bác Doan Van Ha, Pham Thanh Binh, Nguyen Hoanh, Gia_Bach, .....viết hơi nhiều). Hiiii. Thanks em nhé. HIi

  • Vote tăng 2

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


×