Đến nội dung


Hình ảnh
* * * - - 8 Bình chọn

Viết lisp theo yêu cầu [phần 2]


  • Chủ đề bị khóa Chủ đề bị khóa
3783 replies to this topic

#741 tomboy

tomboy

    biết vẽ polygon

  • Members
  • PipPip
  • 72 Bài viết
Điểm đánh giá: 20 (tàm tạm)

Đã gửi 15 January 2010 - 11:07 AM

Xin chào các bạn. Chúc các bạn năm mới sức khỏe và thành đạt !
Mình xin nhờ các bạn viets giúp mình lisp với nội dung sau:
NỘI DUNG:
- Trên bản vẽ có các đối tượng là line ở các lớp khác nhau và có chiều dài khác nhau
YÊU CẦU:
- Viết một lisp để tác các LINE ở lớp "XRGRID" và có chiều dài >2 sang lớp mới là "DUONG_GIONG"
Mong các bạn giúp mình ! Xin chân thành cảm ơn!

mình không biết bác Gia Bach đã viết cho bạn rồi nên mình lại viết nũa, cái này để bạn tham khảo thôi nhé: http://www.cadviet.c...pfiles/2/dg.lsp
lênh là DG tức là đường gióng
  • 0

#742 tomboy

tomboy

    biết vẽ polygon

  • Members
  • PipPip
  • 72 Bài viết
Điểm đánh giá: 20 (tàm tạm)

Đã gửi 15 January 2010 - 11:17 AM

Cảm ơn tomboy rất rất nhiều lắm. Nhưng Tue_NV vẫn thấy cái Lisp trên nó vẽ đa giác lồi chứ chưa vẽ ra được đa giác lõm Tomboy à.

Đây là file .dwg thể hiện đa giác lõm cần vẽ
http://www.cadviet.c...2/dagiaclom.dwg

Tiện thể Tomboy có thể nâng cấp lên trong trường hợp đối tượng là point nữa được không? Vì đôi lúc mọi người cần vẽ đối tượng là Point hơn là điểm chèn của Text. Tue_NV tham quá :cheers:
Cảm ơn tomboy nhiều.

@truongthanh : Trường hợp mà Text lọt ra ngoài Pline như trường hợp anh gia_bach nói là trường hợp mà hệ số tỉ lệ < 1 và điểm chèn (Insert) của Text nằm khá xa so với tâm Centroid

