Create a Block with Attributes in VBA to AutoCAD

Create a Block with Attributes in VBA to AutoCAD

Anonymous
Not applicable
2,813 Views
1 Reply
Message 1 of 2

Create a Block with Attributes in VBA to AutoCAD

Anonymous
Not applicable

I am fairly new to VBA/Excel. I want to create a block, in this case, a circle that is inserted into the active AutoCad Document. I want to assign multiple Attributes to this block automatically, (it would refer to particular cells in an Excel Sheet). I have been able to create the block, but when I introduce the code for adding attributes, it fails. Could anyone point me int the right direction?

 

Option Explicit

Sub CreateBlock()
' this macro is run from Excel

Dim oAcad As Object
Dim oDoc As AcadDocument

 

Dim Sht1 As Worksheet
Dim Sht2 As Worksheet

Set Sht1 = Sheets("Generate")
Set Sht2 = Sheets("Sheet3")

Set oAcad = GetObject(, "Autocad.Application")
Set oDoc = oAcad.ActiveDocument

 


Dim blockObj As AcadBlock
Dim insertionPnt(0 To 2) As Double
insertionPnt(0) = 0
insertionPnt(1) = 0
insertionPnt(2) = 0

 

Dim var As String
var = Range("C3").value

Set blockObj = oDoc.Blocks.Add(insertionPnt, var)

Dim AttributeObj As AcadAttribute

Dim height As Double
Dim mode As Long
Dim prompt As String
Dim tag As String
Dim value As String

height = 1
mode = acAttributeModeVerify
prompt = "new prompt"
tag = "new tag"
value = "New Value"
Dim InsertionPoint(0 To 2) As Double
InsertionPoint(0) = 5
InsertionPoint(1) = 5
InsertionPoint(2) = 0


Set AttributeObj = blockObj.AddAttribute(height, mode, prompt, InsertionPoint, tag, value)


Dim circleObj As AcadCircle
Dim Center(0 To 2) As Double
Dim radius As Double
Center(0) = 0
Center(1) = 0
Center(2) = 0
radius = 1

Set circleObj = blockObj.AddCircle(Center, radius)

 

Dim BlockRefObj As AcadBlockReference
insertionPnt(0) = 2
insertionPnt(1) = 2
insertionPnt(2) = 0

Set BlockRefObj = oDoc.ModelSpace.InsertBlock(insertionPnt, var, 1#, 1#, 1#, 0)
ZoomExtents
MsgBox "This Block represents " & var
End Sub

 

0 Likes
2,814 Views
1 Reply
Reply (1)
Message 2 of 2

rue.williams
Autodesk
Autodesk

Hi @Anonymous,

Thank you for your post. You will have a better chance of getting a response if you post your issue on the Visual Basic Customization Forum.

 



Rue Williams
Technical Support Specialist
Customer Service & Support
Autodesk, Inc.

0 Likes