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

  • PMXD
    replied
    Ðề: VBA trong Autocad

    Nguyên văn bởi thereaper
    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!
    Đây là đoạn code của AutoLisp để gọi một thủ tục của VBA ra
    TTT.dvb là tên của file VBA
    ThietKeThanh là tên của một thủ tục trọng VBA đó


    (command "_VBALOAD" "TTT.dvb")

    (defun c:TK ()
    (command "_VBARUN" "Thietkethanh")
    )


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

    Leave a comment:


  • tdhtkcd
    replied
    Ðề: 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é.

    Leave a comment:


  • thereaper
    replied
    Ðề: 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!

    Leave a comment:


  • Tran Duc Minh
    replied
    Ðề: 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?

    Leave a comment:


  • SupperMT
    replied
    Ðề: 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?

    Leave a comment:


  • CNPM
    replied
    Ðề: 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ả.

    Leave a comment:


  • tdhtkcd
    replied
    Ðề: 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?

    Leave a comment:


  • tdhtkcd
    replied
    Ðề: 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.

    Leave a comment:


  • CNPM
    replied
    Ðề: 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à.

    Leave a comment:


  • CNPM
    replied
    Ðề: 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 !

    Leave a comment:


  • SupperMT
    replied
    Ðề: 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!!!

    Leave a comment:


  • Tran Duc Minh
    replied
    Ðề: 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 !

    Leave a comment:


  • CNPM
    replied
    Ðề: 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

    Leave a comment:


  • Tran Duc Minh
    replied
    Ðề: 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

    Leave a comment:


  • PMXD
    replied
    Ðề: 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?

    Leave a comment:

Working...
X