Không phải đâu, mình test rồi ok mà, nói chung là do sai tham số thôi, thứ nhất là mật độ điểm đo, tỉ lệ cạnh để tạo thành đa giác lồi, tile = (a + :cheers:/ c, mình mặc định là 1,1 Trong bản vẽ của bạn thì mật độ điểm không quá dầy, nên tỉ lệ cạnh để tạo đa giác lồi hơi lớn, mình sẽ sửa lại cho bạn sau.
chúc một ngày vui.............................................................................
........................................
  • 1

#743 truongthanh

truongthanh

    biết lệnh text

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

Đã gửi 15 January 2010 - 11:48 AM

Nếu hiểu yêu cầu của bạn là : Scale Pline kín tại Centroid của Pline đó và Scale tất cả các text nằm trong Pline kín tại đúng điểm đặt text
Tui e rằng sau khi thực hiện lệnh này, sẽ có truờng hợp Text lọt ra ngoài đuờng Pline ?!

Nếu vậy thì mình có thể sử dụng 2 lisp được ko?
+Thứ nhất scale hình tại tâm hình.
+Thứ 2 scale text tại điểm chèn text!
Nhờ các bạn giúp dùm mình!
Thanks!
  • 0

#744 Tue_NV

Tue_NV

    KS Võ Quang Tuệ

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

Đã gửi 15 January 2010 - 02:15 PM

Nếu vậy thì mình có thể sử dụng 2 lisp được ko?
+Thứ nhất scale hình tại tâm hình.
+Thứ 2 scale text tại điểm chèn text!
Nhờ các bạn giúp dùm mình!
Thanks!

+Thứ nhất : Truongthanh thử đoạn code này thử nhé :

(defun c:scc(/ doc MS ss tle i ss obj region_obj centpoint)
(vl-load-com)
(setq doc (vla-get-activeDocument (vlax-get-acad-object))
MS (vla-get-ModelSpace doc))
(if (setq ss (ssget '((0 . "*POLYLINE") (70 . 1))))
(progn
(or *tle* (setq *tle* 1.0))
(setq tle (getreal (strcat "\n Nhap he so ti le < " (rtos *tle* 2 2) " > : "))i 0)
(if (not tle) (setq tle *tle*) (setq *tle* tle))
(while (< i (sslength ss))
(setq regionobj (car(vlax-invoke MS 'addregion
(list (setq obj (vlax-ename->vla-object(ssname ss i))) )
)
)
)
(setq centPoint (vlax-get regionobj 'Centroid))
(vla-erase regionobj)
(vla-ScaleEntity obj (vlax-3d-point centPoint) tle)
(setq i (1+ i))
);while
)
(alert "\khong co doi tuong nao duoc chon")
)
(princ)
)

+ Thứ hai : lệnh Scaletext sẽ giúp cho truongthanh
Truongthanh có thể đọc lệnh scaletext ở đây :

http://www.cadviet.c...amp;#entry51051
  • 2

#745 Desperado

Desperado

    biết zoom

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

Đã gửi 15 January 2010 - 05:35 PM

Mình có 1 lisp hay về cầu đường đã tổng hợp nhiều lisp nhỏ bên trong.
Nội dung một số đoạn mình cần các bạn hoàn chình là:
Lisp có lệnh là MN (vẽ mực nước), VC (vết cắt) và 1 số lệnh nữa khi thực hiện lệnh cho tới lúc vẽ xong thì nó làm cho chế độ Obsnap Setting ko chạy được nữa. Tức là mất chế độ bắt điểm sau khi thực hiện lệnh đó. Ai biết chỉ dùm mình được ko
Thanks!
http://www.cadviet.c...les/2/cuong.lsp
  • 0

#746 truongthanh

truongthanh

    biết lệnh text

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

Đã gửi 15 January 2010 - 08:40 PM

+Thứ nhất : Truongthanh thử đoạn code này thử nhé :
+ Thứ hai : lệnh Scaletext sẽ giúp cho truongthanh
Truongthanh có thể đọc lệnh scaletext ở đây :

Xin chân thành cảm ơn TUE_NV!Trong cad có rất nhiều lệnh mà mình vẫn chưa biết!
  • 0

#747 nqt266

nqt266

    biết vẽ circle

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

Đã gửi 16 January 2010 - 02:14 AM

Gửi bác gia_bach va anh em diễn đàn.
Không biết là diễn đàn mình đã có lisp đánh số thứ tự bản vẽ tự động chưa nhỉ. Em làm bản vẽ nhiều nên đánh số thứ tự mệt quá. Vậy nhân đây nhờ bác gia_bach và anh em cùng nghiên cứu lisp này giúp em. Vấn đề có thể mô tả như sau:
- Có n bản vẽ, cần đánh số thứ tự từ 01,02,03,...,n.Các bản vẽ này đã sắp xếp với khoảng cách đều nhau.
- Thao tác: Command:
Nhập số bản vẽ cần đánh số thứ tự:
Nhập chiều rộng và chiều cao khung (cái này nhập theo kiểu kick chuột theo 2 chiều khung)
Nhập khoảng cách giữa các khung (kick chuột góc phải trên của khung thứ n và góc phải trên của khung thứ n+1)
Nhập số thứ tự bắt đầu (có thể là 01, nhưng cũng có thể bắt đầu bằng giá trị n nào đó)
Chọn vị trí cần nhập số thứ tự (ví trí kick chuột là vị trí left của text số thứ tự)

Anh em cadviet cùng thảo luận và giúp em giải quyết vấn đề này nhé
Xin chân thành cảm ơn!
  • 0

#748 Tue_NV

Tue_NV

    KS Võ Quang Tuệ

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

Đã gửi 16 January 2010 - 05:43 AM

Gửi bác gia_bach va anh em diễn đàn.
Không biết là diễn đàn mình đã có lisp đánh số thứ tự bản vẽ tự động chưa nhỉ. Em làm bản vẽ nhiều nên đánh số thứ tự mệt quá. Vậy nhân đây nhờ bác gia_bach và anh em cùng nghiên cứu lisp này giúp em. Vấn đề có thể mô tả như sau:
- Có n bản vẽ, cần đánh số thứ tự từ 01,02,03,...,n.Các bản vẽ này đã sắp xếp với khoảng cách đều nhau.
- Thao tác: Command:
Nhập số bản vẽ cần đánh số thứ tự:
Nhập chiều rộng và chiều cao khung (cái này nhập theo kiểu kick chuột theo 2 chiều khung)
Nhập khoảng cách giữa các khung (kick chuột góc phải trên của khung thứ n và góc phải trên của khung thứ n+1)
Nhập số thứ tự bắt đầu (có thể là 01, nhưng cũng có thể bắt đầu bằng giá trị n nào đó)
Chọn vị trí cần nhập số thứ tự (ví trí kick chuột là vị trí left của text số thứ tự)

Anh em cadviet cùng thảo luận và giúp em giải quyết vấn đề này nhé
Xin chân thành cảm ơn!

Lisp này Tue_NV đã viết rồi. Bạn chịu khó tìm kiếm vậy nhé.
  • 2

#749 aliosa

aliosa

    biết vẽ polygon

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

Đã gửi 16 January 2010 - 02:38 PM

mình không biết bác Gia Bach đã viết cho bạn rồi nên mình lại viết nũa, cái này để bạn tham khảo thôi nhé: http://www.cadviet.c...pfiles/2/dg.lsp
lênh là DG tức là đường gióng

Cảm ơn bạn nhé !!!
  • 0

#750 aliosa

aliosa

    biết vẽ polygon

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

Đã gửi 16 January 2010 - 02:50 PM

Xin nhờ các bạn chỉnh giúp mình lisp sau:
Minh đang viết một lisp để lấy các giá trị TAG của ATT trong block.
Nội dung:

;MAIN
(defun c:tag()
(setq e (entsel))
(vlax-ename->vla-object e)
(setq tag (VxGetAtts e))
)
(defun VxGetAtts (Obj)
(mapcar
'(lambda (Att)
(cons (vla-get-TagString Att)
(vla-get-TextString Att)
)
)
(vlax-invoke Obj 'GetAttributes)
)
)
; -- Function VxGetAtts
; Reads all attribute values from a block.
; Copyright:
; ?2000 MENZI ENGINEERING GmbH, Switzerland
; Arguments [Type]:
; Obj = Object [VLA-OBJECT]
; Return [Type]:
; > Dotted pair list '(("Tag1" . "Val1")...) [LIST]
; Notes:
; - None
;

Nhưng khi chạy thì em thấy có gì đó không ổn. Vậy nhờ các bạn chỉnh lại giúp mình !
  • 0

#751 nqt266

nqt266

    biết vẽ circle

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

Đã gửi 16 January 2010 - 03:19 PM

Tue_NV ah. Mình đã cất công tìm cả 38 trang lisp theo yêu cầu mà vẫn ko thấy lisp đánh số thứ tự như yêu cầu của mình nhỉ. Tue_NV hay anh em nào đang có sẵn, vui lòng upload lại giúp mình đc không?
Xin chân thành cảm ơn!
  • 0

#752 tomboy

tomboy

    biết vẽ polygon

  • Members
  • PipPip
  • 72 Bài viết
Điểm đánh giá: 20 (tàm tạm)

Đã gửi 16 January 2010 - 03:25 PM

Cảm ơn tomboy rất rất nhiều lắm. Nhưng Tue_NV vẫn thấy cái Lisp trên nó vẽ đa giác lồi chứ chưa vẽ ra được đa giác lõm Tomboy à.

Đây là file .dwg thể hiện đa giác lõm cần vẽ
http://www.cadviet.c...2/dagiaclom.dwg

Tiện thể Tomboy có thể nâng cấp lên trong trường hợp đối tượng là point nữa được không? Vì đôi lúc mọi người cần vẽ đối tượng là Point hơn là điểm chèn của Text. Tue_NV tham quá :cheers:
Cảm ơn tomboy nhiều.

@truongthanh : Trường hợp mà Text lọt ra ngoài Pline như trường hợp anh gia_bach nói là trường hợp mà hệ số tỉ lệ < 1 và điểm chèn (Insert) của Text nằm khá xa so với tâm Centroid

ok Tomboy đã sửa lại theo yc của bạn nè, nhưng chỉ đạt 70% yc thôi nhé, tại vì tập hợp các điểm lại là những điểm đo ngẫu nhiên ở ngoài thực địa và những điểm này lại là điểm ranh đất hay ranh gì đó có đường biên bao kín bên ngoài không tuân theo quy luật nào hết, do vậy để đảm bảo chính xác thì mật độ điểm đo phải dầy, khoảng cách giữa các điểm phải tương đối đều nhau và tỉ số cạnh phải nhỏ, tối thiểu phải nhỏ hơn 1.4, thường mình đặt 1.1 là hợp lý. đây là link: http://www.cadviet.c...les/2/dgl_3.lsp
(bản vá lỗi)
bản này đạt 100% rùi. http://www.cadviet.c...les/2/dgl_5.lsp
  • 1

#753 tomboy

tomboy

    biết vẽ polygon

  • Members
  • PipPip
  • 72 Bài viết
Điểm đánh giá: 20 (tàm tạm)

Đã gửi 16 January 2010 - 03:49 PM

Tue_NV ah. Mình đã cất công tìm cả 38 trang lisp theo yêu cầu mà vẫn ko thấy lisp đánh số thứ tự như yêu cầu của mình nhỉ. Tue_NV hay anh em nào đang có sẵn, vui lòng upload lại giúp mình đc không?
Xin chân thành cảm ơn!

Link nè bạn: http://www.cadviet.c...les/2/cps_1.lsp
lệnh là CPS
bạn sử dụng như lệnh copy bình thường, nhưng bạn muốn đánh số trang thì bạn hãy đánh 1 trang trước nhé rồi copy nó ra, khi copy nó sẽ tự động nhảy trang cho bạn
ví dụ bạn muốn đánh số trang từ 21 trở đi thì bạn dùng lện text của acad để tạo một chữ số 21 hay là Page 21 gì tuỳ ý. sau đó bạn sử dụng lệnh CPS để copy chữ này vào từng trang bản vẽ của bạn:
Command: cps
Select objects: 1 found
Specify base point or [Prefix/Suffix/Off] : P là tiền tố, S là hậu tố, Of là tắt luôn,
Specify second point of displacement or :
  • 0

#754 nqt266

nqt266

    biết vẽ circle

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

Đã gửi 16 January 2010 - 07:33 PM

Cảm ơn Tomboy nha, mình thử xem thế nào!!!
  • 0

#755 nqt266

nqt266

    biết vẽ circle

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

Đã gửi 16 January 2010 - 07:50 PM

Tomboy oi, kô dùng được, mình gõ lệnh mà nó không thao tác j cả, chán thật, bạn kiểm tra lại júp mình xem nhé, cảm ơn nhìu nhìu
  • 0

#756 tomboy

tomboy

    biết vẽ polygon

  • Members
  • PipPip
  • 72 Bài viết
Điểm đánh giá: 20 (tàm tạm)

Đã gửi 16 January 2010 - 11:00 PM

Tomboy oi, kô dùng được, mình gõ lệnh mà nó không thao tác j cả, chán thật, bạn kiểm tra lại júp mình xem nhé, cảm ơn nhìu nhìu

mình vẫn dùng nó để đánh trang cho bản vẽ mà, bạn phải apload thì mới được chứ
  • 0

#757 tlu

tlu

    Chưa sử dụng CAD

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

Đã gửi 17 January 2010 - 02:35 PM

Các bác có thể cho em xin lisp về ranh giới đào đắp trong san nền với. em khong tìm thấy đâu ra hết. cụ thể là có cao độ ở bốn góc của rất nhiều hình vuông( cả âm và dương), bây giớ phải tìm cao độ 0 rồi nối các điêm có tọa độ 0 lại. cảm ơn mấy bác trước
  • 0

#758 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 19 January 2010 - 11:15 AM

Xin nhờ các bạn chỉnh giúp mình lisp sau:
Minh đang viết một lisp để lấy các giá trị TAG của ATT trong block.
Nội dung:
Nhưng khi chạy thì em thấy có gì đó không ổn. Vậy nhờ các bạn chỉnh lại giúp mình !

Chào bạn aliosa,
Cái lisp của bạn mình chưa hiểu hết nên không dám chỉnh sửa gì cả. Bạn thử xài cái lisp này xem có thỏa mãn yêu cầu của bạn không nhé. Nếu có gì chưa ổn hãy post lên diễn đàn và mọi người sẽ xem và sửa chữa lại bạn nhé.
http://www.cadviet.c...octinhblock.lsp

(defun c:gtb ()
(if (setq ent(entsel "\n Select a Block: ")) ;- Let the user select a block (Chọn block)
(progn
(setq en(car ent)) ;- Get the entity name of the block (lấy tên đối tượng của block)
(setq enlist(entget en)) ;- Get the DXF group codes (lấy các mã nhóm DXF)
(setq blkType(cdr(assoc 0 enlist))) ;- Save the type of entity (lưu lại loại đối tượng)
(if (= blkType "INSERT") ;- If the entity type is an Insert entity
; (nếu loại đối tượng là đối tượng Insert)
(progn
(if(= (cdr(assoc 66 enlist)) 1) ;- See if the attribute flag equals one (if so, attributes follow)
; (Kiểm tra flag thuộc tính )
(progn
(setq en2(entnext en)) ;- Get the next sub-entity (lấy đối tượng phụ tiếp theo)
(setq enlist2(entget en2)) ;- Get the DXF group codes (lấy các mã nhóm DXF)
(setq attvallst (list))
(setq atttaglst (list))

(while (/= (cdr(assoc 0 enlist2)) "SEQEND") ;- Start the while loop and keep
;- looping until SEQEND is found.
;(Lặp trong khi loại đối tượng không phải SEQEND)
(setq attval (cdr (assoc 1 enlist2))
attvallst (append attvallst (list attval)))
(setq atttag (cdr (assoc 2 enlist2))
atttaglst (append atttaglst (list atttag)))
(princ "\n ") ;-Print a new line (tạo dòng kết quả mới)
(princ attvallst) ;- Print the attribute DXF group codes (in ra các mã nhóm DXF)
(princ "\n")
(princ atttaglst)
(setq en2(entnext en2)) ;- Get the next sub-entity (lấy đối tượng phụ tiếp theo)
(setq enlist2(entget en2)) ;- Get the DXF group codes (lấy các mã nhóm DXF)
) ; Kết thúc hàm while
) ; Kết thúc hàm thông báo progn lần thứ 3
) ;- Close the if group code 66 = 1 statement (Đóng hàm if kiểm tra mã nhóm 66 )
) ; Kết thúc hàm thông báo progn lần thứ 2
) ;- Close the if block type = "ATTRIB" statement (Đóng hàm if kiểm tra loại đối tượng)
) ; Đóng thông báo progn lần thứ nhất
) ;- Close the if an Entity is selected statement (Đóng hàm if kiểm tra việc chọn đối tượng)
)

Chúc bạn vui.
  • 0
Chúc các quý Anh trên diễn đàn luôn khỏe, đẻ thêm được nhiều thứ để mót.

#759 Desperado

Desperado

    biết zoom

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

Đã gửi 19 January 2010 - 03:55 PM

Mình có 1 lisp hay về cầu đường đã tổng hợp nhiều lisp nhỏ bên trong.
Nội dung một số đoạn mình cần các bạn hoàn chình là:
Lisp có lệnh là MN (vẽ mực nước), VC (vết cắt) và 1 số lệnh nữa khi thực hiện lệnh cho tới lúc vẽ xong thì nó làm cho chế độ Obsnap Setting ko chạy được nữa. Tức là mất chế độ bắt điểm sau khi thực hiện lệnh đó. Ai biết chỉ dùm mình được ko
Thanks!
http://www.cadviet.c...les/2/cuong.lsp

Ôi các bác ơi giúp em cái vụ này với chờ mãi chẳng có ai vậy trời
  • 0

#760 aliosa

aliosa

    biết vẽ polygon

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

Đã gửi 19 January 2010 - 04:08 PM

Chào bạn aliosa,
Cái lisp của bạn mình chưa hiểu hết nên không dám chỉnh sửa gì cả. Bạn thử xài cái lisp này xem có thỏa mãn yêu cầu của bạn không nhé. Nếu có gì chưa ổn hãy post lên diễn đàn và mọi người sẽ xem và sửa chữa lại bạn nhé.
http://www.cadviet.c...octinhblock.lsp


(defun c:gtb ()
(if (setq ent(entsel "\n Select a Block: ")) ;- Let the user select a block (Chọn block)
(progn
(setq en(car ent)) ;- Get the entity name of the block (lấy tên đối tượng của block)
(setq enlist(entget en)) ;- Get the DXF group codes (lấy các mã nhóm DXF)
(setq blkType(cdr(assoc 0 enlist))) ;- Save the type of entity (lưu lại loại đối tượng)
(if (= blkType "INSERT") ;- If the entity type is an Insert entity
; (nếu loại đối tượng là đối tượng Insert)
(progn
(if(= (cdr(assoc 66 enlist)) 1) ;- See if the attribute flag equals one (if so, attributes follow)
; (Kiểm tra flag thuộc tính )
(progn
(setq en2(entnext en)) ;- Get the next sub-entity (lấy đối tượng phụ tiếp theo)
(setq enlist2(entget en2)) ;- Get the DXF group codes (lấy các mã nhóm DXF)
(setq attvallst (list))
(setq atttaglst (list))

(while (/= (cdr(assoc 0 enlist2)) "SEQEND") ;- Start the while loop and keep
;- looping until SEQEND is found.
;(Lặp trong khi loại đối tượng không phải SEQEND)
(setq attval (cdr (assoc 1 enlist2))
attvallst (append attvallst (list attval)))
(setq atttag (cdr (assoc 2 enlist2))
atttaglst (append atttaglst (list atttag)))
(princ "\n ") ;-Print a new line (tạo dòng kết quả mới)
(princ attvallst) ;- Print the attribute DXF group codes (in ra các mã nhóm DXF)
(princ "\n")
(princ atttaglst)
(setq en2(entnext en2)) ;- Get the next sub-entity (lấy đối tượng phụ tiếp theo)
(setq enlist2(entget en2)) ;- Get the DXF group codes (lấy các mã nhóm DXF)
) ; Kết thúc hàm while
) ; Kết thúc hàm thông báo progn lần thứ 3
) ;- Close the if group code 66 = 1 statement (Đóng hàm if kiểm tra mã nhóm 66 )
) ; Kết thúc hàm thông báo progn lần thứ 2
) ;- Close the if block type = "ATTRIB" statement (Đóng hàm if kiểm tra loại đối tượng)
) ; Đóng thông báo progn lần thứ nhất
) ;- Close the if an Entity is selected statement (Đóng hàm if kiểm tra việc chọn đối tượng)
)

Chúc bạn vui.

Xin cảm ơn bạn ! Lisp chạy rất tốt. Bạn có thể bổ sung giúp mình trả về kết quả ở dạng danh sách với cấu trúc ((TAG_NAME1 . VAL_TAG1) (TAG_NAME2 . VAL_TAG2)...) để giúp cho quá trình xử lý tiếp sau được thuận lợi hơn.
Xin chân thành cảm ơn !!!
  • 1