Đến nội dung


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

AutoCAD với Excel


  • Please log in to reply
199 replies to this topic

#41 phothuongham

phothuongham

    biết zoom

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

Đã gửi 31 July 2007 - 10:37 AM

Anh ssq ơi sau khi load xong rồi mở five *.CSV rồi thì xuất hiện 1 tuỳ chọn. Nhưng ko sử dụng được tuỳ chọn này bác ạ. Làm như thế nào vậy bác mong bác chỉ giáo. Cám ơn bác nhiều.
  • 0

#42 ssg

ssg

    biết lệnh adcenter

  • Vip
  • PipPipPipPipPipPipPip
  • 1228 Bài viết
Điểm đánh giá: 1087 (rất tốt)

Đã gửi 31 July 2007 - 01:43 PM

Anh ssq ơi sau khi load xong rồi mở five *.CSV rồi thì xuất hiện 1 tuỳ chọn. Nhưng ko sử dụng được tuỳ chọn này bác ạ. Làm như thế nào vậy bác mong bác chỉ giáo. Cám ơn bác nhiều.

Bạn đã cho hiện Options Dialog là ổn rồi, không có vấn đề gì nữa. Trong dialog chỉ là 4 options:
- 3 cái trên dạng popuplist, bạn bấm vào hình tam giác đen bên phải nó sẽ liệt kê đầy đủ các layer hiện có trong bản vẽ, bạn muốn chọn cái nào thì tùy bạn!
- 1 cái dưới cùng để chọn độ cao chữ (text size cho con số chỉ cao độ), theo mặc định nó sẽ lấy thông tin textsize hiện hành. Nếu muốn thay đổi thì gõ số vào.
Xong option chỉ việc bấm OK, toàn bộ dữ liệu trong file *.csv sẽ chuyển vào bản vẽ như đã mô tả ở các bài trên. Nếu bạn không chọn gì cả, cũng cứ bấm OK, tất cả các thành phần sẽ được vẽ ở layer 0.
  • 1

#43 phothuongham

phothuongham

    biết zoom

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

Đã gửi 31 July 2007 - 04:44 PM

Em lam dược rồi các bác ạ. Bác ssg học ở đâu vậy- kính nể bác đấy.
  • 0

#44 phothuongham

phothuongham

    biết zoom

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

Đã gửi 31 July 2007 - 04:59 PM

Lại không thấy tên điểm đâu cả. Chỉ thấy mỗi Point thôi bác ạ
  • 0

#45 ssg

ssg

    biết lệnh adcenter

  • Vip
  • PipPipPipPipPipPipPip
  • 1228 Bài viết
Điểm đánh giá: 1087 (rất tốt)

Đã gửi 01 August 2007 - 02:26 PM

Lại không thấy tên điểm đâu cả. Chỉ thấy mỗi Point thôi bác ạ

Có lẽ file *.csv của bạn không đúng theo quy cách của chương trình. Bạn download lại cái này và đọc readme:

http://www.cadviet.com/upfiles/Tracdia10.zip

Nhớ xóa toàn bộ những file trước kia đi!
  • 2

#46 BKXD98

BKXD98

    biết vẽ circle

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

Đã gửi 03 August 2007 - 11:29 PM

Việc chuyển dữ liệu qua lại giữa Excel và Acad có thể thực hiện tương đối dễ dàng bằng ngôn ngữ VBA, các bác có thể tham khảo thêm tại đây :
http://www.giaiphapexcel.com/forum/showthread.php?t=418 : excel --> acad
http://www.giaiphapexcel.com/forum/showthread.php?t=1735 : acad --> excel
  • 1

#47 tnmtpc

tnmtpc

    biết dimcontinue

  • Members
  • PipPipPipPipPip
  • 370 Bài viết
Điểm đánh giá: 206 (khá)

Đã gửi 30 November 2007 - 04:36 PM

Dạ e đi đo mặt bằng, nhập điểm lập bình đồ. Nếu đo bằng máy kinh vĩ thì chỉ có khoảng cách và góc quay so với mốc chuẩn thôi bác ạ. Còn nếu đo bằng máy toàn đạc có tọa độ X,Y,Z thì họ cũng đổ vào excel khi giao cho e. Ngồi nhập từng điểm 1 thì lâu quá. Mong bác chỉ cho.

hãy tải chương trình chitietwin của tác giả Trung Anh (trường ĐH mỏ) về dùng (miễn phí), đáp ứng đầy đủ yêu cầu của bạn.Chúc thành công
  • 0

#48 tvduc

tvduc

    biết vẽ line

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

Đã gửi 11 December 2007 - 04:21 PM

