Đến nội dung


Hình ảnh
- - - - -

Nhờ Viết Lisp Chuyển Tọa Độ Góc Ranh Từ File Excel Sang Autocad


  • Please log in to reply
2 replies to this topic

#1 loopback127xyz

loopback127xyz

    biết pan

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

Đã gửi 19 October 2015 - 05:47 PM

Nhờ các Anh, Em viết dùm lisp chuyển tọa độ góc ranh từ file excel sang autocad.

 

Mình thường tìm thửa đất trong bản đồ bằng thủ công rất vất vã, mắt lại kém (viễn thị rồi) mà cái bản tọa độ số nhỏ quá.

 Mình dùng lệnh LINE để tìm thửa đất bằng thủ công như sau:

ví dụ : 

L 

click chọn đại 1 điểm rồi gõ 1, ↵ nhập tọa độ y trước, x sau ( 598838.222,1200196.772) 

                                               2, ↵ 598837.316,1200196.424 

                                              3, ↵  598831.114,2300295.042 

                                               4, ↵ ........

                                             ...................................................

 

Mình nhờ các bác viết dùm mình lisp tên : TDTD.lsp (lệnh gọi : tdtdat) làm công việc bằng tay trên thành lisp khi chay lisp xong nó sẽ xác định được khu đất mình cần tìm bằng đường polyline màu gì cũng được (khác màu trắng để biết được khu đất mình đang tìm).

 

Mình có scan tò chủ quyền phần tọa độ góc ranh(file hình), file excel, và bản đồ số đính kèm (trên bản đồ mình đã lấy tọa độ bằng pp thủ công rồi). Link:

http://www.cadviet.c...oadogocranh.rar

 

Thanks you các bác nhiều. Kiến thức hạn hẹp xin anh em giúp đỡ. Chân thành cám ơn

 

 


  • 0

#2 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 20 October 2015 - 11:16 AM

Nhờ các Anh, Em viết dùm lisp chuyển tọa độ góc ranh từ file excel sang autocad.

 

Mình thường tìm thửa đất trong bản đồ bằng thủ công rất vất vã, mắt lại kém (viễn thị rồi) mà cái bản tọa độ số nhỏ quá.

 Mình dùng lệnh LINE để tìm thửa đất bằng thủ công như sau:

ví dụ : 

L 

click chọn đại 1 điểm rồi gõ 1, ↵ nhập tọa độ y trước, x sau ( 598838.222,1200196.772) 

                                               2, ↵ 598837.316,1200196.424 

                                              3, ↵  598831.114,2300295.042 

                                               4, ↵ ........

                                             ...................................................

 

Mình nhờ các bác viết dùm mình lisp tên : TDTD.lsp (lệnh gọi : tdtdat) làm công việc bằng tay trên thành lisp khi chay lisp xong nó sẽ xác định được khu đất mình cần tìm bằng đường polyline màu gì cũng được (khác màu trắng để biết được khu đất mình đang tìm).

 

Mình có scan tò chủ quyền phần tọa độ góc ranh(file hình), file excel, và bản đồ số đính kèm (trên bản đồ mình đã lấy tọa độ bằng pp thủ công rồi). Link:

http://www.cadviet.c...oadogocranh.rar

 

Thanks you các bác nhiều. Kiến thức hạn hẹp xin anh em giúp đỡ. Chân thành cám ơn

Hề hề hề,

Cái này trên diễn đàn có khá nhiều lisp tương tự rồi. Bạn có thể tìm kiếm và chọn cho mình cái ưng ý.

Đây chỉ là một ví dụ để bạn tham khảo.

 

http://www.cadviet.c...vethuadat_1.lsp

 

Lưu ý bạn rằng lisp này chỉ phù hợp với bản vẽ và file excel bạn gửi. các trường hợp khác mình không bảo đảm bới không hiểu về các cách chuyển đổi hệ tọa độ trong trắc địa của bạn.

Trước khi chạy lisp bạn cần lưu file excel thành dạng file csv và xóa bỏ dòng title đầu tiên của bảng. Nếu không lisp sẽ bị lỗi

(defun c:tdtdat (/ oldos fn f str txl p)
(setq oldos (getvar  "osmode" ))
(setvar "osmode" 0)
(command "undo" "be")
(setq  fn (getfiled "Select Data File" "" "csv" 0)
            f (open fn "r")  )
(command "pline" )
(while  (/= (setq str (read-line f)) nil) 
   (setq txl (separate str ",")
            p (list (atof (caddr txl)) (atof (cadr txl))) )
   (command p)
)
(command "")
(close f)
(command "undo" "e")
(setvar "osmode" oldos)
(princ)
)
 
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(defun Separate (S sym / i L ch)
(setq i 0 L nil)
(while (< i (strlen S))
      (setq i (1+ i) ch (substr S i 1))
      (if (= ch sym) (progn
(setq
     L (append L (list (substr S 1 (- i 1))))
     S (substr S (1+ i) (- (strlen S) i))
     i 0
)
      )) 
)
(append L (list S))
)
 

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

#3 loopback127xyz

loopback127xyz

    biết pan

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

Đã gửi 20 October 2015 - 02:08 PM

Cám ơn Bác Bình rất nhiều ! 

LISP chạy rất tốt !


  • 0