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

[yêu cầu] Lisp chia đoạn thẳng!

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

Em đang cần giải quyết 2 vấn đề sau:

* Vấn đề 1: Em muốn chia một đoạn thẳng (2D Polyline), có số đoạn chia nhập từ bàn phím. Em hay làm: tạo điểm gãy trên đoạn thẳng đó, sau đó dùng lênh PE nối chúng lại, việc này rất mất thời gian. Áp dụng cách chia như vậy cho nhiều đối tượng trên bản vẽ. Các đối tượng trước chia và sau khi được chia có thuộc tính giống nhau về lớp, màu sắc, linetype.... (Em thấy trên diễn đàn có lisp nhưng chỉ chia theo kiểu đánh dấu point, không phù hợp với mục đích). 

* Vấn đề 2: Chia một đoạn thẳng (2D Polyline) biết trước chiều dài của nó. Ví dụ: em có một đoạn thẳng AD (2D Polyline) có chiều dài 10, em muốn chia nó thành đoạn AB dài 2, đoạn BC dài 4, còn lại là đoạn CD. Sau đó nối chúng lại với nhau (giống vấn đề 1). Chiều dài đoạn AB, BC nhập từ bàn phím...Áp dụng cách chia như vậy cho nhiều đối tượng trên bản vẽ. Các đối tượng trước chia và sau khi được chia có thuộc tính giống nhau về lớp, màu sắc, linetype...

Rất mong ý kiến đóng góp của mọi người. Chân thành cảm ơ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

