Chuyển đến nội dung
Diễn đàn CADViet
tranvuminhhieu

[Giúp em viết cái lisp] chuyển text các cao độ trong Autocad sang file dạng *.txt

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

Em chào bác các bác!

em muốn các bác giúp em viết cái lisp chuyển text các cao độ trong Autocad sang file dạng *.txt, để em chạy san nền HS3.0 với.

File từ cad sang kiểu như thế này:

http://www.cadviet.com/upfiles/3/xuat_tu_cad_sang_txt.rar

Mong các Bác giúp đỡ

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
Em chào bác các bác!

em muốn các bác giúp em viết cái lisp chuyển text các cao độ trong Autocad sang file dạng *.txt, để em chạy san nền HS3.0 với.

File từ cad sang kiểu như thế này:

http://www.cadviet.com/upfiles/3/xuat_tu_cad_sang_txt.rar

Mong các Bác giúp đỡ

 

Cái file TXT bạn gửi kèm có định dạng là gì vậy ? phải giải thích rõ mới xuất text ra file cho bạn được chứ .

 

Cột 1: STT

Cột 2 : X hay Y

Cột 3 : Xy hay Y

Cột 4 : ???

Cột 5 : Text cao độ

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

Em chào bác các bác!

em muốn các bác giúp em viết cái lisp chuyển text các cao độ trong Autocad sang file dạng *.txt, để em chạy san nền HS3.0 với.

File từ cad sang kiểu như thế này:

http://www.cadviet.com/upfiles/3/xuat_tu_cad_sang_txt.rar

Mong các Bác giúp đỡ

Bạn update cả file cad nữa để xem cấu trúc của bạn thế nào mới chuyển được chứ.

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

Cám ơn bạn, đây là file khi chuyển sang AUTOCAD. Bạn giúp mình với nhé

http://www.cadviet.com/upfiles/3/mat_bang_tinh_san_lap_topo_tuan.dwg

Với các PROXY_ENTITY hay còn có tên khác là ZombieEntity , LISP ... chịu !

  • 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

mình cũng có lisp đó nhưng tim chưa thấy. Bạn làm HS san nền chắc cũng biết đến nova bạn có thể dùng lenh CDTEXT để lấy dữ liệu text trên CAD thành .TXT như bạn. và xuất ra trên nova là lệnh CDTEP. Nếu nhất thiết bạn cần lisp đó pm lại mình tìm và gửi cho. ok chúc bạn thành công

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

Cám ơn bạn, đây là file khi chuyển sang AUTOCAD. Bạn giúp mình với nhé

http://www.cadviet.com/upfiles/3/mat_bang_tinh_san_lap_topo_tuan.dwg

 

Cái này bạn cần chạy chương trình Nova hoặc Topo (trên mạng đầy)

Bấm lệnh : LTG (thành lập lưới tứ giác) cho Nova đọc các điểm PROXY đó (vì chỉ có thằng Nova mới hiểu các mã định dạng của nó thôi)

Sau đó điền và nối các diểm cao trình : CDT

nó sẽ ra text cao độ bạn cần

:rolleyes:

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

mình cũng có lisp đó nhưng tim chưa thấy. Bạn làm HS san nền chắc cũng biết đến nova bạn có thể dùng lenh CDTEXT để lấy dữ liệu text trên CAD thành .TXT như bạn. và xuất ra trên nova là lệnh CDTEP. Nếu nhất thiết bạn cần lisp đó pm lại mình tìm và gửi cho. ok chúc bạn thành công

Cám ơn bạn nhiều, Bạn cho minh xin cái lisp đó với, đang cần quá. chúc bạn vui vẻ và hạnh phú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

Cái này bạn cần chạy chương trình Nova hoặc Topo (trên mạng đầy)

Bấm lệnh : LTG (thành lập lưới tứ giác) cho Nova đọc các điểm PROXY đó (vì chỉ có thằng Nova mới hiểu các mã định dạng của nó thôi)

Sau đó điền và nối các diểm cao trình : CDT

nó sẽ ra text cao độ bạn cần

:rolleyes:

Không phải chỉ có thằng Nova mới hiểu các mã định dạng của nó thôi(PROXY_ENTITY ).

Sử dụng .NET cũng đọc đuợc -> ra file text cao độ.

Có điều PROXY_ENTITY cũng giống như Block, mỗi thằng định nghĩa 1 kiểu khác nhau nên không dùng chung đuợc.

 

 

Cám ơn bạn nhiều, Bạn cho minh xin cái lisp đó với, đang cần quá. chúc bạn vui vẻ và hạnh phúc

