Chuyển đến nội dung
Diễn đàn CADViet
Doan Van Ha

[Đã Xong] Lisp Vẽ Đường Đồng Mức Tốc Độ Cao

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

Thấy nhiều bạn than phiền các lisp vẽ Đường Đồng Mức (ĐĐM) thường chạy chậm, thậm chí đôi khi treo máy, nên tôi làm cái này phục vụ cộng đồng.

Lisp có một phần nguồn từ Internet, tôi hiệu chỉnh và bổ sung để tăng tốc độ xử lý. Một phần khác tự viết.

Code mở nên mọi người tha hồ vọc. Lệnh: DDM.

Test với bản vẽ 22629 points ở máy tôi chỉ mất 60 giây (với các thông số mặc định trong lisp).

Chức năng: vẽ các tam giác TIN, vẽ ĐĐM, tô màu theo cao độ cho ĐĐM.

Đối tượng: tập các point, hoặc tập các text, hoặc tập các block_att cao độ.

File Cad để test:

http://www.mediafire.com/file/c3ey62x9rb35bu6/Draw_Contour_HA.dwg

File Lisp:

http://www.mediafire.com/file/90u0sgqmukkuft7/Draw_Contour_HA.lsp

File Image:

http://www.mediafire.com/view/ydyhy3csv9pg4yd/Draw_Contour_HA.png

 

Còn vài điều chưa hài lòng lắm, sẽ sửa sau. Hy vọng được đem đến nguồn vui cho mọi người!

  • Like 2
  • Vote tăng 8

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

Thấy nhiều bạn than phiền các lisp vẽ Đường Đồng Mức (ĐĐM) thường chạy chậm, thậm chí đôi khi treo máy, nên tôi làm cái này phục vụ cộng đồng.

Lisp có nguồn trên Internet, tôi hiệu chỉnh và bổ sung để tăng tốc độ xử lý.

Code mở nên mọi người tha hồ vọc. Lệnh: DDM.

Test với bản vẽ 22629 points ở máy tôi chỉ mất 60 giây.

Chức năng: vẽ các tam giác TIN, vẽ ĐĐM, tô màu theo cao độ cho ĐĐM.

Đối tượng: tập các point, hoặc tập các text, hoặc tập các block_att cao độ.

File Cad để test:

http://www.mediafire.com/file/c3ey62x9rb35bu6/Draw_Contour_HA.dwg

File Lisp:

http://www.mediafire.com/file/90u0sgqmukkuft7/Draw_Contour_HA.lsp

File Image:

http://www.mediafire.com/view/ydyhy3csv9pg4yd/Draw_Contour_HA.png

 

Còn vài điều chưa hài lòng lắm, sẽ sửa sau. Hy vọng được đem đến nguồn vui cho mọi người!

Cháu cảm ơn bác Hạ nhiều! Chúc bác sức khỏe và thành công trong cuộc số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

