Đến nội dung


Hình ảnh
5 stars - based on 24598 reviews
* * - - - 3 Bình chọn

VBA cho AutoCad-Hãy cùng tham gia trao đổi


  • Please log in to reply
55 replies to this topic

#21 HungDHXD

HungDHXD

    biết vẽ ellipse

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

Đã gửi 13 September 2013 - 02:26 PM


 

Gửi mọi người chủ đề "Làm Việc với đối tượng SelectionSet" trong VBA, hy vọng nó sẽ hữu ích cho anh em.

http://www.cadviet.c...electionset.pdf

Trong file bạn có ghi 1 đoạn code thêm mói 1 đối tượng selectionsets:---> theo mình viết như thế này gọn hơn:


Sub Ex_Addselectionset()
    Dim ssetObj As AcadSelectionSet
    On Error Resume Next
    With ThisDrawing.SelectionSets
        .Item("Kira").Delete
        Set ssetObj = .Add("Kira")
    End With
End Sub

Bài viết đã được chỉnh sửa nội dung bởi HungDHXD: 13 September 2013 - 02:27 PM

  • 1

#22 dinhvantrang

dinhvantrang

    biết lệnh stretch

  • Members
  • PipPipPip
  • 166 Bài viết
Điểm đánh giá: 39 (tàm tạm)

Đã gửi 13 September 2013 - 04:56 PM

Trong file bạn có ghi 1 đoạn code thêm mói 1 đối tượng selectionsets:---> theo mình viết như thế này gọn hơn:

Cảm ơn sự góp ý của bạn.Việc tạo mới đối tượng SelectionSet đúng là có rất nhiều cách thức để tạo.Cách của bạn đúng là ngắn gọn và súc tích.

Mình sẽ bổ sung vào trong giáo trình của mình.

Chúc bạn vui vẻ!


  • 0

Thanks and Best Regards

Skype : dinhvantrang73

 

Group hướng dẫn lập trình VBA cho Autocad & Excel

https://www.facebook...46532865799936/

 

Series video hướng dẫn lập trình VBA cho Autocad & Excel

https://www.youtube....m54mGak6O9YSmfT


#23 tuantrinh89

tuantrinh89

    biết pan

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

Đã gửi 10 October 2013 - 09:24 AM

Tiện đây em xin hỏi ở đây có bác nào quan tâm đến thuật toán tạo lưới tam giác delaunay không ạ, bác nào đã từng làm rồi chỉ dạy cho em đôi điều với.

Giả dụ mình có 1 file txt chứa tọa độ điểm, sau khi đã phun lên được màn hình cad để thành các điểm, vậy làm thế nào để tạo được lưới tam giác delaunay từ những điểm này nhỉ? 


  • 0

#24 nguyendan81985

nguyendan81985

    biết vẽ circle

  • Members
  • PipPip
  • 30 Bài viết
Điểm đánh giá: -3 (bình thường)

Đã gửi 05 November 2013 - 10:29 PM

mình mời học VBA nên chưa rành lắm. cho mình hỏi tí.

làm sao để lấy dữ liệu từ textbox ra để xử lí. mình đã làm thử 1 chương trình nhưng ko thể nhập đc dữ liệu khi chạy chương trình. ai biết chỉ giúp với nhé.

mình đã thử VBA trong exel và ko bị gì. nhập dữ liệu vào textbox bt nhưng VBA trong CAD thì ko đc.


  • 0

#25 dinhvantrang

dinhvantrang

    biết lệnh stretch

  • Members
  • PipPipPip
  • 166 Bài viết
Điểm đánh giá: 39 (tàm tạm)

Đã gửi 09 November 2013 - 11:12 AM

Bạn đưa đoạn Code đó lên coi sao nhé


  • 0

Thanks and Best Regards

Skype : dinhvantrang73

 

Group hướng dẫn lập trình VBA cho Autocad & Excel

https://www.facebook...46532865799936/

 

Series video hướng dẫn lập trình VBA cho Autocad & Excel

https://www.youtube....m54mGak6O9YSmfT


#26 nguyendan81985

nguyendan81985

    biết vẽ circle

  • Members
  • PipPip
  • 30 Bài viết
Điểm đánh giá: -3 (bình thường)

Đã gửi 10 November 2013 - 05:03 PM

code nào cũng vậy thôi bạn. mình thử tạo 1 userform khác, hoặc 1 project khác. tạo 1 textbox, và cho Run luôn. nhưng lỗi cũng bị thế. bấm mãi mới ra đc 1 chữ. ko biết có phải do CAD ko. mình thử 2 máy đều bị vậy. xài CAD 2011 64 bits.


  • 0

#27 gia_bach

gia_bach

    biết lệnh adcenter

  • CADViet Team
  • PipPipPipPipPipPipPip
  • 1453 Bài viết