Không có cái lisp đó đâu, đừng mất công tìm kiếm.

 

Cái này bạn cần chạy chương trình Nova hoặc Topo (trên mạng đầy)

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

Cái này bạn cần chạy chương trình Nova hoặc Topo (trên mạng đầy)

Bấm lệnh : LTG (thành lập lưới tứ giác) cho Nova đọc các điểm PROXY đó (vì chỉ có thằng Nova mới hiểu các mã định dạng của nó thôi)

Sau đó điền và nối các diểm cao trình : CDT

nó sẽ ra text cao độ bạn cần

:rolleyes:

Cái này cũng có thể dùng topo xuất ra được mà bạn.Bạn mờ bản vẽ bằng topo.Sau đó làm như video mình gửi đây là được nè

Đây là file mình đã lấy cho bạn:http://www.cadviet.com/upfiles/3/cao_do_tu_nhien.rar

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

Em chào bác các bác!

em muốn các bác giúp em viết cái lisp chuyển text các cao độ trong Autocad sang file dạng *.txt, để em chạy san nền HS3.0 với.

File từ cad sang kiểu như thế này:

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

Mong các Bác giúp đỡ

Thế từ file cad ban đầu bạn tranvuminhhieu yêu cầu giúp đỡ thì không ai giúp được sao? em cũng đang quan tâm vấn đề này ai biết chỉ dùm vớ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

Mình gửi bạn lisp xuất sang file text,mình thường dùng đề lấy cao độ khi làm san nền ( một số video hướng dẫn san nền mình cũng dùng lisp này)

(defun doichu ()
 (setvar "cmdecho" 0)
 (setvar "cmdecho" 0)
 (setvar "osmode" 0)
(if_file2)
 ;(setq s (getstring "\nFilename <Khong-Ten>: "))
;(if (= s nul) (setq s "Khong-Ten"))
(setq fn (open filename2 "w"))
 (setq i 0)
 (setq j 1)
 (prompt "\n")
 (prompt "\Chän C¸c §iÓm Cao §é : ")
 (setq ss  (ssget (list (cons 0 "Text"))))
 (if ss
           	(progn
                  	(repeat (sslength ss)   
(setq ent (entget (ssname ss i)))    
(setq nd (cdr (assoc 1 ent)))
(setq ss1 (cdr (assoc 72 ent)))
(setq ss2 (cdr (assoc 73 ent)))
	(if (and (= ss1 0) (= ss2 0))
   	(setq td (cdr (assoc 10 ent)))
   	(setq td (cdr (assoc 11 ent)))
	)
;(setq td1 (cdr (assoc 10 ent)))
  (setq Y (cadr td))
  (setq X (car td))
  (setq z (caddr td))
  (write-line (strcat (itoa j)
    	" "
    	(rtos X 2 3)
    	" "
    	(rtos Y 2 3)
    	" "
    	(rtos z 2 3)
    	" "
    	nd
    	) fn)
(setq i (+ i 1))
  (setq j (+ j 1))
   	)
)
)
 (close fn)
 (setvar "osmode" 191)
 (prompt "\n****	Chóc B¹n Thµnh C«ng ***")
 (princ) 
)
;********************************
;*********
(defun c:xtd ()
 	(doichu)     
 )
;;***************************Mo file
(defun if_file1 (/ name1)
 (if (= filename1 nil)
(progn
          	(setq name1 (getfiled "Më TËp Tin Chøa Sè LiÖu"
                       	(strcat "d:/canhan/TUAN/luu/" "solieu") "txt" 2))
          	(if name1 (setq filename1 (strcase name1)))
 	)
(progn
(setq name1 (getfiled "Më TËp Tin Chøa Sè LiÖu"
                       	filename1 "txt" 2))
          	(if name1 (setq filename1 (strcase name1)))
)
)
          	)
;****************************Ghi file
(defun if_file2 (/ name2)
 (if (= filename2 nil)
(progn
          	(setq name2 (getfiled "Më TËp Tin Chøa Sè LiÖu"
                       	(strcat "d:/canhan/TUAN/luu/" "solieu") "txt" 1))
          	(if name2 (setq filename2 (strcase name2)))
 	)
(progn
(setq name2 (getfiled "L­u TËp Tin Sè LiÖu"
                       	filename2 "txt" 1))
          	(if name2 (setq filename2 (strcase name2)))
)
)
          	)

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

Mình gửi bạn lisp xuất sang file text,mình thường dùng đề lấy cao độ khi làm san nền ( một số video hướng dẫn san nền mình cũng dùng lisp này)