Các Bác có thể giúp mình một lisp xuất từ Excel sang Acad (trong excel có 03 hàng theo thứ tự : STT - toạ độ Y - toạ độ X) mình muốn xuất ra Acad rồi về đường line nối các điểm đó lại với nhau theo thư tự của các điểm. (mục đích muốn vẽ biểu đồ áp lực sau khi đã tính toán từ excel)
Cam ơn các Bác nhiều.
  • 0

#49 Nókìa8800

Nókìa8800

    Chưa sử dụng CAD

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

Đã gửi 26 December 2007 - 03:26 PM

Việc giao lưu dữ liệu từ ACAD và EXcel quả thật nhiều lúc rất hiệu quả. Có những tác vụ mình tính toán bên Excel rồi ứng dụng Lisp để xuất qua Cad sẽ giúp chúng ta rất nhiều. Nhưng từ Excel qua Cad còn một cách nữa mà không phải dùng đến Lisp đó là ngôn ngữ Scrip. Nếu các bạn gặp một bài toán và chỉ cần dùng 1 lần dữ liệu tính toán bên Excel thì tôi nghĩ dùng Scrip sẽ đơn giản hơn.

Ví dụ nhé: vẽ đồ thị bên Cad. Các bạn có thể tính toán toạ độ các điểm = excel, sau đó dùng lệnh excel để tạo ra các lệnh của scrip. Mở Notepad , copy các lệnh này vào notepad, lưu file, mặc định pad lưu file là txt nhưng trong ô filename bạn nhập như sau "scrip.scr" (có cả dấu nháy "). Vào Cad menu Tools\Run Scrip chọn file scr thế là Cad vẽ cho ta.

Cách làm này khá phù hợp với những ai chưa biết nhiều về Lisp.

File đính kèm ví dụ.
Sao ko gửi được file đính kèm nhỉ
  • 0

#50 tnmtpc

tnmtpc

    biết dimcontinue

  • Members
  • PipPipPipPipPip
  • 370 Bài viết
Điểm đánh giá: 206 (khá)

Đã gửi 16 January 2008 - 09:22 PM

Chương trình xuất dữ liệu từ Excel sang Cad cuả Bác Ssg thật tuyệt, dân trắc địa gặp phải cái này thì ưng ý lắm, xin đề xuất thêm vơí Bác Ssg là trong dữ liệu cuả Excel, ngoaì pointname, X,Y,Z, còn có thêm cột "code" nữa, khi xuất qua Cad, dùng lệnh JD cuả Bác Hoành viết cho tnmtpc để nôí điểm theo code thì trên cả tuyệt vơì Bác ạ! Bác viết thêm một chút nữa nhé! Bà con trắc địa đang chờ đấy
  • 0

#51 ssg

ssg

    biết lệnh adcenter

  • Vip
  • PipPipPipPipPipPipPip
  • 1228 Bài viết
Điểm đánh giá: 1087 (rất tốt)

Đã gửi 17 January 2008 - 09:49 AM

Chương trình xuất dữ liệu từ Excel sang Cad cuả Bác Ssg thật tuyệt, dân trắc địa gặp phải cái này thì ưng ý lắm, xin đề xuất thêm vơí Bác Ssg là trong dữ liệu cuả Excel, ngoaì pointname, X,Y,Z, còn có thêm cột "code" nữa, khi xuất qua Cad, dùng lệnh JD cuả Bác Hoành viết cho tnmtpc để nôí điểm theo code thì trên cả tuyệt vơì Bác ạ! Bác viết thêm một chút nữa nhé! Bà con trắc địa đang chờ đấy

Cái sườn đã có sẵn, thêm 1 hay nhiều cột nữa không thành vấn đề. Tuy nhiên, mình thấy quy cách trên bản vẽ do vbao và cuongcv3 đề xuất khác với bản vẽ của bạn.
Theo mình, các bạn nên thống nhất nhau trước, nêu yêu cầu tổng hợp và cụ thể hoá bằng các file:
- 1 file *.xls với đầy đủ các số liệu
- 1 file *.dwg sau khi chạy chương trình
  • 1

#52 anhcos

anhcos

    biết lệnh hatchedit

  • Advance Member
  • PipPipPipPip
  • 260 Bài viết
Điểm đánh giá: 170 (tàm tạm)

Đã gửi 17 January 2008 - 10:18 AM

Chương trình xuất dữ liệu từ Excel sang Cad cuả Bác Ssg thật tuyệt, dân trắc địa gặp phải cái này thì ưng ý lắm, xin đề xuất thêm vơí Bác Ssg là trong dữ liệu cuả Excel, ngoaì pointname, X,Y,Z, còn có thêm cột "code" nữa, khi xuất qua Cad, dùng lệnh JD cuả Bác Hoành viết cho tnmtpc để nôí điểm theo code thì trên cả tuyệt vơì Bác ạ! Bác viết thêm một chút nữa nhé! Bà con trắc địa đang chờ đấy


Mình có chương trình này, có thể truy xuất dữ liệu qua lại giữa CAD và Excel rất dễ dàng.

Chương trình có 3 chức năng chính (viết bằng VB6.0 nên hơi lớn - 4MB và chỉ sử dụng cho 2004/5 thôi, sẽ có bản mới sau)

1. Lấy dữ liệu của đối tượng:
- dùng đế lấy toạ độ, nội dung của các đối tượng và xuất qua bảng tính excel
Nếu có nhiều loại đối tượng thì mỗi loại sẽ nằm trong một sheet
Đối với Text, MText --> dữ liệu xuất sẽ là X,Y,Z, Nội dung
Đối với Line --> X1,Y1,Z1 và X2,Y2,Z2
Đối với Poly--> Các điểm X,Y,Z liên tiếp nhau trên từng hàng của Excel
Đối với SPline-->Các điểm X,Y,Z liên tiếp nhau trên từng hàng của Excel và cả Fitpoints

2. Tạo đối tượng
a. Từ Excel bạn quét khối toàn bộ các dữ liệu X,Y,Z và Nội dung (nếu có trong trường hợp dùng cho Text,MText)
b. Chọn kiểu đối tượng cần tạo VD: Polyline chẳng hạn
c. Trong chương trình bạn nhấn nút Tạo để tạo đối tượng
Trường hợp này 1 polyline sẽ được tạo ra từ các toạ độ X,Y,Z đã quét khối ở trên

3. Thay đổi dữ liệu theo công thức
Chọn đối tượng và sử dụng các công thức của Excel để thay đổi cho X,Y,Z và nội dung (nếu có)

VD1: Thay đổi các điểm trong tập điểm
Trong tập điểm, nếu các điểm có cao độ thấp hơn 200m thì nâng thêm 5m
Trong mục Lọc chọn Point (or Text...), phía dưới trong mục Z gõ: =if(Z<=200,Z+5,Z)

VD2: để thay đổi nội dung của Text bằng chính cao độ của nó
Trong mục Lọc chọn Text, phía dưới trong mục Nội dung bạn gõ: vào =Z

VD3: để thay đổi nội dung của Text bằng chính các tọa độ của nó và nằm trên 3 hàng
Trong mục Lọc chọn Text, phía dưới trong mục Nội dung bạn gõ vào =X & "\P" & Y & "\P" & Z

Link: http://www.cadviet.com/upfiles/ACAD_Utilitiespart1.rar
http://www.cadviet.com/upfiles/ACAD_Utilitiespart2_1.rar
mã anhcos-270773-723472
  • 2
Clear sky!

MF Rock collection.

#53 MANHHUNGXDA

MANHHUNGXDA

    biết lệnh adcenter

  • CADViet Team
  • PipPipPipPipPipPipPip
  • 926 Bài viết
Điểm đánh giá: 458 (tốt)

Đã gửi 17 January 2008 - 10:46 AM

Các Bác có thể giúp mình một lisp xuất từ Excel sang Acad (trong excel có 03 hàng theo thứ tự : STT - toạ độ Y - toạ độ X) mình muốn xuất ra Acad rồi về đường line nối các điểm đó lại với nhau theo thư tự của các điểm. (mục đích muốn vẽ biểu đồ áp lực sau khi đã tính toán từ excel)
Cam ơn các Bác nhiều.


có rất nhiều phần mên
bạn thử làm, theo cách của mình xem
đó là chạy file *.scr
theo mình thì cách này đơn giản, và bạn chủ động hơn
Ví dụ của mình dây
+bạn thử copy cái cột mình bôi xanh vào dòng lệnh của cad xem có điều gì xay ra
+dùng lệnh SCR để chạy file HUNG.SCR
còn xuất từ cad sang excel thi mình cò file lisp
bản thử xem
http://www.cadviet.com/upfiles/scr.rar
VỚI CÁCH NÀY THÌ CÁC BẠN CÓ THỂ LÀM NHIỀU THƯ:
+vẼ đường điều phối đất
+Tính toán thuỷ năng
+Trắc địa
+.....
  • 0
Hãy ước cho trọn 1 ước mơ!

#54 ssg

ssg

    biết lệnh adcenter

  • Vip
  • PipPipPipPipPipPipPip
  • 1228 Bài viết
Điểm đánh giá: 1087 (rất tốt)

Đã gửi 17 January 2008 - 02:55 PM

Mình có chương trình này, có thể truy xuất dữ liệu qua lại giữa CAD và Excel rất dễ dàng...

Cám ơn sự chia sẻ của bạn.
Mình có vài góp ý sau:
1) Là người dùng AutoCAD, cái người ta cần là sự đơn giản, rõ ràng và hiệu quả. Bạn đưa vào chương trình nhiều cái không thiết thực lắm. Nhiều thứ quá làm cho chương trình có vẻ rườm rà, có thể gây khó hiểu cho người dùng.
Cụ thể:
- Mình dám chắc rằng không có người dùng Acad, bất kể chuyên ngành nào, cần lấy dữ liệu từ Dimensions xuất ra Excel để làm gì cả!
- Tính năng "Thay đổi dữ liệu theo công thức" cũng không nên đưa vào. Nếu cần, người dùng sẽ tự xử lý, hoặc bằng AutoCAD hoặc bằng Excel hiệu quả hơn nhiều. Chương trình chỉ nên làm mỗi một chức năng Converter thuần tuý.
- Cùng quan điểm như trên, bạn cũng nên bỏ luôn tính năng nhân tỷ lệ khi tạo thực thể. Đối với chiều cao text, cách tốt nhất là lấy textheight hiện hành trên bản vẽ.
Rút gọn lại, giao diện chương trình chỉ cần đơn giản như sau:
- 1 Combo_box để chọn Objects Type
- 4 Command Button: Import, Export, Help và Exit
- Có thể thay 2 button Import, Export bằng 1 button Run và 1 cặp Option_Button (im và ex)
Đừng ngại rằng bỏ đi nhiều thứ sẽ làm cho chương trình có vẻ không "hoành tráng"! Thực tế, người dùng sẽ đánh giá rất cao các chương trình đơn giản, nhỏ gọn nhưng hiệu quả.

