Đến nội dung


Hình ảnh

export tập điểm text thành file đuôi .txt


  • Please log in to reply
9 replies to this topic

#1 minhee

minhee

    biết vẽ line

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

Đã gửi 11 June 2008 - 04:35 PM

Em chuyên làm san nền và giao thông nên thường xuyên dùng các file bản vẽ khảo sát hiện trạng để thiết kế, nhưng cao độ trong các bản vẽ đó đều là các text, bác nào biết cách số hoá các ký tự text đó thành cao độ thì chỉ giúp em với.Em đang phải làm một cách rất thủ công là dùng Land rồi tạo thành từng điểm cao độ đúng vào vị trí của các text, sau đó export tập điểm thành file đuôi .txt, rồi mới dùng HS và Nova để mô hình hoá địa hình. Cách này rất mất thời gian, thiếu chính xác và không pro. Em cũng đã từng nhìn 1 người làm được việc này bằng cách kết hợp Topo,Land.,nhưng em ko thể nhớ được là làm như thế nào.Bác nào biết cách chỉ cho em với.
Cám ơn nhiều!
  • 0

#2 lamtecco2

lamtecco2

    biết lệnh adcenter

  • Moderator
  • PipPipPipPipPipPipPip
  • 715 Bài viết
Điểm đánh giá: 856 (rất tốt)

Đã gửi 12 June 2008 - 09:37 AM

Em chuyên làm san nền và giao thông nên thường xuyên dùng các file bản vẽ khảo sát hiện trạng để thiết kế, nhưng cao độ trong các bản vẽ đó đều là các text, bác nào biết cách số hoá các ký tự text đó thành cao độ thì chỉ giúp em với.Em đang phải làm một cách rất thủ công là dùng Land rồi tạo thành từng điểm cao độ đúng vào vị trí của các text, sau đó export tập điểm thành file đuôi .txt, rồi mới dùng HS và Nova để mô hình hoá địa hình. Cách này rất mất thời gian, thiếu chính xác và không pro. Em cũng đã từng nhìn 1 người làm được việc này bằng cách kết hợp Topo,Land.,nhưng em ko thể nhớ được là làm như thế nào.Bác nào biết cách chỉ cho em với.
Cám ơn nhiều!

Trong Nova có chức năng xuất cao độ theo text bạn đã thử chưa?
  • 0

#3 Nguyen Hoanh

Nguyen Hoanh

    biết lệnh adcenter

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

Đã gửi 12 June 2008 - 12:17 PM

Em chuyên làm san nền và giao thông nên thường xuyên dùng các file bản vẽ khảo sát hiện trạng để thiết kế, nhưng cao độ trong các bản vẽ đó đều là các text, bác nào biết cách số hoá các ký tự text đó thành cao độ thì chỉ giúp em với.Em đang phải làm một cách rất thủ công là dùng Land rồi tạo thành từng điểm cao độ đúng vào vị trí của các text, sau đó export tập điểm thành file đuôi .txt, rồi mới dùng HS và Nova để mô hình hoá địa hình. Cách này rất mất thời gian, thiếu chính xác và không pro. Em cũng đã từng nhìn 1 người làm được việc này bằng cách kết hợp Topo,Land.,nhưng em ko thể nhớ được là làm như thế nào.Bác nào biết cách chỉ cho em với.
Cám ơn nhiều!


lệnh là EXPTXT

