Loop

Status
Niet open voor verdere reacties.

yaryd

Gebruiker
Lid geworden
5 mrt 2009
Berichten
47
Beste iedereen,

Hoe werkt een 'Loop' juist in VBA AutoCad? Dit is waarschijnlijk een simpele vraag. maar ik vind het maar niet.

Mvg,

Yaryd
 
een loop in vba begint met do en doet net zoalang iets totdat de code de loop weer stil legt.
Dat kan oa met do while, do until
of in de loop zelf
If in de loop zelf met b.v.
If voorwaarde then exit loop.

meer informatie (engels)
en de vba hulp

mvg leo
 
dit proberen toe te passen op onderstaande code, maar lukt niet.

de bedoeling van de code is, als men 1 vaste legplank aanduid dat men enkel de eerste code legplank tekent, als men bv 2 legplanken aanduid, moet hij dus de eerste legplank tekenen alsook de 2de, enz...

de hoogte's zijn ook al ingegeven in de Userform.

Code:
Sub VAZ_2()
With Invulvenster

    Dim SCH35VOL As AcadLine
    Dim SCH25HID As AcadLine
    Dim SCH25VOL As AcadLine
    Dim Spiegelpunt1(0 To 2) As Double
    Dim Spiegelpunt2(0 To 2) As Double
    Dim Spiegelobject As AcadLine
    Dim verplaatspunt1(1 To 3) As Double
    Dim verplaatspunt2(1 To 3) As Double
    Dim SelSetOb As AcadSelectionSet
    Dim Obj As AcadEntity
    Dim startpunt(1 To 3) As Double
    Dim eindpunt(1 To 3) As Double
    
                           'Begin gekozen hoogte 1 vaste legplank    (zonder tussenstuk)       OK
If .chkGekH1 = True Then 'geldt voor alle gekozen hoogtes
If .optZTss = True Then

If .txtAantVaLeg = 1 Then

If .optZD = True Then
    ThisDrawing.ActiveLayer = ThisDrawing.Layers.Item("SCH25VOL")   '=> zonder deur
End If

If .optED Or .optDD = True Then
    ThisDrawing.ActiveLayer = ThisDrawing.Layers.Item("SCH25HID")   '=> enkele deur of dubbele deur
End If
    startpunt(1) = Val(.txtDiCo + 1):     eindpunt(1) = Val(.txtTBK) - Val(.txtDiCo + 1)
    startpunt(2) = Val(.txtH1a):           eindpunt(2) = Val(.txtH1a)
    Set SCH25VOL = ThisDrawing.ModelSpace.AddLine(startpunt, eindpunt)
    Set SCH25HID = ThisDrawing.ModelSpace.AddLine(startpunt, eindpunt)
    SCH25VOL.Update
    SCH25HID.Update

    startpunt(1) = Val(.txtTBK) - Val(.txtDiCo + 1):    eindpunt(1) = Val(.txtTBK) - Val(.txtDiCo + 1)
    startpunt(2) = Val(.txtH1a):                      eindpunt(2) = Val(.txtH1a) - Val(.txtDiLeg)
    Set SCH25VOL = ThisDrawing.ModelSpace.AddLine(startpunt, eindpunt)
    Set SCH25HID = ThisDrawing.ModelSpace.AddLine(startpunt, eindpunt)
    SCH25VOL.Update
    SCH25HID.Update

    startpunt(1) = Val(.txtTBK) - Val(.txtDiCo + 1):        eindpunt(1) = Val(.txtDiCo + 1)
    startpunt(2) = Val(.txtH1a) - Val(.txtDiLeg): eindpunt(2) = Val(.txtH1a) - Val(.txtDiLeg)
    Set SCH25VOL = ThisDrawing.ModelSpace.AddLine(startpunt, eindpunt)
    Set SCH25HID = ThisDrawing.ModelSpace.AddLine(startpunt, eindpunt)
    SCH25VOL.Update
    SCH25HID.Update

    startpunt(1) = Val(.txtDiCo + 1):             eindpunt(1) = Val(.txtDiCo + 1)
    startpunt(2) = Val(.txtH1a) - Val(.txtDiLeg): eindpunt(2) = Val(.txtH1a)
    Set SCH25VOL = ThisDrawing.ModelSpace.AddLine(startpunt, eindpunt)
    Set SCH25HID = ThisDrawing.ModelSpace.AddLine(startpunt, eindpunt)
    SCH25VOL.Update
    SCH25HID.Update
End If
                            'Einde gekozen hoogte 1 vaste legplank (Zonder Tussenstuk)
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''

                            'Begin gekozen hoogte 2 vaste legplanken     (zonder tussenstuk)       OK


