Đến nội dung


Hình ảnh
- - - - -

[Đã xong] Lisp chuyển cao độ đo đạc thực tế vào Cad


  • Please log in to reply
5 replies to this topic

#1 cico501

cico501

    Chưa sử dụng CAD

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

Đã gửi 21 June 2011 - 06:30 PM

hiện nay mình cần tìm 1 lisp chuyển cao độ thực tế đo đạc ngoài hiện trường vào bản vẽ thiết kế. Chả là hiệ nay mình đang san lấp lô đất, nhueng mà lô rộng san ko hết, diện tích xôi đỗ nhiều nên mình đã bắn tọa độ để đưa vào cad nhưng nhiều điểm quá. Mình xin cảm ơn các bạn đã giúp nhé!
  • 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 21 June 2011 - 08:27 PM

hiện nay mình cần tìm 1 lisp chuyển cao độ thực tế đo đạc ngoài hiện trường vào bản vẽ thiết kế. Chả là hiệ nay mình đang san lấp lô đất, nhueng mà lô rộng san ko hết, diện tích xôi đỗ nhiều nên mình đã bắn tọa độ để đưa vào cad nhưng nhiều điểm quá. Mình xin cảm ơn các bạn đã giúp nhé!

Hề hề hề,
Bạn xài thử cái của đi mót này xem nhé.


;Lisp by nPham. www.cadviet.com
(defun csv->list (fn / str f lst)
(defun Separate (str sym / lst pos )
(setq Lst (append))
(while (setq pos (vl-string-search sym str))
(setq Lst (append Lst (list (substr str 1 pos))))
(setq str (substr str (+ pos 2)))
) Lst)

(setq f (open fn "r"))
(setq lst (append))
(read-line f)
(while (setq str (read-line f)) (setq lst (append lst (list (Separate str ",")))))
(close f)
lst
)


(defun text->cad (pt1 cnt tlst / pt1 pt2)
;10 60 20 20 40
(setvar "CECOLOR" "BYLAYER")
(command ".text" "J" "MC" (list (+ (car pt1) 5) (- (- (cadr pt1) (* 5 cnt)) 2.5)) "2" "0" (nth 0 tlst))
(command ".text" "J" "ML" (list (+ (car pt1) 12) (- (- (cadr pt1) (* 5 cnt)) 2.5)) "2" "0" (nth 1 tlst))
(command ".text" "J" "MC" (list (+ (car pt1) 80) (- (- (cadr pt1) (* 5 cnt)) 2.5)) "2" "0" (nth 2 tlst))
(command ".text" "J" "MC" (list (+ (car pt1) 100) (- (- (cadr pt1) (* 5 cnt)) 2.5)) "2" "0" (nth 3 tlst))
(command ".text" "J" "MC" (list (+ (car pt1) 130) (- (- (cadr pt1) (* 5 cnt)) 2.5)) "2" "0" (nth 4 tlst))

(setvar "CECOLOR" "8")
(command ".line" (setq pt2 (list (car pt1) (- (nth 1 pt1) (* 5 (+ cnt 1))))) (polar pt2 0 150) "")

)

