matt_HH 发表于 2022-7-6 21:57:28

VBA help - block insertion

Hi There
 
Sorry 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

Tyke 发表于 2022-7-6 22:18:27

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

matt_HH 发表于 2022-7-6 22:42:47

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
 
 

matt_HH 发表于 2022-7-6 23:16:54

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]
查看完整版本: VBA help - block insertion