FastFiber

fout in mijn code

Gestart door Thomy, do 12 03 2009, 11:12:34

Vorige topic - Volgende topic

Thomy

hallo allemaal,

Ik ben mijn programma in apparte sub's aant zetten omdat het te groot is. Nu ben ik op een probleem gestuid. in mijn sub call't hij naar een tekening om deze te subtracten, maar als hij hieropkomt dan springt het helemaal naar het einde van mijn programma. Heb al paar dinges geprobeert. Zelfs ik deze variabele nog eens redim dan springt hij vanaf hier helemaal naar het einde vanhet programma. iemand een idee hoe dit komt?

Groetjes

[table][tr][td]
Sub Tussenregel3(Horaantal3, punt, BrStijlen, Afstand1, BrTussenstijlen, Afstand2, BrOnderregel, Afstand16, BrTussenregel, Dikte, Tussenregel, KopieTussenstijl, KopieRechterstijl, Afstand17, Afstand18, Afstand19)

'ReDim KopieTussenstijl(0 To 2) As Acad3DSolid

    For I = 1 To Horaantal3

'        If I = 1 Then
'        End If

        If I = 2 Then

            Call LijnTussenstijl(punt(0) + BrStijlen + Afstand1 + BrTussenstijlen + Afstand2 + BrTussenstijlen / 2, punt(1), punt(2) + BrOnderregel + Afstand16 + 1.3, punt(0) + BrStijlen + Afstand1 + BrTussenstijlen + Afstand2 + BrTussenstijlen / 2, punt(1), punt(2) + BrOnderregel + Afstand16 + BrTussenregel - 1.3)
            Call LijnTussenstijl(punt(0) + BrStijlen + Afstand1 + BrTussenstijlen + Afstand2 + BrTussenstijlen / 2, punt(1), punt(2) + BrOnderregel + Afstand16 + BrTussenregel - 1.3, punt(0) + BrStijlen + Afstand1 + BrTussenstijlen + Afstand2 + BrTussenstijlen / 2, punt(1) + 0.2, punt(2) + BrOnderregel + Afstand16 + BrTussenregel - 1.3)
            Call LijnTussenstijl(punt(0) + BrStijlen + Afstand1 + BrTussenstijlen + Afstand2 + BrTussenstijlen / 2, punt(1) + 0.2, punt(2) + BrOnderregel + Afstand16 + BrTussenregel - 1.3, punt(0) + BrStijlen + Afstand1 + BrTussenstijlen + Afstand2 + BrTussenstijlen / 2, punt(1) + 0.2, punt(2) + BrOnderregel + Afstand16 + BrTussenregel - 1.1)
            Call LijnTussenstijl(punt(0) + BrStijlen + Afstand1 + BrTussenstijlen + Afstand2 + BrTussenstijlen / 2, punt(1) + 0.2, punt(2) + BrOnderregel + Afstand16 + BrTussenregel - 1.1, punt(0) + BrStijlen + Afstand1 + BrTussenstijlen + Afstand2 + BrTussenstijlen / 2, punt(1) + 1.2, punt(2) + BrOnderregel + Afstand16 + BrTussenregel - 0.2)
            Call LijnTussenstijl(punt(0) + BrStijlen + Afstand1 + BrTussenstijlen + Afstand2 + BrTussenstijlen / 2, punt(1) + 1.2, punt(2) + BrOnderregel + Afstand16 + BrTussenregel - 0.2, punt(0) + BrStijlen + Afstand1 + BrTussenstijlen + Afstand2 + BrTussenstijlen / 2, punt(1) + 1.2, punt(2) + BrOnderregel + Afstand16 + BrTussenregel)
            Call LijnTussenstijl(punt(0) + BrStijlen + Afstand1 + BrTussenstijlen + Afstand2 + BrTussenstijlen / 2, punt(1) + 1.2, punt(2) + BrOnderregel + Afstand16 + BrTussenregel, punt(0) + BrStijlen + Afstand1 + BrTussenstijlen + Afstand2 + BrTussenstijlen / 2, punt(1) + 1.4, punt(2) + BrOnderregel + Afstand16 + BrTussenregel)
            Call LijnTussenstijl(punt(0) + BrStijlen + Afstand1 + BrTussenstijlen + Afstand2 + BrTussenstijlen / 2, punt(1) + 1.4, punt(2) + BrOnderregel + Afstand16 + BrTussenregel, punt(0) + BrStijlen + Afstand1 + BrTussenstijlen + Afstand2 + BrTussenstijlen / 2, punt(1) + 1.4, punt(2) + BrOnderregel + Afstand16 + BrTussenregel - 1.3)
            Call LijnTussenstijl(punt(0) + BrStijlen + Afstand1 + BrTussenstijlen + Afstand2 + BrTussenstijlen / 2, punt(1) + 1.4, punt(2) + BrOnderregel + Afstand16 + BrTussenregel - 1.3, punt(0) + BrStijlen + Afstand1 + BrTussenstijlen + Afstand2 + BrTussenstijlen / 2, punt(1) + 1.9, punt(2) + BrOnderregel + Afstand16 + BrTussenregel - 1.3)
            Call LijnTussenstijl(punt(0) + BrStijlen + Afstand1 + BrTussenstijlen + Afstand2 + BrTussenstijlen / 2, punt(1) + 1.9, punt(2) + BrOnderregel + Afstand16 + BrTussenregel - 1.3, punt(0) + BrStijlen + Afstand1 + BrTussenstijlen + Afstand2 + BrTussenstijlen / 2, punt(1) + 1.9, punt(2) + BrOnderregel + Afstand16 + BrTussenregel)
            Call LijnTussenstijl(punt(0) + BrStijlen + Afstand1 + BrTussenstijlen + Afstand2 + BrTussenstijlen / 2, punt(1) + 1.9, punt(2) + BrOnderregel + Afstand16 + BrTussenregel, punt(0) + BrStijlen + Afstand1 + BrTussenstijlen + Afstand2 + BrTussenstijlen / 2, punt(1) + Dikte, punt(2) + BrOnderregel + Afstand16 + BrTussenregel)
            Call LijnTussenstijl(punt(0) + BrStijlen + Afstand1 + BrTussenstijlen + Afstand2 + BrTussenstijlen / 2, punt(1) + Dikte, punt(2) + BrOnderregel + Afstand16, punt(0) + BrStijlen + Afstand1 + BrTussenstijlen + Afstand2 + BrTussenstijlen / 2, punt(1) + Dikte, punt(2) + BrOnderregel + Afstand16 + BrTussenregel)
            Call LijnTussenstijl(punt(0) + BrStijlen + Afstand1 + BrTussenstijlen + Afstand2 + BrTussenstijlen / 2, punt(1) + Dikte, punt(2) + BrOnderregel + Afstand16, punt(0) + BrStijlen + Afstand1 + BrTussenstijlen + Afstand2 + BrTussenstijlen / 2, punt(1) + 1.9, punt(2) + BrOnderregel + Afstand16)
            Call LijnTussenstijl(punt(0) + BrStijlen + Afstand1 + BrTussenstijlen + Afstand2 + BrTussenstijlen / 2, punt(1) + 1.9, punt(2) + BrOnderregel + Afstand16, punt(0) + BrStijlen + Afstand1 + BrTussenstijlen + Afstand2 + BrTussenstijlen / 2, punt(1) + 1.9, punt(2) + BrOnderregel + Afstand16 + 1.3)
            Call LijnTussenstijl(punt(0) + BrStijlen + Afstand1 + BrTussenstijlen + Afstand2 + BrTussenstijlen / 2, punt(1) + 1.9, punt(2) + BrOnderregel + Afstand16 + 1.3, punt(0) + BrStijlen + Afstand1 + BrTussenstijlen + Afstand2 + BrTussenstijlen / 2, punt(1) + 1.4, punt(2) + BrOnderregel + Afstand16 + 1.3)
            Call LijnTussenstijl(punt(0) + BrStijlen + Afstand1 + BrTussenstijlen + Afstand2 + BrTussenstijlen / 2, punt(1) + 1.4, punt(2) + BrOnderregel + Afstand16 + 1.3, punt(0) + BrStijlen + Afstand1 + BrTussenstijlen + Afstand2 + BrTussenstijlen / 2, punt(1) + 1.4, punt(2) + BrOnderregel + Afstand16)
            Call LijnTussenstijl(punt(0) + BrStijlen + Afstand1 + BrTussenstijlen + Afstand2 + BrTussenstijlen / 2, punt(1) + 1.4, punt(2) + BrOnderregel + Afstand16, punt(0) + BrStijlen + Afstand1 + BrTussenstijlen + Afstand2 + BrTussenstijlen / 2, punt(1) + 1.2, punt(2) + BrOnderregel + Afstand16)
            Call LijnTussenstijl(punt(0) + BrStijlen + Afstand1 + BrTussenstijlen + Afstand2 + BrTussenstijlen / 2, punt(1) + 1.2, punt(2) + BrOnderregel + Afstand16, punt(0) + BrStijlen + Afstand1 + BrTussenstijlen + Afstand2 + BrTussenstijlen / 2, punt(1) + 1.2, punt(2) + BrOnderregel + Afstand16 + 0.2)
            Call LijnTussenstijl(punt(0) + BrStijlen + Afstand1 + BrTussenstijlen + Afstand2 + BrTussenstijlen / 2, punt(1) + 1.2, punt(2) + BrOnderregel + Afstand16 + 0.2, punt(0) + BrStijlen + Afstand1 + BrTussenstijlen + Afstand2 + BrTussenstijlen / 2, punt(1) + 0.2, punt(2) + BrOnderregel + Afstand16 + 1.1)
            Call LijnTussenstijl(punt(0) + BrStijlen + Afstand1 + BrTussenstijlen + Afstand2 + BrTussenstijlen / 2, punt(1) + 0.2, punt(2) + BrOnderregel + Afstand16 + 1.1, punt(0) + BrStijlen + Afstand1 + BrTussenstijlen + Afstand2 + BrTussenstijlen / 2, punt(1) + 0.2, punt(2) + BrOnderregel + Afstand16 + 1.3)
            Call LijnTussenstijl(punt(0) + BrStijlen + Afstand1 + BrTussenstijlen + Afstand2 + BrTussenstijlen / 2, punt(1) + 0.2, punt(2) + BrOnderregel + Afstand16 + 1.3, punt(0) + BrStijlen + Afstand1 + BrTussenstijlen + Afstand2 + BrTussenstijlen / 2, punt(1), punt(2) + BrOnderregel + Afstand16 + 1.3)

            'maakt een regioon vand e getekende lijnen
            Regions = ThisDrawing.ModelSpace.AddRegion(RegionTussenregel)
            Set Reg = Regions(0)

            'extrudeerd de region
            Set Tussenregel(0) = ThisDrawing.ModelSpace.AddExtrudedSolid(Regions(0), Afstand3 + BrTussenstijlen, 0)

            'verwijderd de region
            Reg.Delete

            'substraxt de stijlen van de tussenregels

            Call Tussenregel(0).Boolean(acSubtraction, KopieTussenstijl(1))
            Call Tussenregel(0).Boolean(acSubtraction, KopieTussenstijl(2))
            Call Tussenregel(0).Boolean(acSubtraction, KopieRechterstijl(0))

        End If

        If I = 3 Then

            'spiegelpnt voor de tussenregels.
            SpiegelPnt1(0) = punt(0)
            SpiegelPnt1(1) = punt(1)
            SpiegelPnt1(2) = punt(2) + BrOnderregel + Afstand16 + BrTussenregel + Afstand17 / 2

            SpiegelPnt2(0) = punt(0) + Breedte
            SpiegelPnt2(1) = punt(1)
            SpiegelPnt2(2) = punt(2) + BrOnderregel + Afstand16 + BrTussenregel + Afstand17 / 2

            SpiegelPnt3(0) = punt(0)
            SpiegelPnt3(1) = punt(1) + Dikte
            SpiegelPnt3(2) = punt(2) + BrOnderregel + Afstand16 + BrTussenregel + Afstand17 / 2

            Set Tussenregel(1) = Tussenregel(0).Mirror3D(SpiegelPnt1, SpiegelPnt2, SpiegelPnt3)

        End If

        If I = 4 Then

            SpiegelPnt1(0) = punt(0)
            SpiegelPnt1(1) = punt(1)
            SpiegelPnt1(2) = punt(2) + BrOnderregel + Afstand16 + BrTussenregel + Afstand17 + BrTussenregel + Afstand18 / 2

            SpiegelPnt2(0) = punt(0) + Breedte
            SpiegelPnt2(1) = punt(1)
            SpiegelPnt2(2) = punt(2) + BrOnderregel + Afstand16 + BrTussenregel + Afstand17 + BrTussenregel + Afstand18 / 2

            SpiegelPnt3(0) = punt(0)
            SpiegelPnt3(1) = punt(1) + Dikte
            SpiegelPnt3(2) = punt(2) + BrOnderregel + Afstand16 + BrTussenregel + Afstand17 + BrTussenregel + Afstand18 / 2

            Set Tussenregel(2) = Tussenregel(1).Mirror3D(SpiegelPnt1, SpiegelPnt2, SpiegelPnt3)

        End If

        If I = 5 Then

            SpiegelPnt1(0) = punt(0)
            SpiegelPnt1(1) = punt(1)
            SpiegelPnt1(2) = punt(2) + BrOnderregel + Afstand16 + BrTussenregel + Afstand17 + BrTussenregel + Afstand18 + BrTussenregel + Afstand19 / 2

            SpiegelPnt2(0) = punt(0) + Breedte
            SpiegelPnt2(1) = punt(1)
            SpiegelPnt2(2) = punt(2) + BrOnderregel + Afstand16 + BrTussenregel + Afstand17 + BrTussenregel + Afstand18 + BrTussenregel + Afstand19 / 2

            SpiegelPnt3(0) = punt(0)
            SpiegelPnt3(1) = punt(1) + Dikte
            SpiegelPnt3(2) = punt(2) + BrOnderregel + Afstand16 + BrTussenregel + Afstand17 + BrTussenregel + Afstand18 + BrTussenregel + Afstand19 / 2

            Set Tussenregel(3) = Tussenregel(2).Mirror3D(SpiegelPnt1, SpiegelPnt2, SpiegelPnt3)

        End If

    Next