If .txtAantVaLeg = 2 Then       'tekent ook nog legplanken op 0,0

If .optZD = True Then
    ThisDrawing.ActiveLayer = ThisDrawing.Layers.Item("SCH25VOL")   '=> zonder deur
End If

If .optED Or .optDD = True Then
    ThisDrawing.ActiveLayer = ThisDrawing.Layers.Item("SCH25HID")   '=> enkele deur of dubbele deur
End If

    startpunt(1) = Val(.txtDiCo + 1):     eindpunt(1) = Val(.txtTBK) - Val(.txtDiCo + 1)
    startpunt(2) = Val(.txtH2a):          eindpunt(2) = Val(.txtH2a)
    Set SCH25VOL = ThisDrawing.ModelSpace.AddLine(startpunt, eindpunt)
    Set SCH25HID = ThisDrawing.ModelSpace.AddLine(startpunt, eindpunt)
    SCH25VOL.Update
    SCH25HID.Update

    startpunt(1) = Val(.txtTBK) - Val(.txtDiCo + 1):    eindpunt(1) = Val(.txtTBK) - Val(.txtDiCo + 1)
    startpunt(2) = Val(.txtH2a):                      eindpunt(2) = Val(.txtH2a) - Val(.txtDiLeg)
    Set SCH25VOL = ThisDrawing.ModelSpace.AddLine(startpunt, eindpunt)
    Set SCH25HID = ThisDrawing.ModelSpace.AddLine(startpunt, eindpunt)
    SCH25VOL.Update
    SCH25HID.Update

    startpunt(1) = Val(.txtTBK) - Val(.txtDiCo + 1):        eindpunt(1) = Val(.txtDiCo + 1)
    startpunt(2) = Val(.txtH2a) - Val(.txtDiLeg): eindpunt(2) = Val(.txtH2a) - Val(.txtDiLeg)
    Set SCH25VOL = ThisDrawing.ModelSpace.AddLine(startpunt, eindpunt)
    Set SCH25HID = ThisDrawing.ModelSpace.AddLine(startpunt, eindpunt)
    SCH25VOL.Update
    SCH25HID.Update

    startpunt(1) = Val(.txtDiCo + 1):             eindpunt(1) = Val(.txtDiCo + 1)
    startpunt(2) = Val(.txtH2a) - Val(.txtDiLeg): eindpunt(2) = Val(.txtH2a)
    Set SCH25VOL = ThisDrawing.ModelSpace.AddLine(startpunt, eindpunt)
    Set SCH25HID = ThisDrawing.ModelSpace.AddLine(startpunt, eindpunt)
    SCH25VOL.Update
    SCH25HID.Update
End If
'                            Einde gekozen hoogte 2 vaste legplanken (Zonder Tussenstuk)
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'
'                            Begin gekozen hoogte 3 vaste legplanken     (zonder tussenstuk)
If .txtAantVaLeg = 3 Then       'tekent ng 4 legplanken op 0,0

If .optZD = True Then
    ThisDrawing.ActiveLayer = ThisDrawing.Layers.Item("SCH25VOL")   '=> zonder deur
End If

If .optED Or .optDD = True Then
    ThisDrawing.ActiveLayer = ThisDrawing.Layers.Item("SCH25HID")   '=> enkele deur of dubbele deur
End If

    startpunt(1) = Val(.txtDiCo + 1):     eindpunt(1) = Val(.txtTBK) - Val(.txtDiCo + 1)
    startpunt(2) = Val(.txtH3a):          eindpunt(2) = Val(.txtH3a)
    Set SCH25VOL = ThisDrawing.ModelSpace.AddLine(startpunt, eindpunt)
    Set SCH25HID = ThisDrawing.ModelSpace.AddLine(startpunt, eindpunt)
    SCH25VOL.Update
    SCH25HID.Update

    startpunt(1) = Val(.txtTBK) - Val(.txtDiCo + 1):    eindpunt(1) = Val(.txtTBK) - Val(.txtDiCo + 1)
    startpunt(2) = Val(.txtH3a):                      eindpunt(2) = Val(.txtH3a) - Val(.txtDiLeg)
    Set SCH25VOL = ThisDrawing.ModelSpace.AddLine(startpunt, eindpunt)
    Set SCH25HID = ThisDrawing.ModelSpace.AddLine(startpunt, eindpunt)
    SCH25VOL.Update
    SCH25HID.Update

    startpunt(1) = Val(.txtTBK) - Val(.txtDiCo + 1):        eindpunt(1) = Val(.txtDiCo + 1)
    startpunt(2) = Val(.txtH3a) - Val(.txtDiLeg): eindpunt(2) = Val(.txtH3a) - Val(.txtDiLeg)
    Set SCH25VOL = ThisDrawing.ModelSpace.AddLine(startpunt, eindpunt)
    Set SCH25HID = ThisDrawing.ModelSpace.AddLine(startpunt, eindpunt)
    SCH25VOL.Update
    SCH25HID.Update

    startpunt(1) = Val(.txtDiCo + 1):             eindpunt(1) = Val(.txtDiCo + 1)
    startpunt(2) = Val(.txtH3a) - Val(.txtDiLeg): eindpunt(2) = Val(.txtH3a)
    Set SCH25VOL = ThisDrawing.ModelSpace.AddLine(startpunt, eindpunt)
    Set SCH25HID = ThisDrawing.ModelSpace.AddLine(startpunt, eindpunt)
    SCH25VOL.Update
    SCH25HID.Update
