Đến nội dung


Hình ảnh
- - - - -

Xin lisp trích xuất thông tin của các thửa đất.


  • Please log in to reply
17 replies to this topic

#1 cuibapchamcom

cuibapchamcom

    biết zoom

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

Đã gửi 10 February 2012 - 02:19 PM

Tình hình là thằng em mới vào nghề, nay gặp trường hợp này mà không biết phải làm thế nào. Em có file cad chứa bản đồ giải thửa, mỗi thửa chứa thông tin như Tên chủ thửa, số thứ tự thửa, diện tích thửa. Em muốn xin đoạn lisp trích xuất được tên chủ thửa, diện tích đi kèm và có thể thì cho em thêm địa chỉ của chủ thửa. Do em chỉ làm công tác thống kê diện tích thôi, mà bản vẽ này lại nhiều số thửa quá. Mong các cao thủ diễn đàn giúp đỡ em. File em nó đây ạ http://www.cadviet.com/upfiles/3/ .
  • 0

#2 Tue_NV

Tue_NV

    KS Võ Quang Tuệ

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

Đã gửi 10 February 2012 - 03:34 PM

Tình hình là thằng em mới vào nghề, nay gặp trường hợp này mà không biết phải làm thế nào. Em có file cad chứa bản đồ giải thửa, mỗi thửa chứa thông tin như Tên chủ thửa, số thứ tự thửa, diện tích thửa. Em muốn xin đoạn lisp trích xuất được tên chủ thửa, diện tích đi kèm và có thể thì cho em thêm địa chỉ của chủ thửa. Do em chỉ làm công tác thống kê diện tích thôi, mà bản vẽ này lại nhiều số thửa quá. Mong các cao thủ diễn đàn giúp đỡ em. File em nó đây ạ http://www.cadviet.com/upfiles/3/ .

Link của file bạn có vấn đề.
Chủ đề tương tự về Xuất Tên chủ thửa, số thứ tự thửa, diện tích thửa như của bạn (Tue_NV đã viết) ở đây :
http://www.cadviet.c...p?showtopic=310

Bạn đọc nhé
  • 1

#3 phamthanhbinh

phamthanhbinh

    biết lệnh adcenter

  • Moderator
  • PipPipPipPipPipPipPip
  • 6007 Bài viết
Điểm đánh giá: 3113 (tuyệt vời)

Đã gửi 10 February 2012 - 04:07 PM

Tình hình là thằng em mới vào nghề, nay gặp trường hợp này mà không biết phải làm thế nào. Em có file cad chứa bản đồ giải thửa, mỗi thửa chứa thông tin như Tên chủ thửa, số thứ tự thửa, diện tích thửa. Em muốn xin đoạn lisp trích xuất được tên chủ thửa, diện tích đi kèm và có thể thì cho em thêm địa chỉ của chủ thửa. Do em chỉ làm công tác thống kê diện tích thôi, mà bản vẽ này lại nhiều số thửa quá. Mong các cao thủ diễn đàn giúp đỡ em. File em nó đây ạ http://www.cadviet.com/upfiles/3/ .

Hề hề hề,
Xin nhắc bạn cuibapchamcom. Bạn đã post liên tiếp ba chủ đề cùng một nội dung là vi phạm quy định của diễn đàn. Lần này mình vẫn để lại một topic đã có bài trả lời. Lần sau mình sẽ xóa sạch các topic như vậy. Hy vọng bạn lưu tâm và tôn trọng quy định chung.
  • 1
Chúc các quý Anh trên diễn đàn luôn khỏe, đẻ thêm được nhiều thứ để mót.

#4 cuibapchamcom

cuibapchamcom

    biết zoom

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

Đã gửi 10 February 2012 - 09:30 PM

Em xin lỗi, tại lần đầu post lên diễn đàn, lúc up cái file lên rồi ấn cái nút gửi mà sao mãi ko thấy nó được, đến lúc ra ngoài lại thì thấy 3 chủ đề của mình lại giống nhau. Các pác thông cảm nhé! :)
  • 0

#5 cuibapchamcom

cuibapchamcom

    biết zoom

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

Đã gửi 10 February 2012 - 09:49 PM

Em cám ơn bác Tue_NV nhé ! Chúc bác mạnh khỏe và thành công trong cuộc sống.
  • 0

#6 Doan Van Ha

