VBA help - block insertion
Hi ThereSorry that this will be such a basic question.I am not a VBA expert in any way....quite new actually . RunningAutocad Architecure 2014.
I have a VBA utility that I have made a special button for. I want this button to insert a dynamic block.
I have WBLOCK'ed the block and it is in a nework folder - no issues here.
Thereare several other snippets of VBA code that I have found online (even from this forum) andhave tried to modify them to work. I must be doing something wrong, asit always stumbles within the code or silently sits there doing nothing.
Ijust want to click this button and my dynamic block (from network) will be brought into the existing drawing, and the user will selectinsert point and direction..... Mouse click...done....block inserted.Similar action to a block that would be brought from a tool pallette(but has to be from this VBA utility)
Any help would be appreciated.
Matt Hi Matt,
You don't actually need any VBA code to do what you want, a much better way is to use a palette. Put your block on there and just click it to insert it into a drawing. You have far more control over the whole procedure.
There's plenty of information available. Look in Michaels Corner on this site, he's written a lot on tool palettes.
Ben Hi Tyke
I use and create a lot of tool palettes, and they are awesome and I agree 100% about control. This particular instance of this block needs to come from this VBA utility. It will save the user a bunch of clicking to go to a palette.
It is probably the only exception I have, or i would have put it on a palette.
thanks though
Matt
I'm getting there
Im sorry for being a VBA dummy ....but I have one more obstacle.
As it might be simpler to use the sendcommand, i just need help to write it.
I am not a coder by any means....so excuse my lack of knowledge
This code below will place the block in the drawing....great. But it places it (from user point selection), square on the drawing. I want to be able to insert the block and select the direction of the block (rotate) . Most of the time it will be in 90º selections (place on drawing and go either up, down, left or right). I am guessing the sendcommand line will go after the second last line
I can't get this rotation working at all.....sigh
can anyone help with this lillte snippet here??
Private Sub cmdProfileinsert_Click()
Dim strPath As String
Dim strBlockName As String
Dim objBlock As AcadBlock
Dim entRef As AcadBlockReference
Dim dblPkPt() As Double
strBlockName = "Profile"
strPath = "H:\blah\blah\Profile.dwg"
On Error Resume Next
Set objBlock = ThisDrawing.Blocks.Item(strBlockName)
On Error GoTo 0
If Not objBlock Is Nothing Then objBlock.Delete 'To reinitialize Block from container file
DbxCopyBlock strBlockName, strPath 'Copy block into ThisDrawing
dblPkPt = ThisDrawing.Utility.GetPoint(, "Pick insertion Point: ") 'Get insertion point for test insert
Set entRef = ThisDrawing.ModelSpace.InsertBlock(dblPkPt, "Profile", 1#, 1#, 1#, 0) 'Test insert
End Sub
页:
[1]