End If
'                            Einde gekozen hoogte 3 vaste legplanken (Zonder Tussenstuk)
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'
'                            Begin gekozen hoogte 4 vaste legplanken (zonder tussenstuk)
If .txtAantVaLeg = 4 Then           'tekent ng 2 legplanken op 0,0

If .optZD = True Then
    ThisDrawing.ActiveLayer = ThisDrawing.Layers.Item("SCH25VOL")   '=> zonder deur
End If

If .optED Or .optDD = True Then
    ThisDrawing.ActiveLayer = ThisDrawing.Layers.Item("SCH25HID")   '=> enkele deur of dubbele deur
End If

    startpunt(1) = Val(.txtDiCo + 1):     eindpunt(1) = Val(.txtTBK) - Val(.txtDiCo + 1)
    startpunt(2) = Val(.txtH4a):          eindpunt(2) = Val(.txtH4a)
    Set SCH25VOL = ThisDrawing.ModelSpace.AddLine(startpunt, eindpunt)
    Set SCH25HID = ThisDrawing.ModelSpace.AddLine(startpunt, eindpunt)
    SCH25VOL.Update
    SCH25HID.Update

    startpunt(1) = Val(.txtTBK) - Val(.txtDiCo + 1):    eindpunt(1) = Val(.txtTBK) - Val(.txtDiCo + 1)
    startpunt(2) = Val(.txtH4a):                      eindpunt(2) = Val(.txtH4a) - Val(.txtDiLeg)
    Set SCH25VOL = ThisDrawing.ModelSpace.AddLine(startpunt, eindpunt)
    Set SCH25HID = ThisDrawing.ModelSpace.AddLine(startpunt, eindpunt)
    SCH25VOL.Update
    SCH25HID.Update

    startpunt(1) = Val(.txtTBK) - Val(.txtDiCo + 1):        eindpunt(1) = Val(.txtDiCo + 1)
    startpunt(2) = Val(.txtH4a) - Val(.txtDiLeg): eindpunt(2) = Val(.txtH4a) - Val(.txtDiLeg)
    Set SCH25VOL = ThisDrawing.ModelSpace.AddLine(startpunt, eindpunt)
    Set SCH25HID = ThisDrawing.ModelSpace.AddLine(startpunt, eindpunt)
    SCH25VOL.Update
    SCH25HID.Update

    startpunt(1) = Val(.txtDiCo + 1):             eindpunt(1) = Val(.txtDiCo + 1)
    startpunt(2) = Val(.txtH4a) - Val(.txtDiLeg): eindpunt(2) = Val(.txtH4a)
    Set SCH25VOL = ThisDrawing.ModelSpace.AddLine(startpunt, eindpunt)
    Set SCH25HID = ThisDrawing.ModelSpace.AddLine(startpunt, eindpunt)
    SCH25VOL.Update
    SCH25HID.Update
End If
'                            Einde gekozen hoogte 4 vaste legplanken (Zonder Tussenstuk)
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'
'                            Begin gekozen hoogte 5 vaste legplanken (Zonder tussenstuk)      OK
If .txtAantVaLeg = 5 Then

If .optZD = True Then
    ThisDrawing.ActiveLayer = ThisDrawing.Layers.Item("SCH25VOL")   '=> zonder deur
End If

If .optED Or .optDD = True Then
    ThisDrawing.ActiveLayer = ThisDrawing.Layers.Item("SCH25HID")   '=> enkele deur of dubbele deur