Điểm đánh giá: 1434 (rất tốt)

Đã gửi 11 November 2013 - 09:45 AM

code nào cũng vậy thôi bạn. mình thử tạo 1 userform khác, hoặc 1 project khác. tạo 1 textbox, và cho Run luôn. nhưng lỗi cũng bị thế. bấm mãi mới ra đc 1 chữ. ko biết có phải do CAD ko. mình thử 2 máy đều bị vậy. xài CAD 2011 64 bits.

Tôi ít sài VBA, nhưng nhiều khả năng do bản CAD 64bits.

Các bản CAD 32 bit chạy VBA bình thường.


  • 1

#28 nguyendan81985

nguyendan81985

    biết vẽ circle

  • Members
  • PipPip
  • 30 Bài viết
Điểm đánh giá: -3 (bình thường)

Đã gửi 13 November 2013 - 08:36 PM

giờ mình chuyển sang xài CAD 2007. thấy ok. thanks bạn nhé.


  • 0

#29 baby_ant403

baby_ant403

    Chưa sử dụng CAD

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

Đã gửi 19 November 2013 - 10:05 AM

Nhờ Anh Em giúp mình với :

Mình vừa chuyển đổi file Exell sang Autocad Electrical . Khong biết có cách nào để tự động chuyển text sang ô màu xanh không ?xin giúp E với

http://www.cadviet.c...battery_box.dwg


  • 0

#30 nguyendan81985

nguyendan81985

    biết vẽ circle

  • Members
  • PipPip
  • 30 Bài viết
Điểm đánh giá: -3 (bình thường)

Đã gửi 03 December 2013 - 08:59 AM

mình có 1 đoạn code add text như bên dưới. làm thế nào để đổi font của nó nhỉ. vd mình muốn đổi font nó sang Arial.



Sub AddMtext()

Dim MTextObj As AcadMText
Dim point(0 To 2) As Double
Dim width As Double
Dim text As String
point(0) = 0#: point(1) = 10#: point(2) = 0#
width = 10
text = "ABC"

Set MTextObj = ThisDrawing.ModelSpace.AddMText(point, width, text)
ZoomAll

End Sub
  • 0

#31 HungDHXD

HungDHXD

    biết vẽ ellipse

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

Đã gửi 05 December 2013 - 03:27 PM

mình có 1 đoạn code add text như bên dưới. làm thế nào để đổi font của nó nhỉ. vd mình muốn đổi font nó sang Arial.



Sub AddMtext()

Dim MTextObj As AcadMText
Dim point(0 To 2) As Double
Dim width As Double
Dim text As String
point(0) = 0#: point(1) = 10#: point(2) = 0#
width = 10
text = "ABC"

Set MTextObj = ThisDrawing.ModelSpace.AddMText(point, width, text)
ZoomAll

End Sub

Dùng thuộc tính Height của đối tượng acadMtext ví dụ

Sub Addmtext()
    Dim mtxt As AcadMText
        With ThisDrawing
            p1 = .Utility.GetPoint()
            Set mtxt = .ModelSpace.Addmtext(p1, 10, "ABC")
            mtxt.Height = 100
        End With
End Sub

  • 0

#32 khuathoangthuy

khuathoangthuy

    biết vẽ pline

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

Đã gửi 05 December 2013 - 03:54 PM

Nếu là Autocad đã có ngôn ngữ lisp. Còn dùng VBA sao không dùng cho Solidwork?

Mình cũng phải làm việc với bản vẽ 3D nhiều mà có nhiều cái lặp lại mà không biết cách tạo marco cho solidwork.

Mà autolisp cho cad là quá đủ rồi sao còn phải dùng VBA?


  • 0

#33 HungDHXD

HungDHXD

    biết vẽ ellipse

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

Đã gửi 06 December 2013 - 08:49 AM

Nếu là Autocad đã có ngôn ngữ lisp. Còn dùng VBA sao không dùng cho Solidwork?

Mình cũng phải làm việc với bản vẽ 3D nhiều mà có nhiều cái lặp lại mà không biết cách tạo marco cho solidwork.

Mà autolisp cho cad là quá đủ rồi sao còn phải dùng VBA?

Không thể so sánh Lisp với VBA được : Lisp chỉ là 1 ngôn ngữ thông dịch , còn VBA là ngôn ngữ lập trình theo hướng đối tượng ==> nói đến đây nếu bạn có thể hiểu ưu điểm và nhược điểm của tứng cái rồi đúng không ???


  • 0

#34 nguyendan81985

nguyendan81985

    biết vẽ circle

  • Members
  • PipPip
  • 30 Bài viết
Điểm đánh giá: -3 (bình thường)