End Sub
[/table]

EddyBeerke

zoek eens uit welke waarde I heeft in het stukje "If  I = X then..."
Civil3d 2026, Blender 4.x gebruiker
Gebruiker sinds AutoCAD R12

http://eddylucas.c1.biz/
https://www.google.com/maps/contrib/109381066561676463628/photos/

Thomy

I = 1 tot de waarde dat HorAantal heeft.

Thomy

denk wel dat ik een voorlopige verbetereing heb gevonden.

heb gewoon de call om te subtracten (waar hij verspringt) in de sub tekenen gezet (sub die waarin de sub tusseregel wordt opgeroepen). andere oplossing vind ik niet op de moment niet.

Mvg

EddyBeerke

Citaat van: EddyBeerke op do 12 03 2009, 11:23:59
zoek eens uit welke waarde I heeft in het stukje "If  I = X then..."

'k heb niet goed gekeken.
Er zit ook nog een stukje (vóór de "If I = ...") "For I = 1 To Horaantal3".
Als eerste gaat vba deze "FOR" door lopen en gaat dan naar de "NEXT" die aan het einde staat.
Dan opnieuw tot "Horaantal3"
Probeer eens "For I = 1 To Horaantal3 + 1"
Civil3d 2026, Blender 4.x gebruiker
Gebruiker sinds AutoCAD R12

http://eddylucas.c1.biz/
https://www.google.com/maps/contrib/109381066561676463628/photos/

Thomy

hej

heb net geprobeert met die calls even in commentaar gezet en dan werkt het wel.
dus de fout zit bij die
Call Tussenregel(0).Boolean(acSubtraction, KopieTussenstijl(1))
            Call Tussenregel(0).Boolean(acSubtraction, KopieTussenstijl(2))
            Call Tussenregel(0).Boolean(acSubtraction, KopieRechterstijl(0))

Thomy

hej

Heb net geprobeert met de call tussenregel... in comentaar. en nu werkt het wel.
dus de fout zit bij die calls

   Call Tussenregel(0).Boolean(acSubtraction, KopieTussenstijl(1))
            Call Tussenregel(0).Boolean(acSubtraction, KopieTussenstijl(2))
            Call Tussenregel(0).Boolean(acSubtraction, KopieRechterstijl(0))   


dus hier zit ergens de fout misch dat hij dit niet kan call'en ofzo.

mvg

FastFiber