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

Nhờ viết Lisp ghi chú điểm mốc

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

nhờ các cao thủ lisp viết dùm.

yêu cầu như sau:

có file tọa độ mốc khống chế

Tệp đính kèm txt

http://www.mediafire.com/view/?s04naxhylaa9a00

file qui cách mốc

http://www.mediafire.com/?w1vk8tdf6c5e66r

thành quả

http://www.mediafire.com/download.php?1d61bfrs277y54r

CHÂN THÀNH CẢM Ơ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

Bạn chuyên ngành Trắc Địa phải không?

Mình đã làm cái này cũng lâu rồi. Nhưng đề bài bạn đưa ra vẫn còn sơ sài lắm. Cần có 1 ý tưởng sáng tạo thì bạn có thể bớt đi rất nhiều công đoạn.

Mình ví dụ:

Ví dụ 1:

Giả sử tớ có file "abc.txt" chẳng hạn, có cấu trúc giống như file bạn đính kèm (STT X Y Z)

Kết quả: Có bao nhiêu điểm thì nó sẽ in ra từng đó bảng sơ họa mốc.

 

Ví dụ 2:

Quét chọn các điểm (với kiểu nhận diện khác biệt hay nói cách khác là quét có lọc):

Kết quả: Nó tự động lấy từng điểm, nhặt ra tọa độ, tự động cắt 1 hình chữ nhật với kích thước (a x B) nào đó và chèn vào bảng sơ họa mốc.

 

Mình vẫn thường làm theo kiểu ví dụ 2.

Với vị dụ 1 thì chỉ là ứng dụng sơ sơ thôi.

Lâu rồi ko dùng đến lisp đó nên vứt đâu rồi đó. Mình viết cũng mấy năm rồi.

bạn cần ko?

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

Bạn chuyên ngành Trắc Địa phải không?

Mình đã làm cái này cũng lâu rồi. Nhưng đề bài bạn đưa ra vẫn còn sơ sài lắm. Cần có 1 ý tưởng sáng tạo thì bạn có thể bớt đi rất nhiều công đoạn.

Mình ví dụ:

Ví dụ 1:

Giả sử tớ có file "abc.txt" chẳng hạn, có cấu trúc giống như file bạn đính kèm (STT X Y Z)

Kết quả: Có bao nhiêu điểm thì nó sẽ in ra từng đó bảng sơ họa mốc.

 

Ví dụ 2:

Quét chọn các điểm (với kiểu nhận diện khác biệt hay nói cách khác là quét có lọc):

Kết quả: Nó tự động lấy từng điểm, nhặt ra tọa độ, tự động cắt 1 hình chữ nhật với kích thước (a x B) nào đó và chèn vào bảng sơ họa mốc.

 

Mình vẫn thường làm theo kiểu ví dụ 2.

Với vị dụ 1 thì chỉ là ứng dụng sơ sơ thôi.

Lâu rồi ko dùng đến lisp đó nên vứt đâu rồi đó. Mình viết cũng mấy năm rồi.

bạn cần ko?

Mình Đang rất cần. Nếu bạn có thì cho mình xin.

Cảm ơn bạn nhiều.

mình làm bên trắc địa Khảo sát địa hình nên rất cần.

Như yêu cầu của mình thì lsp tạo ra va chỉ cần dùng lsp chia mảnh để cắt trên bản đồ đưa vào là hoàn thiện luôn ghi chú điểm.

nếu bạn viết lsp kết hợp luôn cả 2 ví dụ của bạn đưa ra thì càng tuyệt vời.

chân thành cảm ơn bạn. Bạn cho mình xin với nhé! địa chỉ mail của mình: trananhcc47@gmail.com

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
Như yêu cầu của mình thì lsp tạo ra va chỉ cần dùng lsp chia mảnh để cắt trên bản đồ đưa vào là hoàn thiện luôn ghi chú điểm.

nếu bạn viết lsp kết hợp luôn cả 2 ví dụ của bạn đưa ra thì càng tuyệt vời.

