Rated 5/5 based on 240179 internet user reviews

Đến nội dung


Hình ảnh
- - - - -

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


  • Please log in to reply
13 replies to this topic

#1 Ar_Chanwoo

Ar_Chanwoo

    biết lệnh break

  • Members
  • PipPipPipPip
  • 224 Bài viết
Điểm đánh giá: 38 (tàm tạm)

Đã gửi 01 June 2008 - 10:19 PM

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 !
  • 0

#2 duongsatdn

duongsatdn

    biết lệnh adcenter

  • Moderator
  • PipPipPipPipPipPipPip
  • 1657 Bài viết
Điểm đánh giá: 757 (tốt)

Đã gửi 06 June 2008 - 07:55 AM

VBA for CAD hình như có ít người nghiên cứu!
  • 0

#3 tchinh371

tchinh371

    biết zoom

  • Members
  • Pip
  • 13 Bài viết
Điểm đánh giá: 9 (bình thường)

Đã gửi 08 June 2008 - 02:26 PM

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:
  • 0
""AutoCAD đã có công tạo LISP, chúng ta hãy cùng nhau phát triển LISP"

#4 phantuhuong

phantuhuong

    biết dimcontinue

  • Moderator
  • PipPipPipPipPip
  • 375 Bài viết
Điểm đánh giá: 198 (tàm tạm)

Đã gửi 08 June 2008 - 03:07 PM

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.c...es/HienForm.rar
  • 2

Sách Lập trình VBA trong Excel cho người mới bắt đầu, tái bản năm 2014

Từng bước loại đồ Tàu ra khỏi cuộc sống!


#5 duongsatdn

duongsatdn

    biết lệnh adcenter

  • Moderator
  • PipPipPipPipPipPipPip
  • 1657 Bài viết
Điểm đánh giá: 757 (tốt)

Đã gửi 09 June 2008 - 03:12 PM

Lâu lắm rồi mới thấy thầy Hướng thăm CADViet!
  • 0

#6 MANHHUNGXDA

MANHHUNGXDA

    biết lệnh adcenter

  • CADViet Team
  • PipPipPipPipPipPipPip
  • 926 Bài viết
Điểm đánh giá: 456 (tốt)

Đã gửi 09 June 2008 - 03:28 PM

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

ơ hơ!
cái này giống VBA trong excel quá ta?
  • 0
Hãy ước cho trọn 1 ước mơ!

#7 duongsatdn

duongsatdn

    biết lệnh adcenter

  • Moderator
  • PipPipPipPipPipPipPip
  • 1657 Bài viết
Điểm đánh giá: 757 (tốt)

Đã gửi 09 June 2008 - 03:38 PM

VBA cho excel và cho CAD là anh em bác ạ!
  • 0

#8 tchinh371

tchinh371

    biết zoom

  • Members
  • Pip
  • 13 Bài viết
Điểm đánh giá: 9 (bình thường)

Đã gửi 09 June 2008 - 09:10 PM

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ạ!
  • 0
""AutoCAD đã có công tạo LISP, chúng ta hãy cùng nhau phát triển LISP"

#9 duongsatdn

duongsatdn

    biết lệnh adcenter

  • Moderator
  • PipPipPipPipPipPipPip
  • 1657 Bài viết
Điểm đánh giá: 757 (tốt)

Đã gửi 10 June 2008 - 10:00 AM

Có lẽ nên lập một topic "VBA for CAD" chăng?
  • 1

#10 phantuhuong

phantuhuong

    biết dimcontinue

  • Moderator
  • PipPipPipPipPip
  • 375 Bài viết
Điểm đánh giá: 198 (tàm tạm)

Đã gửi 12 June 2008 - 10:31 PM

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.
  • 0

Sách Lập trình VBA trong Excel cho người mới bắt đầu, tái bản năm 2014

Từng bước loại đồ Tàu ra khỏi cuộc sống!


#11 Nguyen Hoanh

Nguyen Hoanh

    biết lệnh adcenter

  • Moderator
  • PipPipPipPipPipPipPip
  • 3810 Bài viết
Điểm đánh giá: 4344 (đỉnh cao)

Đã gửi 12 June 2008 - 11:32 PM

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.

Hình đã gửi


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ó.
  • 3

#12 tchinh371

tchinh371

    biết zoom

  • Members
  • Pip
  • 13 Bài viết
Điểm đánh giá: 9 (bình thường)

Đã gửi 13 June 2008 - 10:53 PM

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:
  • 1
""AutoCAD đã có công tạo LISP, chúng ta hãy cùng nhau phát triển LISP"

#13 pacdoan

pacdoan

    Chưa sử dụng CAD

  • Members
  • Pip
  • 1 Bài viết
Điểm đánh giá: 0 (bình thường)

Đã gửi 24 January 2013 - 11:18 PM

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!
  • 0

#14 phantuhuong

phantuhuong

    biết dimcontinue

  • Moderator
  • PipPipPipPipPip
  • 375 Bài viết
Điểm đánh giá: 198 (tàm tạm)

Đã gửi 03 February 2013 - 11:53 AM

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.
  • 1

Sách Lập trình VBA trong Excel cho người mới bắt đầu, tái bản năm 2014

Từng bước loại đồ Tàu ra khỏi cuộc sống!