huyhoangute 0 Báo cáo bài đăng Đã đăng Tháng 11 26, 2010 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
kimvantoan 0 Báo cáo bài đăng Đã đăng Tháng 11 27, 2010 Em có 1 file thế này http://www.cadviet.com/upfiles/3/vidu_3.dwgXin 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
kimvantoan 0 Báo cáo bài đăng Đã đăng Tháng 11 27, 2010 xin lỗi bạn! Đoạn mã này, mình thừa biến tdt và dòng lệnh "tdt=sl.count", biến này không dùng đến, bạn bỏ đi nhé 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
huyhoangute 0 Báo cáo bài đăng Đã đăng Tháng 11 29, 2010 ok, thanks! đính chính lại 1 chút nữa "i1 = 0: j1 = 0" thành "i1 = 0: i2 = 0" :s_big: :leluoi: :cheers: :D 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