Điều đó có thể làm được. Vì mình cũng đang rất bận nên chưa thể hướng dẫn chi tiết cho bạn thực hiện được. Tạm thời mình viết cho bạn theo đúng yêu cầu của bạn. Mình viết lạ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

nhờ các cao thủ lisp viết dùm.

yêu cầu như sau:

có file tọa độ mốc khống chế

Tệp đính kèm txt

http://www.mediafire...s04naxhylaa9a00

file qui cách mốc

http://www.mediafire...w1vk8tdf6c5e66r

thành quả

http://www.mediafire...1d61bfrs277y54r

CHÂN THÀNH CẢM ƠN!

 

Chào bạn

 

Thấy bạn cần gấp nên tranh thủ viết nhanh cho bạn một lisp đơn giản như này

 

http://www.cadviet.c..._so_hoa_moc.lsp

 

Tôi thấy trong bản vẽ sơ hoạ của bạn chỉ có tên và toạ độ điểm là thay đổi, còn những thứ khác giữ nguyên nên tôi đã tạo ra một Block có tên là khung. Bạn Download lisp và bản vẽ của tôi về rồi chạy Lisp trên bản vẽ đó nhé, trong bản vẽ đó có sẵn block khung rồi.

 

Bản vẽ ở đây:

http://www.cadviet.c...i_chu_diem1.dwg

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

Viết nhanh cho bạn đây. Bạn copy file cad shm.dwg vào thư mục Suport của autocad (thường là :C:\Program Files\AutoCAD 2008\Support, của tớ dùng Autocad 2008).

Lệnh là: tshm (tạo sơ họa mốc)

Cần chỉnh sửa gì thì bạn cứ pm nhé

http://www.cadviet.com/upfiles/3/36665_so_hoa_moc.rar

(defun c:TSHM(/ pd ten f Line Data TD_X TD_Y TD_Z Diemdat);Tao so hoa moc
(Prompt "\nMade thanhduan2407")
(vl-load-com)
(command "purge" "a" "*" "n")
(command "osnap" "off")
(setq pd (getpoint "\n Chon diem dat"))
(setq i 0)
  (setq ten (getfiled "Chon File txt" (getvar "dwgprefix") "txt" 8))
	(progn
  	(setq f (open (findfile ten) "r"))
  	(while
 (setq Line (read-line f))
 (if (wcmatch Line (strcat "*"(chr 9)"*,*"(chr 32)"*,*"(chr 44)"*"))
(progn
 	(setq Data (replace_str Line))
 	(setq TEN   (nth 0 Data))
 	(setq TD_Y   (nth 1 Data) )
 	(setq TD_X   (nth 2 Data))
 	(setq TD_Z   (nth 3 Data))
 	(setq dong (list TEN TD_X TD_Y TD_Z))
    	(setq Diemdat (polar pd 0 (* i 300)))
  (command "insert" "SHM" Diemdat 1 1 0 (nth 0 dong)  (nth 1 dong) (nth 2 dong) (nth 3 dong))

   	)
)
 (setq i (+ i 1))
  )
)
(close f)
(command "osnap" "end,mid,node,center,ins")
(princ)
)