2) Bạn chưa xử lý runtime error. Khi người dùng không quét chọn dữ liệu trên bảng Excel mà bấm nút "Tạo", nó báo lỗi runtime và thoát ngang xương! Cách hành xử thông thường là ra thông báo nhắc nhở và hướng dẫn người dùng thao tác lại cho đúng.

3) Điều cuối cùng, và cũng là điều quan trọng nhất. Bạn có biết vì sao mọi người có vẻ không "mặn mà" lắm với VB không? Đó là yêu cầu về version của cả AutoCAD lẫn Excel. Cho dù bạn có bổ sung đầy đủ các version hiện nay đi nữa, trong tương lai AutoCAD ra thêm version 2009 hoặc MicroSoft có thêm Office2010 chẳng hạn, thì chương trình VB của bạn có còn tương thích không? Hay là họ buộc phải liên hệ với bạn để có được bản upgrade?
Bạn giải quyết được vấn đề này thì chắc chắn các ứng dụng VB sẽ phát huy được tối đa những ưu thế hiển nhiên của nó.
  • 0

#55 tnmtpc

tnmtpc

    biết dimcontinue

  • Members
  • PipPipPipPipPip
  • 370 Bài viết
Điểm đánh giá: 206 (khá)

Đã gửi 17 January 2008 - 07:08 PM

Cái sườn đã có sẵn, thêm 1 hay nhiều cột nữa không thành vấn đề. Tuy nhiên, mình thấy quy cách trên bản vẽ do vbao và cuongcv3 đề xuất khác với bản vẽ của bạn.
Theo mình, các bạn nên thống nhất nhau trước, nêu yêu cầu tổng hợp và cụ thể hoá bằng các file:
- 1 file *.xls với đầy đủ các số liệu
- 1 file *.dwg sau khi chạy chương trình

Bác nói quá đúng!, mỗi anh mỗi khác, nhưng thực ra về cái gốc không thể khác nhau được. Bản vẽ Cad chứa dữ liệu không gian, còn bên Excel có thể hiểu là chứa dữ liệu thuộc tính. Dữ liệu có thể gồm nhiều thứ, nhưng không thể thiếu các thông tin cơ bản là tên điểm mia, tọa độ X,Y, độ cao Z, ghi chú điểm (có thể xem cái này là code cũng được nhưng tốt nhất nên cho một cột riêng). đôí vơí dân bản đồ địa chính(không quan tâm Z), code dùng nôí cạnh thửa, dân bản đồ địa hình, code dùng nôí các địa vật như đường giao thông, sông suôí...Như vậy code phaỉ được nhập vào ngay Excel để khi qua Cad tự động nôí điểm là quan trọng lắm chớ, còn cách thể hiện vị trí text cuả điểm mia (tên điểm, độ cao, ghi chú,...) tất nhiên có qui định nhưng không quan trọng. Chẳng qua bạn VBao, Cuongcv3 quên hoặc ngại không đề cập đến code.
Đó Bác thấy không, trắc địa vẫn là trắc địa: đo, xử lý số liệu thô, đưa qua chương trình nào đó (Cad chẳng hạn) tạo thành bản vẽ.
Cảm ơn Bác quan tâm, mong rằng Bác và các cao thủ nghiên cứu viết một lisp chung để xử lý số liệu đo và tạo bản vẽ nhanh. Đưa vào kho dữ liệu lisp của diễn đàn để mọi ngươì dễ tìm thấy. Cám ơn Bác lần nữa
  • 0

