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

se7en

Thành viên
  • Số lượng nội dung

    52
  • Đã tham gia

  • Lần ghé thăm cuối

Bài đăng được đăng bởi se7en


  1. Nhất trí với Ssg và ủng hộ hết mình. Tnmtpc sẽ cố trong thời gian sớm nhất gửi bảng tổng hợp các yêu cầu và hai file *.dwg và *.xls để có cơ sở nghiên cứu chương trình

    Giá như Ssg Ssg am tường về trắc địa hoặc tnmtpc có được kiến thức về lisp như Bác Ssg nhỉ. Mà sao các Bác trắc địa không ai lên tiếng vậy cà?

    Thấy a e có ý tưởng rất hay và thực tế, e cũng từng ấp ủ sẽ viết hẳn 1 chương trình về trắc địa nho nhỏ bao gồm đầy đủ các nhu cầu cần thiết của a e trắc địa -bản đồ hay dùng, nhưng do trình độ lập trình có hạn nên chỉ mới viết được 1 số module nho nhỏ (VBA) thui như trích xuất tọa độ sang excel (chọn đối tượng, pick điểm), phun điểm từ các file dữ liệu thông dụng vào cad.

    Nay biết được ý tưởng của a e nên e ủng hộ cả 2 tay 2 chân luôn... :)

    Về việc tổng hợp yêu cầu thì e thấy trước tiên hãy đưa ra 1 bảng ban đầu , có thể đơn giản cũng được, rùi a e sẽ dựa vào đó mà đóng góp, thay đổi ý kiến dựa trên bảng đó.

    Còn về kiến thức chuyên ngành thì e giúp đuựơc gì sẽ gíup vì e cũng trong ngành.


  2. Các điểm lưu ý:

    - Text ghi thứ tự điểm phải có tọa độ x, y (của điểm insert) trùng với x, y của point (có thể khác z). Nếu không, chương trình tìm không thấy text sẽ mặc định gán số thứ tự là 0! Bản vẽ bạn gởi có vài điểm như vậy.

    - Lisp không có khả năng can thiệp vào cầu trúc file của *.xls. Mặc dù lưu ở dạng *.xls nhưng bản chất của nó vẫn là text file, các field được phân biệt bằng 1 dấu tab. Tuy vậy, trình Excel vẫn hiểu và open được loại file này.

    - Khi save, Excel sẽ hỏi "Do you want keep the workbook in this format?”. Nếu bạn muốn file được chuyển thành “*.xls thật sự” thì phải trả lời “No”, sau đó save đè lên file có hiện có là xong.

     

    Chào bác SSG, chương trình này chạy rất tốt. Nhờ bác làm giúp bài toán ngược lại được không. Tức là mình có file *.xls như cấu trúc xuất ra từ lisp, bây giờ mình vẽ lại thành các điểm point. Cảm ơn bác rất nhiều. ­

    Bài toàn ngược lại thì các chương trình đã có tích hợp sẵn rùi chẳng hạn như land desktop đều có thể import điểm vào từ nhiều định dạng file khác nhau.


  3. Gửi thanhgam2003 file trích tọa độ.Bạn Load file này trong cad xong làm như sau:

    1/Tạo 1 text style có tên là vhelven (nhớ viết đúng tên vì chương trình dùng đúng style này, còn trong style này bạn chọn font gì cũng được, nhưng nên chọn VNI vì sẽ xuất ra tiếng việt).

    2/sau đó gõ lệnh xy

    -Chọn tỷ lệ bản vẽ.

    -Chọn xuất ra bản vẽ. (:)

    -Click điểm hay chọn đối tượng thì tùy bạn. Nếu click điểm thì chọn khép điểm hay không khép điểm. Trong trích xuất hồ sơ kỹ thuật thửa đất dùng cho địa chính thì nên chọn khép điểm.

    -Chọn vi trí chèn bảng tọa độ.

     

    Khuyết điểm : bảng tọa độ trong CAD bao gồm nhiều đối tượng riêng lẻ.

    Bạn có cần xuất sang excel không hay chỉ thế là ok rùi? nếu cần thì nói để mình gửi module đó cho.

    Nó nè :

    http://www.yourfilehost.com/media.php?cat=...amp;file=xy.FAS

     

    Chúc dzui dzẻ. :)


  4. :)

    1. oh No, không phải là employee của Hài Hoà đâu. Chỉ biết vì có lần thấy ông anh tôi chạy thử soft đó thôi. Hài Hoà có dùng khoá cứng nên có cài vào mà không có khoá cũng không chạy được...hic...

     

    2. Đoạn Lisp của bác không hiểu sao khi chạy nó báo lỗi "error: no function definition: DTR"

     

    3. Theo tôi cách bác ssg dùng cái hàm "BOUNDARY" để tạo 1 "vùng" là không tiện vì như thế ta phải pick nhiều lắm nếu có nhiều thửa. Việc tạo vùng đó để cho user tự làm khi họ vẽ (phải bắt buộc thôi). Thực ra nếu bạn gì đó mà làm cái hồ sơ thửa này thì nên cài bản AUTOCAD MAP chứ đừng cài AUTOCAD thông thường (có các phiên bản cho các ngành như ACAD MAP, ACAD MECHANIC, ACAD ARTCHITEC...) trong phiên bản ACADMAP có thêm một menu MAP gồm các lệnh chuyên cho làm bản đồ và việc tạo vùng tự động cho mấy cái thửa kia chỉ là tíc tắc. Khoai Tây đã làm sẵn rồi thì Khoai Lang cứ thế mà dùng thôi :)

     

    Nên chăng ssg hãy chọn cách là khi chuơng trình chạy thì cho thông báo "Select close_region" chẳng hạn, như vậy thì user có thể chọn được nhiều Object và tránh được việc "BOUNDARY" bị lỗi khi pick vào trong region (thi thoảng tôi pick vào trong 1 vùng để tạo close_region thì hàm BOUNDARY nó báo lỗi mà không hiểu tại sao)

    cần gì fải tạo topology trong cad map như bạn elleHCSC nói, yêu cầu của thanhgam2003 như mình nói ban đầu chẳng khác gì trích hồ sơ kỹ thuật thửa đất,hồi xưa có dùng đến cái này rùi,có gì mình sẽ tìm lại các module ấy cho bạn, để đâu lâu quá hổng nhớ nữa, còn k mình sẽ gửi bạn file dvb của mình lại cho bạn sau, gửi liền không được vì mình đang đi du lịch mất tiêu rùi).


  5. Xin cho hỏi "se7en" nếu cần sự chính xác cao thì làm như thế nào?

    tôi đang sử dụng máy GPS GlobalSat model BT338 giao tiếp với máy tính xách tay bằng phần mềm qua sóng Bluetooth

    Cần phải sử dụng phần mềm gì như thế nào, phần mềm convert như thế nào để ra được tọa độ VN2000 hoặc HN72 ?

    Mong được sự chỉ giáo, rất cảm ơn.

    Bạn cần độ chính xác cao ntn là tùy do nhu cầu của bạn.Tuy phần mềm geotool không phù hợp cho từng khu vực nhưng vì được mấy sếp trên ban hành xuống nên thường được sử dụng, vì nếu sử dụng fần mềm khác thì không được công nhận, vì đơn giản đây là của bộ ban hành, được công nhận kết quả chuyển đổi.Nhưng nói chung cũng dùng được.

    Đa số kết quả GPS đều trong hệ WGS84, muốn sử dụng fải chuyển sang VN2000 (hiện nay), dựa trên nguyên lý sử dụng các tham số chuyển đổi - thường hay sử dụng công thức Molodensky 7 tham số , bao gồm : 3 tham số chuyển số chuyển đổi trục, 3 tham số chuyển đổi góc xoay, 1 tham số chuyển đổi tỷ lệ. Tại VN thì có thể bỏ qua 3 tham số góc xoay.Muốn có được các tham số này thì cần fải đo tập hợp các điểm trùng,ít nhất là 3 cặp điểm trùng, càng nhiều cặp điểm trùng thì kết quả chính xác hơn. do đó ở từng địa phương các tham số có thể khác nhau mà ảnh hưởng đến kết quả chuyển đổi cũng khác nhau. Thông thường thì các tham số này được giấu kín lém...he..he... Geotool chuyển đổi cũng dựa trên các tham số này nhưng có khuyết điểm là chỉ sử dụng 1 bộ tham số duy nhất cho toàn lãnh thổ VN cho nên vì sao không chính xác ở 1 số khu vực... Nhiều a e cũng tìm được bộ tham số này nhưng khi chuyển đổi thì kết quả ít được công nhận vì bị bắt bẻ là bộ tham số này đã được ai kiểm tra và công nhận chưa ??? he...he...he...cuối cùng chỉ có 1 bộ tham số của bộ thui..he...he...

    Do vậy nếu bạn không cần chính xác cao thì cứ sử dụng fần mềm geotool. còn không có thể tự chuyển đổi với 7 tham số ntrên. 7 tham số này có thể xin ở các ban ngành địa phương, cũng có thể tự đo lấy số liệu rùi tìm ra 7 tham số.

    Về công thức chuyển đổi cụ thể bạn có thể tìm hiểu trên mạng, nếu bạn có tí xíu kiến thức về trắc địa thì sẽ dễ tìm hiểu hơn.


  6. Chức năng này em cũng đã từng làm rùi. Nó chỉ liệt kê bảng tọa độ ra thôi. Mà HS của em cân thể hiện như file em upload đó. Hix, bớt chút thời gian giúp em với.

    Thấy bạn than quá mà tui chưa có thời gian ngồi viết riêng cho bạn như đã hứa nên chỉ có thể cắt 1 phần của cái project tui đang làm cho bạn dùng.

    -Bạn vào CAD load file này lên sau đó chạy macro coordinate.

    -Click điểm.

    -Nhấn export để xuất sang excel.

    -Sau đó bạn chỉ cần bảng toạ độ từ excel vào cad là xong.

    Here it is : http://www.yourfilehost.com/media.php?cat=...xport_se7en.dvb

     

    good luck


  7. Mình là dân bản đồ,rất thích dùng Autocad. Đang rất cần đọan lisp với yêu cầu như sau: mình đã có một bản đồ gồm nhiều thửa đất, trên đó đã có các thông tin: lọai ruộng đất, số hiệu thửa đất, diện tích thửa đất, tên chủ sử dụng...Mỗi thông tin được thiết kế trên một lớp riêng biệt (ví dụ lọai ruộng đất thuộc lớp "loaidat"), khi nhập thông tin cần tìm theo lớp(số hiệu thửa đất hoặc tên chủ sử dụng...),lisp tìm kiếm và zoom tới thửa đất đó. Các sư huynh giúp mình với nhé! mình là tân binh, mong các huynh chỉ giáo

    Dùng CAD fiên bản mới hơn đi bạn.Mà nếu dùng cách này thì cũng không hay vì không chọn lọc được dữ liệu. Ví dụ có cả chục tên chủ sử dụng trùng nhau thì chẳng lẻ zoom đến từng cái để tìm ah? Nếu là dân bản đồ thì bạn không nên quản lý thông tin như thế, chịu khó ngồi xuống edit lại dữ liệu,chuyển sang dùng MapInfo hay ArcGIS.Bỏ công làm dữ lại dữ liệu 1 lần, rồi sau này dùng cho thoải mái...


  8. em minh hoa theo hình upload nhé. Anh nào biết giúp em sớm với nhé

    "Đối tượng vùng" - theo cách nói của bạn thanhgam2003 chính là polygon, nếu nghiên cứu về GIS thì trong GIS dùng từ "Polygon" = "Đối tượng vùng" - trong cad vẫn có sử dụng từ này, cụ thể là Autodesk Map, vì đây là từ chuyên môn về GIS.Nó cũng gần như tương tự Region trong Autocad.

    Muốn thực hiện yêu cầu của bạn thì phải viết thêm code, chứ bản thân cad không có sẵn công cụ làm việc đó. Không biết bạn có biết về VBA trong CAD không ? nếu biết chút ít thì tôi có thể giúp bạn.còn lisp thì pó tay vì tui không biết. Yêu cầu của bạn giống như trích hồ sơ kỹ thuật thửa đất dùng trong địa chính vậy... :bigsmile:


  9. Theo tui biết thì cần phải load Project trước, sau đó mới load Macro trong Project đó.

    * Để tự động load Project (Prj) khi mở CAD:

    1. Lưu Prj với tên acad.dvb trong folder cài đặt AutoCad.

    2. Mở file acad.rx trong folder trên (nếu chưa có thì phải tạo mới), thêm dòng sau:

    acadvba.arx

     

    * Để tải 1 thủ tục trong Prj acad.dvb trên, trong file acaddoc.lsp hoặc acad.lsp (trong folder cài đặt) thêm code này:

    (defun S::STARTUP()

    (command "_-vbarun" modulename.procedurename)

    )

     

    modu... là tên module trong Prj

    pro... là tên thủ tục hay macro trong module đó

    Mình đã làm theo hướng dẫn nhưng sao vẫn không thấy module được tự động thực thi...hic...hic... :bigsmile:


  10. Phần mềm Geotools có chức năng :

    - Chuyển đổi các giá trị tọa độ từ HN-72, WGS-84 sang VN-2000 ( Coordinate Transfer)

    - Chuyển đổi các giá trị tọa độ từ múi chiếu này sang múi chiếu khác.(Change Zone)

    - Chuyển đổi toạ độ trắc địa sang tọa độ phẳng ( BL Transfer)

    Đã được giới thiệu trên CadViet trước đây , nhưng do Server lỗi nên bài viết không còn , các bạn có thể download phần mềm kèm file hướng dẫn sử dụng tại :

     

    Download

     

    @:Hệ Latlong là gì nhỉ ? Hầu hết các thiết bị đo GPS theo mình biết đều dùng hệ WGS-84 nhưng mình chưa rõ hệ toạ độ Latlong.

    Hệ LatLong là hệ theo giá trị vĩ độ, kinh độ (latitude,longitude) của trái đất.

    Nếu bạn không cần độ chính xác cao thì có thể dùng fần mềm Geotools theo như Lamtecco2 giới thiệu.còn nếu như cần chính xác cao thì nên làm riêng cho khu vực, vì fần mềm này cũng chưa chính xác cho từng khu vực.

    Một số máy GPS thì dùng Latlong,nhưng không biết của bạn là loại gì ?


  11. em đang viết code tạo 1 button để chạy 1 macro trong project.code như sau :

     

    '---------------------------------------------------------------

    Sub AddToolbarButton()

    Dim currMenuGroup As AcadMenuGroup

    Set currMenuGroup = ThisDrawing.Application.MenuGroups.Item(0)

     

    Dim newToolBar As AcadToolbar

    Set newToolBar = currMenuGroup.Toolbars.Add("TestToolbar")

     

    Dim newButton As AcadToolbarItem

    Dim openMacro As String

     

    openMacro = "(command ""vbarun"" ""coordinate"")"

     

    Set newButton = newToolBar.AddToolbarButton("", "NewButton", "Open a file.", openMacro)

    newToolBar.Visible = True

     

    End Sub

    '-------------------------------------------------------------------

     

    sau khi test thì em thấy có 1 sự khác biết như sau:

    1/Khi nhấn vào button được tạo ra bằng code trên thì macro không thực thi liền mà phải nhấn thêm ENTER.có nghĩa là trên dòng lệnh command xuất hiện : (command "vbarun" "coordinate"), phải nhấn thêm ENTER nữa mới được.lúc này có thêm chữ vbarun xuất hiện sau (command "vbarun" "coordinate")

     

    2/còn khi em tạo 1 button bằng customize của cad và trong phần Macro associated with this button cũng ghi là (command "vbarun" "coordinate"), khi nhấn nút này thì macro được chạy luôn, không cần ENTER nữa.Lúc này em để ý dòng command có thêm vbarun fía sau (command "vbarun" "coordinate"), giống như cách 1.

     

    có a e nào biết vì sau không và em muốn chạy luôn macro,không cần nhấn ENTER nữa thì fải sửa như thế nào ?

    cám ơn mọi người... :bigsmile:


  12. Nói chung thì đây là 1 vấn đề cũ và thường gặp bên cầu đường hay trắc địa...nếu là dân trong nghề thì đương nhiên sẽ có lúc dùng qua các phần mềm hỗ trợ để tính toán khối lượng, vẽ bình đồ, xuất mặt cắt dọc, mặt cắt ngang,...ít ai đi tìm hiểu để viết code hay lisp thực hiện các công việc trên (trừ khi muốn tìm hiểu sâu thêm các công cụ ấy đã làm điều đó như thế nào :-)...)

    thường thì dùng các công cụ đã có sẵn, cái này khá chính xác và đơn giản.

    bạn có thể sử dụng các phần mềm như CAD Land Desktop, softdesk(cái này cũ), Liscad Plus (bên trắc địa),Surfer,SRD...mấy cái này đều có thể giải quyết các câu hỏi bạn đặt ra. :bigsmile:


  13. Để tải 1 project *.dvb, bạn vào menu Tools, chọn Load Application... Khi cửa sổ Load/Unload Application... hiện ra, chọn Contens... Cửa sổ Startup suite, chọn nút Add... và chọn *.dvb nào đó. Khi bạn khởi động AutoCad, *.dvb đó sẽ được tải tự động.

     

    Ngoài bạn tìm hiểu thêm lập trình sự kiện trong AutoCad (giống như trong Excel)

    bạn chưa hiểu ý tôi rùi.Ở đây, mình muốn tự động chạy 1 module hay macro trong 1 dvb, chứ không fải muốn CAD tự động load 1 dvb. Ví dụ : trong Test.dvb có 3 module a,b,c, thì mình muốn mỗi khi load test.dvb này lên thì module a sẽ tự động thực thi luôn.


  14. Một bản vẽ được tạo ra thì bạn mất bao nhiêu lần gõ lệnh mà phải băn khoăn tìm một code để chạy tự động một module nào đó khi load một VBA project.

    Theo mình biết thì không có cái nào như vậy cả, ngọai trừ trường hợp bạn viết lại lệnh load cho VBA.

    Có thể viết lại lệnh load bằng LISP

    vấn đề ở đây là trong VBA project của mình, mình đã viết 1 module để tạo ra 1 số buttom trong toolbar để chạy các ứng dụng con phục vụ cho công việc của mình, nhưng không biết cách như thế nào để tự động kích hoạt module ấy khi load dvb, chứ không fải vào VBA rồi Run.mình thì chỉ biết về vba, chứ lisp thì không.hồi xưa nhớ VB cứ tạo 1 module có tên là autoexec gì đấy là sẽ tự động chạy luôn khi load project, nhưng mò hoài chẳng ra...hic..hic... :bigsmile:

×