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.
tnmtpc

tìm kiếm và hiển thị thông tin

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

tnmtpc    206

Mình là dân bản đồ,rất thích dùng Autocad. Đang rất cần đọan lisp với yêu cầu như sau: mình đã có một bản đồ gồm nhiều thửa đất, trên đó đã có các thông tin: lọai ruộng đất, số hiệu thửa đất, diện tích thửa đất, tên chủ sử dụng...Mỗi thông tin được thiết kế trên một lớp riêng biệt (ví dụ lọai ruộng đất thuộc lớp "loaidat"), khi nhập thông tin cần tìm theo lớp(số hiệu thửa đất hoặc tên chủ sử dụng...),lisp tìm kiếm và zoom tới thửa đất đó. Các sư huynh giúp mình với nhé! mình là tân binh, mong các huynh chỉ giáo

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
vndesperados    253
Mình là dân bản đồ,rất thích dùng Autocad. Đang rất cần đọan lisp với yêu cầu như sau: mình đã có một bản đồ gồm nhiều thửa đất, trên đó đã có các thông tin: lọai ruộng đất, số hiệu thửa đất, diện tích thửa đất, tên chủ sử dụng...Mỗi thông tin được thiết kế trên một lớp riêng biệt (ví dụ lọai ruộng đất thuộc lớp "loaidat"), khi nhập thông tin cần tìm theo lớp(số hiệu thửa đất hoặc tên chủ sử dụng...),lisp tìm kiếm và zoom tới thửa đất đó. Các sư huynh giúp mình với nhé! mình là tân binh, mong các huynh chỉ giáo

 

 

Cái này thì dùng MapInfo là OK liền. Dùng chi Acad cho cực.

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
ssg    1.088
Mình là dân bản đồ,rất thích dùng Autocad. Đang rất cần đọan lisp với yêu cầu như sau: mình đã có một bản đồ gồm nhiều thửa đất, trên đó đã có các thông tin: lọai ruộng đất, số hiệu thửa đất, diện tích thửa đất, tên chủ sử dụng...Mỗi thông tin được thiết kế trên một lớp riêng biệt (ví dụ lọai ruộng đất thuộc lớp "loaidat"), khi nhập thông tin cần tìm theo lớp(số hiệu thửa đất hoặc tên chủ sử dụng...),lisp tìm kiếm và zoom tới thửa đất đó. Các sư huynh giúp mình với nhé! mình là tân binh, mong các huynh chỉ giáo

Bạn dùng lệnh find sẽ thấy ngay cái mình cầ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
tnmtpc    206
Cái này thì dùng MapInfo là OK liền. Dùng chi Acad cho cực.

Cám ơn bạn,dùng Mapinfo thì tuyệt chiêu rồi,nhưng ở đây chỉ có file dữ liệu không gian, chưa có file dữ liệu thuộc tính mà!

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
tnmtpc    206
Bạn dùng lệnh find sẽ thấy ngay cái mình cần!

Mình dùng thử rồi (trên Autocad 14),nhưng lệnh find chỉ tìm và thay thế text,đâu zoom tới trung tâm màn ảnh vị trí thửa đất như mình đã nê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
ssg    1.088
Mình dùng thử rồi (trên Autocad 14),nhưng lệnh find chỉ tìm và thay thế text,đâu zoom tới trung tâm màn ảnh vị trí thửa đất như mình đã nêu

Mình bỏ R14 lâu rồi, không nhớ nữa. Sao bạn không dùng CAD mới hơn? Nếu máy yếu có thể dùng cỡ 2002 cũng được. Trong hộp thoại Find and Replace, nếu tìm thấy thì bấm vào "Zoom to". Lập trình lisp cho cái này thì dễ thôi, nhưng khó coi lắm!

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
se7en    5
Mình là dân bản đồ,rất thích dùng Autocad. Đang rất cần đọan lisp với yêu cầu như sau: mình đã có một bản đồ gồm nhiều thửa đất, trên đó đã có các thông tin: lọai ruộng đất, số hiệu thửa đất, diện tích thửa đất, tên chủ sử dụng...Mỗi thông tin được thiết kế trên một lớp riêng biệt (ví dụ lọai ruộng đất thuộc lớp "loaidat"), khi nhập thông tin cần tìm theo lớp(số hiệu thửa đất hoặc tên chủ sử dụng...),lisp tìm kiếm và zoom tới thửa đất đó. Các sư huynh giúp mình với nhé! mình là tân binh, mong các huynh chỉ giáo

