Đến nội dung


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

[Yêu cầu] lisp Phun tọa độ các điểm từ file txt vào CAD


  • Please log in to reply
107 replies to this topic

#61 KS.PhanThanhTu

KS.PhanThanhTu

    biết vẽ point

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

Đã gửi 09 October 2010 - 06:36 PM

Ở đây mình đã thêm tính năng chèn điểm cho bạn luôn :cheers:

http://www.mediafire...54uog3g0lzawr5l

Lệnh là (defun c:acc()

ACC

Như vậy còn tính năng xuất từ điểm và text ra txt cho bạn nữa thôi nhé :cheers: :cheers:
  • 0
KS Phan Thanh Tú.Email: Vansulich@yahoo.com

#62 khaosat2009

khaosat2009

    biết lệnh offset

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

Đã gửi 11 October 2010 - 08:55 AM

Ở đây mình đã thêm tính năng chèn điểm cho bạn luôn :cheers:

http://www.mediafire...54uog3g0lzawr5l

Lệnh là (defun c:acc()

ACC

Như vậy còn tính năng xuất từ điểm và text ra txt cho bạn nữa thôi nhé :cheers: :cheers:

Cám ơn KS.PhanThanhTu đã giúp mình.
file của bạn mình dùng lệnh ACC thêm điểm thì được, riêng lệnh FC khi gọi lệnh thì không ra kết qua. Không biết buộc phải dùng Acad2007 hay sao vậy bạn.?
Không nhất thiết file tọa độ *.txt phải ở ổ C, cho vào thư mục bất kỳ nào cũng được. Mong được bạn chỉ giúp.
Riêng còn một vấn đề này nửa, nhờ bạn giúp : sau khi chèn điểm vào bản vẽ với số thứ tự và cao độ mình có một file tổng hợp chung, cần chọn tất cả các điểm đó xuất ra file text với các nội dung sau STT X Y Caodo Code , Xin được Bạn giúp đỡ. Cám ơn
  • 0

#63 thanhduan2407

thanhduan2407

    biết lệnh adcenter

  • Advance Member
  • PipPipPipPipPipPipPip
  • 995 Bài viết
Điểm đánh giá: 223 (khá)

Đã gửi 20 October 2010 - 09:04 AM

Ở đây mình đã thêm tính năng chèn điểm cho bạn luôn :lol:

http://www.mediafire...54uog3g0lzawr5l

Lệnh là (defun c:acc()

ACC

Như vậy còn tính năng xuất từ điểm và text ra txt cho bạn nữa thôi nhé :lol: :lol:

Xin chào bạn KS.PhanThanhTu
Mình rất muốn xem mã Code của bạn nhưng phần bạn viết có xen vào VBA mà bạn lại để pass nên mình pó tay không xem được.
Rất mong bạn có thể gửi cho mình bản ko khoá. (VBA)
Cảm ơn bạn nhiều.
  • 0



Tôi là con kiến bò trên sa mạc kiến thức bao la. Biển học thật rộng lớn







#64 secam

secam

    Chưa sử dụng CAD

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

Đã gửi 08 June 2011 - 08:18 AM

Mình đã làm xong cho bạn rồi, phần chuyển dữ liệu từ txt sang cad , rất nhanh, miễn tab hay cách đều ok ( bao nhiêu cũng đc)

tạo đầy đủ layer cho bạn, text hiển thị lấy theo text style hiện thời

file gốc bạn để tại C:\goc.txt (dữ liệu như bạn đã nói)

Các modul sau bạn cứ nói cụ thể mình sẽ làm tiếp

Lệnh là FC (fun cad =))), đã chỉnh x là trục bắc , y là trục nam cho bạn
:cheers:

Tải tệp lisp và video hướng dẫn tại :
http://www.fileserve.com/file/Z4H6eF7

Đây là kết quả:
Hình đã gửi


Anh ơi anh upload lại link video va file hướng dẫn đi anh, link bị die rồi,
Mà em load file text2cad.dvb không được, là lỗi gì vậy anh?
Em đang dùng cad 2010
  • 0

#65 lonzthjeura

lonzthjeura

    Chưa sử dụng CAD

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

Đã gửi 24 February 2012 - 09:52 AM

Có bác nào giúp em chỉnh sửa lisp của bác Gia_Bach http://www.cadviet.c.../80142_rft2.lsp

;; free lisp from cadviet.com
(defun c:RFT(/ data f h line pt pXY spc str ten val);Read File Txt
;| By : Gia Bach, gia_bach @ www.CadViet.com |;
(vl-load-com)
(defun Split (Str Char / Lst pos)
(while (setq pos (vl-string-search Char Str))
(if (null Lst)
(setq Lst (list (substr Str 1 pos)))
(setq Lst (append Lst (list (read (substr Str 1 pos))))))
(setq Str (substr Str (+ pos 2)) ))
(setq Lst (append Lst (list (read Str)))))

(if (setq ten (getfiled "Chon File txt" (getvar "dwgprefix") "txt" 8))
(progn
(or (tblsearch "layer" "Point") (command "-layer" "n" "Point" "") )
(or (tblsearch "layer" "Sothutu") (command "-layer" "n" "Sothutu" "c" 3 "Sothutu" "") )
(or (tblsearch "layer" "Caodo") (command "-layer" "n" "Caodo" "c" 4 "Caodo" "") )
(setq spc (vla-get-ModelSpace (vla-get-ActiveDocument(vlax-get-Acad-Object))))
(setq h 2);(* (getvar "dimtxt")(getvar "dimscale")))
(setq f (open (findfile ten) "r"))
(while (setq Line (read-line f))
(if (vl-string-search "\t" Line)
(progn
(setq data (split Line "\t" )
val (car data)
pt (cdr data))
(if (not(vl-catch-all-error-p (vl-catch-all-apply 'vlax-3d-point pt)))
(progn
(setq pXY (list (car pt)(cadr pt)))
(vla-put-Layer (vla-addpoint spc (vlax-3d-point pXY)) "Point")
(vla-put-Layer (setq str (vla-addtext spc val (vlax-3d-point pXY) h)) "Sothutu")
(vla-put-Alignment str 8)
(vla-put-TextAlignmentPoint str (vlax-3d-point pXY))
(vla-put-Layer (vla-addtext spc (caddr pt) (vlax-3d-point pXY) h) "Caodo") ))))) ))
(princ))
với yêu cầu:
- File text dạng : SST,Y,X,Z,Code
- Độ cao Z có dấu chấm ở hàng thập phân nằm đúng vào vị trí tọa độ (X,Y) của điểm đó .
Em xin cảm ơn trước.
  • 0

#66 ketxu

ketxu

    Copier - Paster - Editor

  • Moderator
  • PipPipPipPipPipPipPip
  • 5685 Bài viết
Điểm đánh giá: 2606 (tuyệt vời)

Đã gửi 24 February 2012 - 11:04 AM

File Text + CAD đâu bạn ????
  • 0

Thành viên nhóm CadMagic.
Mời bạn ghé thăm facebook nhóm - Page viết lisp theo yêu cầu  :
CAD MAGIC


#67 thanhduan2407

thanhduan2407

    biết lệnh adcenter

  • Advance Member
  • PipPipPipPipPipPipPip
  • 995 Bài viết
Điểm đánh giá: 223 (khá)

Đã gửi 24 February 2012 - 12:07 PM

Có bác nào giúp em chỉnh sửa lisp của bác Gia_Bach http://www.cadviet.c.../80142_rft2.lsp


;; free lisp from cadviet.com
(defun c:RFT(/ data f h line pt pXY spc str ten val);Read File Txt
;| By : Gia Bach, gia_bach @ www.CadViet.com |;
(vl-load-com)
(defun Split (Str Char / Lst pos)
(while (setq pos (vl-string-search Char Str))
(if (null Lst)
(setq Lst (list (substr Str 1 pos)))
(setq Lst (append Lst (list (read (substr Str 1 pos))))))
(setq Str (substr Str (+ pos 2)) ))
(setq Lst (append Lst (list (read Str)))))

(if (setq ten (getfiled "Chon File txt" (getvar "dwgprefix") "txt" 8))
(progn
(or (tblsearch "layer" "Point") (command "-layer" "n" "Point" "") )
(or (tblsearch "layer" "Sothutu") (command "-layer" "n" "Sothutu" "c" 3 "Sothutu" "") )
(or (tblsearch "layer" "Caodo") (command "-layer" "n" "Caodo" "c" 4 "Caodo" "") )
(setq spc (vla-get-ModelSpace (vla-get-ActiveDocument(vlax-get-Acad-Object))))
(setq h 2);(* (getvar "dimtxt")(getvar "dimscale")))
(setq f (open (findfile ten) "r"))
(while (setq Line (read-line f))
(if (vl-string-search "\t" Line)
(progn
(setq data (split Line "\t" )
val (car data)
pt (cdr data))
(if (not(vl-catch-all-error-p (vl-catch-all-apply 'vlax-3d-point pt)))
(progn
(setq pXY (list (car pt)(cadr pt)))
(vla-put-Layer (vla-addpoint spc (vlax-3d-point pXY)) "Point")
(vla-put-Layer (setq str (vla-addtext spc val (vlax-3d-point pXY) h)) "Sothutu")
(vla-put-Alignment str 8)
(vla-put-TextAlignmentPoint str (vlax-3d-point pXY))
(vla-put-Layer (vla-addtext spc (caddr pt) (vlax-3d-point pXY) h) "Caodo") ))))) ))
(princ))
với yêu cầu:
- File text dạng : SST,Y,X,Z,Code
- Độ cao Z có dấu chấm ở hàng thập phân nằm đúng vào vị trí tọa độ (X,Y) của điểm đó .
Em xin cảm ơn trước.

Bạn muốn như vậy thì phải tạo block Att rồi. Sau đó tách thành 2 kiểu nguyên và phần sau dấu phẩy. Cái này tôi làm được nhưng không có thời gian. Bác Ketxu sẽ giúp bạn nếu bạn đưa ra 1 file mẫu.
Chú ý với bất cứ ai yêu cầu đều phải đưa file mẫu lên.
Hề hề. Ketxu quan tâm mừ.
  • 1



Tôi là con kiến bò trên sa mạc kiến thức bao la. Biển học thật rộng lớn







#68 lonzthjeura

lonzthjeura

    Chưa sử dụng CAD

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

Đã gửi 24 February 2012 - 02:28 PM

File Text + CAD đâu bạn ????



File text: http://www.cadviet.c.../3/80142_11.txt
Cad: http://www.cadviet.c...2_drawing_2.dwg
Cái này em xuất bằng NOVA.Nhưng Nova xuất ra phần cao độ Z thành 2 phần text (textcaodococ và textcaodomia) riêng biệt. Khi mình muốn chỉnh cho text bé lại ( để phù hợp với tỉ lệ bản đồ) thì 2 phần nguyên va phần thập phân lại cách quá xa dấu "."
  • 0

#69 ketxu

ketxu

    Copier - Paster - Editor

  • Moderator
  • PipPipPipPipPipPipPip
  • 5685 Bài viết
Điểm đánh giá: 2606 (tuyệt vời)

Đã gửi 24 February 2012 - 03:32 PM

Yêu cầu này mình đã xử lý 1 lần. Hiện giờ tìm lại bài rất khó, lúc nào rảnh có thể tìm hoặc viết, tuy nhiên cũng phải nói luôn với bạn việc text

Độ cao Z có dấu chấm ở hàng thập phân nằm đúng vào vị trí tọa độ (X,Y) của điểm đó


là hoàn toàn hên xui, chỉ gần đúng chứ không thể đúng. Chỉ có thể làm đúng 100% nếu tách biệt 3 cái như NOVA đã làm :)
  • 0

Thành viên nhóm CadMagic.
Mời bạn ghé thăm facebook nhóm - Page viết lisp theo yêu cầu  :
CAD MAGIC


#70 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 24 February 2012 - 04:06 PM

Thực ra khi đã xuất ra được thành 3 đối tượng như bạn có thì và mục đích là muốn chỉnh kích thước text thì bài toán mình nghỉ không cần đọc file txt nửa.
-Điểm point hiện nay có cao độ vậy theo mình bài toán chỉ cần:
-Tắt 2 text trước và sau đi. (cái này bạn dùng layoff)
-Giữ nguyên point hiện có (để làm nguyên liệu cho lisp và các phần mềm can thiệp sau này).
-Lisp chỉ cần đọc z của point và viết ra 1 text tại point này lệch tí cũng không sao (khi in tắt luôn cái point đi).
Lúc này công việc quá đơn giản. OK?

LIsp đó như này:
 
(Defun c:kthtr ()
(setvar "MODEMACRO" "CHINH CAO DO HIEN TRANG")
(command "-layer" "new" "SOCAODOSUACHUA" "color" "50" "SOCAODOSUACHUA" "")
(princ "\nPHAM QUOC DUY Binh Son - Quang ngai")
(Princ "\nHay chon vung :")
(setq XX (ssget '((0 . "POINT,CIRCLE"))))
(setq L 0)
(setq M (sslength XX))
(while (< L M)
(setq DT (ssname XX L))
(setq DT (entget DT))
(setq TEXT (cdr (assoc 10 DT)))
(setq x (car TEXT))
(setq y (cadr TEXT))
(setq z (caddr TEXT))
(command "-layer" "set" "SOCAODOSUACHUA" "")
(command "TEXT" "c" (list (+ x 0)(- y 0)) 1 0 (rtos Z 2 2))
(setq L (1+ L))
)
(setvar "MODEMACRO" "**CHUC BAN LAM VIEC HIEU QUA** PHAM QUOC DUY - BINH SON - QUANG NGAI")
(Princ)
)



Vui lòng tắt chế độ bắt điểm trước khi chạy lisp vì cái này trong bộ tổng hợp mình chưa sửa lưu và trả biến này nên xóa bén đi rồi.
  • 1

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


#71 lonzthjeura

lonzthjeura

    Chưa sử dụng CAD

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

Đã gửi 24 February 2012 - 04:07 PM

Yêu cầu này mình đã xử lý 1 lần. Hiện giờ tìm lại bài rất khó, lúc nào rảnh có thể tìm hoặc viết, tuy nhiên cũng phải nói luôn với bạn việc text


là hoàn toàn hên xui, chỉ gần đúng chứ không thể đúng. Chỉ có thể làm đúng 100% nếu tách biệt 3 cái như NOVA đã làm :)

-_- Thôi thì méo mó có hơn không.Lúc nào anh tìm cho em nhé
  • 0

#72 Giai Van Ty

Giai Van Ty

    Chưa sử dụng CAD

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

Đã gửi 25 February 2012 - 03:52 PM

Cảm ơn các bạn đồng nghiệp!
Mình rất hay phải sử dụng file dữ liệu dạng này, nếu được xin nhờ các bạn sửa point thành vòng tròn. Nếu mà nhập được trực tiếp file từ excel hoặc từ word thì tốt quá
  • 0

#73 trinhngoctri

trinhngoctri

    biết vẽ pline

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

Đã gửi 23 May 2012 - 09:05 AM

Làm sao để đổi Point => Circle vậy Gia_Bach
  • 0

#74 trinhngoctri

trinhngoctri

    biết vẽ pline

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

Đã gửi 23 May 2012 - 10:12 AM

Mình không biết làm sao để chỉnh lisp này để khi phun điểm lên acad điểm tọa độ point sang hình tròn cả
nhờ anh em chỉ dùm. Cảm ơn nhiều

;; free lisp from cadviet.com
;;; this lisp was downloaded from http://www.cadviet.c...showtopic=20044
(defun c:RFT(/ data f h line pt pXY spc str ten val);Read File Txt
;| By : Gia Bach, gia_bach @ www.CadViet.com |;
(vl-load-com)
(defun Split (Str Char / Lst pos)
(while (setq pos (vl-string-search Char Str))
(if (null Lst)
(setq Lst (list (substr Str 1 pos)))
(setq Lst (append Lst (list (read (substr Str 1 pos))))))
(setq Str (substr Str (+ pos 2)) ))
(setq Lst (append Lst (list (read Str)))))

(if (setq ten (getfiled "Chon File txt" (getvar "dwgprefix") "txt" 8))
(progn
(or (tblsearch "layer" "point") (command "-layer" "n" "point" "") )
(or (tblsearch "layer" "Sothutu") (command "-layer" "n" "Sothutu" "c" 3 "Sothutu" "") )
(or (tblsearch "layer" "Caodo") (command "-layer" "n" "Caodo" "c" 4 "Caodo" "") )
(setq spc (vla-get-ModelSpace (vla-get-ActiveDocument(vlax-get-Acad-Object))))
(setq h 2);(* (getvar "dimtxt")(getvar "dimscale")))
(setq f (open (findfile ten) "r"))
(while (setq Line (read-line f))
(if (vl-string-search "\t" Line)
(progn
(setq data (split Line "\t" )
val (car data)
pt (cdr data))
(if (not(vl-catch-all-error-p (vl-catch-all-apply 'vlax-3d-point pt)))
(progn
(setq pXY (list (car pt)(cadr pt)))
(vla-put-Layer (vla-addpoint spc (vlax-3d-point pXY)) "point")
(vla-put-Layer (setq str (vla-addtext spc val (vlax-3d-point pXY) h)) "Sothutu")
(vla-put-Alignment str 8)
(vla-put-TextAlignmentPoint str (vlax-3d-point pXY))
(vla-put-Layer (vla-addtext spc (caddr pt) (vlax-3d-point pXY) h) "Caodo") ))))) ))
(command "Zoom" "E" "")
(princ))
  • 0

#75 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 23 May 2012 - 12:17 PM

Làm sao để đổi Point => Circle vậy Gia_Bach



Mình không biết làm sao để chỉnh lisp này để khi phun điểm lên acad điểm tọa độ point sang hình tròn cả
..............

Hình tròn - Circle thì phải có bán kính chứ ?
bán kính lấy ở đâu ?

Bạn nên đưa file cad lên thì mọi nguời mới có đủ thông tin để giúp đuợc.
  • 0

#76 whatcholingon

whatcholingon

    biết lệnh break

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

Đã gửi 23 May 2012 - 02:27 PM

Cảm ơn các bạn đồng nghiệp!
Mình rất hay phải sử dụng file dữ liệu dạng này, nếu được xin nhờ các bạn sửa point thành vòng tròn. Nếu mà nhập được trực tiếp file từ excel hoặc từ word thì tốt quá


Mình đoán bạn này nhầm giữa POINT và CIRCLE tại vì trên cad khi vào POINT STYLE.. có thể đưa các POINT về nhiều kiểu khác nhau. trong đó có cái giống hình tròn.
Còn nếu mà bạn muốn chuyển các POINT thành các đường tròn thì có thể dùng LSP trong 4rum này:
http://www.cadviet.c...=0
  • 0

#77 trinhngoctri

trinhngoctri

    biết vẽ pline

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

Đã gửi 27 May 2012 - 02:48 PM

là vậy nè, khi phun điểm lên cad tọa độ nó thể hiện là dấu chấm (POINT) mình muống nó là hình tròn (CIRCLE) mới phù hợp với quy định công việc của mình ấy mà
xin cảm ơn nhiềuhttp://www.cadviet.c...64998_files.rar
  • 0

#78 Doan Van Ha

Doan Van Ha

    biết lệnh adcenter

  • CADViet Team
  • PipPipPipPipPipPipPip
  • 5454 Bài viết
Điểm đánh giá: 2626 (tuyệt vời)

Đã gửi 27 May 2012 - 04:23 PM

là vậy nè, khi phun điểm lên cad tọa độ nó thể hiện là dấu chấm (POINT) mình muống nó là hình tròn (CIRCLE) mới phù hợp với quy định công việc của mình ấy mà
xin cảm ơn nhiềuhttp://www.cadviet.c...64998_files.rar

Bạn tìm dòng dưới đây:
(vla-put-Layer (vla-addpoint spc (vlax-3d-point pXY)) "point")
Và thay nó thành:
(vla-put-Layer (vla-addcircle spc (vlax-3d-point pXY) 10) "point")
Trong đó: con số 10 là bán kính đường tròn, tôi chỉ lấy làm ví dụ. Bạn muốn bán kính bao nhiêu thì thay số 10 này bằng số của bạn.
  • 1

* Chỉ nên yêu cầu Lisp khi bạn làm việc đó mất cả ngày nhưng họ chỉ viết 1 giờ. Đừng nêu yêu cầu Lisp khi bạn chỉ làm 1 giờ nhưng bắt họ phải mất cả ngày.

* Nhờ viết lisp cũng như đi khám bệnh. Chỉ gởi căn cước và than sắp chết thì không bác sỹ nào cứu sống được.


#79 trinhngoctri

trinhngoctri

    biết vẽ pline

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

Đã gửi 28 May 2012 - 08:07 AM

cảm ơn bạn Doan Van Ha mình làm được rồi.
  • 0

#80 sirgau

sirgau

    biết pan

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

Đã gửi 28 May 2012 - 11:51 AM

chào các bác trên diễn đàn.
Lisp "rft" đưa điểm lên cad nhưng chỉ nhận được yếu tố về tọa độ 2D. bác nào có thể bổ xung thêm vào lisp sao cho nhận dc cả yếu tố về cao độ và tọa độ 3D ko?
Thanks!
  • 0