(defun c:exptxt()
(setq
ss (ssget '((0 . "TEXT")))
fn (getfiled "Ten file: " "" "txt" 1)
f (open fn "w")
lst (ss2ent ss)
)
(foreach e lst
(setq tt (entget e)
p (cdr (assoc 10 tt))
x (rtos (car p))
y (rtos (cadr p))
z (cdr (assoc 1 tt))

)
(write-line (strcat x " " y " " z) f)
)
(close f)
(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)
)

  • 2

#4 minhee

minhee

    biết vẽ line

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

Đã gửi 13 June 2008 - 09:12 AM

lệnh là EXPTXT


(defun c:exptxt()
(setq
ss (ssget '((0 . "TEXT")))
fn (getfiled "Ten file: " "" "txt" 1)
f (open fn "w")
lst (ss2ent ss)
)
(foreach e lst
(setq tt (entget e)
p (cdr (assoc 10 tt))
x (rtos (car p))
y (rtos (cadr p))
z (cdr (assoc 1 tt))

)
(write-line (strcat x " " y " " z) f)
)
(close f)
(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)
)


OK,cám ơn bác Hoành nhiều nhé,em đã dùng thử lisp của bác và làm được rồi, làm cái này nhanh hơn nhiều là dùng Topo kết hợp với Land. Thanks bác!
  • 1

#5 ksxd_84

ksxd_84

    Chưa sử dụng CAD

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

Đã gửi 14 July 2008 - 02:04 PM

Cac dai ca oi sao em khong lam duoc nhi
Dai ca huong dan chi tiet giup em di
  • 0

#6 NguyenNgocSon

NguyenNgocSon

    biết dimbaseline

  • Members
  • PipPipPipPipPip
  • 368 Bài viết
Điểm đánh giá: 39 (tàm tạm)

Đã gửi 21 July 2010 - 10:16 PM

lệnh là EXPTXT


(defun c:exptxt()
(setq
ss (ssget '((0 . "TEXT")))
fn (getfiled "Ten file: " "" "txt" 1)
f (open fn "w")
lst (ss2ent ss)
)
(foreach e lst
(setq tt (entget e)
p (cdr (assoc 10 tt))
x (rtos (car p))
y (rtos (cadr p))
z (cdr (assoc 1 tt))

)
(write-line (strcat x " " y " " z) f)
)
(close f)
(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)
)


Qủa thực lisp này rất hay bác Hoành. Chi có điều em muốn file .txt xuất ra có dạng như sau :

TT X Y Z
01 21.3 22.4 0.3

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

Em đã thử sửa code nhưng chưa được. Bác có thể giúp em không ? Cám ơn Bác
Chúc bác luôn khoẻ !
  • 0

#7 ht2305

ht2305

    biết vẽ polygon

  • Members
  • PipPip
  • 73 Bài viết
Điểm đánh giá: 12 (tàm tạm)

Đã gửi 30 July 2010 - 11:06 AM

Bạn dùng NOVA, dùgn lệnh CDTEXT xuất text đấy ra tệp cao độ rồi dùng lệnh CDTEP đưa vào là đuợc mà, mình thường dùng cách này.
  • 0

#8 toiyeuvietnam

toiyeuvietnam

    biết vẽ polygon

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

Đã gửi 24 June 2011 - 03:10 PM

các Bác ơi cho em hỏi 1 chút là sao em dùng cái lisp của bác Hoành khi xuất tọa độ qua file xxx.txt mà không có kb nào vậy nhỉ?
nhân tiện đây nhờ các chuyên gia giúp em có thể xuất tọa độ trực tiếp 1 bảng liệt kê tọa độ ngay trên bản vẽ như hình minh họa kèm theo dưới đây được không a? cảm ơn các Bác rất nhiều!
Hình minh họa: http://www.cadviet.c...s/3/drawing.dwg
  • 0

#9 tuan138

tuan138

    biết zoom

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

Đã gửi 04 October 2016 - 09:41 AM

Xin lỗi vì làm phiền các bác.

Bác nào sửa được lỗi này không ạ?

Em chạy lisp này trên CAD Mechanical 2009 thì báo lỗi như sauCapture.jpg


  • 0

#10 thikladuoc

thikladuoc

    biết vẽ line

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

Đã gửi 06 November 2016 - 04:06 PM

lệnh là EXPTXT

(defun c:exptxt()
(setq
ss (ssget '((0 . "TEXT")))
fn (getfiled "Ten file: " "" "txt" 1)
f (open fn "w")
lst (ss2ent ss)
)
(foreach e lst
(setq tt (entget e)
p (cdr (assoc 10 tt))
x (rtos (car p))
y (rtos (cadr p))
z (cdr (assoc 1 tt))

)
(write-line (strcat x " " y " " z) f)
)
(close f)
(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)
)

Bạn ơi, Lisp trên của bạn là chọn thẳng vào text và xuất tọa độ của text đó ra, cao độ cũng chính là text đó. Lisp trên sử dụng được singeltext, không xuất được mutiltext

Nhưng nếu trong trường hợp tọa độ là ở hình tròn và cao độ ghi dang text, stt cũng dạng text thì các bạn xem giúp mình

mình gửi file cad dạng đó và text sử dụng là cả 2 trường hợp:  http://www.mediafire...Xuat Toa Do.dwg

Lisp trên bạn thêm giúp mọi người chút nữa với:

khi mở và load lên, sẽ cho mọi người 2 lựa chọn ( tọa độ tại text (1)/tọa độ,stt ngoài text (2)/tọa độ tại text và stt ngoài (3):

nếu gõ 1 sẽ chạy lisp trên ( bạn xem lại giúp, nếu Mutiltext sẽ không nhận được )

Nếu gõ 3 thì lisp trên sẽ thêm phần stt nữa ( khi xuất ra sẽ 1 file txt có stt      x      y       z )

nếu gõ 2 thì sẽ pick chọn lần lượt: text STT => vị trí trích tọa độ => text cao độ ( khi xuất ra sẽ 1 file txt có stt      x      y       z )


  • 0