(defun doichu ()
 (setvar "cmdecho" 0)
 (setvar "cmdecho" 0)
 (setvar "osmode" 0)
(if_file2)
 ;(setq s (getstring "\nFilename <Khong-Ten>: "))
;(if (= s nul) (setq s "Khong-Ten"))
(setq fn (open filename2 "w"))
 (setq i 0)
 (setq j 1)
 (prompt "\n")
 (prompt "\Chän C¸c §iÓm Cao §é : ")
 (setq ss  (ssget (list (cons 0 "Text"))))
 (if ss
           	(progn
              		(repeat (sslength ss)  
(setq ent (entget (ssname ss i)))    
(setq nd (cdr (assoc 1 ent)))
(setq ss1 (cdr (assoc 72 ent)))
(setq ss2 (cdr (assoc 73 ent)))
(if (and (= ss1 0) (= ss2 0))
   	(setq td (cdr (assoc 10 ent)))
   	(setq td (cdr (assoc 11 ent)))
)
;(setq td1 (cdr (assoc 10 ent)))
  (setq Y (cadr td))
  (setq X (car td))
  (setq z (caddr td))
  (write-line (strcat (itoa j)
		" "
		(rtos X 2 3)
		" "
		(rtos Y 2 3)
		" "
		(rtos z 2 3)
		" "
		nd
		) fn)
(setq i (+ i 1))
  (setq j (+ j 1))
   	)
)
)
 (close fn)
 (setvar "osmode" 191)
 (prompt "\n****	Chóc B¹n Thµnh C«ng ***")
 (princ)
)
;********************************
;*********
(defun c:xtd ()
 	(doichu)    
 )
;;***************************Mo file
(defun if_file1 (/ name1)
 (if (= filename1 nil)
(progn
      		(setq name1 (getfiled "Më TËp Tin Chøa Sè LiÖu"
                       	(strcat "d:/canhan/TUAN/luu/" "solieu") "txt" 2))
      		(if name1 (setq filename1 (strcase name1)))
 	)
(progn
(setq name1 (getfiled "Më TËp Tin Chøa Sè LiÖu"
                       	filename1 "txt" 2))
      		(if name1 (setq filename1 (strcase name1)))
)
)
      		)
;****************************Ghi file
(defun if_file2 (/ name2)
 (if (= filename2 nil)
(progn
      		(setq name2 (getfiled "Më TËp Tin Chøa Sè LiÖu"
                       	(strcat "d:/canhan/TUAN/luu/" "solieu") "txt" 1))
      		(if name2 (setq filename2 (strcase name2)))
 	)
(progn
(setq name2 (getfiled "L­u TËp Tin Sè LiÖu"
                       	filename2 "txt" 1))
      		(if name2 (setq filename2 (strcase name2)))
)
)
      		)

Lisp này hình như kg dùng đc.

Nhưng nuốn lấy dữ liệu file này mình nghĩ chỉ cần "nổ" từng thằng một, rồi lấy dữ liệu. Cái text số nguyên chính là số hiệu điểm, text thập phân là độ cao, hình tròn chính là điểm tọa độ. Nhiều cao thủ viết cái này trong vòng 5' là xong

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

Lisp này hình như kg dùng đc.

Nhưng nuốn lấy dữ liệu file này mình nghĩ chỉ cần "nổ" từng thằng một, rồi lấy dữ liệu. Cái text số nguyên chính là số hiệu điểm, text thập phân là độ cao, hình tròn chính là điểm tọa độ. Nhiều cao thủ viết cái này trong vòng 5' là xong

Với file gốc bạn hiếu đưa ra thì mình đã làm video hướng dẫn lấy cao độ rồi đó bác,còn với các text thì lisp của em làm được việc đó 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

Đúng như bạn TrungNgaMy nói, phải làm theo cách đó mới chính xác được, bạn Tranvuminhhieu đã tìm ra lời giải cho mình chưa vậy, nếu chưa có câu trả lời nào đáp ứng được yêu cầu của bạn thì mình sẽ giúp bạ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

Mình xin nói trước là mình đưa ra file kết quả dưới dạng excel chứ không phải txt vì mình ít khi làm với txt nên cũng không nghiên cứu về nó.

Nếu bạn cần thì phải nói rõ là kết quả gồm mấy cột, các cột đó mang giá trị nào thì mình mới làm giúp bạn đượ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

mình cũng đang dùng hs muốn xuất cao độ tự nhiên ra tệp txt nếu xuất ra exel thì hs ko nhận file excel đó đc