(defun replace_str(str)
 (setq rs (acet-str-replace "," " " str)
rs (acet-str-replace "   " " " rs)
 )
 (split_space rs)
)
(defun split_space (str)(vl-remove-if '(lambda (x) (= x ""))(acet-str-to-list " " str)))
(Defun DTR (A /)
 (/ (* A pi) 180)
)

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

Viết nhanh cho bạn đây. Bạn copy file cad shm.dwg vào thư mục Suport của autocad (thường là :C:\Program Files\AutoCAD 2008\Support, của tớ dùng Autocad 2008).

Lệnh là: tshm (tạo sơ họa mốc)

Cần chỉnh sửa gì thì bạn cứ pm nhé

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

Ôi tuyệt quá. 2 bác

KangKung

thanhduan2407 thật pro. không biết 2 bác ở đâu. nếu ở tpHCM thì phải mời 2 bác đi uống coffee mới được. Cảm ơn 2 bác rất nhiều!

Tuy nhiên Mình Muốn Tất cả trên file kết quả đều do lisp tạo ra ngoại trừ file qui cách mốc là file DWG .đối tượng là text để tiện sửa file theo từng công trình. chứ không phải là block. bạn xem lại file ghi chú điểm của mình pots trước đó.

  • 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

Đối với các điểm khống chế tọa độ hoặc các điểm chi tiết.

Bạn nên phun điểm vào bản vẽ theo kiểu thể hiện (hình kí hiệu, số thứ tự, tên, cao độ) theo dạng block Att. Do đó, cái ví dụ thứ 2 của mình thì chỉ cần quét toàn bộ bản vẽ, nó sẽ nhận tất cả các điểm mốc khống chế đo vẽ đó. Sau đó mình chọn điểm đặt mốc. Nó sẽ tự động chèn sơ họa mốc, đồng thời nhặt ra tên, cao độ, tọa độ và kiểu ký hiệu. Quan trọng hơn cả, đó là nó có thể tự động cắt 1 khung hình chữ nhật nhét vào cái sơ họa mốc đó. Ngày xưa mình làm thủ công rồi nên mới viết cho auto. Xong xuôi làm nhàn hẳn đi.

P/s: Mình làm ở Hà Nội, cảm ơn bạn đã có lời mờ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

 

Chào bạn

 

Thấy bạn cần gấp nên tranh thủ viết nhanh cho bạn một lisp đơn giản như này

 

http://www.cadviet.c..._so_hoa_moc.lsp

 

Tôi thấy trong bản vẽ sơ hoạ của bạn chỉ có tên và toạ độ điểm là thay đổi, còn những thứ khác giữ nguyên nên tôi đã tạo ra một Block có tên là khung. Bạn Download lisp và bản vẽ của tôi về rồi chạy Lisp trên bản vẽ đó nhé, trong bản vẽ đó có sẵn block khung rồi.

 

Bản vẽ ở đây:

http://www.cadviet.c...i_chu_diem1.dwg

 

Chào bạn

 

Thấy bạn cần gấp nên tranh thủ viết nhanh cho bạn một lisp đơn giản như này

 

http://www.cadviet.c..._so_hoa_moc.lsp

 

Tôi thấy trong bản vẽ sơ hoạ của bạn chỉ có tên và toạ độ điểm là thay đổi, còn những thứ khác giữ nguyên nên tôi đã tạo ra một Block có tên là khung. Bạn Download lisp và bản vẽ của tôi về rồi chạy Lisp trên bản vẽ đó nhé, trong bản vẽ đó có sẵn block khung rồi.

 

Bản vẽ ở đây:

http://www.cadviet.c...i_chu_diem1.dwg

Bạn KangKung ơi. Lisp này chỉ chạy được trên file Khung.DWG thôi.

Nếu mở file mới thì không chạy được có phải do thiếu hàm tạo txt không?

Nhờ Bạn chỉnh sửa lại xem.

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

Bạn KangKung ơi. Lisp này chỉ chạy được trên file Khung.DWG thôi.

Nếu mở file mới thì không chạy được có phải do thiếu hàm tạo txt không?

Nhờ Bạn chỉnh sửa lại xem.

 

Chào bạn

 

Như đã nói từ trước, do yêu cầu của bạn cần gấp nên mình tranh thủ viết nhanh Lisp đã post cho bạn. Muốn Lisp này chạy được trên bản vẽ mới thì bạn chỉ cần Copy cái block khung ở trong bản vẽ gốc của mình sang bản vẽ mới là chạy được. Cái Lisp mình viết cho bạn sau khi chạy xong bạn vẫn chỉnh sửa đối tượng bình thường vì sau khi chèn Block vào mình đã phá vỡ chúng.

 

Còn nếu muốn tạo một Lisp chạy được trên tất cả các bản vẽ thì cũng không khó tuy nhiên khá mất thời gian vì cần phải viết lệnh tạo ra các đối đối tượng TEXT, Polyline, Hatch, Style, … và xác định vị trí của chúng trong cái sơ hoạ mốc nữa để cho vào trong Code. Để sang tuần sau nếu có thời gian mình sẽ hoàn chỉnh cho bạn Lisp này. Trong thời gian chưa có Lisp mới bạn có thể dùng Lisp cũ mà vẫn đảm bảo kết quả như mong muốn.

 

Và cuối cùng xin cảm ơn hảo ý của bạn mời uống café. Mình không ở TpHCM nên hẹn bạn dịp khá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

nhoc góp 1 ý mọn ^^, cách nì chỉ xài ở trên máy bạ thui hen

Từ file khung của bạn KangKung đưa bạn dùng lệnh writeblock save nó vào thư mục supports của cad, nhớ là lúc write block chọn đơn vị là mm hen, kể từ đây bạn mở bất kỳ bản vẻ nào dùng lsp đều có thể insert đc, còn nếu bạn mún đi máy nào xài cũng đc thì đợi anh KangKung ra tay vậy, chúc bạn vui

  • Vote tăng 2

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

Đối với các điểm khống chế tọa độ hoặc các điểm chi tiết.

Bạn nên phun điểm vào bản vẽ theo kiểu thể hiện (hình kí hiệu, số thứ tự, tên, cao độ) theo dạng block Att. Do đó, cái ví dụ thứ 2 của mình thì chỉ cần quét toàn bộ bản vẽ, nó sẽ nhận tất cả các điểm mốc khống chế đo vẽ đó. Sau đó mình chọn điểm đặt mốc. Nó sẽ tự động chèn sơ họa mốc, đồng thời nhặt ra tên, cao độ, tọa độ và kiểu ký hiệu. Quan trọng hơn cả, đó là nó có thể tự động cắt 1 khung hình chữ nhật nhét vào cái sơ họa mốc đó. Ngày xưa mình làm thủ công rồi nên mới viết cho auto. Xong xuôi làm nhàn hẳn đi.

P/s: Mình làm ở Hà Nội, cảm ơn bạn đã có lời mời.

Bạn Tìm lại cho mình xin cái bạn đã xài auto được khô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

Mình sẽ tìm lại xem, vì lâu lắm rồi mình ko làm Autocad......................

Bạn có thể trao đổi với mình qua Yahoo cả về Cad và Trắc địa

YM: thanhduan2407

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

 

Chào bạn

 

...........

 

Còn nếu muốn tạo một Lisp chạy được trên tất cả các bản vẽ thì cũng không khó tuy nhiên khá mất thời gian vì cần phải viết lệnh tạo ra các đối đối tượng TEXT, Polyline, Hatch, Style, … và xác định vị trí của chúng trong cái sơ hoạ mốc nữa để cho vào trong Code. Để sang tuần sau nếu có thời gian mình sẽ hoàn chỉnh cho bạn Lisp này. Trong thời gian chưa có Lisp mới bạn có thể dùng Lisp cũ mà vẫn đảm bảo kết quả như mong muốn.

 

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

Cám ơn Bạn trước nha, có ý tưởng rất hay mong bạn sớm hoàn chỉnh để giúp đở anh em.

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

Ah, hum wa thử mà quên 1 cái trong lsp bạn nên viết thêm 2 dòng tạo layer tendiem va toado thì mới add file txt bạn vô đc :D, trong lúc chờ anh KangKung hoàn thiện, bạn xài đỡ trên máy bạn thui nhé, nhoc post lại lsp đã thêm 2 dòng tạo layer, bạn thấy hứng thú thì có thể use tạm ^^

;========LISP SO HOA MOC KHONG CHE MAT BANG - DO CAO========
(defun C:MOC (/ file f pt X tenmoc toadoX toadoY caodoZ osm cmd dmz)
(setq osm (getvar "osmode") cmd (getvar "cmdecho") dmz (getvar "dimzin")) ;Lay
(mapcar 'setvar '("osmode" "cmdecho" "dimzin") '(0 0 0))
 (command "UNDO" "BE")
(command "-layer" "m" "Tendiem" "")
 (command "-layer" "m" "Toado" "")
 (setq file(getfiled "Chon file" (getvar "dwgprefix") "txt" 8))
 (if (= file (strcat (vl-filename-base file) (vl-filename-extension file)))
(setq file(strcat (getvar "dwgprefix") file)))
 (if (/= file nil)
(progn
 	(setq f(open file "R"))
 	(setq pt(getpoint "\n Chon diem chen: "))
 	(setvar "OSMODE" 0)
 	(setq X(car pt))
 	(while (setq txt(read-line f))
(setq lst(read(strcat "(" txt ")")))
(setq tenmoc(vl-princ-to-string (nth 0 lst)))
(setq toadoX(rtos (nth 1 lst) 2 3))
(setq toadoY(rtos (nth 2 lst) 2 3))
(setq caodoZ(rtos (nth 3 lst) 2 3))
(command "INSERT" "khung" (list X (cadr pt)) "" "" "")
(command "EXPLODE" (entlast))
(command "LAYER" "S" "tendiem" "")
(command "TEXT" (list (+ X 31) (+ (cadr pt) 217)) "2" "" tenmoc)
(command "LAYER" "S" "toado" "")
(command "TEXT" (list (+ X 31) (+ (cadr pt) 203)) "2" "" toadoX)
(command "TEXT" (list (+ X 74) (+ (cadr pt) 203)) "2" "" toadoY)
(command "TEXT" (list (+ X 114) (+ (cadr pt) 203)) "2" "" caodoZ)
(setq X(+ X 250))
)
 	)
)
 (command "LAYER" "S" "0" "")
 (command "UNDO" "END")
 (mapcar 'setvar '("osmode" "cmdecho" "dimzin") (list osm cmd dmz))
 (princ)
 )

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

 

Chào bạn

 

Như đã nói từ trước, do yêu cầu của bạn cần gấp nên mình tranh thủ viết nhanh Lisp đã post cho bạn. Muốn Lisp này chạy được trên bản vẽ mới thì bạn chỉ cần Copy cái block khung ở trong bản vẽ gốc của mình sang bản vẽ mới là chạy được. Cái Lisp mình viết cho bạn sau khi chạy xong bạn vẫn chỉnh sửa đối tượng bình thường vì sau khi chèn Block vào mình đã phá vỡ chúng.

 

Còn nếu muốn tạo một Lisp chạy được trên tất cả các bản vẽ thì cũng không khó tuy nhiên khá mất thời gian vì cần phải viết lệnh tạo ra các đối đối tượng TEXT, Polyline, Hatch, Style, … và xác định vị trí của chúng trong cái sơ hoạ mốc nữa để cho vào trong Code. Để sang tuần sau nếu có thời gian mình sẽ hoàn chỉnh cho bạn Lisp này. Trong thời gian chưa có Lisp mới bạn có thể dùng Lisp cũ mà vẫn đảm bảo kết quả như mong muốn.

 

Và cuối cùng xin cảm ơn hảo ý của bạn mời uống café. Mình không ở TpHCM nên hẹn bạn dịp khác.

Bạn kungkung có thể viết lsp tạo ghi chú điểm mốc tự động như thế này được không nhé!

đây là file chứa mốc ;

http://www.mediafire...g2qgx748j8i603l

Bạn viết lsp lọc các tên môc, X, Y, cao độ từ file AP GPS T1.dwg Ở link trên . và trim một rectang vùng chứa mốc gán qua bảng ghi chú luôn tạo thành một ghi chú điểm hoàn chỉnh. http://www.mediafire...1d61bfrs277y54r

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

×