Đến nội dung


Hình ảnh
* * - - - 2 Bình chọn

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


  • Please log in to reply
67 replies to this topic

#1 tranvuminhhieu

tranvuminhhieu

    biết zoom

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

Đã gửi 26 January 2011 - 05:46 PM

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 đỡ
  • 0

#2 elleHCSC

elleHCSC

    biết lệnh copy

  • Members
  • PipPipPip
  • 119 Bài viết
Điểm đánh giá: 98 (tàm tạm)

Đã gửi 28 January 2011 - 10:47 AM

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 đỡ


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 độ
  • 0
Share for all, all will share !

--------------------
HTTP://WWW.HCSC.VN
HTTP://WWW.HCSC.COM.VN

#3 18011985

18011985

    biết lệnh properties

  • Members
  • PipPipPipPip
  • 255 Bài viết
Điểm đánh giá: 61 (tàm tạm)

Đã gửi 08 February 2011 - 10:09 AM

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 đỡ

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ứ.
  • 0
Trăng 16 trăng tròn
Em 16 bụng ... như trăng

Hướng dẫn sử dụng diễn đàn:
Để cảm ơn hay bài viết có ích: Ấn dấu + cuối bài.
Không vừa lòng hay bài spam: Ấn dấu - cuối bài.

#4 tranvuminhhieu

tranvuminhhieu

    biết zoom

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

Đã gửi 15 February 2011 - 04:30 PM

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ứ.

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.c...p_topo_tuan.dwg
  • 0

#5 gia_bach

gia_bach

    biết lệnh adcenter

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

Đã gửi 16 February 2011 - 07:33 AM

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.c...p_topo_tuan.dwg

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

#6 dizangu

dizangu

    biết vẽ line

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

Đã gửi 02 March 2011 - 10:21 AM

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
  • 0

#7 VUVUZELA

VUVUZELA

    biết lệnh chamfer

  • Members
  • PipPipPipPip
  • 210 Bài viết
Điểm đánh giá: 97 (tàm tạm)

Đã gửi 02 March 2011 - 10:43 AM

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.c...p_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:
  • 0

Hệ thống Liên Kết, Thiết Kế Tự Động

ttps://www.facebook...etThietKeTuDong


#8 tranvuminhhieu

tranvuminhhieu

    biết zoom

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

Đã gửi 02 March 2011 - 11:00 AM

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
  • 0

#9 gia_bach

gia_bach

    biết lệnh adcenter

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

Đã gửi 02 March 2011 - 11:04 AM

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)
  • 0

#10 cd2k44

cd2k44

    Edu level: li5

  • Members
  • PipPipPipPipPipPipPip
  • 648 Bài viết
Điểm đánh giá: 121 (tàm tạm)

Đã gửi 02 March 2011 - 12:07 PM

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
  • 0

#11 vietphuxd

vietphuxd

    biết pan

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

Đã gửi 16 September 2011 - 10:25 PM

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
  • 0

#12 cd2k44

cd2k44

    Edu level: li5

  • Members
  • PipPipPipPipPipPipPip
  • 648 Bài viết
Điểm đánh giá: 121 (tàm tạm)

Đã gửi 17 September 2011 - 12:31 AM

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&#228;n C&#184;c &#167;i&#211;m Cao &#167;&#233; : ")
(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&#243;c B&#185;n Th&#181;nh C&#171;ng ***")
(princ)
)
;********************************
;*********
(defun c:xtd ()
(doichu)
)
;;***************************Mo file
(defun if_file1 (/ name1)
(if (= filename1 nil)
(progn
(setq name1 (getfiled "M&#235; T&#203;p Tin Ch&#248;a S&#232; Li&#214;u"
(strcat "d:/canhan/TUAN/luu/" "solieu") "txt" 2))
(if name1 (setq filename1 (strcase name1)))
)
(progn
(setq name1 (getfiled "M&#235; T&#203;p Tin Ch&#248;a S&#232; Li&#214;u"
filename1 "txt" 2))
(if name1 (setq filename1 (strcase name1)))
)
)
)
;****************************Ghi file
(defun if_file2 (/ name2)
(if (= filename2 nil)
(progn
(setq name2 (getfiled "M&#235; T&#203;p Tin Ch&#248;a S&#232; Li&#214;u"
(strcat "d:/canhan/TUAN/luu/" "solieu") "txt" 1))
(if name2 (setq filename2 (strcase name2)))
)
(progn
(setq name2 (getfiled "L&#173;u T&#203;p Tin S&#232; Li&#214;u"
filename2 "txt" 1))
(if name2 (setq filename2 (strcase name2)))
)
)
)

  • 0

