QUẢNG CÁO ĐẦU TRANG

Collapse

Thông báo

Collapse
No announcement yet.

VBA trong Autocad

Collapse
X
 
  • Lọc
  • Giờ
  • Show
Clear All
new posts

  • #16
    Chào các bác, Lâu lâu mới vào thấy các bác bàn tán xôn xao quá. Em cũng có một vấn đề vướng mắc như thế này. Làm sao để tạo ra một form như cửa sổ propertie.
    1. Có chức năng bám dính với các cửa sổ (Docking form)
    2. Kiểm soát toàn bộ cad, ví dụ như khi chọn đối tượng thì cửa sổ properties sẽ hiện ra các thông số của đối tượng đó (điều khiển các event)
    Em nghĩ mãi mà không ra nên vào đây hỏi các bác. Bác nào biết thì chỉ dùm em với.

    Thanks
    Last edited by But Chi; 29-01-2005, 05:35 PM.

    Ghi chú


    • #17
      Nguyên văn bởi But Chi
      2. Kiểm soát toàn bộ cad, ví dụ như khi chọn đối tượng thì cửa sổ properties sẽ hiện ra các thông số của đối tượng đó (điều khiển các event)
      Em nghĩ mãi mà không ra nên vào đây hỏi các bác. Bác nào biết thì chỉ dùm em với.
      Thanks
      Tôi có làm 1 bài toán mà thầy tôi bắt làm:
      Bài toán quản lý lỗ khoan.Nếu ta Click vào 1 lỗ khoan trên màn hình Cad thì cho phép người dùng kiểm soát các thông số của lỗ khoan đó ,gồm có Số lớp địa chất ,tên lớp ,chiều sâu,...Có thể thay đổi các thuộc tính của nó(Thông qua làm việc với 1 file CSDL).Đó cũng là cách mà VBA của CAD cung cấp (trong các Ví dụ).Không biết có phải tôi hiểu ý của bạn là như vậy không?
      Tuổi nhỏ làm việc nhỏ
      Tùy theo sức của mình

      Ghi chú


      • #18
        Nguyên văn bởi nglam_adg
        Mạn phép các bác VBA, Tôi thấy dùng AutoLisp để gán thêm menu vào AutoCAD hình như đơn giản hơn. Đối với AutoCAD, nemu chỉ là cái vỏ thôi còn đường dẫn đến các thư mục chứa các Files Support (không nằm trong các thư mục mặc định của AutoCAD) mới là quan trọng - Mà AutoLisp làm việc này rất ngon. Tôi đã thử dùng VBA rồi nhưng thấy khó làm, khó sửa hơn. Bác nào cần biết cách làm bằng AutoLisp thì ghé qua bên "Visual Lisp" vì đây là đất VBA mà !
        Anh Lam thân mến!Mong được anh hd thêm về Lisp nha.

        Nguyên văn bởi PMXD
        Đúng là việc làm Menu đối với VBA phức tạp hơn AutoLisp thật, nhưng để lựa chọn 1 trong 2 phương tiện phát triển, tôi vẫn chọn VBA hơn AutoLisp, vì bản thân tôi đã làm cả 2 thứ trên. Còn phương án hay nhất, theo tôi là biết cách sử dụng công cụ nào trong từng trường hợp cụ thể. Tôi cũng rất mong được thảo luận với các bạn về vấn đề này.!
        Em cũng thấy rõ lợi ích của VBA đặc biệt là khi thao tác với CSDL
        Nếu bây giờ em có khoảng 800 điểm Mi mà mỗi diểm có(xMi,yMi,zMi,tenMi,chú thích về Mi,....) ví dụ trong TK Đường chẳng hạn thì việc quản lý nó và vẽ nó ra màn hình với VBA là phù hợp với khả năng của em nhất,...
        Khi thêm bớt các điểm vào CSDL hay cần nói chuyện với Word để tạo 1 bản Báo Cáo kèm theo bản vẽ thì chắc là.....Lisp không thể (Không hiểu có đúng không?Có gì anh Lam cho ý kiến thêm)
        Cũng phải nói thêm rằng việc TĐH = VBA hay Lisp cũng chỉ có ích nếu ta phải làm 1 quá trình nào đó lặp đi lặp lại.Có đúng không ạ?Xin các bác bình luận thêm...

        Nhưng với những Công việc nhẹ nhàng hay dự án nhỏ nhắn <=>những tiện ích theo kiểu Mì ăn Liền thì cả Lisp và VBA đều rất tuyệt

        Em ghét những thao tác "Cơ bắp" vì thế mà em chọn VBA nhưng em cũng rất mong biết những hạn chế của nó.Mời các bác tiếp tục bàn luận thêm...
        Tuổi nhỏ làm việc nhỏ
        Tùy theo sức của mình

        Ghi chú


        • #19
          Nguyên văn bởi tdhtkcd
          Tôi có làm 1 bài toán mà thầy tôi bắt làm:
          Bài toán quản lý lỗ khoan.Nếu ta Click vào 1 lỗ khoan trên màn hình Cad thì cho phép người dùng kiểm soát các thông số của lỗ khoan đó ,gồm có Số lớp địa chất ,tên lớp ,chiều sâu,...Có thể thay đổi các thuộc tính của nó(Thông qua làm việc với 1 file CSDL).Đó cũng là cách mà VBA của CAD cung cấp (trong các Ví dụ).Không biết có phải tôi hiểu ý của bạn là như vậy không?
          Cái này lập trình bằng ObjectARX tạo ra "custom object" là chuẩn nhất, nhưng hơi khó với người lập trình nghiệp dư. Nếu bạn có nhiều thời gian và chịu khó thì có thể tìm hiểu thêm, rất bổ ích đấy.

          Ghi chú


          • #20
            Nguyên văn bởi tdhtkcd
            Tôi có làm 1 bài toán mà thầy tôi bắt làm:
            Bài toán quản lý lỗ khoan.Nếu ta Click vào 1 lỗ khoan trên màn hình Cad thì cho phép người dùng kiểm soát các thông số của lỗ khoan đó ,gồm có Số lớp địa chất ,tên lớp ,chiều sâu,...Có thể thay đổi các thuộc tính của nó(Thông qua làm việc với 1 file CSDL).Đó cũng là cách mà VBA của CAD cung cấp (trong các Ví dụ).Không biết có phải tôi hiểu ý của bạn là như vậy không?
            Vấn đề này VBA hoàn toàn có thể làm được bằng cách sử dụng Extend Data. Đây là một kỹ thuật cũng hơi phức tạp, nếu viết trên diễn đàn e rằng hơi tốn "đất", bạn có thể liên hệ trực tiếp với tôi để có được giải pháp như mong muốn.
            Chúc vui vẻ.
            Công ty Cổ phần kỹ thuật công trình- Thương mại C.N.C.C
            Email : cncc.jsc@gmail.com

            Ghi chú


            • #21
              Xin hỏi thêm bạn PMXD là dùng Extended Data có thể cho hiện lên trên cửa sổ Property các thuộc tính của đối tượng được không?

              Ghi chú


              • #22
                Nguyên văn bởi nglam_adg
                Mạn phép các bác VBA, Tôi thấy dùng AutoLisp để gán thêm menu vào AutoCAD hình như đơn giản hơn. Đối với AutoCAD, nemu chỉ là cái vỏ thôi còn đường dẫn đến các thư mục chứa các Files Support (không nằm trong các thư mục mặc định của AutoCAD) mới là quan trọng - Mà AutoLisp làm việc này rất ngon. Tôi đã thử dùng VBA rồi nhưng thấy khó làm, khó sửa hơn. Bác nào cần biết cách làm bằng AutoLisp thì ghé qua bên "Visual Lisp" vì đây là đất VBA mà !
                Ông này tính cướp cần câu à!

                Ghi chú


                • #23
                  Đây nè, vào đây mà đao về xem chơi

                  Vào trang này nè, đao về "xem" chơi. Professional đàng hòang.
                  Mục TIỆNICH FREE
                  http://uct2hcm.web1000.com

                  (Lưu ý: đây là Host miễn phí, giới hạn bandwidth nên có những thời điểm trong ngày ko vào được)
                  Last edited by Tran Duc Minh; 30-01-2005, 02:59 PM.

                  Ghi chú


                  • #24
                    Nguyên văn bởi But Chi
                    1. Có chức năng bám dính với các cửa sổ (Docking form)
                    Chức năng Docking này lập trình Object Arx hoặc VB.Net rất dễ tạo ra nó còn trong VB hình như nó cũng có một số Activex hỗ trợ thì phải. Để tôi tìm lại xem. Nhưng cách tốt nhất là bạn vào trang www.Googl.com.vn search với từ khóa. "VBA"+"Docking window" hoặc "VB"+"Docking form". Có thể sẽ tìm thấy Code Free.

                    Nguyên văn bởi But Chi
                    2. Kiểm soát toàn bộ cad, ví dụ như khi chọn đối tượng thì cửa sổ properties sẽ hiện ra các thông số của đối tượng đó (điều khiển các event)
                    Cái này thì bạn sử dụng event SelectionChanged nằm trong Handle Document Level Events

                    Bonne année; Happy new year

                    Ghi chú


                    • #25
                      Ðề: VBA trong Autocad

                      1 lần nữa cám ơn anh PMXD về các trao đổi của anh nha!

                      Em cũng đang mần thêm về ARX ,lúc nào rỗi anh CNPM cho em cái ví dụ tạo Menu và lệnh trong Cad nha.Tự ngâm cứu lâu quá tiến bộ rất chậm.Vừa làm vừa tranh thủ hỏi các anh ,tiến bộ thêm nhiều lắm.

                      Các anh làm việc nhiều với Cad thấy 14 và 2000 khác nhau nhiều không?Nếu nói là tâm đắc nhất thì 2000 có gì hơn và đến thằng 2005 thì cái khác biệt là gì vậy.(Em hỏi về khía cạnh mình hiểu về các đối tượng trong cad như thế nào và Cad nó cho mình can thiệp đến đâu với các đối tượng đó)

                      Hết năm 2004 nhìn lại thấy mình vẫn đang dùng NoVa trên nền Cad 14 thấy thật là bất tiện.Mơ ước 1 ngày có NoVa trên nền Cad 2005 để xài....
                      Tuổi nhỏ làm việc nhỏ
                      Tùy theo sức của mình

                      Ghi chú


                      • #26
                        Ðề: VBA trong Autocad

                        Nguyên văn bởi tdhtkcd
                        1 lần nữa cám ơn anh PMXD về các trao đổi của anh nha!

                        Em cũng đang mần thêm về ARX ,lúc nào rỗi anh CNPM cho em cái ví dụ tạo Menu và lệnh trong Cad nha.Tự ngâm cứu lâu quá tiến bộ rất chậm.Vừa làm vừa tranh thủ hỏi các anh ,tiến bộ thêm nhiều lắm.

                        Các anh làm việc nhiều với Cad thấy 14 và 2000 khác nhau nhiều không?Nếu nói là tâm đắc nhất thì 2000 có gì hơn và đến thằng 2005 thì cái khác biệt là gì vậy.(Em hỏi về khía cạnh mình hiểu về các đối tượng trong cad như thế nào và Cad nó cho mình can thiệp đến đâu với các đối tượng đó)

                        Hết năm 2004 nhìn lại thấy mình vẫn đang dùng NoVa trên nền Cad 14 thấy thật là bất tiện.Mơ ước 1 ngày có NoVa trên nền Cad 2005 để xài....
                        Chịu khó thôi bạn ơi, đến khi có NOVA cho Cad 2005 thì lúc đấy chắc là có Cad 2010 rui . Ah nhân tiện nói về Nova trên nề Cad 14, thấy có vấn đề này khá thú vị mà cũng không nhiều người biết lắm nên viết để các bạn tham khảo. Đấy là vấn đề ZOOM trong Cad 14 hay Nova trên nền Cad 14.

                        Khi các bạn làm Nova trên nền Cad 14 thì cảm thấy ZOOM rất bất tiện, đặc biệt là đối với các bạn đang quen dùng Cad2004 or Cad2005. Có 1 cách có thể cải thiện đc đáng kể công việc ZOOM (theo mình lệnh này dc dùng nhiều nhất trong CAD) là sử dụng shortcut key. Thậm trí nếu bạn dùng quen ZOOM kiểu này có thể bạn sẽ quên luôn ZOOM của chuột 3D (như mình chẳng hạn ) vì tốc độ khá nhanh (mình không dám nói chắc là nhanh hơn ZOOM của chuột 3D).

                        Dài dòng văn tự quá, đi vào việc chính thôi.

                        1. Chọn shortcut key cho các lệnh ZOOM.
                        Thông thường mình đặt như sau:
                        ZOOMOUT - Ctrl + Q
                        ZOOMIN - Ctrl + W
                        PAN - Ctrl + D
                        đây là những lệnh hay dùng nhất và mình nghĩ là cũng chỉ cần thế thôi cũng đủ để ZOOM rồi. Mình dùng các chữ cái Q,W,D vì nó gần với nút Ctrl bên trái, bạn nào thuận tay trái mà cầm chuột tay fải thì tự điều chỉnh nhé

                        2. Đặt shortcut key cho các lệnh
                        - Bạn tìm file acad.mns trong thư mục Cad14.
                        - Mở file đó ra bằng notepad hoặc click đúp vào nó là được.
                        - Sau khi mở file, bạn nhấn Ctrl + F ---> hiện ra hộp thoại FIND.
                        - Bạn gõ vào trong ô "Find what" chữ ACCELERATORS rồi ấn ok ---> nó sẽ đưa con trỏ của ban đến vị trí đặt các shortcut key
                        - Bạn thêm vào các đoạn lệnh sau:
                        ID_ZoomIn [CONTROL+INTERNAL+"W"]
                        ID_ZoomOut [CONTROL+INTERNAL+"Q"]
                        ID_Pan [CONTROL+INTERNAL+"D"]

                        Bạn có thể nhìn thấy cú pháp của câu lệnh đấy rất đơn giản ---> bạn có thể sửa như thể nào tùy bạn.
                        - Save file lại và mở Cad14 hoặc Nova ra và bắt đầu tận hưởng

                        Chúc bạn thành công

                        Năm mới chúc tất cả các thành viên của ketcau.com mạnh khoẻ để có sức chiến đấu tiếp trong năm tới
                        Cầu xây xong đã lâu không thấy tôi về đưa dâu....

                        Ghi chú


                        • #27
                          Ðề: VBA trong Autocad

                          Chào các bác
                          Em đang học cad nên em cần các Block mẫu. Nếu bác nào có giúp em với. Em xin cảm ơn rất nhiều
                          email của em la: sinhpt2003@yahoo.com
                          Nếu em hiểu

                          Ghi chú


                          • #28
                            Ðề: VBA trong Autocad

                            Nguyên văn bởi Minh
                            Xin hỏi thêm bạn PMXD là dùng Extended Data có thể cho hiện lên trên cửa sổ Property các thuộc tính của đối tượng được không?
                            Hai cái này có liên quan đến nhau đâu nhỉ? nếu bạn muốn cho hiện cửa sổ Property các thuộc tính của đối tượng thì chỉ việc đọc các thuộc tính và gán nó vào hệ Grid. Còn Extended Data để làm việc khác, ví dụ bạn muốn kết nối giữa Acad và STADD, bạn vẽ một đường thẳng, và bạn muốn gán cho đường thẳng tương ứng với một phần tử thanh trong file đầu vào của STADD, bạn sẽ đặt thuộc tính Extended Data để đường thẳng đó lưu giữ tên của phần tử thanh đang xét. về sau, khi bạn quay lại và Select đường thẳng đó, ứng dụng của bạn sẽ đọc lại thông số trong Extended Data và biết được nó đang Connect với phân tử thanh nào.
                            Tôi giải thich hơi dài dòng, thông cảm nhé
                            Công ty Cổ phần kỹ thuật công trình- Thương mại C.N.C.C
                            Email : cncc.jsc@gmail.com

                            Ghi chú


                            • #29
                              Ðề: VBA trong Autocad

                              Tôi muốn giới thiệu một chút về thế mạnh của ObjectARX:

                              Trong ObjectARX cho phép người lập trình có thể tạo ra những loại đối tượng mới có những thuộc tính của riêng nó. Những đối tượng này cũng được đối xử bình đẳng như những đối tượng căn bản của ACAD như đường thẳng, đường tròn... Chẳng hạn như đường tròn có các thuộc tính như tọa độ tâm điểm, bán kính..., tương tự ta có thể tạo ra một đối tượng mới là đối tượng lỗ khoan địa chất với các thuộc tính như ta mong muốn (tọa độ, chiều sâu v.v.). Chính vì đối tượng này được đối xử như đối tượng gốc của AutoCad nên khi ta chọn đối tượng thì các thuộc tính sẽ hiện ra ở cửa sổ Properties như khi ta chọn đường thẳng, đưởng tròn.

                              Ví dụ về các đối tượng loại này là đối tượng tường, cửa sổ, cầu thang v.v. ở trong phần mềm Autodesk Architectural desktop.

                              Tôi thấy có sự tương đồng trong các phần mềm vẽ và tính toán kết cấu: Cad thì đi lên từ đối tượng cơ bản là đường thẳng, đường tròn lên các loại đối tượng lớn hơn như cửa sổ, cầu thang. Etabs cũng vậy phát triển từ Sap chỉ có phần tử thanh, tấm lên thành các đối tượng như dầm, cột, sàn, vách cứng....

                              Một vài suy nghĩ của tôi, có gì các bác cứ phát biểu.

                              Ghi chú


                              • #30
                                Ðề: VBA trong Autocad

                                Nguyên văn bởi Minh
                                Tôi muốn giới thiệu một chút về thế mạnh của ObjectARX:

                                Trong ObjectARX cho phép người lập trình có thể tạo ra những loại đối tượng mới có những thuộc tính của riêng nó. Những đối tượng này cũng được đối xử bình đẳng như những đối tượng căn bản của ACAD như đường thẳng, đường tròn... Chẳng hạn như đường tròn có các thuộc tính như tọa độ tâm điểm, bán kính..., tương tự ta có thể tạo ra một đối tượng mới là đối tượng lỗ khoan địa chất với các thuộc tính như ta mong muốn (tọa độ, chiều sâu v.v.). Chính vì đối tượng này được đối xử như đối tượng gốc của AutoCad nên khi ta chọn đối tượng thì các thuộc tính sẽ hiện ra ở cửa sổ Properties như khi ta chọn đường thẳng, đưởng tròn.

                                Ví dụ về các đối tượng loại này là đối tượng tường, cửa sổ, cầu thang v.v. ở trong phần mềm Autodesk Architectural desktop.

                                Tôi thấy có sự tương đồng trong các phần mềm vẽ và tính toán kết cấu: Cad thì đi lên từ đối tượng cơ bản là đường thẳng, đường tròn lên các loại đối tượng lớn hơn như cửa sổ, cầu thang. Etabs cũng vậy phát triển từ Sap chỉ có phần tử thanh, tấm lên thành các đối tượng như dầm, cột, sàn, vách cứng....

                                Một vài suy nghĩ của tôi, có gì các bác cứ phát biểu.
                                Nếu như bác nói thì đấy đâu phỉa là Extend data, còn về thế mạnh của Object Arx thì tôi cũng công nhận nó mạnh thật. Trong VBA, để làm những điều như bác nói cũng khá mệt, mà việc hiển thị cửa sổ Properties cho một đối tượng tự tạo tôi cũng ko dám chắc là VBA có thể làm được. Nếu bác thông thạo Object Arx thì mong bác mở một chủ đề về vấn đề này để mọi người cùng thảo luận.
                                Công ty Cổ phần kỹ thuật công trình- Thương mại C.N.C.C
                                Email : cncc.jsc@gmail.com

                                Ghi chú

                                Working...
                                X