#56 ssg

ssg

    biết lệnh adcenter

  • Vip
  • PipPipPipPipPipPipPip
  • 1228 Bài viết
Điểm đánh giá: 1087 (rất tốt)

Đã gửi 18 January 2008 - 07:54 AM

Cảm ơn Bác quan tâm, mong rằng Bác và các cao thủ nghiên cứu viết một lisp chung để xử lý số liệu đo và tạo bản vẽ nhanh. Đưa vào kho dữ liệu lisp của diễn đàn để mọi ngươì dễ tìm thấy. Cám ơn Bác lần nữa

Từ lâu mình đã có ý tổng hợp các tiện ích liên quan đến Trắc địa - Bản đồ vào 1 chương trình duy nhất, như là bản thử nghiệm thuộc dự án CadViet Utility (CVU). Nếu như mình am hiểu tương đối về chuyên ngành Trắc địa thì có lẽ chương trình đã ra mắt anh em rồi. Đáng tiếc là mình chỉ hiểu lơ mơ, chưa có được cái nhìn toàn diện để tổng hợp. Bởi vậy, muốn có được chương trình, rất cần sự hỗ trợ của các bạn trong ngành. Cụ thể, mình đang cần những cái sau:
1) Hiểu biết về những công việc cụ thể, từ lúc vác máy đi ngắm cho đến lúc ra được bản đồ địa chính hoặc địa hình; các công việc liên quan đến xử lý, biên tập, trích xuất thông tin, lập báo cáo... từ các file bản đồ đã lập.
2) Các quy ước, quy trình, quy phạm của ngành có liên quan đến các việc trên
3) Các ví dụ, với số liệu cụ thể, bằng chính các file *.xls, *.dwg... mà các bạn thực hiện trong công tác thực tế, được trình bày với quy cách mà các bạn cho là đẹp nhất, chuẩn nhất (nếu file lớn, chỉ cần trích 1 đoạn thôi). Các file minh hoạ này có ý nghĩa rất quan trọng đối với người lập trình:
- Giúp người lập trình hiểu chính xác vấn đề. Xin lưu ý các bạn một lần nữa, chương trình cần đầy đủ các thông tin, kể cả những thông tin có thể bị bỏ qua, không đề cập tới (vì bị cho là nhỏ nhặt): layer, màu sắc, chiều cao text, vị trí text so với point... Nhiều thứ lắm, liệt kê chắc chắn sẽ thiếu, nhưng ví dụ cụ thể bằng file thì tự thân nó đã có đầy đủ.
- Có cái cụ thể để test và chỉnh sửa chương trình khi lập xong
  • 1

#57 anhcos

anhcos

    biết lệnh hatchedit

  • Advance Member
  • PipPipPipPip
  • 260 Bài viết
Điểm đánh giá: 170 (tàm tạm)

Đã gửi 18 January 2008 - 09:11 AM

Chưong trình trên viết đã lâu rồi nên còn nhiều lỗi và không tương thích với các véion sinh sau đẻ mụôn của CAD.
Tuy nhiên những chtr sau này của tôi sẽ luôn luôn tương thích với bất kỳ version tuơng lai nào của CAD.
Thank ssg.
  • 0
Clear sky!

MF Rock collection.

#58 tnmtpc

tnmtpc

    biết dimcontinue

  • Members
  • PipPipPipPipPip
  • 370 Bài viết
Điểm đánh giá: 206 (khá)

Đã gửi 18 January 2008 - 09:32 PM

Từ lâu mình đã có ý tổng hợp các tiện ích liên quan đến Trắc địa - Bản đồ vào 1 chương trình duy nhất, như là bản thử nghiệm thuộc dự án CadViet Utility (CVU). Nếu như mình am hiểu tương đối về chuyên ngành Trắc địa thì có lẽ chương trình đã ra mắt anh em rồi. Đáng tiếc là mình chỉ hiểu lơ mơ, chưa có được cái nhìn toàn diện để tổng hợp. Bởi vậy, muốn có được chương trình, rất cần sự hỗ trợ của các bạn trong ngành. Cụ thể, mình đang cần những cái sau:
1) Hiểu biết về những công việc cụ thể, từ lúc vác máy đi ngắm cho đến lúc ra được bản đồ địa chính hoặc địa hình; các công việc liên quan đến xử lý, biên tập, trích xuất thông tin, lập báo cáo... từ các file bản đồ đã lập.
2) Các quy ước, quy trình, quy phạm của ngành có liên quan đến các việc trên
3) Các ví dụ, với số liệu cụ thể, bằng chính các file *.xls, *.dwg... mà các bạn thực hiện trong công tác thực tế, được trình bày với quy cách mà các bạn cho là đẹp nhất, chuẩn nhất (nếu file lớn, chỉ cần trích 1 đoạn thôi). Các file minh hoạ này có ý nghĩa rất quan trọng đối với người lập trình:
- Giúp người lập trình hiểu chính xác vấn đề. Xin lưu ý các bạn một lần nữa, chương trình cần đầy đủ các thông tin, kể cả những thông tin có thể bị bỏ qua, không đề cập tới (vì bị cho là nhỏ nhặt): layer, màu sắc, chiều cao text, vị trí text so với point... Nhiều thứ lắm, liệt kê chắc chắn sẽ thiếu, nhưng ví dụ cụ thể bằng file thì tự thân nó đã có đầy đủ.
- Có cái cụ thể để test và chỉnh sửa chương trình khi lập xong