End If

    startpunt(1) = Val(.txtDiCo + 1):     eindpunt(1) = Val(.txtTBK) - Val(.txtDiCo + 1)
    startpunt(2) = Val(.txtH5a):          eindpunt(2) = Val(.txtH5a)
    Set SCH25VOL = ThisDrawing.ModelSpace.AddLine(startpunt, eindpunt)
    Set SCH25HID = ThisDrawing.ModelSpace.AddLine(startpunt, eindpunt)
    SCH25VOL.Update
    SCH25HID.Update

    startpunt(1) = Val(.txtTBK) - Val(.txtDiCo + 1):    eindpunt(1) = Val(.txtTBK) - Val(.txtDiCo + 1)
    startpunt(2) = Val(.txtH5a):                      eindpunt(2) = Val(.txtH5a) - Val(.txtDiLeg)
    Set SCH25VOL = ThisDrawing.ModelSpace.AddLine(startpunt, eindpunt)
    Set SCH25HID = ThisDrawing.ModelSpace.AddLine(startpunt, eindpunt)
    SCH25VOL.Update
    SCH25HID.Update

    startpunt(1) = Val(.txtTBK) - Val(.txtDiCo + 1):        eindpunt(1) = Val(.txtDiCo + 1)
    startpunt(2) = Val(.txtH5a) - Val(.txtDiLeg): eindpunt(2) = Val(.txtH5a) - Val(.txtDiLeg)
    Set SCH25VOL = ThisDrawing.ModelSpace.AddLine(startpunt, eindpunt)
    Set SCH25HID = ThisDrawing.ModelSpace.AddLine(startpunt, eindpunt)
    SCH25VOL.Update
    SCH25HID.Update

    startpunt(1) = Val(.txtDiCo + 1):             eindpunt(1) = Val(.txtDiCo + 1)
    startpunt(2) = Val(.txtH5a) - Val(.txtDiLeg): eindpunt(2) = Val(.txtH5a)
    Set SCH25VOL = ThisDrawing.ModelSpace.AddLine(startpunt, eindpunt)
    Set SCH25HID = ThisDrawing.ModelSpace.AddLine(startpunt, eindpunt)
    SCH25VOL.Update
    SCH25HID.Update
End If
'                            Einde gekozen hoogte 5 vaste legplanken (Zonder Tussenstuk)
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''

'                            Begin gekozen hoogte 6 vaste legplanken (zonder tussenstuk)      OK
If .txtAantVaLeg = 6 Then

If .optZD = True Then
    ThisDrawing.ActiveLayer = ThisDrawing.Layers.Item("SCH25VOL")   '=> zonder deur
End If

If .optED Or .optDD = True Then
    ThisDrawing.ActiveLayer = ThisDrawing.Layers.Item("SCH25HID")   '=> enkele deur of dubbele deur
End If

    startpunt(1) = Val(.txtDiCo + 1):     eindpunt(1) = Val(.txtTBK) - Val(.txtDiCo + 1)
    startpunt(2) = Val(.txtH6a):          eindpunt(2) = Val(.txtH6a)
    Set SCH25VOL = ThisDrawing.ModelSpace.AddLine(startpunt, eindpunt)
    Set SCH25HID = ThisDrawing.ModelSpace.AddLine(startpunt, eindpunt)
    SCH25VOL.Update
    SCH25HID.Update

    startpunt(1) = Val(.txtTBK) - Val(.txtDiCo + 1):    eindpunt(1) = Val(.txtTBK) - Val(.txtDiCo + 1)
    startpunt(2) = Val(.txtH6a):                      eindpunt(2) = Val(.txtH6a) - Val(.txtDiLeg)
    Set SCH25VOL = ThisDrawing.ModelSpace.AddLine(startpunt, eindpunt)
    Set SCH25HID = ThisDrawing.ModelSpace.AddLine(startpunt, eindpunt)
    SCH25VOL.Update
    SCH25HID.Update

    startpunt(1) = Val(.txtTBK) - Val(.txtDiCo + 1):        eindpunt(1) = Val(.txtDiCo + 1)
    startpunt(2) = Val(.txtH6a) - Val(.txtDiLeg): eindpunt(2) = Val(.txtH6a) - Val(.txtDiLeg)
    Set SCH25VOL = ThisDrawing.ModelSpace.AddLine(startpunt, eindpunt)
    Set SCH25HID = ThisDrawing.ModelSpace.AddLine(startpunt, eindpunt)
    SCH25VOL.Update
    SCH25HID.Update

    startpunt(1) = Val(.txtDiCo + 1):             eindpunt(1) = Val(.txtDiCo + 1)
    startpunt(2) = Val(.txtH6a) - Val(.txtDiLeg): eindpunt(2) = Val(.txtH6a)
    Set SCH25VOL = ThisDrawing.ModelSpace.AddLine(startpunt, eindpunt)
    Set SCH25HID = ThisDrawing.ModelSpace.AddLine(startpunt, eindpunt)
    SCH25VOL.Update
    SCH25HID.Update
End If
End If
End If
End With
                  'Einde gekozen hoogte 6 vaste legplanken (Zonder Tussenstuk)
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
End Sub
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan