Đến nội dung


Hình ảnh
- - - - -

Truy xuất dữ liệu với Group


  • Please log in to reply
5 replies to this topic

#1 thangcoi

thangcoi

    Chưa sử dụng CAD

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

Đã gửi 19 January 2009 - 11:38 AM

Mình đang viết một VBA với một Group trong ACAD . Cho mình hỏi chút :
1, Làm thế nào biết được đối tượng mình chọn đang lằm trong Group nào
2, Trong Group vừa tìm được đấy có đối tượng là Block và chứa thông tin ví dụ như a150 hay %%c8 làm thế nào để đọc được dự liệu ấy là %%8 hay là các giá trị khác.
Thanks
  • 0

#2 thangcoi

thangcoi

    Chưa sử dụng CAD

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

Đã gửi 21 January 2009 - 08:58 AM

Có vẻ như vấn đề này không dễ dàng chút nào !
Tui đã mất rất nhiều thời gian để mày mò mà chẳng có kết quả nào ! Hôm trước có bác khuyên lên dùng Handle để truy xuất dữ liệu .
Hích nhưng mình lại chưa dùng nó bao giờ ! Các cao thủ cho ý kiến chỉ dẫn nhé.
  • 0

#3 ndtnv

ndtnv

    biết lệnh minsert

  • Members
  • PipPipPipPipPipPip
  • 437 Bài viết
Điểm đánh giá: 384 (khá)

Đã gửi 23 January 2009 - 08:55 AM

Mình đang viết một VBA với một Group trong ACAD . Cho mình hỏi chút :
1, Làm thế nào biết được đối tượng mình chọn đang lằm trong Group nào
2, Trong Group vừa tìm được đấy có đối tượng là Block và chứa thông tin ví dụ như a150 hay %%c8 làm thế nào để đọc được dự liệu ấy là %%8 hay là các giá trị khác.
Thanks

Bạn nên post file cad có VBA (nên save as version 2004 về trước) và chú thích rõ ràng các yêu cầu thì mọi mới biết và góp ý được
  • 0

#4 thangcoi

thangcoi

    Chưa sử dụng CAD

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

Đã gửi 23 January 2009 - 09:40 AM

Mình có một Group như trong bản vẽ và mình chọn POLYLINE trong group đó (màu đỏ) làm thế nào biết nó nằm trong gruop nào và lấy thông tin từ block trong cùng một group trên đó


Public Sub NhanThanh()

Dim xdataOut As Variant
Dim xtypeOut As Variant
Dim Sel As AcadSelectionSet
Dim i As Integer
Dim Dthang As AcadLWPolyline

'===================================================================
For i = 0 To ThisDrawing.SelectionSets.Count - 1
ThisDrawing.SelectionSets(i).Delete
Next i
Set Sel = ThisDrawing.SelectionSets.Add("Thanh")
FilterType(0) = 0: FilterData(0) = "LWPOLYLINE"
Sel.SelectOnScreen FilterType, FilterData

For i = 0 To Sel.Count - 1

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

........

Next i
End Sub

http://www.cadviet.c...new_block_8.dwg
  • 0

#5 ndtnv

ndtnv

    biết lệnh minsert

  • Members
  • PipPipPipPipPipPip
  • 437 Bài viết
Điểm đánh giá: 384 (khá)

Đã gửi 10 February 2009 - 12:49 PM

Đây là VD về lấy Attributes của block có trong bản vẽ. Cách lấy đối tượng khác như LWPOLYLINE cũng tương tự
  
.....
Dim BlockObj As AcadBlockReference
Dim attributeObj
Dim blName$, attName(2) As String
.....
Sel.SelectOnScreen
Set BlockObj = Sel.Item(0)
blName = BlockObj.Name
' = BAR_L
attributeObj = BlockObj.GetAttributes
For i = 0 To 2
attName(i) = attributeObj(i).TextString
' = %%c8 , = a150
Next i
.....

  • 0

#6 thangcoi

thangcoi

    Chưa sử dụng CAD

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

Đã gửi 16 February 2009 - 11:14 AM

Đó là cách lấy thuộc tính từ Block của đối tượng cái mình cần là biết đối tượng đấy lằm trong nhóm nào và block trong nhóm đối tượng được chọn !
  • 0