Tự động hóa vẽ Hình trụ hố khoan và Mặt cắt địa chất công trình bằng Excel - AutoCad

Liên hệ QC

PhanTuHuong

VBA & VB.NET for Excel & AutoCad
Thành viên danh dự
Tham gia
13/6/06
Bài viết
7,120
Được thích
24,279
Trong công tác lập báo cáo kết quả khảo sát địa chất công trình (ĐCCT), thời gian dành cho công việc vẽ Hình trụ hố khoan và Mặt cắt địa chất công trình là khá lớn.
Phần lớn các tài liệu khảo sát ĐCCT mà tôi thấy, việc lập Hình trụ hố khoan và Mặt cắt ĐCCT còn mang tính chất thủ công. Chỉ có 1 số ứng dụng AutoLisp nhưng cũng rất hạn chế, nhất là khi sửa lại rất mất công, tính bảo mật hầu như không có.
Hiện nay có 1 số phần mềm ứng dụng được lập trên VB hoặc Lisp, sau đó đổ sang AutoCad. Ví dụ như phần mềm LOGMAN (đã ngừng phát triển), phần mềm của anh Vượng (cũng ngừng phát triển), anh Thắng ĐCCT K40, anh Nguyễn Văn Sơn ĐCTV-ĐCCT...
Như vậy, cách tối ưu nhất cho công việc trên là ứng dụng ngôn ngữ VBA trong Excel, đây là ngôn ngữ khá dễ học. Bảng tính Excel là nơi nhập liệu (rất thuận tiện), và sản phẩm sẽ đổ ra AutoCAD, Word. Dữ liệu gốc vẫn được lưu giữ và dễ dàng sửa đổi khi cần thiết. Cái hay nữa là sản phẩm mình tạo ra nên dễ dàng sửa đổi khi cần.

Xin ý kiến đóng góp của các bạn trong và ngoài ngành.

Bản GeoSection miễn phí được viết bằng VBA, VB6 (cập nhật tháng 9 - 2023):

 
Lần chỉnh sửa cuối:
Chào anh17d4!
Mình nghĩ để tự động tất cả các công việc hoàn thành MCĐCCT quả là rất khó (nếu dùng chart trong Excel có lẽ còn khó hơn?????). Mình nghĩ nếu bạn đã đưa được vào trong Acad rồi thì vào Excel chắc không có vấn đề gì. Mình đã lập chương trình vẽ hình trụ, sau đó ghép các lỗ khoan vào trắc dọc nhưng vẫn vướng mắc thuật toán nối các ranh giới địa chất (vì nó bất đồng nhất....). Mong bạn góp ý để xây dựng chương trình MCĐCCT.
 
Em có thể giới thiệu về chương trình của em được không? Về giao diện, về tiện ích, thuật toán, mặt hạn chế,... không cần phải tải file đâu.
Có lẽ em chỉ giới thệu sơ qua bằng hình vẽ chắc anh cũng hiểu
Em nhập tất cả các thông tin của một lỗ khoan vào một file. File này dùng để vẽ hình trụ, sau đó chạy mặt cắt luôn, nếu muốn có thể xuất khối lượng (Tên lỗ khoan, cao độ, chiều sâu, mẫu nguyên dạng, phá huỷ, SPT...) sang bảng Excel.

1. Vẽ hình trụ:
.......................................
Geo_Borehole.jpg



2. Vẽ mặt cắt:
Tuy nhiên để tự nối ranh giới thì vẫn chưa được, nó chỉ tự động tô thôi).

........................................
Geo_Section.jpg


3. In bản vẽ:
........................................
Geo_Print.jpg
 
Hihi spam anh Hướng cái nào.
Cái đường nối mà anh dùng SPline thì rất giở. Hatch sẽ rất lâu đấy vì đối tượng này sinh ra bởi một hàm nội suy, việc tính toán định biên tô cho đối tượng sẽ rất lâu. Ngoài nhược điểm trên thì dùng SPline khá tiện.
Nhìn kết quả chương trình của anh lo bị cạnh tranh rùi.

Xu hướng mã mở đang khá thịnh hành, hay anh Hướng mở một project mặt cắt và hình trụ đi. Đã cũng có những lúc em nghĩ đến điều đó xong điều đó cũng đồng nghĩa với xóa sổ GSVN :).