Lisp của bác Hạ chạy tốt, người viết Lisp có tâm, tuy nhiên còn có lỗi lấy nhầm Justify của Text. Chỉ đúng khi Justify là Left còn lại thì lấy sai điểm dẫn đến lưới mô hình độ cao bị lệch do đó đường đồng mức cũng lệch theo. Bác Hạ nên thay đoạn mã này: (setq lstXYZ (mapcar '(lambda(ent) (cdr (assoc 10 (entget ent)))) lstEnt))

bằng đoạn mã sau đây: (setq lstXYZ (mapcar '(lambda(ent) (if (= (+ (cdr(assoc 72 (setq txt(entget ent)))) (cdr(assoc 73 txt))) 0) (cdr (assoc 10 txt)) (cdr (assoc 11 txt)))) lstEnt))

  • 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

Like mạnh.

 

Lisp của bác Hạ chạy tốt, người viết Lisp có tâm, tuy nhiên còn có lỗi lấy nhầm Justify của Text ...

@ KangKung : chuyện nhỏ 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áy mọi người sao chậm nhỉ? Máy mình:

- Bước 2.0m: 63 giây

- Bước 1.0m: 116 giây

- Bước 0.5m: 224 giây

Máy bác i7, máy e Pen IV. ^_^

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ác nhé lisp chạy rất ngon. Tiện đây em cũng yêu cầu bác có thể thêm lệnh phát sinh điểm trên mô hình tam giác Polyline3D không tức là tăng dày thêm điểm trêm mô hì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

Thấy nhiều bạn than phiền các lisp vẽ Đường Đồng Mức (ĐĐM) thường chạy chậm, thậm chí đôi khi treo máy, nên tôi làm cái này phục vụ cộng đồng.

Lisp có một phần nguồn từ Internet, tôi hiệu chỉnh và bổ sung để tăng tốc độ xử lý. Một phần khác tự viết.

Code mở nên mọi người tha hồ vọc. Lệnh: DDM.

Test với bản vẽ 22629 points ở máy tôi chỉ mất 60 giây (với các thông số mặc định trong lisp).

Chức năng: vẽ các tam giác TIN, vẽ ĐĐM, tô màu theo cao độ cho ĐĐM.

Đối tượng: tập các point, hoặc tập các text, hoặc tập các block_att cao độ.

File Cad để test:

http://www.mediafire.com/file/c3ey62x9rb35bu6/Draw_Contour_HA.dwg

File Lisp:

http://www.mediafire.com/file/90u0sgqmukkuft7/Draw_Contour_HA.lsp

File Image:

http://www.mediafire.com/view/ydyhy3csv9pg4yd/Draw_Contour_HA.png

 

Còn vài điều chưa hài lòng lắm, sẽ sửa sau. Hy vọng được đem đến nguồn vui cho mọi người!

Tôi cũng có dự định viết chương trình Đường Đồng Mức bằng ARX và đã viết xong phần tạo lưới tam giác. Tuy nhiên đến phần vẽ ĐĐM, tham khảo các file cad tôi thấy ĐĐM vẽ bằng các line xấp xỉ Spline nên rất mịn. Search tìm công thức Spline chưa ra, mặt khác vì không có chuyên môn sâu về trắc địa nên không rõ nguyên tắc xấp xỉ Spline như thế nào nên còn để đó.

Tham khảo file test thì thấy lisp của bạn Doan Van Ha chạy còn thiếu nhiều chỗ (>15), ĐĐM còn thô nên không biết có đạt y/c TCVN không?

Về câu hỏi bên http://www.cadviet.com/forum/topic/14210-hoi-ve-lisp-thuat-toan-y-tuong-coding/page-142?do=findComment&comment=410604

bạn thử dùng cách chọn các line cùng cao độ rồi dùng lệnh PEDIT Join của cad 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

Tôi cũng có dự định viết chương trình Đường Đồng Mức bằng ARX và đã viết xong phần tạo lưới tam giác. Tuy nhiên đến phần vẽ ĐĐM, tham khảo các file cad tôi thấy ĐĐM vẽ bằng các line xấp xỉ Spline nên rất mịn. Search tìm công thức Spline chưa ra, mặt khác vì không có chuyên môn sâu về trắc địa nên không rõ nguyên tắc xấp xỉ Spline như thế nào nên còn để đó.

Tham khảo file test thì thấy lisp của bạn Doan Van Ha chạy còn thiếu nhiều chỗ (>15), ĐĐM còn thô nên không biết có đạt y/c TCVN không?

Về câu hỏi bên http://www.cadviet.com/forum/topic/14210-hoi-ve-lisp-thuat-toan-y-tuong-coding/page-142?do=findComment&comment=410604

bạn thử dùng cách chọn các line cùng cao độ rồi dùng lệnh PEDIT Join của cad xem.

1). Thiếu nhiều chỗ là do khoảng cách lấy mặc định 30m không đủ khép tam giác. User có quyền tăng mà.

2). Pedit chậm lắm, nhất là khi xử lý tập lớ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

Test trên máy tôi :

Bước 2.0m: 121 giây

PEDIT Join trên bv mẫu:

Select objects:   15090 found

14935 segments added to 154 polylines : 4687 millisecs

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

Draw_Contour_HA1.png

Đây là lisp giải quyết các trường hợp máy cùi:
http://www.mediafire.com/file/h5ylnsdd0sf6s5c/Draw_Contour_HA02.fas

Làm từ thiện bây giờ khó lắm: MC Phan Anh.

Post bài lên CV bây giờ còn khó hơn: tôi

Giá như có ai đó có Web tốt để theo?

  • Like 1
  • Vote tăng 3

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

Draw_Contour_HA1.png

Đây là lisp giải quyết các trường hợp máy cùi:

http://www.mediafire.com/file/h5ylnsdd0sf6s5c/Draw_Contour_HA02.fas

Làm từ thiện bây giờ khó lắm: MC Phan Anh.

Post bài lên CV bây giờ còn khó hơn: tôi

Giá như có ai đó có Web tốt để theo?

Bác giỏi và thật nhiệt tình.

Mong anh Hoành nâng cấp Web chứ nhiều thứ hơi bất tiện.

Ví dụ:

Em muốn Up ảnh lên cứ phải up lên trang khác rồi copy link. 

Muốn xóa bài mình vừa đăng sai mà không được.

Thời gian đăng bài nó báo nhanh quá cũng ko được, cứ phải chờ 1 lúc mới đăng được.

Các trang hiển thị hơi ít, toàn bị trôi, phải vào phần bài viết cá nhân hoặc các chủ đề mới thấy đượ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

m1-gan-cao-do.dwg

các bác cho em hỏi : cạnh tam giác TIN max là sao ạ các bác?làm sao biết chọn số bao nhiều cho phù hợp ạ?(0.0001 hay 0,02 hay 10 ...em chưa hiểu ý nghĩa của nó nên em k rõ cách chọn số nào trong vô vàn số cho phù hợp.)em chọn point đúng k các bác.ở ví dụ của bác chủ trên cùng em chọn các điểm trên cad các bác ah.sau bước này em m1-gan-cao-do.dwgchọn bôi đen đối tượng rồi ấn enter máy báo chạy xong mất 0s.em thấy k chọn đc đối tượng nào các bác ah.các bác chỉ cho em 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

Có bác nào cho em xin video hướng dẫn sử dụng với. 

Em dùng mà không được.

Em cảm ơn các bá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

Hôm trước mình có đọc topic này và thấy tốc độ chạy của lisp như vậy là khá chậm. Nên có tìm hiểu về việc vẽ đường đồng mức và làm tool để vẽ. Tool arx của mình chạy <30s cho tất cả các bước. Mình đã test với 1m, 0.5m, 0.4m và 0.1m.

Do không phải là người trong ngành nên mình nói qua cách làm, nếu ok thì mình sẽ public tool cho ai cần.

Mình chia các điểm thành tam giác theo tính chất Delauney Triangulation. Sau đó nội suy cao độ trên từng cạnh và nối lại các cạnh cùng độ cao.

File đính kèm là file mình chạy được với bước 0.4m.

 

Specs: i7 6700HQ, 8Gb RAM, AutoCAD 2018.

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
8 phút trước, nguyenanh93 đã nói:

Hôm trước mình có đọc topic này và thấy tốc độ chạy của lisp như vậy là khá chậm. Nên có tìm hiểu về việc vẽ đường đồng mức và làm tool để vẽ. Tool arx của mình chạy <30s cho tất cả các bước. Mình đã test với 1m, 0.5m, 0.4m và 0.1m.

Do không phải là người trong ngành nên mình nói qua cách làm, nếu ok thì mình sẽ public tool cho ai cần.

Mình chia các điểm thành tam giác theo tính chất Delauney Triangulation. Sau đó nội suy cao độ trên từng cạnh và nối lại các cạnh cùng độ cao.

File đính kèm là file mình chạy được với bước 0.4m.

 

Specs: i7 6700HQ, 8Gb RAM, AutoCAD 2018.

Hình như đã có bài viết so sánh về tấc độ chạy giữa các phương pháp lập trình như Lisp, Arx, Vba ...vv.... rồi thì phải.

Tấc độ xử lý của Arx được đánh giá là mạnh nhất, nhưng cũng đi kèm theo độ khó tương đương, cũng như ít người học nữa  :)))

 Mình rất hoan nghênh bạn chia sẻ cho mọi người trên diễn đàn. Vote luôn !

