Chuyển đến nội dung
Diễn đàn CADViet
  • Thông báo

    • Nguyen Hoanh

      CADViet đã hoàn tất nâng cấp   14/09/2017

      Chào các bạn, CADViet đã hoàn tất việc nâng cấp lên phiên bản mới. Tất cả các chức năng đã hoạt động theo kỳ vọng của ban quản trị. Nếu có vấn đề gì cần phản hồi, các bản post ở đây nhé: Trân trọng, Nguyễn Hoành.
Đăng nhập để thực hiện theo  
Ar_Chanwoo

bắt đầu với VBA bằng 1 ví dụ đơn giản

Các bài được khuyến nghị

Ar_Chanwoo    38

e mới bắt đầu với VBA ! Ai có thể hướng dẫn cho e bằng 1 ví dụ đơn giản ! Như là tạo ra 1 hộp thoại Giới Thiệu đơn jản khi mình nhập 1 lệnh nào đó trong Cad !

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác
tchinh371    9

Uh, đúng đó. Có member nào đã luyện qua VBA for CAD thì pót lên vài bài cơ bản để cho anh em học hỏi. Em củng đang tìm tòi nhưng không biết phải lần từ đâu... :s_big:

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác
tchinh371    9
Các bạn tải file này xem sao? Còn để chạy VBA thì phải nạp đường dẫn trong autolisp.

 

 

http://www.cadviet.com/upfiles/HienForm.rar

 

Cám ơn bác Huong đã nhiệt tình chỉ giáo. Nhưng đơn giản như thế thì không bỏ thèm chút nào. Chúng em đã kinh qua VisualBasic rồi nên mấy cái form đó thì thường thôi. Em muốn khai thác CAD qua VBA cơ, như thực hiện các lệnh của CAD bằng giao diện Form, can thiệp vào các tham số entity của đối tượng. Ví dụ như làm sao thực hiện 1 lệnh bằng 1 động tác Button_Click() tại Form? Mong bác Huong chỉ giáo thêm chút nữa!!! Chân thành đa tạ!

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác
phantuhuong    204
Cám ơn bác Huong đã nhiệt tình chỉ giáo. Nhưng đơn giản như thế thì không bỏ thèm chút nào. Chúng em đã kinh qua VisualBasic rồi nên mấy cái form đó thì thường thôi. Em muốn khai thác CAD qua VBA cơ, như thực hiện các lệnh của CAD bằng giao diện Form, can thiệp vào các tham số entity của đối tượng. Ví dụ như làm sao thực hiện 1 lệnh bằng 1 động tác Button_Click() tại Form? Mong bác Huong chỉ giáo thêm chút nữa!!! Chân thành đa tạ!

 

Cái này đâu khó gì, nhất là bạn đã biết về VB. Quan trọng nhất là phải hiểu được đối tượng, thuộc tính và phương thức của nó trong VBA (VB) là điều khiển được. Tôi biết về VBA trong Excel, chỉ nắm thêm về các đối tượng là có thể trong AutocAd.

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác
Nguyen Hoanh    4.524
Cám ơn bác Huong đã nhiệt tình chỉ giáo. Nhưng đơn giản như thế thì không bỏ thèm chút nào. Chúng em đã kinh qua VisualBasic rồi nên mấy cái form đó thì thường thôi. Em muốn khai thác CAD qua VBA cơ, như thực hiện các lệnh của CAD bằng giao diện Form, can thiệp vào các tham số entity của đối tượng. Ví dụ như làm sao thực hiện 1 lệnh bằng 1 động tác Button_Click() tại Form? Mong bác Huong chỉ giáo thêm chút nữa!!! Chân thành đa tạ!

Cái gì cũng nên từ từ, tránh sốc.

 

Bản chất cấu trúc của các đối tượng AutoCAD trong VBA rất đơn giản. Mọi người có thể vào Help > Content > Active Automation and VBA > ActiveX and VBA Reference > Object Model. Sẽ nhìn thấy cấu trúc của dữ liệu AutoCAD được mô tả theo dạng cây. Click vào mỗi nút của cây, sẽ có đủ tên Method, Property, Event. Click vào các mục này sẽ biết công dụng của chúng.

 

objectmap.gif

 

 

