×
INTELLIGENT WORK FORUMS
FOR ENGINEERING PROFESSIONALS

Log In

Come Join Us!

Are you an
Engineering professional?
Join Eng-Tips Forums!
  • Talk With Other Members
  • Be Notified Of Responses
    To Your Posts
  • Keyword Search
  • One-Click Access To Your
    Favorite Forums
  • Automated Signatures
    On Your Posts
  • Best Of All, It's Free!
  • Students Click Here

*Eng-Tips's functionality depends on members receiving e-mail. By joining you are opting in to receive e-mail.

Posting Guidelines

Promoting, selling, recruiting, coursework and thesis posting is forbidden.

Students Click Here

Jobs

vba autocad get attributes of a block without opened it

vba autocad get attributes of a block without opened it

vba autocad get attributes of a block without opened it

(OP)
Is it possible to retrieve autocad attributes of an existing block in a known repertory without open it as a drawing, change the attributes(tag,value, prompt, etc...), update the block, save it in a new repertory

RE: vba autocad get attributes of a block without opened it

You have two options; you can open the drawing in the current autocad session which is usually the fastest choice
and disable autocad updating the interface. So it looks like it just stopped for a moment. Then after you get your values, reactivate the autocad window. Or you can open up another copy of autocad and get the information from that copy. Altho this takes a lot more time. But you could do this upon loading autocad and just store the variables as a global variable; ready to be used.

Declare Function LockWindowUpdate Lib "user32" (ByVal hwndLock As Long) As Long

function GetValues ()
    LockWindowUpdate (ThisDrawing.hwnd)

' do some secret stuff
' Open a drawing get the attribute value and then close the  drawing.  

 LockWindowUpdate (0)

end function

' or


Sub OpenNewAcad()
  Dim Acad As AcadApplication
  Dim AcadDwg As AcadDocument
  Set Acad = CreateObject("AutoCAD.Application")
  Set AcadDwg = Acad.Application.Documents.Open("c:\filename.dwg")
  ' do stuff
  ' get values
  Acad.Documents.Close
  Acad.Quit
  Set Acad = Nothing
End Sub

Red Flag This Post

Please let us know here why this post is inappropriate. Reasons such as off-topic, duplicates, flames, illegal, vulgar, or students posting their homework.

Red Flag Submitted

Thank you for helping keep Eng-Tips Forums free from inappropriate posts.
The Eng-Tips staff will check this out and take appropriate action.

Reply To This Thread

Posting in the Eng-Tips forums is a member-only feature.

Click Here to join Eng-Tips and talk with other members!


Resources