https://www.cadviet.com/forum/topic/46842-hỏi-về-objectarx/

 

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
12 phút trước, Danh Cong đã nói:

Hình như đã có bài viết so sánh về tấc độ chạy giữa các phương pháp lập trình như Lisp, Arx, Vba ...vv.... rồi thì phải.

Tấc độ xử lý của Arx được đánh giá là mạnh nhất, nhưng cũng đi kèm theo độ khó tương đương, cũng như ít người học nữa  :)))

 Mình rất hoan nghênh bạn chia sẻ cho mọi người trên diễn đàn. Vote luôn ! 

https://www.cadviet.com/forum/topic/46842-hỏi-về-objectarx/

 

Cái objectarx thì mình master rồi :) Có điều đang ko biết phương pháp làm đúng không để cải thiện performance giúp mọi người thô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
Vào lúc 13/11/2016 tại 11:09, Doan Van Ha đã nói:

Thấy nhiều bạn than phiền các lisp vẽ Đường Đồng Mức (ĐĐM) thường chạy chậm, thậm chí đôi khi treo máy, nên tôi làm cái này phục vụ cộng đồng.

Lisp có một phần nguồn từ Internet, tôi hiệu chỉnh và bổ sung để tăng tốc độ xử lý. Một phần khác tự viết.

Code mở nên mọi người tha hồ vọc. Lệnh: DDM.

Test với bản vẽ 22629 points ở máy tôi chỉ mất 60 giây (với các thông số mặc định trong lisp).

Chức năng: vẽ các tam giác TIN, vẽ ĐĐM, tô màu theo cao độ cho ĐĐM.

Đối tượng: tập các point, hoặc tập các text, hoặc tập các block_att cao độ.