(defun c:csv (/ fn f lst wlst i x col pt tile)

(setq fn (getfiled "Select Data File" "" "csv" 0))
(if fn
(if (setq pt (getpoint "\nDiem chen <Cancel>:"))
(progn
(setq f (open fn "r"))
(setq tile (read-line f))
(close f)
(setq lst (vl-remove-if '(lambda (x) (apply 'and (mapcar '(lambda (y) (= y "")) x)))(csv->list fn)))

(command ".text" "J" "MC" (list (+ (car pt) 75) (+ (cadr pt) 8)) "4" "0" tile)
(setvar "CECOLOR" "7")
(command ".line" pt (polar pt 0 150) "")
(setq row 0)
(mapcar '(lambda (x)
(setq row (+ row 1))
(text->cad pt (- row 1) x))
lst
)
(setvar "cecolor" "7")
(command "line" pt (polar pt (- (/ pi 2)) (* row 5)) "")
(command ".copy" (entlast) "" pt (polar pt 0 10))
(command ".copy" (entlast) "" pt (polar pt 0 60))
(command ".copy" (entlast) "" pt (polar pt 0 20))
(command ".copy" (entlast) "" pt (polar pt 0 20))
(command ".copy" (entlast) "" pt (polar pt 0 40))

)))
)

Hy vọng bạn hài lòng.
  • 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 cico501

cico501

    Chưa sử dụng CAD

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

Đã gửi 21 June 2011 - 10:12 PM

Hề hề hề,
Bạn xài thử cái của đi mót này xem nhé.



;Lisp by nPham. www.cadviet.com
(defun csv->list (fn / str f lst)
(defun Separate (str sym / lst pos )
(setq Lst (append))
(while (setq pos (vl-string-search sym str))
(setq Lst (append Lst (list (substr str 1 pos))))
(setq str (substr str (+ pos 2)))
) Lst)

(setq f (open fn "r"))
(setq lst (append))
(read-line f)
(while (setq str (read-line f)) (setq lst (append lst (list (Separate str ",")))))
(close f)
lst
)


(defun text->cad (pt1 cnt tlst / pt1 pt2)
;10 60 20 20 40
(setvar "CECOLOR" "BYLAYER")
(command ".text" "J" "MC" (list (+ (car pt1) 5) (- (- (cadr pt1) (* 5 cnt)) 2.5)) "2" "0" (nth 0 tlst))
(command ".text" "J" "ML" (list (+ (car pt1) 12) (- (- (cadr pt1) (* 5 cnt)) 2.5)) "2" "0" (nth 1 tlst))
(command ".text" "J" "MC" (list (+ (car pt1) 80) (- (- (cadr pt1) (* 5 cnt)) 2.5)) "2" "0" (nth 2 tlst))
(command ".text" "J" "MC" (list (+ (car pt1) 100) (- (- (cadr pt1) (* 5 cnt)) 2.5)) "2" "0" (nth 3 tlst))
(command ".text" "J" "MC" (list (+ (car pt1) 130) (- (- (cadr pt1) (* 5 cnt)) 2.5)) "2" "0" (nth 4 tlst))

(setvar "CECOLOR" "8")
(command ".line" (setq pt2 (list (car pt1) (- (nth 1 pt1) (* 5 (+ cnt 1))))) (polar pt2 0 150) "")

)

(defun c:csv (/ fn f lst wlst i x col pt tile)

(setq fn (getfiled "Select Data File" "" "csv" 0))
(if fn
(if (setq pt (getpoint "\nDiem chen <Cancel>:"))
(progn
(setq f (open fn "r"))
(setq tile (read-line f))
(close f)
(setq lst (vl-remove-if '(lambda (x) (apply 'and (mapcar '(lambda (y) (= y "")) x)))(csv->list fn)))

(command ".text" "J" "MC" (list (+ (car pt) 75) (+ (cadr pt) 8)) "4" "0" tile)
(setvar "CECOLOR" "7")
(command ".line" pt (polar pt 0 150) "")
(setq row 0)
(mapcar '(lambda (x)
(setq row (+ row 1))
(text->cad pt (- row 1) x))
lst
)
(setvar "cecolor" "7")
(command "line" pt (polar pt (- (/ pi 2)) (* row 5)) "")
(command ".copy" (entlast) "" pt (polar pt 0 10))
(command ".copy" (entlast) "" pt (polar pt 0 60))
(command ".copy" (entlast) "" pt (polar pt 0 20))
(command ".copy" (entlast) "" pt (polar pt 0 20))
(command ".copy" (entlast) "" pt (polar pt 0 40))

)))
)

Hy vọng bạn hài lòng.

bạn có thể hướng dẫn mình kỹ một chút không? Ví dụ các tọa độ mình đã nhập hết vào excel rồi. Đã load lisp xong rồi. Bước tiếp theo là làm những j?
cảm ơn nhiều vì mình không biết nhiều về lisp!
  • 0

#4 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 22 June 2011 - 01:22 AM

bạn có thể hướng dẫn mình kỹ một chút không? Ví dụ các tọa độ mình đã nhập hết vào excel rồi. Đã load lisp xong rồi. Bước tiếp theo là làm những j?
cảm ơn nhiều vì mình không biết nhiều về lisp!

Hề hề hề,
Bước tiếp theo là bạn nhập lệnh csv trên dòng command và nhấn enter.
Tiếp theo chọn file chứa dữ liệu với đuôi là csv.
tiếp theo là chọn điểm để nhập dữ liệu
Lisp sẽ tự động tạo ra bảng dữ liệu trên bản vẽ của bạn.
hề hề hề.
  • 0
Chúc các quý Anh trên diễn đàn luôn khỏe, đẻ thêm được nhiều thứ để mót.

#5 cico501

cico501

    Chưa sử dụng CAD

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

Đã gửi 22 June 2011 - 09:35 AM

Hề hề hề,
Bước tiếp theo là bạn nhập lệnh csv trên dòng command và nhấn enter.
Tiếp theo chọn file chứa dữ liệu với đuôi là csv.
tiếp theo là chọn điểm để nhập dữ liệu
Lisp sẽ tự động tạo ra bảng dữ liệu trên bản vẽ của bạn.
hề hề hề.

ý mình là mình có bảng tọa độ bắn ngoài hiện trường như sau
Diem X Y Z
diem1 581323.533 2315350.047 0
diem2 581339.123 2315315.008 0
diem3 581321.406 2315325.526 0
diem4 581322.001 2315347.034 0
diem5 581350.388 2315347.838 0
diem6 581354.753 2315356.701 0
diem7 581325.818 2315367.768 0
diem8 581329.524 2315388.833 0
diem9 581331.054 2315409.029 0
diem10 581342.598 2315431.881 0
diem11 581379.119 2315408.174 0
diem12 581377.458 2315382.837 0
Mình muốn đưa vào cad nó phải đúng vị trí như ngoài thực địa để tiện cho việc tính diện tích từ đó tính dc khối lượng đắp là bao nhiêu để làm nghiệm thu thanh toán.
Không biết cách nhập các cột trong excel có j sai ko mà mình làm ra cái bản lung tung quá!
Có j phiền bạn giúp mình lần nữa nhé! Cảm ơn rất nhiều!
  • 0

#6 ponaparte2003

ponaparte2003

    biết vẽ rectang

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

Đã gửi 22 June 2011 - 02:03 PM

ý mình là mình có bảng tọa độ bắn ngoài hiện trường như sau
Diem X Y Z
diem1 581323.533 2315350.047 0
diem2 581339.123 2315315.008 0
diem12 581377.458 2315382.837 0
Mình muốn đưa vào cad nó phải đúng vị trí như ngoài thực địa để tiện cho việc tính diện tích từ đó tính dc khối lượng đắp là bao nhiêu để làm nghiệm thu thanh toán.
Không biết cách nhập các cột trong excel có j sai ko mà mình làm ra cái bản lung tung quá!
Có j phiền bạn giúp mình lần nữa nhé! Cảm ơn rất nhiều!

Cái này trên diễn đàn đã post lên rất nhiều loại Lisp có thể thực hiện được rồi mà. Bạn chẳng chịu seach gì cả. Lisp trên diẽn đàn đã đưa có thể xuất point vào cad với định dạng X, Y, Z. Bạn seach sẽ thấy ngay
  • 1
Y=acosh(x/a)