Tiện đây giới thiệu với anh em trong ngành thêm chút về chương trình LOGman.
Tất nhiên hãy phân tích dưới khía cạnh lập trình chứ không nên nghĩ là quảng cáo (nêu các yêu cầu một chương trình cần thiết phải có nếu bạn nào muốn xây dựng chương trình một cách nghiêm túc).

1. Giao diện bắt mắt, đẹp ( cái này LM còn yếu, bị chê nhiều :)

Cái này đôi khi đòi hỏi có tinh nghệ thuật một chút. Thực tế nhìn VISta mà thèm :)

mainmedium.gif


Panel.gif


2. Chạy ổn định - an toàn dư liệu
Ghi sửa, undo, redo, copy cut, dán phải tốt Nếu không khi nhâp sô liệu ức chế lắm, nói vậy thôi chứ để đáp ứng tỷ mỷ tất cả các yếu tố cũng là khối lượng công việc lớn. LM8 dù cố gắng thu hẹp tối đa nhưng cung cỡ 20.000 dòng code.

menu_edit.gif



boreholeDetail.gif



3. Cấu hình cho phép người dùng tuỳ chọn
- Font chữ, cỡ chữ, góc xoay, nội dung nhập ...
Cái này nếu chỉ viết cho bản thân dùng thì rất đơn giản, nhưng nếu là người khác thí khó. Một APP cũng giống như con dâu trăm họ, người dùng thậm chí còn không thèm đọc help cơ mà cứ nã điện thoại hỏi :) biết làm sao được. Người dùng không có trình độ tin học cao như người viết đó là thực tế.

Options.gif


Options1.gif



4. các tiêu chuẩn khác nhau, các cách thức goi tên khác nhau => tuỳ biến phải cao.

lithology.gif


Để nhập đống tên đất trên tuy không khó nhưng nếu ai đã từng viết code thì cũng thấy oải.

Quay lại giao diện: Một giao diện tốt phảỉ cho phép hiển thị nhiều thông tin cùng lúc, độc lập không phụ thuộc.

ArrangeWindows.gif


Cách đây 2 năm có ông "GeoSmart" của Singgapo viết trên excel xuất qua CAD. nhưng nghe chừng cũng không phát triển được mấy. Trên thực tế đồ án tốt nghiệp ở bách khoa của em là xây dựng chương trình (có tính năng tương tự AutoCad 2000) chạy phê tit nhưng cuối cùng em vẫn viết LM chạy nối vào CAD cũng là một suy nghĩ rất nhiều.

5. Cuối cùng mới xét đến kết quả đầu ra mặc dù yêu tố này quan trọng bậc nhất

CrossDrawing.gif


đây là một demo 100% do chương trình vẽ chưa sửa chữa gì bằng tay.

Kết luận gì ư: Miệt mài làm mõi ngày một ít code. Em thiếu khoản này may nhờ có Tú bổ sung phần đó.

CHÚC CHƯƠNG TRÌNH CỦA ANH SỚM HOÀN THIỆN
 
Tôi nghĩ với công việc nhỏ khoảng 3 - 5 hố khoan thì việc lập hình trụ và mặt cắt ĐCCT còn đơn giản. Nhưng công trình lên đến > 10 hố khoan và nhiều tuyến mặt cắt thì lại không đơn giản 1 chút nào. Chương trình tiết kiệm cho ta khá nhiều thời gian, công sức, sai sót hạn chế tối thiểu.

Đúng là việc nối ranh giới lớp còn phải tư duy, không thể tùy tiện nhưng chỉ xảy ra khi xuất hiện lớp khuyết hay thấu kính thôi. Khi địa tầng biến đổi phức tạp thì nối thủ công còn phải nghĩ nát óc, huống chi là máy tính. Chương trinh GeoSection có thể nối được 2 lớp khuyết liên tục (vẫn phải chỉnh sửa cho phù hợp), nhưng lớn hơn thì chịu, cần bàn tay trực tiếp của con người. Các phần mềm hiện nay phần lớn chỉ nối và tô ở các lớp xác định hoặc cũng đang ở tình trạng tương tự.
 
