Đến nội dung


Hình ảnh
- - - - -

viết hộ lisp xuất giá trị (x,y,text)ra file


  • Please log in to reply
5 replies to this topic

#1 thonghoang1

thonghoang1

    biết vẽ polygon

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

Đã gửi 11 March 2010 - 10:49 AM

mình có một yêu cầu nhờ mấy anh giúp:mình có một file số liệu gồm có tập điểm point và các text cao độ tại vị trí điểm point đó.mình muốn một lisp có thể xuất các giá trị (x,y,text cao độ tại điểm đấy)ra file .txt, Nếu có thể thì các anh giúp em vào được giá trị cao độ tại điểm point đấy vào trong điểm point để điểm point đấy tự nhận giá trị cao độ đó khi mình chọn nó.Đây là file số liệu:
http://www.cadviet.c...es/2/solieu.dwg
  • 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 11 March 2010 - 12:01 PM

mình có một yêu cầu nhờ mấy anh giúp:mình có một file số liệu gồm có tập điểm point và các text cao độ tại vị trí điểm point đó.mình muốn một lisp có thể xuất các giá trị (x,y,text cao độ tại điểm đấy)ra file .txt, Nếu có thể thì các anh giúp em vào được giá trị cao độ tại điểm point đấy vào trong điểm point để điểm point đấy tự nhận giá trị cao độ đó khi mình chọn nó.Đây là file số liệu:
http://www.cadviet.c...es/2/solieu.dwg

Chào bạn thonghoang1,
Bạn nên post yêu cầu này vào topic "Viết lisp theo yêu cầu" bạn nhé.
Yêu cầu này theo mình nhớ thì trên diễn đàn đã có lisp. Bạn hãy chịu khó tìm kiếm trong topic Viết lisp theo yêu cầu bạn nhé.
  • 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 duy782006

duy782006

    PHẠM QUỐC DUY

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

Đã gửi 11 March 2010 - 01:44 PM

mình có một yêu cầu nhờ mấy anh giúp:mình có một file số liệu gồm có tập điểm point và các text cao độ tại vị trí điểm point đó.mình muốn một lisp có thể xuất các giá trị (x,y,text cao độ tại điểm đấy)ra file .txt, Nếu có thể thì các anh giúp em vào được giá trị cao độ tại điểm point đấy vào trong điểm point để điểm point đấy tự nhận giá trị cao độ đó khi mình chọn nó.Đây là file số liệu:
http://www.cadviet.c...es/2/solieu.dwg

Mình không quan tâm tới các point của bạn mà chỉ đọc các text và ghi ra file txt và vẽ point mới tại điểm giửa text có z theo cao độ.
-Bạn dùng lisp này.
-Trước khi chạy lệnh bạn tắt toàn bộ chế độ bắt điểm tự động đi.
-Nếu sau khi chạy kiểm tra z của point không có số lẻ thì bạn dùng lệnh find thay dấu chấm bằng dấu phẩy (trong file cad của bạn) rồi chạy lại lệnh nhé.
-Lệnh DTCD

(Defun C:DTCD ( )
(command "undo" "be")
(setq TENFILECODUOI (strcat (getfiled "Tao file .txt:" "" "txt" 5) ".txt"))


(Princ "\nHay chon TEXT :")
(setq SS (ssget '((0 . "TEXT"))))
(setq i 0)
(setq N (sslength ss))
(while (< i N)
(setq DTDTT (ssname SS i))
(setq DTTT (entget DTDTT))

(setq caodo (cdr (assoc 1 DTTT)))
(setq diemgiua (cdr (assoc 11 DTTT)))
(setq gtcd (atof caodo))


(setq gtx (rtos (car diemgiua) 2 2))
(setq gty (rtos (cadr diemgiua) 2 2))
(setq NOIDUNGVIET (strcat "Cao do: " caodo " X: " gtx " Y: " gty))


(command ".point" (list (car diemgiua) (cadr diemgiua) gtcd))
(setq FILEMODEVIET (open TENFILECODUOI "a"))

(write-line NOIDUNGVIET FILEMODEVIET)
(close FILEMODEVIET)

(setq i (1+ i))
)

(command "undo" "end")
(Princ)
)

  • 0

Cứ ngỡ trần gian là cõi thật.Cho nên tất bật đến bây giờ.
Tạo hộp thoại bằng lisp My blog QUY ĐỊNH ĐẶT TÊN TOPIC TRONG CHUYÊN MỤC LISPD http://ktsduy.wordpress.com/
Để cám ơn chỉ cần nhấn rep_up.png
(Là nhấn vào nút đó phía bài viết của người ta í chứ đừng có nhè cái hình này mà nhấn miết đi nha :-D


#4 thonghoang1

thonghoang1

    biết vẽ polygon

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

Đã gửi 11 March 2010 - 03:38 PM

cảm ơn anh,lisp của anh đã theo ý của em được 1/2 rồi,các text bên file txt em cần là (01,x,y,z,),em đã sửa lại đoạn lisp của anh rồi,nhưng mà có một điều là các điểm piont mới vẽ không trùng với các điểm piont cũ nên toạ độ cũng sẽ không đúng.vì chương trình chạy bình đồ của khảo sát đưa, điểm piont nó không nằm giữa text,mong anh xem lại
  • 0

#5 duy782006

duy782006

    PHẠM QUỐC DUY

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

Đã gửi 11 March 2010 - 03:49 PM

cảm ơn anh,lisp của anh đã theo ý của em được 1/2 rồi,các text bên file txt em cần là (01,x,y,z,),em đã sửa lại đoạn lisp của anh rồi,nhưng mà có một điều là các điểm piont mới vẽ không trùng với các điểm piont cũ nên toạ độ cũng sẽ không đúng.vì chương trình chạy bình đồ của khảo sát đưa, điểm piont nó không nằm giữa text,mong anh xem lại

Nói lại nhé:
-Thực chất lisp này đọc tọa độ điểm chèn thứ hai của text và nội dung text và xuất ra file txt. Trong file của bạn điểm đặt thứ 2 của text là center (điểm thứ nhất là góc dưới bên trái text).
-Trong file của bạn mình thấy point cũng nằm tương đối giửa text. Cái point viết ra là đối tượng mới tạo có x,y,z trung với giá trị trong file txt.
-Sai số (tọa độ giữa point cũ và mới) là không đáng kế mình nghỉ dùng nó để làm san nền hay thiết kế các thứ khác là không vần đề.
*Bạn muốn đọc tọa độ chính xác của point và text thì rất mệt và hay nhầm nửa mình không tiếp tục được.
  • 0

Cứ ngỡ trần gian là cõi thật.Cho nên tất bật đến bây giờ.
Tạo hộp thoại bằng lisp My blog QUY ĐỊNH ĐẶT TÊN TOPIC TRONG CHUYÊN MỤC LISPD http://ktsduy.wordpress.com/
Để cám ơn chỉ cần nhấn rep_up.png
(Là nhấn vào nút đó phía bài viết của người ta í chứ đừng có nhè cái hình này mà nhấn miết đi nha :-D


#6 thonghoang1

thonghoang1

    biết vẽ polygon

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

Đã gửi 11 March 2010 - 04:00 PM

ùh sai số của nó cũng chỉ là giá trị y thôi,mình sẽ hiệu chỉnh lại,cảm ơn anh,
  • 0