Chuyển đến nội dung
Diễn đàn CADViet
lucton

Viết VBA theo yêu cầu.............

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

dear anhcos!

Em đã khai triển được theo như bác hướng dẫn tuy nhiên em gặp phải một số vấn đề như sau em đưa lên nhờ bác và các cao thủ VBA trợ giúp cho em với.

- Khi chọn điểm là góc dưới cùng bên trái thì khi in mặc định vùng đó là vùng in đầu tiên.yêu cầu đặt ra bây giờ là khi đánh số thứ tự vùng in đầu tiên sẽ là abc3,abc4,abc1,abc2. Thứ tự này chính là thứ tự khi in mà bác đã hướng dẫn cho em.Khi em đánh số thứ tự thì khi in không hiện lên số thứ tự đó. Em mong bác trợ giúp em phần code của đánh số thứ tự như theo thư tự trên. Em xin cảm ơn bác rất nhiều !

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

Bạn thêm 1 Text vào bản vẽ, di chuyển đến vị trí thích hợp khi in.

Khi in xong thì xóa nó.

 

Ở ví dụ trên thì lấy vị trí Text đúng góc dưới bên trái của vùng in.

 

Xem lại VD, mình đã edit rồi.

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
Thank anhcos!

Theo hướng dẫn của bác em đã dùng VBA trên cad edit lại và chạy được khi view trước khi plot lên thì xem được 4 vùng plot tuy nhiên khi plot lại chỉ in ra vùng đầu tiên mà không in tiếp các vùng còn lại.em không hiểu vì sao nữa. Khi plot xong vùng đầu tiên em thấy chương trình báo lỗi tại dòng : Thisdrawing.plot.plottodevice. Bác chữa cháy cho em với.Em rất cảm ơn bác vì sự nhiệt tình giúp đỡ của bác. em đang cần quá mà chương trình chưa chạy được mong bác sử lý giúp em

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

Thiếu cái này ở đầu chương trình

Dwg.SetVariable("BACKGROUNDPLOT", 0)

 

hoặc vào AutoCAD đặt biến BACKGROUNDPLOT = 0

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
Thank anhcos!

Thiếu cái này ở đầu chương trình

Thực ra em cũng biết là em thiếu cái đó nhưng trong VBA em viết câu lệnh đó chương trình toàn báo lỗi câu lệnh đó nên em không đưa vào. Bây giờ để em làm trên cad xem chỉnh có hiệu quả thì không cần thêm lệnh vào nữa. Em cần plot khoảng 50 bản mà phải lựa chọn như vậy rất mất thời gian em rất cảm ơn bác đã trợ giúp cho em

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

Dear anhcos

 

Bác giúp em edit code plot theo thứ tự như bản vẽ em upload trên diễn đàn em với. Khi em viết trên VBA em không làm được như vậy. em mong bác nhiệt tình trợ giúp em thực sự khó khăn trong vấn đề về đặt text lên trên bản vẽ, Em rất cảm ơn bác

 

http://www.cadviet.com/upfiles/thu_tu_plot_1.jpg

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
Dear anhcos

 

Bác giúp em edit code plot theo thứ tự như bản vẽ em upload trên diễn đàn em với. Khi em viết trên VBA em không làm được như vậy. em mong bác nhiệt tình trợ giúp em thực sự khó khăn trong vấn đề về đặt text lên trên bản vẽ, Em rất cảm ơn bác

 

http://www.cadviet.com/upfiles/thu_tu_plot_1.jpg

 

Đã sửa trên ví dụ, bạn xem lại đi nhé.

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

Thank anhcos!

Em cảm ơn bác rất nhiều. VBA thật tuyệt vời.Với những gì bác hướng dẫn em đã làm được chương trình theo đúng yêu cầu rồi.Chương trình chạy rất ổn. Hy vọng em có cơ hội được hậu tạ bác.Thank for all

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

Các bác giúp em một chương trình sao cho có thể vẽ nhanh một họ đường thẳng song song với một họ đường thẳng cho trước mà đường này lại nối tiếp vào đường trước nó đc ko? Em xin cảm ơn nhiều!

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
Các bác giúp em một chương trình sao cho có thể vẽ nhanh một họ đường thẳng song song với một họ đường thẳng cho trước mà đường này lại nối tiếp vào đường trước nó đc ko? Em xin cảm ơn nhiều!

 