Đã gửi 06 December 2013 - 05:31 PM

Dùng thuộc tính Height của đối tượng acadMtext ví dụ

Sub Addmtext()
    Dim mtxt As AcadMText
        With ThisDrawing
            p1 = .Utility.GetPoint()
            Set mtxt = .ModelSpace.Addmtext(p1, 10, "ABC")
            mtxt.Height = 100
        End With
End Sub

thuộc tính height chỉ thay đổi chiều cao text thôi. ko thay đổi font. mình muốn font nó thay đổi thành một font khác, theo cách làm bằng tay thì thay đổi mặc định của CAD, nhưng mình muốn thay đổi bằng phần mềm.
  • 0

#35 HoaVien

HoaVien

    biết vẽ ellipse

  • Members
  • PipPip
  • 55 Bài viết
Điểm đánh giá: 14 (tàm tạm)

Đã gửi 06 December 2013 - 06:12 PM

dùng : mtxt.StyleName = "Text_Style"


  • 0

#36 nguyenvanhai2210

nguyenvanhai2210

    Chưa sử dụng CAD

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

Đã gửi 06 December 2013 - 07:01 PM

mình có vấn đề này mong mọi người giúp đỡ..mình cài cad 2007, sau khi cài xong nó hiện lên là giấy phép hết hạn..trước đó mình co tự down 1 bản cad về xài nhưng chưa có crack...ai biết cách nào khắc phục giúp mình với,,tks all


  • 0

#37 p.bavinh

p.bavinh

    biết zoom

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

Đã gửi 11 December 2013 - 08:58 PM

Sau 1 thời gian tìm hiểu thì tôi đã hoàn tất Code có thể tách bản vẽ và in tự động nhiều bản vẽ nằm trong 1 bản model hoặc layout không biết ai cần dùng không thì tôi sẽ cho


  • 1

#38 dinhvantrang

dinhvantrang

    biết lệnh stretch

  • Members
  • PipPipPip
  • 166 Bài viết
Điểm đánh giá: 39 (tàm tạm)

Đã gửi 12 December 2013 - 11:08 AM

Sau 1 thời gian tìm hiểu thì tôi đã hoàn tất Code có thể tách bản vẽ và in tự động nhiều bản vẽ nằm trong 1 bản model hoặc layout không biết ai cần dùng không thì tôi sẽ cho

Rất hoan nghênh bác chia sẻ cùng anh em.

Bác gửi cho em tham khảo nhé


  • 0

Thanks and Best Regards

Skype : dinhvantrang73

 

Group hướng dẫn lập trình VBA cho Autocad & Excel

https://www.facebook...46532865799936/

 

Series video hướng dẫn lập trình VBA cho Autocad & Excel

https://www.youtube....m54mGak6O9YSmfT


#39 khatamxd

khatamxd

    biết vẽ ellipse

  • Members
  • PipPip
  • 50 Bài viết
Điểm đánh giá: 21 (tàm tạm)

Đã gửi 13 December 2013 - 11:02 AM

đối với việc in ấn thì bên công ty mình dùng lệnh publish có sẵn trong cad. In vài trăm bản vẽ chỉ cần 2 3 cái click chuột thì liệu chương trình của bạn có hay hơn đc ko. Bạn chia sẽ code lên cho mọi người tham khảo có vẽ hay hơn đó  :)


  • 0

#40 p.bavinh

p.bavinh

    biết zoom

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

Đã gửi 13 December 2013 - 06:44 PM

đối với việc in ấn thì bên công ty mình dùng lệnh publish có sẵn trong cad. In vài trăm bản vẽ chỉ cần 2 3 cái click chuột thì liệu chương trình của bạn có hay hơn đc ko. Bạn chia sẽ code lên cho mọi người tham khảo có vẽ hay hơn đó  :)

bạn không hiểu rồi, publish chỉ print được nhiều bản vẽ nhưng mồi file là 1 bản vẽ. còn tôi có thể print tuỳ ý nhiều bản vẽ mà cùng nằm trong 1 file thôi. hoặc trong model hoặc trong paper . nó giống như code này : http://www.cadviet.c...i-can-1-layout/

nhưng tôi viết bằng vba và có điểm khác nữa là có thể tách tự động toàn bộ bản vẽ đấy riêng biệt, và có thể in trong nhiều bản trong layout. còn code đường dẫn trên chỉ in được nhiều trong model thôi :). ai cần thì liên hệ với tôi theo :

email: bavinh.bavinh@gmail.com

skype: p.bavinh1

ps: mục đích của tôi là muốn chia sẻ vba cho mọi người vì code tôi hiện nay có ít người dùng quá nên thấy hơi phí, có thể ai đấy sẽ cần. ngoài ra tôi còn một số code xuất excel vào cad


  • 0