Hoan nghênh Bác đã có “thai ngén” một dự án liên quan đến trắc địa –Bản đồ, thực ra trắc địa cũng như bao nghành khác , nó rộng lắm, nhưng chỉ nói về việc đo và xử lý số liệu để tạo bản đồ thì có thể khái quát như sau:
1/Lập lưới khống chế khu vực đo: lưới là tập hợp các điểm mốc mà sau này có thể dùng làm điểm đặt máy để đo chi tiết. Các điểm mốc tạo thành một mạng bao gồm nhiều hình tam giác, đa giác hoặc một đường chuyền hở(các đọan thẳng nói với nhau tạo thành đường gấp khúc). Việc đo đạc trên lưới là để xác định được độ cao và tọa độ của từng điểm mốc (Bác không phải dân trong nghề nên không cần hiểu sâu nội dung này)
2/Đo chi tiết: đặt máy tại một điểm mốc đã biết tọa độ và độ cao, chọn một điểm khác đã biết tọa độ để làm hướng khởi đầu (máy ngắm điểm này có góc ngang là 0), quay máy ngắm điểm dựng mia(gọi là điểm chi tiết) để đọc số, ở đây xin đề cập đối với máy thông thường (máy kinh vĩ quang cơ, hòan tòan ghi chép bằng thủ công), thông tin đọc, ghi gồm có: tên điểm mia, chiều dài nghiêng từ máy đến mia (nghiêng bỡi vì đường nhìn lên hay xuống phụ thuộc vào điểm mia cao hay thấp), góc ngang (theo độ, phút, giây so với hướng khởi đầu), góc đứng( tùy lọai máy, nhưng phổ thông nhất vẫn là 0o00’00” khi ống kính nằm ngang, ống kính hướng lên trên là góc dương, tăng dần từ 0 dến +90o, ngược lại là góc âm ),cao mia, ghi chú (phần này giúp cho công tác biên tập nội nghiệp( ví dụ: điiểm nào nối tới điểm nào, điểm nào là cây, nhà, …)
* Nếu không thích đọc chiều dài nghiêng trực tiếp thì có thể đọc dây trên, chiều dài nghiêng được tính như sau: (dây trên - cao mia)x 0.2 (đơn vị là mét)
3/Xử lý số liệu đo: tính khỏang cách ngang từ máy đến mia, độ cao điểm mia, tọa độ điểm mia
-công thức tính K/cách ngang: S= D.cos2v ; trong đó: D là chiều dài nghiêng (mét), v là góc đứng
-Công thức tính độ cao điểm mia: H=Hm +(D.sin(2v))/2 +i-l ;trong đó Hm là độ cao mốc đặt máy, i là chiều cao của máy, l là cao mia
Khi tọa độ điểm máy đã biết, dựa vào góc ngang so với hướng khởi đầu và chiều dài ngang S mới vừa xác định để xác định tọa độ điểm mia (gọi là phương pháp tọa độ cực)
4/Tạo bản vẽ: vẽ điểm mia theo phương pháp cực, ghi độ cao, thực hiện nối điểm nếu có, hoặc vẽ các địa vật nhờ vào ghi chú
*Nếu là dân địa chính thì không cần tính độ cao, chỉ tính K/cách ngang, thực hiện ngay việc nối các cạnh thửa, tính diện tích thửa, đánh số thứ tự thửa theo chiều trái qua phải, từ trên xuống và ghi các thông tin vào thửa như tên người sử dụng, lọai đất, diện tích và vẽ các địa vật khác
*Nếu là dân địa hình thì công tác khá quan trọng và phức tạp là chạy đường đồng mức (bình đồ), dựa vào giá trị độ cao của điểm mia, vẽ các địa vật khác
5/Text thể hiện thông tin :
-Đối với bản đồ địa chính thì thông tin được ghi vào tâm thửa đất dạng hỗn số, các thông tin khác ghi ở vị trí bất kỳ trong thửa
Đối với bản đồ địa hình, độ cao lấy tròn đến hai số lẻ và ghi tại vị trí sao cho dấu chấm thập phân trùng chấm điểm mia, ghi chú thường được ghi bên dưới lệch về phải, tên điểm ghi ở trên
Về màu sắc, chiều cao text là tùy chọn. Màu sắc qui chuẩn thường áp dụng cho bản đồ chuyên đề (như thổ nhưỡng, qui họach đất đai…), chiều cao phụ thuộc vào tỷ lệ bản đồ
6/Trích xuất thông tin, lập báo cáo: đối với bản đồ địa chính, sau khi hòan chỉnh bản đồ, cần trích xuất ra file báo cáo gồm các thông tin địa lý (tọa độ đỉnh thửa), số hiệu thửa đất, diện tích, lọai đất, tên người sử dụng…
Xuất phát từ nội dung trên, yêu cầu đặt ra cho chương trình mà Lisp thực hiện có hai giải pháp đối với mỗi mảng:
1/Đối với địa chính: nếu xử lý số liệu bên excel, bảng cơ sở dữ liệu có các cột: tên điểm, tọa độ X,Y, ghi chú (hoặc code), xuất qua Cad, dùng lệnh nối điểm để tạo thành thửa đất, tạo tâm thửa, đánh số thửa tự động, tính diện tích và ghi vào thửa; Nếu xử lý trực tiếp bên Cad thì yêu cầu nhập dữ liệu trong hộp thọai, gồm các edit_box: tên trạm máy, cao máy, hướng khởi đầu; tên điểm mia, dài nghiêng (hoặc dây trên), cao mia, góc ngang, góc đứng, ghi chú ,hoặc code
2/Đối với địa hình: nếu xử lý số liệu bên Excel, gồm các cột: tên điểm, tọa độ X,Y, Z, ghi chú ,hoặc code, xuất qua Cad, chương trình thực hiện nối các địa vật như sông, suối, đường giao thông, hoặc vẽ các ký hiệu địa vật như cây, cột cờ, trụ điện…(các Symbol này được cất giữ trong một thư viện nào đó). Nếu xử lý trực tiếp trong Cad, yêu cầu hộp thọai như trên nhưng phải tính thêm độ cao để ghi lên điểm mia
Mỗi lọai thông tin nằm trên một layer riêng (ví dụ tendiem, docao, code…)
( cái vướng của việc xử lý trực tiếp trên Cad là một lần thực hiện lệnh cho một điểm mia nhưng lại phải nhập lại thông tin trạm máy, nếu được nhập tất cả các điểm mia trong một trạm máy cho mỗi một lần thực hiện lệnh và lưu được dữ liệu thì sẽ ưu thế hơn)
Quá dài dòng phải không Bác Ssg?, nói tóm lại là không dám yêu cầu cao hơn (chẳng hạn chạy được bình đồ), yêu cầu là xử lý số liệu đo, dùng lệnh để vẽ và thể hiện thông tin các đối tượng đo đạc
Sẽ có người cho rằng sao không sử dụng các chương trình khác (SDR, Sufer, Autodesk survey…), thực ra các chương trình đó không phải dân trắc địa nào cũng biết, hơn nữa nhiều người (như tôi) vẫn thích chơi Cad hơn
Hy vọng rằng “ thai nghén” của bác sớm đơm hoa kết trái, chúc sức khỏe, thành đạt
Quí đàn anh trắc địa bỏ qua nếu những khái quát trên đây có gì thiếu sót, mong được góp ý để diễn đàn thêm sôi động
Gửi kèm file mẫu để Bác Ssg tham khảo

http://www.cadviet.com/upfiles/mau.dwg
  • 1

#59 ssg

ssg

    biết lệnh adcenter

  • Vip
  • PipPipPipPipPipPipPip
  • 1228 Bài viết
Điểm đánh giá: 1087 (rất tốt)

Đã gửi 19 January 2008 - 11:53 AM

Hoan nghênh Bác đã có “thai nghén” một dự án liên quan đến Trắc địa –Bản đồ...

Nếu thống nhất về quan điểm, mời các bạn sang đây bàn bạc cụ thể hơn:

http://www.cadviet.c...?showtopic=2691
  • 0

#60 ssg

ssg

    biết lệnh adcenter

  • Vip
  • PipPipPipPipPipPipPip
  • 1228 Bài viết
Điểm đánh giá: 1087 (rất tốt)

Đã gửi 23 January 2008 - 11:26 AM

Visual Lisp và ActiveX Automation

Lisp có những ưu thế tuyệt vời khi làm việc với Acad:
- Dễ dàng tạo các đối tượng Acad cũng như truy xuất dứ liệu từ chúng
- Gọi command của Acad rất đơn giản và tự nhiên như "người trong nhà"
- Các lệnh được tạo bằng lisp được Acad "đối xử bình đẳng" như các lệnh chính thống v.v…
Bên cạnh các ưu điểm trên, nhược điểm lớn nhất của Lisp là khả năng giao tiếp với bên ngoài rất hạn chế. Lâu nay, để truy xuất dữ liệu từ Excel, mình vẫn thường phải qua 1 trong 2 dạng file trung gian *.txt (Tab delimited - phân biệt các field bằng ký tự Tab) và *.csv (Comma delimited - phân biệt các field bằng dấu phẩy).
Nhược điểm này có thể khắc phục được bằng cách dùng ActiveX Automation.
Tổng quan về ActiveX, xin được trích dẫn Help:

"ActiveX Automation is a new way to work programmatically with the contents of an AutoCAD drawing. In many instances, ActiveX works faster than traditional AutoLISP functions in manipulating AutoCAD drawing objects.
The ActiveX programming interface is usable from a number of languages and environments, such as C++, Visual BasicTM, and DelphiTM. When you work with ActiveX objects in AutoLISP, you work with the same object model, properties, and methods that can be manipulated from other programming environments."

Translation:
ActiveX Automation là một phương pháp mới để lập trình với AutoCAD. Trong nhiều trường hợp, ActiveX làm việc nhanh hơn các hàm AutoLisp truyền thống trong việc xử lý các đối tượng AutoCAD.
ActiveX có thể dùng được với một số ngôn ngữ và môi trường lập trình như C++, VB và Delphi. Khi làm việc với ActiveX trong AutoLisp, bạn thao tác với Objects – Properties – Methods giống như trong những môi trường lập trình nói trên.


Visual Lisp cung cấp một số hàm dạng vlax-xxxx để làm việc với ActiveX. Thực tế là từ trước đến nay, bản thân mình cũng chưa có điều kiện nghiên cứu sâu về chúng. Khó khăn lớn nhất là không có tài liệu, ngay cả Help của Acad cũng hướng dẫn sơ sài. Tuy chưa biết nhiều, nhưng mình thấy mảng này khá hay. Làm chủ được nó, chúng ta có thể dùng Lisp truy xuất dữ liệu trực tiếp từ các ứng dụng khác (Excel là 1 ví dụ), không phải “nhiêu khê” như trước nữa.

Một ví dụ minh họa để các bạn thử nghiệm:
(defun C:GED();;;Get Excel Data
(vl-load-com)
(setq
ex (vlax-get-object "Excel.Application")
sl (vlax-get-property ex 'selection)
txtvr (vlax-get-property sl 'text)
txt (vlax-variant-value txtvr)
ir (vlax-get-property sl 'row)
ic (vlax-get-property sl 'column)
)
(alert
(strcat
"\nContent: " txt
"\nColumn: " (chr (+ ic 64))
"\nRow: " (itoa ir)
)
)
)
Trình tự thử:
- Appload đoạn lisp trên
- Khởi động Excel, open 1 file *.xls nào đó
- Pick chọn 1 cell bất kỳ (có chứa dữ liệu để kiểm tra)
- Sang Acad, gõ lệnh GED để thử
Kết quả: 1 message_box ghi thông tin về nội dung, chỉ số cột và hàng của cell mà bạn đã chọn.

Đặt vấn đề:
1) Đã lấy được dữ liệu của 1 cell thì tất nhiên sẽ lấy được dữ liệu của cả sheet, và đã import được thì tất nhiên cũng export được. Bằng cách nào thì mời các bạn có hứng thú với cái này “ngâm cứu” tiếp. Trước mắt, chỉ cần lấy được dữ liệu của một vùng được selected trong bảng Excel đang hiện hành (ví dụ như B3:F17 chẳng hạn) là đã ứng dụng được cho khối việc rồi.
2) Các thao tác trên hoàn toàn không dùng đến kho libraries của bất cứ trình ứng dụng nào. Phải nhờ vả đến “đám” này rất là phiền toái vì sự không tương thích giữa các version. Nếu phải dùng đến libraries, khi người ta nâng cấp version của Excel, rất nhiều khả năng chương trình của chúng ta sẽ không chạy được. Bản thân ssg ít thích dùng VB chính vì nó phụ thuộc vào các libraries quá nhiều!
Để khẳng định điều này, ssg nhờ các bạn kiểm tra giúp xem đoạn lisp trên có làm việc được với mọi version của AutoCAD cũng như Excel hay không? Ssg đã thử với Cad2002, Cad2007 và Excel2003, kết quả OK.
3) Các bạn thường lập trình với VB và ActiveX có kinh nghiệm hoặc tài liệu gì (tiếng Việt hoặc tiếng Anh đều tốt) về vấn đề này xin được chia sẻ.

Cám ơn tất cả các bạn,
  • 4