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

  • #46
    Ðề: VBA trong Autocad

    Em là sinh viên trường xây Dựng em rất muốn tìm hiểu về vba cho cho autocad nhưng thiếu tài liệu quá. Em thấy bác PMXD rất giỏi về VBA cho autocad vây bác có thể đưa lên một số tài liệu để anh em tham khao được ko.

    Ghi chú


    • #47
      Ðề: VBA trong Autocad

      Nói thật với bạn là tôi không có tài liệu gì về VBA của AutoCad cả, chủ yếu là đọc Help thôi. Bạn cứ làm vài ví dụ, nếu mắc chỗ nào thì send Msg cho tôi, tôi sẽ trả lời nếu trong phạm vi hiểu biết. Ở diẽn đàn này có CNPM đã biên soạn được tài liệu rồi, nếu có thể, CNPM Up lên cho anh em cùng xem được không?
      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ú


      • #48
        Ðề: VBA trong Autocad

        Anh PMXD ơi:
        Cho em hỏi, bay giờ giả sử trong Cad em dung lệnh AREA để xem diện tích của 1 hình nào đó. Em muốn "nhận lại" diện tích mà Cad tính ra đưa vào VBA thì em dùng lệnh nào vậy anh. Em tìm hoài mà ko thấy, mong anh chỉ cho em.
        Em đợi tin

        Ghi chú


        • #49
          Ðề: VBA trong Autocad

          Nguyên văn bởi Vandtd
          Có anh nào có tài liệu về VBA for AutoCad không? Upload lên cho anh em tham khao với (tiếng Anh hay Việt đều đwowcj cả)
          Chỉ có sách bằng tiếng anh thôi. Không có sách bằng tiếng việt đâu bạn ạ. Nhưng sách bằng tiếng anh cũng phần lớn dựa trên Help của autocad cho nên tốt nhất bạn đọc trong help. Còn nếu muốn lấy sách TA thì hiện tôi có 2 quyển :
          • Using VBA to Create AutoCAD Applications - Omura, George.pdf
          • VBA and AutoCAD® 2004_ an Overview_CP41-2.pdf
          • Autocad 2004 ActiveX and VBA Developer's Guide.pdf

          Còn tài liệu tiếng việt tôi biên soạn thì sếp đang duyệt. Khi nào xong tôi sẽ upload lên cho. Khoảng 100trang thôi. Không nhiều lắm.
          Nguyên văn bởi Tran Duc Minh
          Cho em hỏi, bay giờ giả sử trong Cad em dung lệnh AREA để xem diện tích của 1 hình nào đó. Em muốn "nhận lại" diện tích mà Cad tính ra đưa vào VBA thì em dùng lệnh nào vậy anh. Em tìm hoài mà ko thấy, mong anh chỉ cho em.)
          Bạn vào trong help search sẽ thấy ngay đoạn ví dụ sau.
          Nguyên văn bởi Ví dụ trong Help
          Sub Example_Area()
          ' This example creates a polyline object and
          ' then uses the area property to find the
          ' area of that polyline.

          Dim plineObj As AcadLWPolyline
          Dim points(0 To 5) As Double
          Dim plineArea As Double

          ' Establish the points for the Polyline
          points(0) = 3: points(1) = 7
          points(2) = 9: points(3) = 2
          points(4) = 3: points(5) = 5

          ' Create the polyline in model space
          Set plineObj = ThisDrawing.ModelSpace.AddLightWeightPolyline(points)

          ' Close the polyline and update display of it
          plineObj.Closed = True
          plineObj.Update
          ZoomAll

          ' Get the area of the polyline
          plineArea = plineObj.Area

          MsgBox "The area of the new Polyline is: " & plineArea, vbInformation, "Area Example"
          End Sub
          Cú pháp là : Object.Area

          Ghi chú


          • #50
            Ðề: VBA trong Autocad

            anh CNPM ơi:
            Ý em hỏi là trong VBA em dùng lệnh Thisdrawing.Sendcommand "_AREA" & vbcr
            sau đó thì trong màn hình Cad hiện ra kết quả Area =... thì làm sao mình có thể "nhận" được con số đó. Thực tế bởi vì em có 1 số File Lisp khác của Hà Lan viết ra, em thấy rất hay, giờ em muốn tận dụng những kết quả của File Lisp này đưa vào trong phần kế tiếp của CT em đang viết mà ko biết làm sao? (Chứ mắc công viết lại thì mệt quá). Có thể làm được chuyện đó ko anh !

            Ghi chú


            • #51
              Ðề: VBA trong Autocad

              Vấn đề này mình cũng rất quan tâm, không biết có thể tạo một hộp thoại nhập số liệu giống excel trong Cad không nhỉ? Bởi vì hiện giờ mình đang xài một ứng dụng của Autolisp vẽ mặt cắt kênh, nhưng mỗi lần vẽ phải vào excel nhập số liệu sau đó save dạng file.txt vào thư mục Autocad. Vậy, các bác có cách nào để làm tự động ngay trong môi trường Cad không? Để khỏi phải thủ công nữa...chán lắm!!!

              Ghi chú


              • #52
                Ðề: VBA trong Autocad

                Nguyên văn bởi Tran Duc Minh
                anh CNPM ơi:
                Ý em hỏi là trong VBA em dùng lệnh Thisdrawing.Sendcommand "_AREA" & vbcr
                sau đó thì trong màn hình Cad hiện ra kết quả Area =... thì làm sao mình có thể "nhận" được con số đó. Thực tế bởi vì em có 1 số File Lisp khác của Hà Lan viết ra, em thấy rất hay, giờ em muốn tận dụng những kết quả của File Lisp này đưa vào trong phần kế tiếp của CT em đang viết mà ko biết làm sao? (Chứ mắc công viết lại thì mệt quá). Có thể làm được chuyện đó ko anh !
                Tôi cũng thử rồi, nhưng không được. Chẳng có cách nào lấy thông số từ biến của Lisp hay từ kết quả của một dòng lệnh vào VBA cả. Làm theo cách của anh nglam_adg là hợp lý nhất. Ngoài ra bạn cũng có thể ghi dữ liệu vào XRecord từ LISP. Sau đó vào VBA đọc lại dữ liệu này. Nếu bạn không muốn sử dụng XRecord, bạn có thể sử dụng XData cũng được. Bạn thử đi có gì ta bàn tiếp !

                Ghi chú


                • #53
                  Ðề: VBA trong Autocad

                  Nguyên văn bởi nglam_adg
                  Theo tôi, cách làm có thể thế này:

                  - Viết 1 đoạn mã Lisp để lấy ra diện tích rồi ghi thành 1 file text găm vào đâu đó.
                  - Dùng VBA gọi đoạn mã Lisp ở trên vào (khi đang chạy).
                  - Dùng VBA gọi file text (đã tạo) vào để xài.

                  Cách ghi diện tích đo được ra 1 file text (giả sử đã đo diện tích trên màn hình rồi):

                  (if (setq dientich(getvar "Area"))
                  (progn
                  (setq opr(open "c:\\dientich.txt" "w"))
                  (write-line (rtos dientich 2 3) opr)
                  (close opr) )
                  )
                  ồ, anh nglam_adg ạ. Trong VBA cũng có hàm lấy biến hệ thống giống như getvar trong Lisp mà.

                  Ghi chú


                  • #54
                    Ðề: VBA trong Autocad

                    Nguyên văn bởi SupperMT
                    Vấn đề này mình cũng rất quan tâm, không biết có thể tạo một hộp thoại nhập số liệu giống excel trong Cad không nhỉ? Bởi vì hiện giờ mình đang xài một ứng dụng của Autolisp vẽ mặt cắt kênh, nhưng mỗi lần vẽ phải vào excel nhập số liệu sau đó save dạng file.txt vào thư mục Autocad. Vậy, các bác có cách nào để làm tự động ngay trong môi trường Cad không? Để khỏi phải thủ công nữa...chán lắm!!!
                    Cái nì có thể giúp bác đượcùng ARX kết hợp với lưới Grid(FlexCell chẳng hạn).
                    Bác ngại làm thì sau ngày 15/5 liểng qua email cho em em test cho.
                    Tuổi nhỏ làm việc nhỏ
                    Tùy theo sức của mình

                    Ghi chú


                    • #55
                      Ðề: VBA trong Autocad

                      Anh Bình Ơi! phần tính diện tích của em(sd ARX)em phải làm từ A đến Z.Xin hỏi anh nếu xài sẵn (như kiểu VBA) thì có hàm hoặc lớp nào ( trong ARX )hỗ trợ không?
                      Tuổi nhỏ làm việc nhỏ
                      Tùy theo sức của mình

                      Ghi chú


                      • #56
                        Ðề: VBA trong Autocad

                        Nguyên văn bởi tdhtkcd
                        Anh Bình Ơi! phần tính diện tích của em(sd ARX)em phải làm từ A đến Z.Xin hỏi anh nếu xài sẵn (như kiểu VBA) thì có hàm hoặc lớp nào ( trong ARX )hỗ trợ không?
                        o`h. Cái này thì chịu. Bình chưa bao giờ động đến ARX cả.

                        Ghi chú


                        • #57
                          Ðề: VBA trong Autocad

                          Nguyên văn bởi tdhtkcd
                          Cái nì có thể giúp bác đượcùng ARX kết hợp với lưới Grid(FlexCell chẳng hạn).
                          Bác ngại làm thì sau ngày 15/5 liểng qua email cho em em test cho.
                          ------------------------
                          Bác đã sử dụng chương trình kiểu giống như thế này chưa vậy? Cố gắng làm hộ nhé! Email của bác?

                          Ghi chú


                          • #58
                            Ðề: VBA trong Autocad

                            Em thì giờ chẳng biết "bám" vào ý tưởng nào mà "bốc" các con số đó lên hết.
                            Ở đây em thấy các anh cứ quay quanh lệnh "AREA" làm gi? Ý em hỏi lấy lệnh đó làm lệnh đại diện thôi. Làm sao có thể "bốc" kết quả từ dòng lệnh command thôi chứ ko phải là getvar"AREA". Bây giờ em đang có 1 số lisp đã bị "*.fas" tính san nền, ra dòng command cho ra cao độ, diện tích phần san nền. Em hỏi "Ý" mà các anh cũng ko hiểu, cứ xoay quanh lệnh AREA hoài.
                            Túm lại, tới bây giờ cũng chưa có khả năng "lấy lại" các con số trên dòng command hả mấy huynh?

                            Ghi chú


                            • #59
                              Ðề: VBA trong Autocad

                              Bác PMXD ơi, bác có code để gán một procedure trong VBA thành một lệnh trong Cad không (Như bác có nói là dùng AutoLisp đó). Em đang bị vướng cái đó. Bác giúp em nha!

                              Ghi chú


                              • #60
                                Ðề: VBA trong Autocad

                                Nguyên văn bởi SupperMT
                                ------------------------
                                Bác đã sử dụng chương trình kiểu giống như thế này chưa vậy? Cố gắng làm hộ nhé! Email của bác?
                                Đã liên lạc với bác qua email.Bác đọc email xong thì trả lời lại nhé.
                                Tuổi nhỏ làm việc nhỏ
                                Tùy theo sức của mình

                                Ghi chú

                                Working...
                                X