Dùng CAD fiên bản mới hơn đi bạn.Mà nếu dùng cách này thì cũng không hay vì không chọn lọc được dữ liệu. Ví dụ có cả chục tên chủ sử dụng trùng nhau thì chẳng lẻ zoom đến từng cái để tìm ah? Nếu là dân bản đồ thì bạn không nên quản lý thông tin như thế, chịu khó ngồi xuống edit lại dữ liệu,chuyển sang dùng MapInfo hay ArcGIS.Bỏ công làm dữ lại dữ liệu 1 lần, rồi sau này dùng cho thoải má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
Nguyen Hoanh    4.524
Mình là dân bản đồ,rất thích dùng Autocad. Đang rất cần đọan lisp với yêu cầu như sau: mình đã có một bản đồ gồm nhiều thửa đất, trên đó đã có các thông tin: lọai ruộng đất, số hiệu thửa đất, diện tích thửa đất, tên chủ sử dụng...Mỗi thông tin được thiết kế trên một lớp riêng biệt (ví dụ lọai ruộng đất thuộc lớp "loaidat"), khi nhập thông tin cần tìm theo lớp(số hiệu thửa đất hoặc tên chủ sử dụng...),lisp tìm kiếm và zoom tới thửa đất đó. Các sư huynh giúp mình với nhé! mình là tân binh, mong các huynh chỉ giáo

Lisp dưới đây tìm kiếm text và zoom tới nó. Lệnh là FZ (find and zoom).

(defun c:fz( / tf sst lste ent p1 p2)
 (setq
   tf (getstring t "\nChuoi can tim (ket thuc bang enter):")
   sst (ssget "X" (list (cons 0 "TEXT")
	     (cons 1 (strcat "*" tf "*"))
       )
)
   lste (ss2ent sst)    
 )
 (alert (strcat "\nCo " (itoa (length lste)) " doi tuong duoc tim thay!"))  
 (foreach ent lste
   (setq
     tt (entget ent)
     p  (cdr (assoc 10 tt))
     z  (textbox tt)      
     p1 (trans (mapcar '+ p (car z)) 0 1)
     p2 (trans (mapcar '+ p (cadr z)) 0 1)
   )
   (command ".zoom" p1 p2)
   (command ".zoom" "0.5xp")    
   (getstring "\nNhan enter hoac spacebar de tiep tuc!")
 )
 (princ)
)
(defun ss2ent(ss / sodt index lstent)
 (setq
   sodt (if ss (sslength ss) 0)	   
   index 0
 )
 (repeat sodt
   (setq ent (ssname ss index)
  index (1+ index)
  lstent (cons ent lstent)
   )
 )
 (reverse lstent)
)

  • 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

Nhờ các bác sửa thêm phần đếm đối tượng đang cần tìm là thứ mấy trong tổng số đối tượng cần tìm với ạ!

Nhan enter hoac spacebar de tiep tuc (doi tuong thu 2)!

Nhan enter hoac spacebar de tiep tuc (doi tuong thu 3)!

Nhan enter hoac spacebar de tiep tuc (doi tuong thu ...)!

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
Doan Van Ha    2.680

Đây bạn!

 

(defun c:fz( / tf sst lste ent tt p z p1 p2 y)
 (setq tf (getstring t "\nChuoi can tim (ket thuc bang enter):")
       sst (ssget "X" (list (cons 0 "TEXT") (cons 1 (strcat "*" tf "*"))))
       lste (ss2ent sst))
 (alert (strcat "\nCo " (itoa (length lste)) " doi tuong duoc tim thay!"))
 (setq y 1)
 (foreach ent lste
  (setq tt (entget ent)
        p (cdr (assoc 10 tt))
        z (textbox tt)
        p1 (trans (mapcar '+ p (car z)) 0 1)
        p2 (trans (mapcar '+ p (cadr z)) 0 1))
  (command ".zoom" p1 p2)
  (command ".zoom" "0.3xp")
  (getstring (strcat "\nNhan enter hoac spacebar de tiep tuc (doi tuong thu " (itoa y) ")!"))
  (setq y (1+ y)))
 (princ))
(defun ss2ent(ss / sodt index lstent)
 (setq sodt (if ss (sslength ss) 0)
       index 0)
 (repeat sodt
  (setq ent (ssname ss index)
        index (1+ index)
        lstent (cons ent lstent)))
 (reverse lstent))
  • 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

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


×