Sao không thấy ai giúp mình hết!!!  :(

Hề hề hề,

1/- hãy gửi bản vẻ thể hiện những điều bạn cần lên nhé.

2/- 2d polyline có thể là một đường gấp khúc gồm nhiều đoạn thẳng hoặc cong nối với nhau, Vậy khi chia nếu các điểm chia không trùng với mút của các đoạn này thì xử lý ra sao???

3/- Nếu bạn thấy cái líp chia đã có trên diễn đàn có kết quả là các điểm chia đúng với ý đồ của bạn thì hãy post cái lisp đó lên, mọi người sẽ giúp bạn làm thêm phần break cái polyline này tại các điểm chia để biến nó thành các đoạn rời rạc như bạn muốn.

4/- Nếu bạn không thể đáp ứng những yêu cầu trên thì nên quên cái yêu cầu của bạn đi vì chả ai có thể đoán mò được ý của bạn để làm lisp đâ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

Bạn dùng Lisp này xem đúng ý chưa. Lệnh CDT1 dùng để chia đường thẳng thành nhiều đoạn bằng nhau. Có thể quét chọn để chia hàng loạt đường thẳng cùng lúc. Lệnh CDT2 dùng để chia đường thẳng thành những đoạn có độ dài bằng khoảng cách nhập từ bàn phím. Khi kết thúc thì bấm Space hoặc Enter.


;LISP CHIA DUONG THANG THANH NHIEU DOAN BANG NHAU VA VE THANH POLYLINE
(defun C:CDT1(/ taphop n i obj vlaobj d dt os)
(command "UNDO" "BE")
(setq os(getvar "OSMODE"))
(setvar "OSMODE" 0)
(setq taphop(ssget '((0 . "POLYLINE,LWPOLYLINE"))))
(setq n(atoi(lisped "Nhap so doan can chia vao day")))
(setq i 0)
(while (< i (sslength taphop))
(setq obj(ssname taphop i))
(setq vlaobj(vlax-ename->vla-object obj))
(setq d 0)
(command "PLINE")
(while (<= d (vla-get-length vlaobj))
(command (vlax-curve-getPointAtDist obj d))
(setq d(+ d (/ (vla-get-length vlaobj) n))))
(command "")
(setq dt(vlax-ename->vla-object (entlast)))
(vla-put-linetype dt (vla-get-linetype vlaobj))
(vla-put-LinetypeScale dt (vla-get-LinetypeScale vlaobj))
(vla-put-lineweight dt (vla-get-lineweight vlaobj))
(vla-put-color dt (vla-get-color vlaobj))
(vla-put-layer dt (vla-get-layer vlaobj))
(vla-delete vlaobj)
(setq i (1+ i))
)
(setvar "OSMODE" os)
(command "UNDO" "END")
(princ)
)
;LISP CHIA DUONG THANG THANH NHIEU DOAN BANG KHOANG CACH NHAP TU BAN PHIM
(defun C:CDT2(/ obj vlaobj dt i S d os)
(command "UNDO" "BE")
(setq os(getvar "OSMODE"))
(setvar "OSMODE" 0)
(while (setq obj(car (entsel "\n Chon doan thang can chia: ")))
(setq i 1 S 0 vlaobj(vlax-ename->vla-object obj))
(command "PLINE" (vlax-curve-getPointAtDist obj 0))
(while (setq d(getreal (strcat "\n Nhap chieu dai doan thu " (itoa i) ": ")))
(if (<= (+ S d) (vla-get-length (vlax-ename->vla-object obj)))
(progn
(setq S(+ S d))
(command (vlax-curve-getPointAtDist obj S))
(setq i(1+ i))
)
(alert "Tong chieu dai vuot qua chieu dai ban dau")
)
)
(if (= d nil) (command (vlax-curve-getPointAtDist obj (vla-get-length (vlax-ename->vla-object obj)))))
(command "")
(setq dt(vlax-ename->vla-object (entlast)))
(vla-put-linetype dt (vla-get-linetype vlaobj))
(vla-put-LinetypeScale dt (vla-get-LinetypeScale vlaobj))
(vla-put-lineweight dt (vla-get-lineweight vlaobj))
(vla-put-color dt (vla-get-color vlaobj))
(vla-put-layer dt (vla-get-layer vlaobj))
(vla-delete vlaobj)
)
(setvar "OSMODE" os)
(command "UNDO" "END")
(princ)
)

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 Tác Giả và mọi người đã quan tâm tới bài viết của em.... Nhưng sau khi sử dụng em thấy có một vài khuất mắt sau:

*Lệnh CDT1: 

    + Sau khi chạy Lisp báo lỗi Select objects:  ; error: no function definition: LISPED (cad 2007). Nếu dùng cad 2005 thì ok... Mong tác giả chỉnh giúp Lisp cho tương thích với cad 2007. ( Vì em chỉ quen dùng cad 2007... hihihi).

     + Nếu dùng cad2005, sau khi nhập số đoạn chia, kết quả đối tượng được chia bị ngắn mất một đoạn. Em muốn chiều dài nó không thay đổi.

*Lênh CHT2:

     + Thay vì nhập chiều dài mỗi đoạn, mình sẽ có thêm lựa chọn pick điểm trên màn hình... vì em thấy có cái bất tiện là xác định điểm cuối cùng.

     + Có cách nào áp dụng cùng lúc cho nhiều đối tượng luôn được không!!!!

Chân thành 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

Cảm ơn Tác Giả và mọi người đã quan tâm tới bài viết của em.... Nhưng sau khi sử dụng em thấy có một vài khuất mắt sau:

*Lệnh CDT1: 

    + Sau khi chạy Lisp báo lỗi Select objects:  ; error: no function definition: LISPED (cad 2007). Nếu dùng cad 2005 thì ok... Mong tác giả chỉnh giúp Lisp cho tương thích với cad 2007. ( Vì em chỉ quen dùng cad 2007... hihihi).

     + Nếu dùng cad2005, sau khi nhập số đoạn chia, kết quả đối tượng được chia bị ngắn mất một đoạn. Em muốn chiều dài nó không thay đổi.

*Lênh CHT2:

     + Thay vì nhập chiều dài mỗi đoạn, mình sẽ có thêm lựa chọn pick điểm trên màn hình... vì em thấy có cái bất tiện là xác định điểm cuối cùng.

     + Có cách nào áp dụng cùng lúc cho nhiều đối tượng luôn được không!!!!

Chân thành cảm ơn.

Cad2007 của bạn cài thiếu Express

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

Không phải bác Duy ạ. Hàm LISPED nằm ở trong file "acad2007doc.lsp" - là file gốc của cad chứ không phải của tool express.

  • 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

Lisp sửa lại theo ý bạn đây. Bạn chạy lại xem đã đúng ý chưa. Lệnh CDT1 đã khắc phục lỗi thiếu 1 đoạn sau khi chia. Lệnh CDT2 bổ sung việc chọn cùng lúc nhiều đường thẳng cần chia, sau đó nhập chiều dài từng đoạn từ bàn phím. Tuy nhiên do chiều dài các đường thẳng cần chia khác nhau nên kết quả có thể ra khác nhau giữa các đường thẳng. Ví dụ chọn 2 đường thẳng dài 10 và 20 sau đó nhập vào các đoạn chia là 3, 6, 2, 5 thì kết quả đường thẳng thứ nhất sẽ có độ dài các đoạn lần lượt là 3, 6 và 1 (3 đoạn), còn đường thẳng thứ hai sẽ là 3, 6, 2, 5, và 4 (5 đoạn)

;LISP CHIA DUONG THANG THANH NHIEU DOAN BANG NHAU VA VE THANH POLYLINE
(defun C:CDT1(/ taphop i obj vlaobj d dt)
  (command "UNDO" "BE")
  (setq os(getvar "OSMODE"))
  (setvar "OSMODE" 0)
  (setq taphop(ssget '((0 . "POLYLINE,LWPOLYLINE"))))
  (if (= n nil) (setq n1 1) (setq n1 n))
  (setq n (getint (strcat "\n So doan can chia: <" (rtos n1 2 0) "> ")))
  (if (= n nil) (setq n n1))
  (setq i 0)
  (while (< i (sslength taphop))
    (setq obj(ssname taphop i))
    (setq vlaobj(vlax-ename->vla-object obj))
    (setq d 0)
    (command "PLINE")
    (while (< d (vla-get-length vlaobj))
      (command (vlax-curve-getPointAtDist obj d))
      (setq d(+ d (/ (vla-get-length vlaobj) n))))
    (command (vlax-curve-getPointAtDist obj (vla-get-length (vlax-ename->vla-object obj))) "")
    (setq dt(vlax-ename->vla-object (entlast)))
    (vla-put-linetype dt (vla-get-linetype vlaobj))
    (vla-put-LinetypeScale dt (vla-get-LinetypeScale vlaobj))
    (vla-put-lineweight dt (vla-get-lineweight vlaobj))
    (vla-put-color dt (vla-get-color vlaobj))
    (vla-put-layer dt (vla-get-layer vlaobj))
    (vla-delete vlaobj)
    (setq i (1+ i))
    )
  (setvar "OSMODE" os)
  (command "UNDO" "END")
  (princ)
  )
;LISP CHIA DUONG THANG THANH NHIEU DOAN BANG KHOANG CACH NHAP TU BAN PHIM
(defun C:CDT2(/ taphop i obj vlaobj d dt)
  (command "UNDO" "BE")
  (setq os(getvar "OSMODE"))
  (setvar "OSMODE" 0)
  (setq taphop(ssget '((0 . "POLYLINE,LWPOLYLINE"))))
  (setq lst(list))
  (setq i 1)
  (while (setq d(getreal (strcat "\n Nhap chieu dai doan thu " (itoa i) ": ")))
    (setq lst(append lst (list d)))
    (setq i(1+ i)))
  (setq i 0)
  (while (< i (sslength taphop))
    (setq obj(ssname taphop i))
    (setq vlaobj(vlax-ename->vla-object obj))
    (setq S 0)
    (command "PLINE" (vlax-curve-getPointAtDist obj 0))
    (foreach d lst
      (if (< (+ S d) (vla-get-length vlaobj))
	(progn
	  (setq S(+ S d))
	  (command (vlax-curve-getPointAtDist obj S)))))
    (command (vlax-curve-getPointAtDist obj (vla-get-length (vlax-ename->vla-object obj))) "")
    (setq dt(vlax-ename->vla-object (entlast)))
    (vla-put-linetype dt (vla-get-linetype vlaobj))
    (vla-put-LinetypeScale dt (vla-get-LinetypeScale vlaobj))
    (vla-put-lineweight dt (vla-get-lineweight vlaobj))
    (vla-put-color dt (vla-get-color vlaobj))
    (vla-put-layer dt (vla-get-layer vlaobj))
    (vla-delete vlaobj)
    (setq i (1+ i))
    )
  (setvar "OSMODE" os)
  (command "UNDO" "END")
  (princ)
  )

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

Mong tác giả xem lại giúp

+Lệnh CDT1: Load lisp xong, sử dụng lệnh, đối tượng được chia có lúc thì chia được, có lúc thì chia thiếu mất một đoạn, ví dụ: gõ 4 đoạn mà chỉ chia 3... thiếu mất 1 đoạn.

+Lệnh CTD2 thì ok rồ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

Sao lại như vậy được. Có lỗi gì khi down Lisp về không? Test trên máy tôi thì chạy bình thường không thấy thiếu đoạn nào. Bạn thử một trong những cách dưới đây xem sao:

1. Down lại Lisp bằng link này: http://www.cadviet.com/upfiles/3/71162_30lisp_chia_doan_thang_theo_so_doan_hoac_theo_khoang_cach.lsp

2. Chạy Lisp với nhiều máy tính khác nhau xem có máy nào bị lỗi không?

3. Gửi bản vẽ bị lỗi của bạn lên xem sao.

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

Vẫn bị lỗi Anh ơi!!! 

1 Em đã Down lại Lisp.

2. Chay Lisp trên 3 máy khác nhau. Mỗi máy chay 2 phiên bản cad2005 và cad2007

3. File bản vẽ của em.

(em load lisp: dùng lệnh, chon thử 1 đối tượng cần chia, gõ giá trị 4, kết quả đối tuợng chỉ chia 3 đoạn, lúc này đối tượng ngắn đi một đoạn..)

http://www.cadviet.com/upfiles/3/119160_chia_doan_thang_loi.dwg

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

KIểu chia curve của KK không phải lúc nào cũng đúng nên mới có lúc đúng lúc sai là vậy. KK phải lấy (n-1) đoạn trước, sau đó thêm đoạn cuối cùng nhé!

Lý do: phép lấy length của curve là 1 phép tính gần đúng chứ không tuyệt đối đúng. Mình đã đau đầu với trường hợp này 1 lần rồi đó.

  • 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

Rắc rối là ở đây (vlax-curve-getPointAtDist obj (vla-get-length vlaobj)) có lúc đúng lúc sai do độ chính xác. Lisp mới dưới đây sẽ khắc phục lỗi đó.

;LISP CHIA DUONG THANG THANH NHIEU DOAN BANG NHAU VA VE THANH POLYLINE
(defun C:CDT1(/ taphop i obj vlaobj d dt)
  (command "UNDO" "BE")
  (setq os(getvar "OSMODE"))
  (setvar "OSMODE" 0)
  (setq taphop(ssget '((0 . "POLYLINE,LWPOLYLINE"))))
  (if (= n nil) (setq n1 1) (setq n1 n))
  (setq n (getint (strcat "\n So doan can chia: <" (rtos n1 2 0) "> ")))
  (if (= n nil) (setq n n1))
  (setq i 0)
  (while (< i (sslength taphop))
    (setq obj(ssname taphop i))
    (setq vlaobj(vlax-ename->vla-object obj))
    (setq d 0)
    (command "PLINE")
    (while (< d (vla-get-length vlaobj))
      (command (vlax-curve-getPointAtDist obj d))
      (setq d(+ d (/ (vla-get-length vlaobj) n))))
    (command (vlax-curve-getendpoint vlaobj) "")
    (setq dt(vlax-ename->vla-object (entlast)))
    (vla-put-linetype dt (vla-get-linetype vlaobj))
    (vla-put-LinetypeScale dt (vla-get-LinetypeScale vlaobj))
    (vla-put-lineweight dt (vla-get-lineweight vlaobj))
    (vla-put-color dt (vla-get-color vlaobj))
    (vla-put-layer dt (vla-get-layer vlaobj))
    (vla-delete vlaobj)
    (setq i (1+ i))
    )
  (setvar "OSMODE" os)
  (command "UNDO" "END")
  (princ)
  )
;LISP CHIA DUONG THANG THANH NHIEU DOAN BANG KHOANG CACH NHAP TU BAN PHIM
(defun C:CDT2(/ taphop i obj vlaobj d dt)
  (command "UNDO" "BE")
  (setq os(getvar "OSMODE"))
  (setvar "OSMODE" 0)
  (setq taphop(ssget '((0 . "POLYLINE,LWPOLYLINE"))))
  (setq lst(list))
  (setq i 1)
  (while (setq d(getreal (strcat "\n Nhap chieu dai doan thu " (itoa i) ": ")))
    (setq lst(append lst (list d)))
    (setq i(1+ i)))
  (setq i 0)
  (while (< i (sslength taphop))
    (setq obj(ssname taphop i))
    (setq vlaobj(vlax-ename->vla-object obj))
    (setq S 0)
    (command "PLINE" (vlax-curve-getPointAtDist obj 0))
    (foreach d lst
      (if (< (+ S d) (vla-get-length vlaobj))
	(progn
	  (setq S(+ S d))
	  (command (vlax-curve-getPointAtDist obj S)))))
    (command (vlax-curve-getendpoint vlaobj) "")
    (setq dt(vlax-ename->vla-object (entlast)))
    (vla-put-linetype dt (vla-get-linetype vlaobj))
    (vla-put-LinetypeScale dt (vla-get-LinetypeScale vlaobj))
    (vla-put-lineweight dt (vla-get-lineweight vlaobj))
    (vla-put-color dt (vla-get-color vlaobj))
    (vla-put-layer dt (vla-get-layer vlaobj))
    (vla-delete vlaobj)
    (setq i (1+ i))
    )
  (setvar "OSMODE" os)
  (command "UNDO" "END")
  (princ)
  )
  • Like 1
  • Vote tăng 3

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

Dùng acet-geom-vertex-list để "ép" user phải cài express là "chơi chưa đẹp" rồi KK ơi! :lol:  Trong khi vlax- vẫn ngon lành mà!

  • 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

Vừa mới tìm ra cái thằng này: vlax-curve-getendpoint nên đổi lại code tí cho phép không cài Express vẫn chạy được. Bạn khongbietthihoi down lại ở trên nhé.

  • 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

Cuối cùng thì em đã có được cái mình cần, Xin chân thành cảm ơn Anh Kangkung, Cảm ơn Anh Hà... Chúc các anh sức khoẻ, thành công!. :mellow:  :P

Bạn ơi lời nói kết hợp hành động luôn đi, có thấy bài nào có số 1,2 lượt like nào đâu

  • 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

ank Anh Kangkung có thể viết giúp em 1 list đc không ạ

cũng như lít cdt2 của ank ở trên nhưung thay vì nhập độ dài đoạn thẳng ta có thể click điểm trực tiếp 

em có dùng thử list cdt1 của ank ở trên nhưng có 1 vấn đề là khi em chia đường đa tuyến cong thành nhiều đoạn thì nó không còn cong nữa mà là các đường thẳ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

Nhầm lẫn về các loại hình polyline khác nhau mà bạn nhìn thấy trong AutoCAD?

Từ quan điểm người dùng cuối có 3 loại polyline được liệt kê trong lệnh PROPERTIES, mặc dù chỉ có hai "thực thể" các loại.

    
polyline - đây là một thực thể LWPOLYLINE, luôn luôn 2D.
    
Polyline 2d - đây là một thực thể polyline, cũng 2D.
    
3d polyline - đây là một thực thể polyline, thường 3D, với mỗi đỉnh ở độ cao khác nhau. Có thể có một "3d polyline" và có mỗi đỉnh ở độ cao tương tự.

Nếu bạn sử dụng lệnh LIST trên bất kỳ polyline, bạn sẽ chỉ nhìn thấy
tên thực thể (POLYLINE hoặc LWPOLYLINE).

Thực thể polyline là loại ban đầu. Các đơn vị LWPOLYLINE được giới thiệu vào R14.

Nếu PLINETYPE = 0 (không), sau đó các lệnh PLINE sẽ tạo ra các thực thể polyline.
Nếu PLINETYPE = 1 hoặc 2, sau đó lệnh PLINE sẽ tạo ra các thực thể LWPOLYLINE.

Để tạo ra polylines 3D, sử dụng lệnh 3DPOLY.

Để chuyển đổi giữa POLYLINE và LWPOLYLINE thực thể, sử dụng lệnh CONVERTPOLY.

Nếu bạn đang sử dụng AutoLISP, bạn chỉ cần phải lo lắng về các tên thực thể (POLYLINE và LWPOLYLINE.) Một "3d polyline" chỉ đơn giản là một thực thể polyline với một lá cờ tập đặc biệt. Khi lá cờ này được thiết lập, mỗi sub-entity đỉnh có thể được thiết lập để một độ cao khác nhau.

Tùy thuộc vào những gì khác mà bạn có thể làm, bạn cũng có thể nhìn thấy
những cái tên như:
Acad3DPolyline, hoặc AcDb3dPolyline
AcadPolyline, hoặc AcDb2dPolyline
AcadLWPolyline, hoặc AcDbPolyline

hầm lẫn về các loại hình polyline khác nhau mà bạn thấy trong AutoCAD?

Từ quan điểm người dùng cuối có 3 loại polyline được liệt kê trong lệnh PROPERTIES, mặc dù chỉ có hai "thực thể" các loại.

    
polyline - đây là một thực thể LWPOLYLINE, luôn luôn 2D.
    
Polyline 2d - đây là một thực thể polyline, cũng 2D.
    
3d polyline - đây là một thực thể polyline, thường 3D, với mỗi đỉnh ở độ cao khác nhau. Có thể có một "3d polyline" và có mỗi đỉnh ở độ cao tương tự.

Nếu bạn sử dụng lệnh LIST trên bất kỳ polyline, bạn sẽ chỉ nhìn thấy
tên thực thể (POLYLINE hoặc LWPOLYLINE).

Thực thể polyline là loại ban đầu. Các đơn vị LWPOLYLINE được giới thiệu vào R14.

Nếu PLINETYPE = 0 (không), sau đó các lệnh PLINE sẽ tạo ra các thực thể polyline.
Nếu PLINETYPE = 1 hoặc 2, sau đó lệnh PLINE sẽ tạo ra các thực thể LWPOLYLINE.

Để tạo ra polylines 3D, sử dụng lệnh 3DPOLY.

Để chuyển đổi giữa POLYLINE và LWPOLYLINE thực thể, sử dụng lệnh CONVERTPOLY.

Nếu bạn đang sử dụng AutoLISP, bạn chỉ cần phải lo lắng về các tên thực thể (POLYLINE và LWPOLYLINE.) Một "3d polyline" chỉ đơn giản là một thực thể polyline với một lá cờ tập đặc biệt. Khi lá cờ này được thiết lập, mỗi sub-entity đỉnh có thể được thiết lập để một độ cao khác nhau.

Tùy thuộc vào những gì khác mà bạn có thể làm, bạn cũng có thể nhìn thấy
những cái tên như:
Acad3DPolyline, hoặc AcDb3dPolyline
AcadPolyline, hoặc AcDb2dPolyline
AcadLWPolyline, hoặc AcDbPolyline

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

×