Bạn nói chung chung quá, không rõ ràng. Nên có hình minh họa.

  • 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

Hình đây các bác, các đường ở bên phải được vẽ song song ở bên trái, theo màu sắc chúng song song với nhau đường này nối tiếp đường kia, khoảng chia là 1m

cu.jpg

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
Hình đây các bác, các đường ở bên phải được vẽ song song ở bên trái, theo màu sắc chúng song song với nhau đường này nối tiếp đường kia, khoảng chia là 1m

 

Khó hình dung quá, cái này bạn vẽ 2D hay 3D trên nền 2D vậy.

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

Cái này là 2d mà. Vậy em nói đơn giản thế này nhé, em có 2 đoạn thẳng AB,AC đồng quy, bây h em cần vẽ hai đoạn thẳng DE//AB, EF//AC như hình sau:

cad.jpg

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
Mời các bạn đưa ra các yêu cầu viết các hàm VBA trong Autocad để các thành viên đưa lên

hjhj anh có thể cho em đoạn code VBA về thống kê và phân loại cốt thép ko :( cả form của nó thỳ càng tôt :rolleyes: :rolleyes: :rolleyes: :rolleyes: :rolleyes:

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

Các pro cho em hỏi tý,đây là code tạo Hatch của bác phamtuhuong:

Sub Example_AppendInnerLoop()

' This example creates an associative hatch in model space.

 

Dim hatchObj As AcadHatch

Dim patternName As String

Dim PatternType As Long

Dim bAssociativity As Boolean

Dim DiemP(0 To 2) As Double

 

' Define the hatch

patternName = "ANSI31"

PatternType = 0

bAssociativity = True

 

' Create the associative Hatch object

Set hatchObj = ThisDrawing.ModelSpace.AddHatch(PatternType, patternName, bAssociativity)

 

' Create the outer loop for the hatch.

' An arc and a line are used to create a closed loop.

 

Dim outerLoop(0 To 1) As AcadEntity

Dim center(0 To 2) As Double

Dim radius As Double

Dim startAngle As Double

Dim endAngle As Double

center(0) = 5: center(1) = 3: center(2) = 0

DiemP(0) = 2.5: DiemP(1) = 3.5

radius = 3

startAngle = 0

endAngle = 3.141592

Set outerLoop(0) = ThisDrawing.ModelSpace.AddArc(center, radius, startAngle, endAngle)

Set outerLoop(1) = ThisDrawing.ModelSpace.AddLine(outerLoop(0).StartPoint, outerLoop(0).EndPoint)

 

' Append the outer loop to the hatch object

hatchObj.AppendOuterLoop (outerLoop)

 

' Append a circle as the inner loop for the hatch.

Dim innerLoop(0) As AcadEntity

Dim innerLoop1(0) As AcadEntity

center(0) = 5: center(1) = 4.5: center(2) = 0

radius = 1

Set innerLoop(0) = ThisDrawing.ModelSpace.AddCircle(center, radius)

Set innerLoop1(0) = ThisDrawing.ModelSpace.AddText("PTH", DiemP, 0.2)

hatchObj.AppendInnerLoop (innerLoop)

hatchObj.AppendInnerLoop (innerLoop1)

 

' Evaluate and display the hatch

hatchObj.Evaluate

ThisDrawing.Regen True

 

End Sub

 

 

 

Em bắt chước làm thử với các kiểu Hatch khác(tạo line hoặc cirle để hatch) nhưng không biết cách,làm hoài không chạy,mong có bác nào biết thì chỉ dùm với.Nhân tiện hỏi luôn định độ thưa(hoặc dày) của Hatch trong VBA như thế nào??? :(

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ôi có 1 ý tưởng viêt 1 đoạn chươngtrìnht tính diện tích giao giữa 2 polyline kín. Mọi người cùng nghiên cứu và thảo luận nhé! Rất mong các bạn góp ý kiến cho ý tưởng này.

web_1.jpg

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ôi có 1 ý tưởng viêt 1 đoạn chươngtrìnht tính diện tích giao giữa 2 polyline kín. Mọi người cùng nghiên cứu và thảo luận nhé! Rất mong các bạn góp ý kiến cho ý tưởng này.

web_1.jpg

 

Việc đầu tiên là phải xác định điểm giao giữa 2 đối tượng, sau đó trình duyệt qua từng đỉnh và tạo 1 đối tượng Polyline đi qua những đỉnh đó. Từ đối tượng polyline có thể xác định diện tích, sau đó là xoá bỏ đối tượng đó.

  • 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ôi có 1 ý tưởng viêt 1 đoạn chươngtrìnht tính diện tích giao giữa 2 polyline kín. Mọi người cùng nghiên cứu và thảo luận nhé! Rất mong các bạn góp ý kiến cho ý tưởng này.

web_1.jpg

Theo ý kiến của Tue_NV

=> Ta chuyển 2 Polyline thành 2 Region

-> Dùng Intersect -> Lấy đa tuyến giao của 2 Region này

-> Tính diện tích

 

Vì Tue_NV không rành về lĩnh vực VBA, nhưng với Lisp thì mình có thể xây dựng được

 

Chúc các bạn một năm mới vui vẻ, hạnh phúc và thành công :undecided:

  • 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
Theo ý kiến của Tue_NV

=> Ta chuyển 2 Polyline thành 2 Region

-> Dùng Intersect -> Lấy đa tuyến giao của 2 Region này

-> Tính diện tích

 

Vì Tue_NV không rành về lĩnh vực VBA, nhưng với Lisp thì mình có thể xây dựng được

 

Chúc các bạn một năm mới vui vẻ, hạnh phúc và thành công :undecided:

Không hiểu ý của tác giả viet_civil theo em : gõ lệnh BO, tiếp theo là LI sẽ biết được diện tích phần giao...

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

Em có một bài tập nhóm ! Thầy cho tự do về đề tài ! em đang định làm một cái user form có thể tạo mảng các hình chữ nhật theo người dùng nhập vào ! nhưng chưa biết bắt đầu từ đâu cả :rolleyes: hi vọng các bác giúp em vụ này !

 

 

 

 

_______________

 

Bạn tìm kiếm những bản nhac vn, thường xuyên nghe nhac mp3 ! hãy vào nghe nhac mp3 của nhac.vui.vn

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
Em có một bài tập nhóm ! Thầy cho tự do về đề tài ! em đang định làm một cái user form có thể tạo mảng các hình chữ nhật theo người dùng nhập vào ! nhưng chưa biết bắt đầu từ đâu cả :rolleyes: hi vọng các bác giúp em vụ này !

..............................

Để mọi nguời hiểu đuợc, Bạn nên trình bày ý tuởng tạo mảng các hình chữ nhật 1 cách rõ ràng hơn.

 

Bài tập thì phải hoàn thành, nhưng bây giờ mới bắt đầu học VBA thì e rằng quá trễ ?!

Tham khảo thông báo của Autodesk : link

Autodesk has begun the transition of VB customization from VBA to .NET technology. Currently, VBA is still supported in Autodesk products. However, starting with AutoCAD 2010, VBA is no longer part of the default AutoCAD installation and must be downloaded and installed separately.

.........................

Autodesk is evaluating how long VBA will be supported in Autodesk products in the future. Though supported in the AutoCAD 2010-based products, it may or may not be supported in future releases. Therefore, it is strongly recommended that VB developers develop all new code using VB .NET.

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ại màn hình cad :

Có 1 khối :

| Mã | Chiều dài | Nội dung 1 | Nội dung 2 | Nội dung 3| Nội dung 4|

1 100 X1 X2 X3 X4

2 50 A1 A2 A3 A4

3 30 B1 B2 B3 B4

 

Khi mình đánh mã 1 thì tại bảng bên EXCEL

1 100 X1 X2 X3 X4

1 100 X1 X2 X3 X4

1 100 X1 X2 X3 X4

Khi mình đánh mã 2 thì tại bảng bên EXCEL

2 50 A1 A2 A3 A4

2 50 A1 A2 A3 A4

2 50 A1 A2 A3 A4

2 50 A1 A2 A3 A4

Khi mình đánh mã 3 thì tại bảng bên EXCEL

3 30 B1 B2 B3 B4

3 30 B1 B2 B3 B4

3 30 B1 B2 B3 B4

 

Nhờ các cao thủ viết hộ VBA từ Cad sang excel với.

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

×