Doan Van Ha

    biết lệnh adcenter

  • CADViet Team
  • PipPipPipPipPipPipPip
  • 5447 Bài viết
Điểm đánh giá: 2624 (tuyệt vời)

Đã gửi 10 February 2012 - 09:56 PM

Em cám ơn bác Tue_NV nhé ! Chúc bác mạnh khỏe và thành công trong cuộc sống.

Hãy cám ơn người giúp đỡ bạn bằng cách nhấn nút "Like This" thì càng tuyệt vời hơn,
  • 0

* Chỉ nên yêu cầu Lisp khi bạn làm việc đó mất cả ngày nhưng họ chỉ viết 1 giờ. Đừng nêu yêu cầu Lisp khi bạn chỉ làm 1 giờ nhưng bắt họ phải mất cả ngày.

* Nhờ viết lisp cũng như đi khám bệnh. Chỉ gởi căn cước và than sắp chết thì không bác sỹ nào cứu sống được.


#7 cuibapchamcom

cuibapchamcom

    biết zoom

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

Đã gửi 12 February 2012 - 03:34 PM

Nhờ bác Tuệ và các cao thủ giúp em với, em down lisp của bác về dùng nhưng khi chọn đối tượng thì nó báo là không chọn được đối tượng nào cả. em xin gửi file cho các bác xem thử.
  • 0

#8 Doan Van Ha

Doan Van Ha

    biết lệnh adcenter

  • CADViet Team
  • PipPipPipPipPipPipPip
  • 5447 Bài viết
Điểm đánh giá: 2624 (tuyệt vời)

Đã gửi 12 February 2012 - 04:36 PM

Nhờ bác Tuệ và các cao thủ giúp em với, em down lisp của bác về dùng nhưng khi chọn đối tượng thì nó báo là không chọn được đối tượng nào cả. em xin gửi file cho các bác xem thử.

Bạn chú ý các điều sau đây khi sử dụng lisp của bác Tue_NV:
1). Khi chọn đối tượng thì bạn chọn các Lwpolyline bao quanh thửa đất (tức là các đường ranh giới thửa đất).
2). Trong lisp bạn thay "Text" bởi "Chu SD".
3). Chỉ những thửa nào có đủ 4 thành phần: số thửa, tên chủ SD, diện tích và ghi chú mới được xuất ra file. Do đó thửa nào thiếu thì bạn nhớ điền cho đủ.
Thân thương!
  • 0

* Chỉ nên yêu cầu Lisp khi bạn làm việc đó mất cả ngày nhưng họ chỉ viết 1 giờ. Đừng nêu yêu cầu Lisp khi bạn chỉ làm 1 giờ nhưng bắt họ phải mất cả ngày.

* Nhờ viết lisp cũng như đi khám bệnh. Chỉ gởi căn cước và than sắp chết thì không bác sỹ nào cứu sống được.


#9 cuibapchamcom

cuibapchamcom

    biết zoom

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

Đã gửi 13 February 2012 - 10:34 AM

Híc, mình làm mãi mà chẳng được, cái file của mình người ta đưa để mình thống kê, các đường ranh của các thửa lại là đường line chứ không phải polyline. mình up file lên nhờ các bác giúp mình với.http://www.cadviet.c...ng_buontria.rar
  • 0

#10 Doan Van Ha

Doan Van Ha

    biết lệnh adcenter

  • CADViet Team
  • PipPipPipPipPipPipPip
  • 5447 Bài viết
Điểm đánh giá: 2624 (tuyệt vời)

Đã gửi 13 February 2012 - 02:41 PM

Híc, mình làm mãi mà chẳng được, cái file của mình người ta đưa để mình thống kê, các đường ranh của các thửa lại là đường line chứ không phải polyline. mình up file lên nhờ các bác giúp mình với.http://www.cadviet.c...ng_buontria.rar

Tôi đã xem bản vẽ của bạn và thấy nhiệm vụ này có vẽ bất khả thi (ít nhất là với tôi), vì những lý do sau:
1). Các đường biên đều vẽ bằng Line chứ không phải Lwpolyline.
2). Các (6) thông số của mỗi thửa đất nằm rất lộn xộn: trong thửa có, ngoài thửa có, trên đường biên cũng có. Phải chi nó là Block thì đỡ.
Thân thương!
  • 0