Ví dụ: khi click vào nút Line, ta sẽ thấy hướng dẫn rất cụ thể:

Line object

A single line segment.

VBA class name: AcadLine

Create using: ModelSpace.AddLine, PaperSpace.AddLine, Block.AddLine

Access via: ModelSpace.Item, PaperSpace.Item, Block.Item, SelectionSet.Item, Group.Item

 

Methods: ArrayPolar, ArrayRectangular, Copy, Delete, GetBoundingBox, GetExtensionDictionary, GetXData, Highlight, IntersectWith, Mirror, Mirror3D, Move, Offset, Rotate, Rotate3D, ScaleEntity, SetXData, TransformBy, Update

Properties: Angle, Application, Document, Delta, EndPoint, Handle, HasExtensionDictionary, Hyperlinks, Layer, Length, Linetype, LinetypeScale, Lineweight, Normal, ObjectID, OwnerID, PlotStyleName, StartPoint, Thickness, TrueColor, Visible

Events: Modified

Tức là đối tượng Line thuộc lớp AcadLine, tạo ra bằng 1 trong 3 cách tùy thuộc vào line sau khi tạo ra nằm ở đâu, model, paper hay block. Và có 5 tình huống truy xuất để lấy dữ liệu Line. Đối tượng line có các Method (nói nôm na là Hàm), Property (nôm na là biến), Event (là hàm callback, tức là hàm thụ động sau sẽ được ACAD gọi lên khi một biến cố nào đó xảy ra như line bị del, bị sửa,...) như đã được nêu.

 

Khi bạn click vào bất cứ một mục nào, đều có hướng dẫn cụ thể. Ví dụ click vào addline, rồi click vào Example ta sẽ có đoạn code ví dụ sau:

Sub Example_AddLine()
' This example adds a line in model space

Dim lineObj As AcadLine
Dim startPoint(0 To 2) As Double
Dim endPoint(0 To 2) As Double

' Define the start and end points for the line
startPoint(0) = 1#: startPoint(1) = 1#: startPoint(2) = 0#
endPoint(0) = 5#: endPoint(1) = 5#: endPoint(2) = 0#

' Create the line in model space
Set lineObj = ThisDrawing.ModelSpace.AddLine(startPoint, endPoint)
ZoomAll

End Sub

 

Nhắn bác Phantuhuong: Mong được Bác chia sẻ kinh nghiệm VBA nói chung với diễn đàn, không nhất thiết phải là for ACAD. Dữ liệu đối tượng ACAD không khó, ngôn ngữ VB không khó, nhưng VBA thì khó.

  • Vote tăng 3

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác
tchinh371    9

U oaaaaa...... Đúng là những điều em đang thắp đuốc mày mò tìm trong help đây.... nhưng chưa đúng địa chỉ, nay nhờ bác NguyenHoanh dẫn đường chỉ lối, tuyệt quá!!! Đã quá! Lao vào nghiên cứu thôi! Chúng ta cám ơn sự tận tình của bác NguyenHoanh nhé các bạn ..... THANHKS! I LOVE YOU :s_big:

  • Vote tăng 1

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác
pacdoan    0

sao e vào mục Help mà sao koh vào được như thế này vậy!Help > Content > Active Automation and VBA > ActiveX and VBA Reference > Object Model Vay là do bị lỗi gì vậy mấy Huynh! Hepl me! E mới chập chững học VBA!

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác
phantuhuong    204

sao e vào mục Help mà sao koh vào được như thế này vậy!Help > Content > Active Automation and VBA > ActiveX and VBA Reference > Object Model Vay là do bị lỗi gì vậy mấy Huynh! Hepl me! E mới chập chững học VBA!

 

Chắc là do quá trình cài đặt thiếu thôi.

  • Vote tăng 1

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

Tạo một tài khoản hoặc đăng nhập để nhận xét

Bạn cần phải là một thành viên để lại một bình luận

Tạo tài khoản

Đăng ký một tài khoản mới trong cộng đồng của chúng tôi. Điều đó dễ mà.

Đăng ký tài khoản mới

Đăng nhập

Bạn có sẵn sàng để tạo một tài khoản ? Đăng nhập tại đây.

Đăng nhập ngay

Đăng nhập để thực hiện theo  

×