Đến nội dung


Hình ảnh
- - - - -

Cho minh hỏi về xuất thuộc tính của group như xuất block thuộc tình


  • Please log in to reply
5 replies to this topic

#1 hnanal

hnanal

    biết zoom

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

Đã gửi 12 October 2010 - 07:03 PM

Mình nhận được 1file sử dụng đất như sau http://www.mediafire...vj70r69uxsv61lu (sr mình k chèn đc file).
Trong đó tem sử dụng đất lại để dạng group (ng làm trước củ chuối k để block ATT).
Mình muốn hỏi các bạn cách xuất các thuộc tính của group đó (giống như lệnh ATTOUT của block).
Mong các bạn sớm cho ý kiến, mình đang cần. Thanks all :cheers::-x :cheers::-x :cheers::-x
P/s: Bản gốc nó nhiều tem hơn bản mình gửi nhiều. Mình del bớt cho nó nhẹ file thôi.
  • 0

#2 gia_bach

gia_bach

    biết lệnh adcenter

  • CADViet Team
  • PipPipPipPipPipPipPip
  • 1431 Bài viết
Điểm đánh giá: 1425 (rất tốt)

Đã gửi 13 October 2010 - 11:15 AM

Mình nhận được 1file sử dụng đất như sau http://www.mediafire...vj70r69uxsv61lu (sr mình k chèn đc file).
Trong đó tem sử dụng đất lại để dạng group (ng làm trước củ chuối k để block ATT).
Mình muốn hỏi các bạn cách xuất các thuộc tính của group đó (giống như lệnh ATTOUT của block).
Mong các bạn sớm cho ý kiến, mình đang cần. Thanks all :cheers::-x :cheers::-x :cheers::-x
P/s: Bản gốc nó nhiều tem hơn bản mình gửi nhiều. Mình del bớt cho nó nhẹ file thôi.

Củ chuối thì sao nhỉ ?
Củ chuối hay củ khoai đều có giá trị của nó.
Bạn thử "củ khoai" này với củ chuối xem sao ?
(defun c:test1()
(vlax-for group (vla-get-groups (vla-get-activedocument (vlax-get-acad-object)))
(if (>(vla-get-count group)1)
(progn
(princ (strcat "\nGroup : " (vla-get-name group)))
(vlax-for item group
(if (=(vla-get-objectname item)"AcDbText")
(princ (strcat "\n\tText : " (vla-get-TextString item))) )))))
(princ))

Mong các bạn sớm cho ý kiến
he he : bạn làm tôi chợt nhớ đến lời ca khúc : "... gặp nhau lần nào cũng vội...."
"Quan có cần nhưng dân chưa vội
....................... "

  • 3

#3 hnanal

hnanal

    biết zoom

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

Đã gửi 13 October 2010 - 09:22 PM

Cảm ơn lisp củ khoai của bạn Gia bach rất nhiều. Tuy nhiên khi mình cop dữ liệu sang excel thì nó có dạng như sau:
Group : *A1
Text : 1184
Text : 01
Group : *A10
Text : 1005
Text : 33
Group : *A11
Text : 1000
Text : 32
Group : *A13
Text : 1006
Text : 31
.....................
Bạn có thể sửa lại để khi nó xuất ra thành các riêng biệt như sau được k:
Group : *A1 Text : 1184 Text : 01
Group : *A10 Text : 1005 Text : 33
Group : *A11 Text : 1000 Text : 32
Group : *A13 Text : 1006 Text : 31
..............................................................
Chúc bạn mạnh khỏe ! :cheers: :cheers:
  • 0

#4 Tue_NV

Tue_NV

    KS Võ Quang Tuệ

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

Đã gửi 13 October 2010 - 09:56 PM

.....................
Bạn có thể sửa lại để khi nó xuất ra thành các riêng biệt như sau được k:
Group : *A1 Text : 1184 Text : 01
Group : *A10 Text : 1005 Text : 33
Group : *A11 Text : 1000 Text : 32
Group : *A13 Text : 1006 Text : 31
..............................................................
Chúc bạn mạnh khỏe ! :cheers: :cheers:

Chỉ là kiểu hiển thị thôi mà bạn.
Bạn thay dòng :
(princ (strcat "\n\tText : " (vla-get-TextString item))) )))))
Thành dòng :
(princ (strcat "\tText : " (vla-get-TextString item))) )) )))
  • 0

#5 hnanal

hnanal

    biết zoom

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

Đã gửi 13 October 2010 - 10:50 PM

Chỉ là kiểu hiển thị thôi mà bạn.
Bạn thay dòng :
(princ (strcat "\n\tText : " (vla-get-TextString item))) )))))
Thành dòng :
(princ (strcat "\tText : " (vla-get-TextString item))) )) )))

Vẫn chưa đc bạn ạ. Đúng là nó in ra thành
Group : *A1 Text : 1184 Text : 01
Group : *A10 Text : 1005 Text : 33
Group : *A11 Text : 1000 Text : 32
Group : *A13 Text : 1006 Text : 31
.............................................
nhưng là trên cùng 1 cột bạn ạ. Mình muốn nó thành 3 cột riêng biệt cơ. Giúp mình nốt nhé. Thanks :cheers:
  • 0

#6 gia_bach

gia_bach

    biết lệnh adcenter

  • CADViet Team
  • PipPipPipPipPipPipPip
  • 1431 Bài viết
Điểm đánh giá: 1425 (rất tốt)

Đã gửi 14 October 2010 - 03:49 PM

Cảm ơn lisp củ khoai của bạn Gia bach rất nhiều. Tuy nhiên khi mình cop dữ liệu sang excel thì nó có dạng như sau:
.....................
Bạn có thể sửa lại để khi nó xuất ra thành các riêng biệt như sau được k:
Group : *A1 Text : 1184 Text : 01
Group : *A10 Text : 1005 Text : 33
Group : *A11 Text : 1000 Text : 32
Group : *A13 Text : 1006 Text : 31
..............................................................
Chúc bạn mạnh khỏe ! :cheers: :cheers:

LISP xuất kết quả ra màn hình và ra file *.csv (tên file do nguời dùng nhập) với định dạng : GroupName Text1 Text2
(defun c:test1(/ fil glst gname tmp txt)
(vlax-for group (vla-get-groups (vla-get-activedocument (vlax-get-acad-object)))
(Setq txt "")
(if (>(vla-get-count group)1)
(progn
(Setq gName (vla-get-name group))
(vlax-for item group
(if (=(vla-get-objectname item)"AcDbText")
(Setq txt (strcat (vla-get-TextString item) "\t" txt))))
(Setq gLst (append (list (cons gName txt))gLst)))))
(foreach pt (Setq gLst (reverse gLst))
(princ (strcat "\n"(car pt) "\t" (cdr pt))))
(if (and gLst
(setq tmp (getfiled "Chon File" (getvar "dwgprefix") "csv" 1)) )
(progn
(setq fil (open tmp "a"))
(write-line "Group\tText1\tText2" fil)
(foreach pt gLst
(write-line (strcat (car pt) "\t" (cdr pt)) fil))
(close fil)
(princ (strcat "\nData duoc luu tai <" tmp ">."))))
(princ))

  • 1