* Chỉ nên yêu cầu Lisp khi bạn làm việc đó mất cả ngày nhưng họ chỉ viết 1 giờ. Đừng nêu yêu cầu Lisp khi bạn chỉ làm 1 giờ nhưng bắt họ phải mất cả ngày.

* Nhờ viết lisp cũng như đi khám bệnh. Chỉ gởi căn cước và than sắp chết thì không bác sỹ nào cứu sống được.


#11 cuibapchamcom

cuibapchamcom

    biết zoom

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

Đã gửi 13 February 2012 - 02:48 PM

Híc, cái bản vẽ này người ta đưa cho em là như thế, em có dùng lệnh PE để chuyển line thành polyline nhưng nó chuyển không hết, mặt khác các thông tin của thửa đất lại cùng layer nên mới mệt. Các cao thủ có ai giúp em với :( !
  • 0

#12 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 February 2012 - 03:14 PM

Híc, cái bản vẽ này người ta đưa cho em là như thế, em có dùng lệnh PE để chuyển line thành polyline nhưng nó chuyển không hết, mặt khác các thông tin của thửa đất lại cùng layer nên mới mệt. Các cao thủ có ai giúp em với :( !

Kết quả mong muốn của bạn là xuất sang file Excel phải không?
Phiền bạn upload luôn file kết quả mà bạn cần xuất nhé!
PS: Bài toán của bạn hơi khó ở chổ những thửa hẹp, diện tích nhỏ, Lisp có thể sẽ bị nhầm......
  • 1

#13 cuibapchamcom

cuibapchamcom

    biết zoom

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

Đã gửi 14 February 2012 - 07:52 AM

Kết quả mong muốn của bạn là xuất sang file Excel phải không?
Phiền bạn upload luôn file kết quả mà bạn cần xuất nhé!
PS: Bài toán của bạn hơi khó ở chổ những thửa hẹp, diện tích nhỏ, Lisp có thể sẽ bị nhầm......

Cám ơn bác Tue_NV đã quan tâm, em xin up file muốn xuất lên, nhờ bác giúp đỡ. Những thửa hẹp, diện tích nhỏ có thể bỏ qua cúng được bác ạ. Chúc bác sức khỏe, thành đạt.http://www.cadviet.c.../60697_xuat.rar
  • 0

#14 cuibapchamcom

cuibapchamcom

    biết zoom

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

Đã gửi 15 February 2012 - 12:48 PM

Híc bác Tue_NV đi đâu rồi? Giúp thằng em này với.
  • 0

#15 ketxu

ketxu

    Copier - Paster - Editor

  • Moderator
  • PipPipPipPipPipPipPip
  • 5678 Bài viết
Điểm đánh giá: 2605 (tuyệt vời)

Đã gửi 15 February 2012 - 01:27 PM

Có thể mình giúp được bạn phần nào, nhưng để có được kết quả thì phải trao đổi thêm nhiều thông tin nữa :) Bạn có thiện chí thì tối rỗi pm YH mình :)
  • 1

Thành viên nhóm CadMagic.
Mời bạn ghé thăm facebook nhóm - Page viết lisp theo yêu cầu  :
CAD MAGIC


#16 cuibapchamcom

cuibapchamcom

    biết zoom

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

Đã gửi 15 February 2012 - 02:24 PM

Được ạ. Tối em YM cho anh ketxu nhé. Cám ơn anh đã quan tâm.
  • 0

#17 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 February 2012 - 02:58 PM

Cám ơn bác Tue_NV đã quan tâm, em xin up file muốn xuất lên, nhờ bác giúp đỡ. Những thửa hẹp, diện tích nhỏ có thể bỏ qua cúng được bác ạ. Chúc bác sức khỏe, thành đạt.http://www.cadviet.c.../60697_xuat.rar

Dữ liệu của bạn là các Text rời rạc, không tuân theo 1 quy luật nào cả. Nếu trong vùng chọn Lisp không chọn được đối tượng thỏa mãn thì Cell được để trống. Còn trong vùng chọn, Lisp có thể chọn nhiều hơn 1 đối tượng thỏa mãn thì nó đánh dấu ? vì không biết chọn đối tượng nào.
Ví dụ trong những thửa hẹp, text chủ thửa bị đè lên nhau thì Cell được đánh dấu ?. Bạn bổ sung thêm dữ liệu ở Cell có dấu ? và Cell để trống nhé
Gửi bạn code này. Bạn thử nhé :