#13 TRUNGNGAMY

TRUNGNGAMY

    biết lệnh block

  • Members
  • PipPipPipPipPipPip
  • 401 Bài viết
Điểm đánh giá: 91 (tàm tạm)

Đã gửi 17 September 2011 - 01:18 AM

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&#228;n C&#184;c &#167;i&#211;m Cao &#167;&#233; : ")
(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&#243;c B&#185;n Th&#181;nh C&#171;ng ***")
(princ)
)
;********************************
;*********
(defun c:xtd ()
(doichu)
)
;;***************************Mo file
(defun if_file1 (/ name1)
(if (= filename1 nil)
(progn
(setq name1 (getfiled "M&#235; T&#203;p Tin Ch&#248;a S&#232; Li&#214;u"
(strcat "d:/canhan/TUAN/luu/" "solieu") "txt" 2))
(if name1 (setq filename1 (strcase name1)))
)
(progn
(setq name1 (getfiled "M&#235; T&#203;p Tin Ch&#248;a S&#232; Li&#214;u"
filename1 "txt" 2))
(if name1 (setq filename1 (strcase name1)))
)
)
)
;****************************Ghi file
(defun if_file2 (/ name2)
(if (= filename2 nil)
(progn
(setq name2 (getfiled "M&#235; T&#203;p Tin Ch&#248;a S&#232; Li&#214;u"
(strcat "d:/canhan/TUAN/luu/" "solieu") "txt" 1))
(if name2 (setq filename2 (strcase name2)))
)
(progn
(setq name2 (getfiled "L&#173;u T&#203;p Tin S&#232; Li&#214;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
  • 0

#14 cd2k44

cd2k44

    Edu level: li5

  • Members
  • PipPipPipPipPipPipPip
  • 648 Bài viết
Điểm đánh giá: 121 (tàm tạm)

Đã gửi 18 September 2011 - 08:28 PM

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à
  • 0

#15 redsea_tq

redsea_tq

    biết lệnh erase

  • Members
  • PipPipPip
  • 107 Bài viết
Điểm đánh giá: 13 (tàm tạm)

Đã gửi 09 October 2011 - 08:12 PM

Đú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.
  • 0

#16 redsea_tq

redsea_tq

    biết lệnh erase

  • Members
  • PipPipPip
  • 107 Bài viết
Điểm đánh giá: 13 (tàm tạm)

Đã gửi 09 October 2011 - 10:21 PM

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.
  • 0

#17 redsea_tq

redsea_tq

    biết lệnh erase

  • Members
  • PipPipPip
  • 107 Bài viết
Điểm đánh giá: 13 (tàm tạm)

Đã gửi 10 October 2011 - 08:19 AM

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à.
  • 0

#18 cd2k44

cd2k44

    Edu level: li5

  • Members
  • PipPipPipPipPipPipPip
  • 648 Bài viết
Điểm đánh giá: 121 (tàm tạm)

Đã gửi 10 October 2011 - 08:33 AM

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
  • 0

#19 redsea_tq

redsea_tq

    biết lệnh erase

  • Members
  • PipPipPip
  • 107 Bài viết
Điểm đánh giá: 13 (tàm tạm)

Đã gửi 10 October 2011 - 09:47 AM

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.c.../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!
  • 1

#20 cd2k44

cd2k44

    Edu level: li5

  • Members
  • PipPipPipPipPipPipPip
  • 648 Bài viết
Điểm đánh giá: 121 (tàm tạm)

Đã gửi 10 October 2011 - 11:13 AM

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
  • 0