Chuyển đến nội dung
Diễn đàn CADViet
Đăng nhập để thực hiện theo  
huyhoangute

Đếm số đối tượng

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

Em có 1 file thế này http://www.cadviet.com/upfiles/3/vidu_3.dwg

Xin hỏi trong VBA làm thế nào để có thể đếm được số đối tượng có hình tròn có dấu cộng ở giữa, hình tròn có số dấu gạch chéo ở giữa, và đường tròn không có gì?

Em chỉ có thể đếm trên bản vẽ có bao nhiêu đường tròn (cà đường tròn có dấu cộng và hình tròn có dấu gạch chéo) theo code này:

 

Private Sub CommandButton1_Click()

UserForm1.Hide

 

Dim asset As AcadSelectionSet

Dim i As Integer

'Bo qua loi neu asset khong ton tai

On Error Resume Next

ActiveDocument.SelectionSets.Item("asset").Delete

'Tao asset

Set asset = ActiveDocument.SelectionSets.Add("asset")

'Chon toan bo doi tuong trong ban ve vao asset

Dim gpCode(0) As Integer

Dim dataValue(0) As Variant

gpCode(0) = 0

dataValue(0) = "Circle"

Dim groupCode As Variant, dataCode As Variant

groupCode = gpCode

dataCode = dataValue

asset.SelectOnScreen groupCode, dataCode

'Duyet cac doi tuong

Dim Doituong As AcadCircle

i = 0

For Each Doituong In asset

i = i + 1

Next

MsgBox " Co " & i & " duong tron."

 

End Sub

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ó 1 file thế này http://www.cadviet.com/upfiles/3/vidu_3.dwg

Xin hỏi trong VBA làm thế nào để có thể đếm được số đối tượng có hình tròn có dấu cộng ở giữa, hình tròn có số dấu gạch chéo ở giữa, và đường tròn không có gì?

Em chỉ có thể đếm trên bản vẽ có bao nhiêu đường tròn (cà đường tròn có dấu cộng và hình tròn có dấu gạch chéo) theo code này:

 

Private Sub CommandButton1_Click()

UserForm1.Hide

 

Dim asset As AcadSelectionSet

Dim i As Integer

'Bo qua loi neu asset khong ton tai

On Error Resume Next

ActiveDocument.SelectionSets.Item("asset").Delete

'Tao asset

Set asset = ActiveDocument.SelectionSets.Add("asset")

'Chon toan bo doi tuong trong ban ve vao asset

Dim gpCode(0) As Integer

Dim dataValue(0) As Variant

gpCode(0) = 0

dataValue(0) = "Circle"

Dim groupCode As Variant, dataCode As Variant

groupCode = gpCode

dataCode = dataValue

asset.SelectOnScreen groupCode, dataCode

'Duyet cac doi tuong

Dim Doituong As AcadCircle

i = 0

For Each Doituong In asset

i = i + 1

Next

MsgBox " Co " & i & " duong tron."

 

End Sub

 

 

Mình giúp bạn đoạn mã này để đếm nốt số hình tròn có dấu "+" và số hình tròn có dấu "x". Bạn tham khảo nhé

 

Public Sub test1()

 

Dim sl, sl1 As AcadSelectionSet

Dim ft(0) As Integer

Dim fd(0) As Variant

Dim i As Variant

Dim goc As Double

 

ft(0) = 0

fd(0) = "line"

 

On Error Resume Next

Set sl = ThisDrawing.SelectionSets.Add("selectionset")

If Err <> 0 Then

Err.Clear

Set sl = ThisDrawing.SelectionSets("selectionset")

End If

 

sl.SelectOnScreen ft, fd

 

Dim i1, i2 As Integer

Dim tdt As Double

i1 = 0: j1 = 0

tdt = sl.Count

For Each i In sl

goc = i.Angle

If goc = 0 Then

i1 = i1 + 1

Else

i2 = i2 + 1

End If

Next

MsgBox "so duong tron co dau (+) la:" & i1

MsgBox "so duong tron co dau (X) la:" & (i2 - i1) / 2

sl.Delete

End Sub

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  

×