File Cad để test:

http://www.mediafire.com/file/c3ey62x9rb35bu6/Draw_Contour_HA.dwg

File Lisp:

http://www.mediafire.com/file/90u0sgqmukkuft7/Draw_Contour_HA.lsp

File Image:

http://www.mediafire.com/view/ydyhy3csv9pg4yd/Draw_Contour_HA.png

 

Còn vài điều chưa hài lòng lắm, sẽ sửa sau. Hy vọng được đem đến nguồn vui cho mọi người!

THANKS A

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
Vào lúc 13/11/2016 tại 11:09, Doan Van Ha đã nói:

Thấy nhiều bạn than phiền các lisp vẽ Đường Đồng Mức (ĐĐM) thường chạy chậm, thậm chí đôi khi treo máy, nên tôi làm cái này phục vụ cộng đồng.

Lisp có một phần nguồn từ Internet, tôi hiệu chỉnh và bổ sung để tăng tốc độ xử lý. Một phần khác tự viết.

Code mở nên mọi người tha hồ vọc. Lệnh: DDM.

Test với bản vẽ 22629 points ở máy tôi chỉ mất 60 giây (với các thông số mặc định trong lisp).

Chức năng: vẽ các tam giác TIN, vẽ ĐĐM, tô màu theo cao độ cho ĐĐM.

Đối tượng: tập các point, hoặc tập các text, hoặc tập các block_att cao độ.

File Cad để test:

http://www.mediafire.com/file/c3ey62x9rb35bu6/Draw_Contour_HA.dwg

File Lisp:

http://www.mediafire.com/file/90u0sgqmukkuft7/Draw_Contour_HA.lsp

File Image:

http://www.mediafire.com/view/ydyhy3csv9pg4yd/Draw_Contour_HA.png

 

Còn vài điều chưa hài lòng lắm, sẽ sửa sau. Hy vọng được đem đến nguồn vui cho mọi người!

Chào Bác Hạ!

Cám ơn Bác đã chia sẽ lisp rất hay nhưng có mấy điểm cần vẽ lại lưới tam giác (lệch cạnh) thì Tôi cũng sửa code lại (tách phần lưới tam giac vẽ trước, xong mới vẽ đường đồng mức) có 1 vấn đề khi lệch cạch thì sẽ xóa 2 tam giác để vẽ lại lúc này ta chỉ cần chọn 3 điểm để vẽ thêm lưới tam giác thì không tạo được lưới tam giác(nghĩa là khi tập hợp 3 điểm không tạo được lưới tam giác)

Tôi có viết lisp tạo thêm lưới tam giác qua 3 điểm đó (vẽ 3D polyline) nhưng lúc vẽ đường đồng mức thì đường đồng mức qua tam giác tạo thêm nó bị cắt rời không còn là đường liên tục (không còn là 1 đường polyline mà nó trở thành 2 đoạn polyline)

Bác có thể cho biết Lưới của Bác tạo ra với lưới của mình tạo ra có khác nhau ở đâu không mà tại vị trí giao nhau với đường đồng mức nó bị rời ra

 

2019-05-09.png

Drawing1.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
3 giờ trước, huunhantvxdts đã nói:

Chào Bác Hạ!

Cám ơn Bác đã chia sẽ lisp rất hay nhưng có mấy điểm cần vẽ lại lưới tam giác (lệch cạnh) thì Tôi cũng sửa code lại (tách phần lưới tam giac vẽ trước, xong mới vẽ đường đồng mức) có 1 vấn đề khi lệch cạch thì sẽ xóa 2 tam giác để vẽ lại lúc này ta chỉ cần chọn 3 điểm để vẽ thêm lưới tam giác thì không tạo được lưới tam giác(nghĩa là khi tập hợp 3 điểm không tạo được lưới tam giác)

Tôi có viết lisp tạo thêm lưới tam giác qua 3 điểm đó (vẽ 3D polyline) nhưng lúc vẽ đường đồng mức thì đường đồng mức qua tam giác tạo thêm nó bị cắt rời không còn là đường liên tục (không còn là 1 đường polyline mà nó trở thành 2 đoạn polyline)

Bác có thể cho biết Lưới của Bác tạo ra với lưới của mình tạo ra có khác nhau ở đâu không mà tại vị trí giao nhau với đường đồng mức nó bị rời ra

 

2019-05-09.png

Drawing1.dwg

Thiết kế nút giao vào đường đồng mức, bác sài phần mềm nexus 2 như trong video dưới ấ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
5 giờ trước, quang_lac đã nói:

Thiết kế nút giao vào đường đồng mức, bác sài phần mềm nexus 2 như trong video dưới ấy:

 

Sao không thấy video 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

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

×