Lần chỉnh sửa cuối:
cách đây 8 năm . tôi có làm việc trongh đội KS địa chất và viết một pm ve địa chất ( hình trụ và mc ) bằng VB 6 . Pm còn thô sơ vì tôi chuyển sang công tác khác, khg quan tâm đến. Nhờ các bạn dùng thủ và cho ý kiến
- Chép toàn bộ thư mục matcatdiachat vào o c:
- Gưi toàn bộ code cho các bạn xem thử
- Do dốt về LSP nên cách làm là : tạo 1 file *.txt và file lsp chỉ mang nhiệm vụ vẻ mà thôi
- Khi chạy chỉ cần load file *.lsp mà lúc nhập đã tạo ra
- Có thể thay đổi file *.txt để sử dụng cho ct khác mà khói phải nhập lại
- Mẫu MC và mô tả phải đánh trức tiếp trên cad
- Phải nối ranh giới lớp bằng thủ công ( khg đồng ý với PT Hương về việc tự động nối lớp. Vì đây là vấn đề suy nghỉ rất hay của KS địa chất trong các trường hợp phức tạp - Tôi đang ở tây nguyên -
Không đồng ý cách nối lớp của anh - KSDC phải vận động kiến thức về cấu tạo địa chất và những thành tạo địa chất mới hình thành mặt cắt địa chất mang tính thuyết phục được )

Xin lỗi cho em chen vào chút, có gì mong mọi người bỏ quá cho: Đã là chương trình vẽ mặt cắt thì phải có cả nối lớp là đương nhiên, tuy nhiên khi chỉnh sửa lại cho phù hợp lại phải bàn tay con người, vấn đề nối thủ công rất mất thời gian đối với những mặt cắt đơn giản là rất mất thời gian. Em ví dụ 1 vấn đề: 1 khu công nghiệp có khoảng > 120 lỗ khoan, khoan nông đối với đường chiếm khoảng 70%, như ở đồng bằng, một số vùng độ nông từ 5-15m địa chất ít biến đổi, gần như lỗ nào cũng như lỗ nào, địa tầng ít biến đổi, nếu ngồi nối lớp thì 1 người sẽ làm trong bao nhiêu lâu mới hoàn thành được một báo cáo địa chất. Vì vậy việc chương trình có nối lớp là hoàn toàn phù hợp, chỉ có điều đừng dựa vào nó quá nhiều mà để mất cái kiến thức của mình trong đó.
To: thầy PhanTuHuong em rất khâm phục những gì thầy sáng tạo ra, mặc dù cơ quan đang sử dụng Logman, nhưng chương trình này giao diện không phải là thân thiện và dể sử dụng, đặc biệt nhưng chú, những bác thế hệ trước (vấn đề tin học hơi khó khăn). Em vẫn mong muốn chương trình của thầy sớm hoàn thiện, có lẽ nó sẽ đơn giản, hiệu quả dễ sử dụng hơn.;;;;;;;;;;;
 
Phần mềm GeoSection 3.4 & 3.5 là bản hoàn thiện nhất về làm báo cáo (thường xuyên được cập nhật mới). Đây là bản thương mại, các bạn tham khảo trong file kèm theo.
 
Lần chỉnh sửa cuối:
Dear Anh Hướng
GeoSection 3.0 rất hữu dụng đối với công việc của em hiện nay.
Em cũng đang xây dựng 01 chương trình VBA về chuyên ngành của mình
Vậy nếu được, em có thể tham khảo ý kiến của anh nhiều đó
Được không anh!
À em có tản trên mạng và lượm được Diachat2.1 nhưng không có password nên không cài được
Anh Hướng đã thử chưa?
Tiện cho em hỏi giá 01 bản GeoSection3.0 là bao nhiu vậy anh?

Tôi cũng chẳng rõ chương trình này ở đâu + nguồn gốc? Từ trước đến nay tôi chỉ biết 1 chương trình bên HEC1 (xem nhập dữ liệu từ Notepad mà thấy hết hơi), LOGMAN, anh Vượng Tedi, 1 cậu K39 thôi, công ty Hài Hòa,... Sử dụng các chương trình đó thì chưa.

Tôi xây dựng chương trình GeoSection trên cơ sở bao năm lập báo cáo (trước kia có viết trên Lisp nhưng còn hạn chế) nên mục tiêu là đơn giản, hiệu quả, nhiều tính năng,... Số liệu không nhập nhiều lần khi thực hiện ở môi trường khác nhau (vì tạo liên kết cả 3 môi trường Excel, AutoCad và Word) và khai thác triệt để số liệu gốc.

Tôi cũng đang xây dựng chương trình thí nghiệm và tích hợp với chương trình GeoSection trên, phù hợp với đơn vị có cả khảo sát + thí nghiệm trong phòng. Sản phẩm sẽ được tự động hóa 1 cách cao nhất.

Nếu bạn có đam mê thì tôi sẵn sàng giúp.
 
Lần chỉnh sửa cuối:
Vâng cảm ơn Anh Hướng nhiều.
Cái điều mà em thích GeoSection hơn LogMan là tính gần gũi của nó. Thực ra em cũng đã dùng thử bản Demo của LogMan, Cũng công nhận Anh Long giỏi thật nhưng thật tình nó có vẻ không được gần gũi, ít nhất đối với các bài báo cáo của em. Vì em muốn một hình thức báo cáo riêng, mà để tạo được cái riêng cho mình thì thật khó phải không anh.
Em cảm ơn anh nhiều về những lời của anh.
Em sẽ coi lại và trả lời anh nhiều trên diễn đàn bổ ích này
Chào anh!
 
không hiểu dạo này anh Long biến đi đâu mà im ắng vậy???

Dạ thưa bác em đây ạ :D từ khi bác về đại học Kiến trúc đến nay ít gặp bác quá.
Thực ra để nối lớp tốt hơn thì vẫn có thể làm được với điều kiện khai báo nhiều hơn.

Em chỉ nản mỗi 2 điều một điều là"Việt nam không có tiêu chuẩn hoá" về bản vẽ, mạnh ai nấy vẽ.
điều 2 là bác nào cũng thích mua rẻ. :D chương trình có tuổi đời 6,7 năm rồi mà giá vẫn thế trong lúc Vàng ngày xua có 600k thì bây h ~ 2M.
Nhưng mà cũng yêu Code là chính thôi. kể có thời gian nào rỗi em cũng ngồi code lại bằng .NET cho nó đẹp hơn chút. Nhưng nghĩ cho cùng vẫn là vẽ ra cái mặt cắt, với cái hình trụ. chắc mấy chục năm nũa vẫn thế.

Em có xem một chương trinh của China nó viết, công nhận là khủng thật, nối lớp phê lòi :D cũng xuất sang CAD. bản Crack khoá cứng nó bán khoảng 600k VND, mỗi tội tiếng Trung Của 100%.
 
Anh Hướng à. Em thấy giao diện chương trình Geosection 3.0 của anh nhìn tương đối ổn nhưng theo em chương trình vẫn còn 1 số khuyết điểm như: chỉ hạn chế cho 1 số phần mềm virus, phần mềm office và cad. Theo em anh nên khắc phục những khuyết điểm trên để có thể thích ứng với nhiều người dùng hơn. Phải chạy được trên mọi nẻo đường mới hay.
 
Anh Hướng à. Em thấy giao diện chương trình Geosection 3.0 của anh nhìn tương đối ổn nhưng theo em chương trình vẫn còn 1 số khuyết điểm như: chỉ hạn chế cho 1 số phần mềm virus, phần mềm office và cad. Theo em anh nên khắc phục những khuyết điểm trên để có thể thích ứng với nhiều người dùng hơn. Phải chạy được trên mọi nẻo đường mới hay.

Hiện nay bản GeoSection 3 chạy được từ 2007 về sau, Cad thì vô tư (2002 đến 2010). Tôi có thể cho thực hiện từ office 2000 nhưng do lỗi office. Còn mấy chương trình diệt virus đã khắc phục được, quét vô tư (trừ phần bảng tổng hợp chỉ tiêu cơ lý thôi) .
 
Anh Long nói cũng hay nhưng chưa đúng, Việc cuối cùng của anh em mình chẳng lẽ chỉ là vẽ 02 hình (Borring và Section) thôi sao?

6-7 năm rồi chương trình vẫn vậy bạn ạh, hình trụ + mặt cắt, thống kê các mẫu, một số thống kê cho báo cáo. Hết ( bảo sao các bác thợ khoan không cần học vẫn viết được báo cáo vù vù :D ).

1. Chương trình muốn có tiến triển phải có nhu cầu của thị trường
2. Thị trường phải có nhu cầu thì chương trình mới tiến triển được.