Bạn chỉ cần copy từ excel rồi dán nó vào trình soạn thảo txt là được thôi 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

mình cũng đang dùng hs muốn xuất cao độ tự nhiên ra tệp txt nếu xuất ra exel thì hs ko nhận file excel đó đc

Bạn có thể gửi cho mình cái file mà bạn không xuất ra được số liệu không.Với cách làm như trong video của mình thì là ok rồi mà.nếu trên bản vẽ là text bạn dùng lisp của mình là được,nếu nó là block bạn dùng lệnh eattext ( đã có video mình post lên về lệnh này),nếu nó là acad_proxy dùng topo hoặc HS làm được bạn ah

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

Của các bạn đây, chương trình sẽ đọc và ghi luôn ra bản cad cho các bạn không cần xuất ra file txt rồi đọc lại nữa(chú ý chỉ dùng cho bản này), mình mở mã nguồn để anh em có thể chỉnh sửa lại theo ý mình

http://www.cadviet.com/upfiles/3/text_proxy.rar

Cách thực hiện:

b1/ Giải nén

b2/ mở bản cad muốn chuyển đổi

b3/ ap 2 file text_proxy.lsp và text_proxy.dvb lên

b4/ dùng lệnh TP để chuyển đổi(làm theo các bước dưới dòng command)

Chú ý: phải chọn toàn bộ các đối tượng đó rồi explode 1 lần trước khi chạy chương trình!

  • 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

Anh hải Pro quá.Bạn đó cần xuất ra txt là để làm HS đó anh, xây dựng tập điểm từ tệp txt đó mà.Cách của anh trước khi làm cũng cần nổ các đối tượng ra mới làm được,lisp của em là dùng cho đối tượng text còn của anh là dùng cho Mtext

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

hjhj ko biết copy từ execl qua txt thì hs nó có hiểu giống như mình nhận từ tệp txt ko nhĩ chắc bác redsea_tq đã thử rôi. vậy cho mình xin cái đáp án bạn nhĩ để xem thế nào

thank

Có lẽ là ok bạn ah

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

Đúng là đối tượng này mình bó tay, không biết .net có giã được nó không chứ vb là bó tay rồi. thằng HS nó nhận mặt bằng là Text, Mtext hay blockref vậy chú Tuấn. anh chưa sử dụng thằng này nên không biết gì về nó cả. tiện ích này anh ghi ra luôn khỏi cần thằng hs đọc lại nữa, với Main của anh thì như vậy là ok rồ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

Đúng là đối tượng này mình bó tay, không biết .net có giã được nó không chứ vb là bó tay rồi. thằng HS nó nhận mặt bằng là Text, Mtext hay blockref vậy chú Tuấn. anh chưa sử dụng thằng này nên không biết gì về nó cả. tiện ích này anh ghi ra luôn khỏi cần thằng hs đọc lại nữa, với Main của anh thì như vậy là ok rồi.

Main của anh ok vì nó nhận đối tượng text trên mặt bằng anh ah.còn HS nó nhận đối tượng tập điểm là các đối tượng acad_proxy như bạn kia đã nêu.Các đối tượng này nếu xây dựng thì cách thông dụng thường là từ file txt đó anh.Nói chung dùng HS thì tạo mặt bằng tự nhiên từ file txt hay hơn anh ah.Nói chung tiện ích của anh chuyển qua xuất them sang tệp txt nữa là được đó anh

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

Main của anh ok vì nó nhận đối tượng text trên mặt bằng anh ah.còn HS nó nhận đối tượng tập điểm là các đối tượng acad_proxy như bạn kia đã nêu.Các đối tượng này nếu xây dựng thì cách thông dụng thường là từ file txt đó anh.Nói chung dùng HS thì tạo mặt bằng tự nhiên từ file txt hay hơn anh ah.Nói chung tiện ích của anh chuyển qua xuất them sang tệp txt nữa là được đó anh

Vậy ah, mình tưởng là có tập hợp điểm do bên khảo sát đưa sang là dùng hs chạy được rồi chứ, mình không nghĩ nó lại rắc rối thế. vì bạn trên kia không cho mình biết định dạng file .txt như thế nào nên mình cũng không biết đưa ra sao cho hợp lý. mà thôi có lẽ họ cũng tìm ra được lời giải theo lisp của Tuấn rồi, mình nghiên cứu thêm đề làm nút giao vậy, nếu Tuấn có tài liệu nào hướng dẫn thiết kế nút giao thì send cho anh với nhé!

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

em post nhầm topic mà không biết xóa nên đành xóa nội dung bài viết.Các mod xóa giùm em với ah

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

×