(defun c:xuattt(/ ss ename i TB minp maxp e_cthua e_tct e_tobd e_DT e_ddiem fName file )
(defun Tue-geom-Txtbox(ename offset / TB BL TR offs)
(setvar "cmdecho" 0)
(setq offs (list offset offset 0.0))
(command "ucs" "ob" ename)
(setq TB (textbox (entget ename)))
(setq BL (mapcar '- (car TB) offs))
(setq TR (mapcar '+ (cadr TB) offs))
(setq TB (list BL TR))
(setq TB (mapcar '(lambda(x) (trans x 1 0)) TB))
(command "ucs" "P")
(setq TB (mapcar '(lambda(x) (trans x 0 1)) TB))
)
(defun Tue-dxf (dxf ename)(cdr(assoc dxf (entget ename))))
(defun Tue-ss-list (L-ss-vlaobj / n L Lst ssg vlaobj)

(mapcar 'set '(ssg vlaobj) L-ss-vlaobj)
(setq L (sslength ssg))
(Repeat L
(setq ename (ssname ssg (setq L (1- L))))
(setq Lst (cons (if vlaobj (vlax-ename->vla-object ename) ename) Lst))
)
)
(defun check_ss(ename / lst)
(if (= (length ename) 0) (setq lst ""))
(if (= (length ename) 1) (setq lst (car ename)))
(if (> (length ename) 1) (setq lst "?"))
lst
)

(if (setq ssto_bd (ssget '((0 . "TEXT") (8 . "TO_BD"))))
(progn
(if (setq fName (getfiled "Ten file xuat " (getvar "dwgprefix") "xls" 1))
(progn
(setq i -1)
(setq file (open fName "w"))
(write-line "CHU THUA\tTCT\tTO BAN DO\tDIEN TICH\tVI TRI" file)
(setq dem 0)
(while (setq ename (ssname ssto_bd (setq i (1+ i))))
(setq TB (Tue-geom-Txtbox ename 0))
(setq minp (mapcar '- (car TB) (list (* -0.5 (Tue-dxf 40 ename)) (* 2 (Tue-dxf 40 ename)) 0.0)))
(setq maxp (mapcar '+ (cadr TB) (list (* 0.5 (Tue-dxf 40 ename)) (* 2 (Tue-dxf 40 ename)) 0.0)))

(if (setq ss (ssget "c" minp maxp '((8 . "TT_CHU,tct,DT,TO_BD") )))
(progn
(Foreach x (Tue-ss-list (list ss))
(if (and (= (Tue-dxf 8 x) "TT_CHU") (= (Tue-dxf 73 x) 0))
(setq e_cthua (append e_cthua (list (Tue-dxf 1 x))))
)
(if (= (Tue-dxf 8 x) "tct")
(setq e_tct (append e_tct (list (Tue-dxf 1 x))))
)
(if (= (Tue-dxf 8 x) "TO_BD")
(setq e_tobd (append e_tobd (list (Tue-dxf 1 x))))
)
(if (= (Tue-dxf 8 x) "DT")
(setq e_DT (append e_DT (list (Tue-dxf 1 x))))
)
(if (and (= (Tue-dxf 8 x) "TT_CHU") (= (Tue-dxf 73 x) 3))
(setq e_ddiem (append e_ddiem (list (Tue-dxf 1 x))))
)
)
(grtext -1 (strcat "Xu ly " (itoa i) "/ " (itoa (sslength ssto_bd)) ))
(write-line (strcat (check_ss e_cthua) "\t" (check_ss e_tct) "\t" (check_ss e_tobd) "\t"
(check_ss e_DT) "\t" (check_ss e_ddiem)) file)
)
)
(mapcar 'set '(e_cthua e_tct e_tobd e_DT e_ddiem) '(nil nil nil nil nil))

);while
(close file)
(command "ai_editcustfile" fname)
)
)
)
)
)

  • 2

#18 cuibapchamcom

cuibapchamcom

    biết zoom

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

Đã gửi 15 February 2012 - 03:29 PM

em cám ơn bác Tue_NV nhé. Chúc bác mọi sự tốt lành. Lúc nào ra Đà Nẵng em sẽ hậu tạ bác chầu beer nhé!
  • 0