Thầy Giao AIT Thái Lan có giới thiệu một số chương trình SV chuyên ngành GEO bên đó học, 3D, 4D hết rồi, nhưng thử hỏi làm 3D hay 4D ở Việt nam ai mua, ai dùng.

Muốn viết một cái hệ thống to to bao gồm cả máy chủ DATA nhưng rồi lại từ bỏ ý nghĩ đó, làm ra chắc gì ai mua. Đến to vật vã như Thuỷ điện Sơn La bên điện 1 họ vẫn vẽ bằng MAPINFOR kìa (lại nhớ ngày mới ra trường Chiến vào nhờ hướng dẫn vẽ trên MAP)
 
6-7 năm rồi chương trình vẫn vậy bạn ạh, hình trụ + mặt cắt, thống kê các mẫu, một số thống kê cho báo cáo. Hết ( bảo sao các bác thợ khoan không cần học vẫn viết được báo cáo vù vù :D ).

1. Chương trình muốn có tiến triển phải có nhu cầu của thị trường
2. Thị trường phải có nhu cầu thì chương trình mới tiến triển được.

Thầy Giao AIT Thái Lan có giới thiệu một số chương trình SV chuyên ngành GEO bên đó học, 3D, 4D hết rồi, nhưng thử hỏi làm 3D hay 4D ở Việt nam ai mua, ai dùng.

Muốn viết một cái hệ thống to to bao gồm cả máy chủ DATA nhưng rồi lại từ bỏ ý nghĩ đó, làm ra chắc gì ai mua. Đến to vật vã như Thuỷ điện Sơn La bên điện 1 họ vẫn vẽ bằng MAPINFOR kìa (lại nhớ ngày mới ra trường Chiến vào nhờ hướng dẫn vẽ trên MAP)
MapInfo thì ai cũng biết hay, đa dụng (em cũng biết sơ sơ) nhưng nếu ta kết hợp từ Hình trụ, mặt cắt rồi đến bản đồ địa chất, BĐ địa chất công trình, BĐ ĐCTV, ... Hay ngay cả ta phát triển hình trụ và mặt cắt từ địa chất công trình sang địa chất thủy văn, các mặt cắt hoàn công các công tác thi công địa kỹ thuật, ... cũng không phải là việc làm vô ý nghĩa.
Em nghĩ làm được điều đó thì khối người cần dùng soft của chúng ta
Em đang làm thi công một số hạng mục xử lý đất nền, Việc hoàn thành các mặt cắt trên ACAD là cả một vấn đề. Ví dụ hệ thống mặt cắt khoan phụt xi măng chống thấm cho một phân đoạn đập chẳng hạn. Nếu không tự động hóa, minh có vẽ cả tháng cũng chưa xong
Em út mạo muội mong các sư phụ lượng thứ
.................................................. .................................................. ..........................
Nguyễn Minh Thông - Tp. HCM
 
CrossDrawing.gif


đây là một demo 100% do chương trình vẽ chưa sửa chữa gì bằng tay.

Kết luận gì ư: Miệt mài làm mõi ngày một ít code. Em thiếu khoản này may nhờ có Tú bổ sung phần đó.

CHÚC CHƯƠNG TRÌNH CỦA ANH SỚM HOÀN THIỆN

Nối giả định của LOGMAN không hợp lý, bản 2.0 mình cũng bị như của Long, nhưng bản 3.0 đã ngon lành:

GeoSection9.jpg
 
Chương trình gần giống GeSection của anh Hướng

qhthong
Em có chương trình vẽ bằng ngôn ngữ VB đang trong giai đoạn hoàn thiện nên muốn tham khảo các bác để hoàn thiện bản Demo của minh. Mong các bác giúp đỡ.Xin cảm ơn các bác nhiều nhé.

Em vừa thiết kế xong phần giao diện chương trình. Nói chung tham khảo rất nhiều GeSection của anh Hướng và các bài trong giaiphapexcel.com. Xin chia sẻ một chút về giao diện chương trình. Phần code, do chưa hoàn thiện nên chưa dám đưa lên.

Xin chân thành cảm ơn diễn đàn và Anh Hướng
Trân trọng!
MINH THÔNG
 

