wpeacock
2005-04-19, 05:19 AM
I'm using the following code to inset a block in a grid (almost) like pattern thirteen times.
the code works fine but it's really messy .. (and very long too)
Can you condense the Dim statement to something like...
Dim SB103975_leg(i) (0 to 2) using a for loop statement for i = A to N????
Could this method be transfered to Dim SB103975RefObj_legA As AcadBlockReference
ie Dim SB103975RefObj_leg(i) As AcadBlockReference
And use a similar method for the set statement also???
Private Sub CmdDraw_Click()
'add soleboard
Dim SB103975_legA(0 To 2) As Double
Dim SB103975_legB(0 To 2) As Double
Dim SB103975_legC(0 To 2) As Double
Dim SB103975_legD(0 To 2) As Double
Dim SB103975_legE(0 To 2) As Double
Dim SB103975_legF(0 To 2) As Double
Dim SB103975_legG(0 To 2) As Double
Dim SB103975_legH(0 To 2) As Double
Dim SB103975_legJ(0 To 2) As Double
Dim SB103975_legK(0 To 2) As Double
Dim SB103975_legL(0 To 2) As Double
Dim SB103975_legM(0 To 2) As Double
Dim SB103975_legN(0 To 2) As Double
Dim SB103975PathName As String 'describe the path name of the block
SB103975_legA(0) = (-LHRBW - 112.5): SB103975_legA(1) = 2400: SB103975_legA(2) = 19
SB103975_legB(0) = (-LHRBW - 112.5): SB103975_legB(1) = 0: SB103975_legB(2) = 19
SB103975_legC(0) = (-112.5): SB103975_legC(1) = 2400: SB103975_legC(2) = 19
SB103975_legD(0) = (-112.5): SB103975_legD(1) = 1200: SB103975_legD(2) = 19
SB103975_legE(0) = (-112.5): SB103975_legE(1) = 0: SB103975_legE(2) = 19
SB103975_legF(0) = (1200 - 112.5): SB103975_legF(1) = 2400: SB103975_legF(2) = 19
SB103975_legG(0) = (1200 - 112.5): SB103975_legG(1) = 1200: SB103975_legG(2) = 19
SB103975_legH(0) = (1200 - 112.5): SB103975_legH(1) = 0: SB103975_legF(2) = 19
SB103975_legJ(0) = (2400 - 112.5): SB103975_legJ(1) = 2400: SB103975_legJ(2) = 19
SB103975_legK(0) = (2400 - 112.5): SB103975_legK(1) = 1200: SB103975_legK(2) = 19
SB103975_legL(0) = (2400 - 112.5): SB103975_legL(1) = 0: SB103975_legL(2) = 19
SB103975_legM(0) = (2400 + RHRBW - 112.5): SB103975_legM(1) = 2400: SB103975_legM(2) = 19
SB103975_legN(0) = (2400 + RHRBW - 112.5): SB103975_legN(1) = 0: SB103975_legN(2) = 19
SB103975PathName = "C:Temp103975xyz.dwg" 'path of block
' Insert soleboard
Dim SB103975RefObj_legA As AcadBlockReference
Dim SB103975RefObj_legB As AcadBlockReference
Dim SB103975RefObj_legC As AcadBlockReference
Dim SB103975RefObj_legD As AcadBlockReference
Dim SB103975RefObj_legE As AcadBlockReference
Dim SB103975RefObj_legF As AcadBlockReference
Dim SB103975RefObj_legG As AcadBlockReference
Dim SB103975RefObj_legH As AcadBlockReference
Dim SB103975RefObj_legJ As AcadBlockReference
Dim SB103975RefObj_legK As AcadBlockReference
Dim SB103975RefObj_legL As AcadBlockReference
Dim SB103975RefObj_legM As AcadBlockReference
Dim SB103975RefObj_legN As AcadBlockReference
Set SB103975RefObj_legA = ThisDrawing.ModelSpace.InsertBlock(SB103975_legA, SB103975PathName, 1#, 1#, 1#, 0)
Set SB103975RefObj_legB = ThisDrawing.ModelSpace.InsertBlock(SB103975_legB, SB103975PathName, 1#, 1#, 1#, 0)
Set SB103975RefObj_legC = ThisDrawing.ModelSpace.InsertBlock(SB103975_legC, SB103975PathName, 1#, 1#, 1#, 0)
Set SB103975RefObj_legD = ThisDrawing.ModelSpace.InsertBlock(SB103975_legD, SB103975PathName, 1#, 1#, 1#, 0)
Set SB103975RefObj_legE = ThisDrawing.ModelSpace.InsertBlock(SB103975_legE, SB103975PathName, 1#, 1#, 1#, 0)
Set SB103975RefObj_legF = ThisDrawing.ModelSpace.InsertBlock(SB103975_legF, SB103975PathName, 1#, 1#, 1#, 0)
Set SB103975RefObj_legG = ThisDrawing.ModelSpace.InsertBlock(SB103975_legG, SB103975PathName, 1#, 1#, 1#, 0)
Set SB103975RefObj_legH = ThisDrawing.ModelSpace.InsertBlock(SB103975_legH, SB103975PathName, 1#, 1#, 1#, 0)
Set SB103975RefObj_legJ = ThisDrawing.ModelSpace.InsertBlock(SB103975_legJ, SB103975PathName, 1#, 1#, 1#, 0)
Set SB103975RefObj_legK = ThisDrawing.ModelSpace.InsertBlock(SB103975_legK, SB103975PathName, 1#, 1#, 1#, 0)
Set SB103975RefObj_legL = ThisDrawing.ModelSpace.InsertBlock(SB103975_legL, SB103975PathName, 1#, 1#, 1#, 0)
Set SB103975RefObj_legM = ThisDrawing.ModelSpace.InsertBlock(SB103975_legM, SB103975PathName, 1#, 1#, 1#, 0)
Set SB103975RefObj_legN = ThisDrawing.ModelSpace.InsertBlock(SB103975_legN, SB103975PathName, 1#, 1#, 1#, 0)
SB103975RefObj_legA.Layer = "3D_StretcherStair"
SB103975RefObj_legB.Layer = "3D_StretcherStair"
SB103975RefObj_legC.Layer = "3D_StretcherStair"
SB103975RefObj_legD.Layer = "3D_StretcherStair"
SB103975RefObj_legE.Layer = "3D_StretcherStair"
SB103975RefObj_legF.Layer = "3D_StretcherStair"
SB103975RefObj_legG.Layer = "3D_StretcherStair"
SB103975RefObj_legH.Layer = "3D_StretcherStair"
SB103975RefObj_legJ.Layer = "3D_StretcherStair"
SB103975RefObj_legK.Layer = "3D_StretcherStair"
SB103975RefObj_legL.Layer = "3D_StretcherStair"
SB103975RefObj_legM.Layer = "3D_StretcherStair"
SB103975RefObj_legN.Layer = "3D_StretcherStair"
SB103975RefObj_legA.Update
SB103975RefObj_legB.Update
SB103975RefObj_legC.Update
SB103975RefObj_legD.Update
SB103975RefObj_legE.Update
SB103975RefObj_legF.Update
SB103975RefObj_legG.Update
SB103975RefObj_legH.Update
SB103975RefObj_legJ.Update
SB103975RefObj_legK.Update
SB103975RefObj_legL.Update
SB103975RefObj_legM.Update
SB103975RefObj_legN.Update
EndSub
the code works fine but it's really messy .. (and very long too)
Can you condense the Dim statement to something like...
Dim SB103975_leg(i) (0 to 2) using a for loop statement for i = A to N????
Could this method be transfered to Dim SB103975RefObj_legA As AcadBlockReference
ie Dim SB103975RefObj_leg(i) As AcadBlockReference
And use a similar method for the set statement also???
Private Sub CmdDraw_Click()
'add soleboard
Dim SB103975_legA(0 To 2) As Double
Dim SB103975_legB(0 To 2) As Double
Dim SB103975_legC(0 To 2) As Double
Dim SB103975_legD(0 To 2) As Double
Dim SB103975_legE(0 To 2) As Double
Dim SB103975_legF(0 To 2) As Double
Dim SB103975_legG(0 To 2) As Double
Dim SB103975_legH(0 To 2) As Double
Dim SB103975_legJ(0 To 2) As Double
Dim SB103975_legK(0 To 2) As Double
Dim SB103975_legL(0 To 2) As Double
Dim SB103975_legM(0 To 2) As Double
Dim SB103975_legN(0 To 2) As Double
Dim SB103975PathName As String 'describe the path name of the block
SB103975_legA(0) = (-LHRBW - 112.5): SB103975_legA(1) = 2400: SB103975_legA(2) = 19
SB103975_legB(0) = (-LHRBW - 112.5): SB103975_legB(1) = 0: SB103975_legB(2) = 19
SB103975_legC(0) = (-112.5): SB103975_legC(1) = 2400: SB103975_legC(2) = 19
SB103975_legD(0) = (-112.5): SB103975_legD(1) = 1200: SB103975_legD(2) = 19
SB103975_legE(0) = (-112.5): SB103975_legE(1) = 0: SB103975_legE(2) = 19
SB103975_legF(0) = (1200 - 112.5): SB103975_legF(1) = 2400: SB103975_legF(2) = 19
SB103975_legG(0) = (1200 - 112.5): SB103975_legG(1) = 1200: SB103975_legG(2) = 19
SB103975_legH(0) = (1200 - 112.5): SB103975_legH(1) = 0: SB103975_legF(2) = 19
SB103975_legJ(0) = (2400 - 112.5): SB103975_legJ(1) = 2400: SB103975_legJ(2) = 19
SB103975_legK(0) = (2400 - 112.5): SB103975_legK(1) = 1200: SB103975_legK(2) = 19
SB103975_legL(0) = (2400 - 112.5): SB103975_legL(1) = 0: SB103975_legL(2) = 19
SB103975_legM(0) = (2400 + RHRBW - 112.5): SB103975_legM(1) = 2400: SB103975_legM(2) = 19
SB103975_legN(0) = (2400 + RHRBW - 112.5): SB103975_legN(1) = 0: SB103975_legN(2) = 19
SB103975PathName = "C:Temp103975xyz.dwg" 'path of block
' Insert soleboard
Dim SB103975RefObj_legA As AcadBlockReference
Dim SB103975RefObj_legB As AcadBlockReference
Dim SB103975RefObj_legC As AcadBlockReference
Dim SB103975RefObj_legD As AcadBlockReference
Dim SB103975RefObj_legE As AcadBlockReference
Dim SB103975RefObj_legF As AcadBlockReference
Dim SB103975RefObj_legG As AcadBlockReference
Dim SB103975RefObj_legH As AcadBlockReference
Dim SB103975RefObj_legJ As AcadBlockReference
Dim SB103975RefObj_legK As AcadBlockReference
Dim SB103975RefObj_legL As AcadBlockReference
Dim SB103975RefObj_legM As AcadBlockReference
Dim SB103975RefObj_legN As AcadBlockReference
Set SB103975RefObj_legA = ThisDrawing.ModelSpace.InsertBlock(SB103975_legA, SB103975PathName, 1#, 1#, 1#, 0)
Set SB103975RefObj_legB = ThisDrawing.ModelSpace.InsertBlock(SB103975_legB, SB103975PathName, 1#, 1#, 1#, 0)
Set SB103975RefObj_legC = ThisDrawing.ModelSpace.InsertBlock(SB103975_legC, SB103975PathName, 1#, 1#, 1#, 0)
Set SB103975RefObj_legD = ThisDrawing.ModelSpace.InsertBlock(SB103975_legD, SB103975PathName, 1#, 1#, 1#, 0)
Set SB103975RefObj_legE = ThisDrawing.ModelSpace.InsertBlock(SB103975_legE, SB103975PathName, 1#, 1#, 1#, 0)
Set SB103975RefObj_legF = ThisDrawing.ModelSpace.InsertBlock(SB103975_legF, SB103975PathName, 1#, 1#, 1#, 0)
Set SB103975RefObj_legG = ThisDrawing.ModelSpace.InsertBlock(SB103975_legG, SB103975PathName, 1#, 1#, 1#, 0)
Set SB103975RefObj_legH = ThisDrawing.ModelSpace.InsertBlock(SB103975_legH, SB103975PathName, 1#, 1#, 1#, 0)
Set SB103975RefObj_legJ = ThisDrawing.ModelSpace.InsertBlock(SB103975_legJ, SB103975PathName, 1#, 1#, 1#, 0)
Set SB103975RefObj_legK = ThisDrawing.ModelSpace.InsertBlock(SB103975_legK, SB103975PathName, 1#, 1#, 1#, 0)
Set SB103975RefObj_legL = ThisDrawing.ModelSpace.InsertBlock(SB103975_legL, SB103975PathName, 1#, 1#, 1#, 0)
Set SB103975RefObj_legM = ThisDrawing.ModelSpace.InsertBlock(SB103975_legM, SB103975PathName, 1#, 1#, 1#, 0)
Set SB103975RefObj_legN = ThisDrawing.ModelSpace.InsertBlock(SB103975_legN, SB103975PathName, 1#, 1#, 1#, 0)
SB103975RefObj_legA.Layer = "3D_StretcherStair"
SB103975RefObj_legB.Layer = "3D_StretcherStair"
SB103975RefObj_legC.Layer = "3D_StretcherStair"
SB103975RefObj_legD.Layer = "3D_StretcherStair"
SB103975RefObj_legE.Layer = "3D_StretcherStair"
SB103975RefObj_legF.Layer = "3D_StretcherStair"
SB103975RefObj_legG.Layer = "3D_StretcherStair"
SB103975RefObj_legH.Layer = "3D_StretcherStair"
SB103975RefObj_legJ.Layer = "3D_StretcherStair"
SB103975RefObj_legK.Layer = "3D_StretcherStair"
SB103975RefObj_legL.Layer = "3D_StretcherStair"
SB103975RefObj_legM.Layer = "3D_StretcherStair"
SB103975RefObj_legN.Layer = "3D_StretcherStair"
SB103975RefObj_legA.Update
SB103975RefObj_legB.Update
SB103975RefObj_legC.Update
SB103975RefObj_legD.Update
SB103975RefObj_legE.Update
SB103975RefObj_legF.Update
SB103975RefObj_legG.Update
SB103975RefObj_legH.Update
SB103975RefObj_legJ.Update
SB103975RefObj_legK.Update
SB103975RefObj_legL.Update
SB103975RefObj_legM.Update
SB103975RefObj_legN.Update
EndSub