File đính kèm

  • AGEO1.jpg
    AGEO1.jpg
    100.9 KB · Đọc: 137
  • AGEO3.GIF
    AGEO3.GIF
    20.2 KB · Đọc: 84
  • AGEO4.jpg
    AGEO4.jpg
    99.9 KB · Đọc: 71
  • AGEO5.jpg
    AGEO5.jpg
    102.4 KB · Đọc: 74
Lần chỉnh sửa cuối:
Tôi đã từng làm menu rồi nhưng thấy không phù hợp vì từ Office 2007 dùng Ribbon, menu bị nhét vào 1 xó nên thôi, dùng menu phải chuột (không sợ bị thay thế --=0).
Bạn nên có tính toán xa hơn 1 chút vì sớm muộn thì Excel 2007, 2010 sẽ thay thế các phiên bản cũ vì nhiều cái hay hơn.
Một phần em cũng muốn học hỏi là chính. Tuy nhiên lời khuyên của anh rất có ý nghĩa. Em cũng có làm menu chuột phải rồi. Xin cảm ơn những kinh nghiệm quý báu của anh. Hy vọng được trao đổi với anh nhiều hơn vào những lần sau!
Trân trọng!-=.,,
 
Trong chương trình này, vẽ hình trụ hố khoan khi độ sâu vượt qua 1 tờ A4, sang tờ thứ 2, 3, độ sâu lớp trùng với độ sâu kết thúc 1 hình trụ, bề dày lớp vượt quá 1 hình trụ,... là công việc vất vả.

GeoSection6.jpg


Ngoài ra còn việc vẽ mặt cắt ĐCCT, đặc biệt là phần ranh giới giả định.
 
Trong chương trình này, vẽ hình trụ hố khoan khi độ sâu vượt qua 1 tờ A4, sang tờ thứ 2, 3, độ sâu lớp trùng với độ sâu kết thúc 1 hình trụ, bề dày lớp vượt quá 1 hình trụ,... là công việc vất vả.

GeoSection6.jpg


Ngoài ra còn việc vẽ mặt cắt ĐCCT, đặc biệt là phần ranh giới giả định.
Phần hình trụ: Em vẫn muốn nó chui vào một tờ giấy A4 hoặc A3, nên code viết hình trụ, em khôg chú trọng lắm đến tỷ lệ. Phần tính toán tỷ lệ em dành cho Sub khác. Người làm báo cáo cần phải có chủ định xuất hình trụ sang khổ giấy nào? Chứ không thụ động hưởng thụ tỷ lệ thiết kế sẵn của tiện ích.
Phần mặt cắt: Em có đọc được một vài trao đổi về việc có nên nối lớp tự động hay không? Do đó em chú trọng hơn về nối lớp thủ công theo kinh nghiệm của anh Hướng về Spline. Em sẽ học hỏi nhiều đến nối lớp tự động khi hoàn thành mọi công việc khác.
Xin chân thành cảm ơn những kinh nghiệm quý báu của anh. Em mãi trân trọng những lời góp ý của anh.
Thân chào anh!
 
Phần hình trụ: Em vẫn muốn nó chui vào một tờ giấy A4 hoặc A3, nên code viết hình trụ, em khôg chú trọng lắm đến tỷ lệ. Phần tính toán tỷ lệ em dành cho Sub khác. Người làm báo cáo cần phải có chủ định xuất hình trụ sang khổ giấy nào? Chứ không thụ động hưởng thụ tỷ lệ thiết kế sẵn của tiện ích.
Phần mặt cắt: Em có đọc được một vài trao đổi về việc có nên nối lớp tự động hay không? Do đó em chú trọng hơn về nối lớp thủ công theo kinh nghiệm của anh Hướng về Spline. Em sẽ học hỏi nhiều đến nối lớp tự động khi hoàn thành mọi công việc khác.
Xin chân thành cảm ơn những kinh nghiệm quý báu của anh. Em mãi trân trọng những lời góp ý của anh.
Thân chào anh!


Cái này không đơn giản 1 tý nào, có nhiều trường hợp phải tính đến như khuyết lớp, đáy lớp ở đúng ranh giới hình trụ, lớp quá dày tràn sang cả tờ tiếp theo,... Nếu không lường hết các trường hợp đó thì hình trụ sẽ loạn hết. **~**
 
Web KT
Back
Top Bottom