hallo
kheb hier bijna 2 dezelfde sub's enigste verschil is de afstadnen waarmee het werkt. nu mijn probleem is dat de eerste Sub werkt en de 2de tekent hij alleen maar tot de region. denk dat het een fout is bij mijn Sub naam Tussen de haakjes) maar vind de fout niet.
mvg
thomy
Sub dat werkt.
Sub verstek3(punt, BrStijlen, Afstand1, BrTussenstijlen, Afstand2, BrOnderregel, Afstand3, Afstand21, HorAantal4, Afstand22, Afstand23, Afstand24, Afstand25, Tussenstijl, Linkerstijl)
ReDim verstek(0 To 7) As Acad3DSolid
'Gebied4
'zet couter terug op 1
Counter = -1
Call LijnVerstek(punt(0) + BrStijlen + Afstand1 + BrTussenstijlen + Afstand2 + BrTussenstijlen + Afstand3 + BrTussenstijlen, punt(1), punt(2) + BrOnderregel + Afstand21, punt(0) + BrStijlen + Afstand1 + BrTussenstijlen + Afstand2 + BrTussenstijlen + Afstand3 + BrTussenstijlen - 1.3, punt(1), punt(2) + BrOnderregel + Afstand21 + 1.3)
Call LijnVerstek(punt(0) + BrStijlen + Afstand1 + BrTussenstijlen + Afstand2 + BrTussenstijlen + Afstand3 + BrTussenstijlen - 1.3, punt(1), punt(2) + BrOnderregel + Afstand21 + 1.3, punt(0) + BrStijlen + Afstand1 + BrTussenstijlen + Afstand2 + BrTussenstijlen + Afstand3 + BrTussenstijlen - 1.3, punt(1), punt(2) + BrOnderregel + Afstand21 + BrTussenregel - 1.3)
Call LijnVerstek(punt(0) + BrStijlen + Afstand1 + BrTussenstijlen + Afstand2 + BrTussenstijlen + Afstand3 + BrTussenstijlen - 1.3, punt(1), punt(2) + BrOnderregel + Afstand21 + BrTussenregel - 1.3, punt(0) + BrStijlen + Afstand1 + BrTussenstijlen + Afstand2 + BrTussenstijlen + Afstand3 + BrTussenstijlen, punt(1), punt(2) + BrOnderregel + Afstand21 + BrTussenregel)
Call LijnVerstek(punt(0) + BrStijlen + Afstand1 + BrTussenstijlen + Afstand2 + BrTussenstijlen + Afstand3 + BrTussenstijlen, punt(1), punt(2) + BrOnderregel + Afstand21 + BrTussenregel, punt(0) + BrStijlen + Afstand1 + BrTussenstijlen + Afstand2 + BrTussenstijlen + Afstand3 + BrTussenstijlen, punt(1), punt(2) + BrOnderregel + Afstand21)
'maakt een region van de getekende lijnen
Regions = ThisDrawing.ModelSpace.AddRegion(RegionVerstek)
Set Reg = Regions(0)
'extrudeerd de region
Set verstek(0) = ThisDrawing.ModelSpace.AddExtrudedSolid(Regions(0), Dikte, 0)
'delete de region
Reg.Delete
'kopieren van het verstek
For A = 0 To HorAantal4 - 3
If A = 0 Then
SpiegelPnt1(0) = punt(0)
SpiegelPnt1(1) = punt(1)
SpiegelPnt1(2) = punt(2) + BrOnderregel + Afstand21 + BrTussenregel + Afstand22 / 2
SpiegelPnt2(0) = punt(0) + Breedte
SpiegelPnt2(0) = punt(1)
SpiegelPnt2(2) = punt(2) + BrOnderregel + Afstand21 + BrTussenregel + Afstand22 / 2
SpiegelPnt3(0) = punt(0)
SpiegelPnt3(1) = punt(1) + Dikte
SpiegelPnt3(2) = punt(2) + BrOnderregel + Afstand21 + BrTussenregel + Afstand22 / 2
Set verstek(1) = verstek(0).Mirror3D(SpiegelPnt1, SpiegelPnt2, SpiegelPnt3)
End If
If A = 1 Then
SpiegelPnt1(0) = punt(0)
SpiegelPnt1(1) = punt(1)
SpiegelPnt1(2) = punt(2) + BrOnderregel + Afstand21 + BrTussenregel + Afstand22 + BrTussenregel + Afstand23 / 2
SpiegelPnt2(0) = punt(0) + Breedte
SpiegelPnt2(1) = punt(1)
SpiegelPnt2(2) = punt(2) + BrOnderregel + Afstand21 + BrTussenregel + Afstand22 + BrTussenregel + Afstand23 / 2
SpiegelPnt3(0) = punt(0)
SpiegelPnt3(1) = punt(1) + Dikte
SpiegelPnt3(2) = punt(2) + BrOnderregel + Afstand21 + BrTussenregel + Afstand22 + BrTussenregel + Afstand23 / 2
Set verstek(2) = verstek(1).Mirror3D(SpiegelPnt1, SpiegelPnt2, SpiegelPnt3)
End If
If A = 2 Then
SpiegelPnt1(0) = punt(0)
SpiegelPnt1(1) = punt(1)
SpiegelPnt1(2) = punt(2) + BrOnderregel + Afstand21 + BrTussenregel + Afstand22 + BrTussenregel + Afstand23 + BrTussenregel + Afstand24 / 2
SpiegelPnt2(0) = punt(0) + Breedte
SpiegelPnt2(1) = punt(1)
SpiegelPnt2(2) = punt(2) + BrOnderregel + Afstand21 + BrTussenregel + Afstand22 + BrTussenregel + Afstand23 + BrTussenregel + Afstand24 / 2
SpiegelPnt3(0) = punt(0)
SpiegelPnt3(1) = punt(1) + Dikte
SpiegelPnt3(2) = punt(2) + BrOnderregel + Afstand21 + BrTussenregel + Afstand22 + BrTussenregel + Afstand23 + BrTussenregel + Afstand24 / 2
Set verstek(3) = verstek(2).Mirror3D(SpiegelPnt1, SpiegelPnt2, SpiegelPnt3)
End If
Next
'spiegelpnten vor het verstek te kopieren naar de ander stijl
SpiegelPnt1(0) = punt(0) + BrStijlen + Afstand1 + BrTussenstijlen + Afstand2 + BrTussenstijlen + Afstand3 + BrTussenstijlen + Afstand4 / 3
SpiegelPnt1(1) = punt(1)
SpiegelPnt1(2) = punt(2)
SpiegelPnt2(0) = punt(0) + BrStijlen + Afstand1 + BrTussenstijlen + Afstand2 + BrTussenstijlen + Afstand3 + BrTussenstijlen + Afstand4 / 2
SpiegelPnt2(1) = punt(1) + Dikte
SpiegelPnt2(2) = punt(2)
SpiegelPnt3(0) = punt(0) + BrStijlen + Afstand1 + BrTussenstijlen + Afstand2 + BrTussenstijlen + Afstand3 + BrTussenstijlen + Afstand4 / 2
SpiegelPnt3(1) = punt(1)
SpiegelPnt3(2) = punt(2) + Hoogte
Set verstek(4) = verstek(0).Mirror3D(SpiegelPnt1, SpiegelPnt2, SpiegelPnt3)
Set verstek(5) = verstek(1).Mirror3D(SpiegelPnt1, SpiegelPnt2, SpiegelPnt3)
Set verstek(6) = verstek(2).Mirror3D(SpiegelPnt1, SpiegelPnt2, SpiegelPnt3)
Set verstek(7) = verstek(3).Mirror3D(SpiegelPnt1, SpiegelPnt2, SpiegelPnt3)
Call Tussenstijl(2).Boolean(acSubtraction, verstek(0))
Call Tussenstijl(2).Boolean(acSubtraction, verstek(1))
Call Tussenstijl(2).Boolean(acSubtraction, verstek(2))
Call Tussenstijl(2).Boolean(acSubtraction, verstek(3))
Call Tussenstijl(3).Boolean(acSubtraction, verstek(4))
Call Tussenstijl(3).Boolean(acSubtraction, verstek(5))
Call Tussenstijl(3).Boolean(acSubtraction, verstek(6))
Call Tussenstijl(3).Boolean(acSubtraction, verstek(7))
End Sub
sub met fout
Sub verstek4(punt, BrStijlen, Afstand1, BrTussenstijlen, Afstand2, Afstand3, Afstand4, BrOnderregel, BrTussenregel, Afsatnd26, HorAantal5, Afstand27, Afstand28, Afstand29, Afstand30, Tussenstijl, Linkerstijl)
ReDim verstek(0 To 7) As Acad3DSolid
'gebied 5
'zet counter terug op 1
Counter = -1
Call LijnVerstek(punt(0) + BrStijlen + Afstand1 + BrTussenstijlen + Afstand2 + BrTussenstijlen + Afstand3 + BrTussenstijlen + Afstand4 + BrTussenstijlen, punt(1), punt(2) + BrOnderregel + Afstand26, punt(0) + BrStijlen + Afstand1 + BrTussenstijlen + Afstand2 + BrTussenstijlen + Afstand3 + BrTussenstijlen + Afstand4 + BrTussenstijlen - 1.3, punt(1), punt(2) + BrOnderregel + Afstand26 + 1.3)
Call LijnVerstek(punt(0) + BrStijlen + Afstand1 + BrTussenstijlen + Afstand2 + BrTussenstijlen + Afstand3 + BrTussenstijlen + Afstand4 + BrTussenstijlen - 1.3, punt(1), punt(2) + BrOnderregel + Afstand26 + 1.3, punt(0) + BrStijlen + Afstand1 + BrTussenstijlen + Afstand2 + BrTussenstijlen + Afstand3 + BrTussenstijlen + Afstand4 + BrTussenstijlen - 1.3, punt(1), punt(2) + BrOnderregel + Afstand26 + BrTussenregel - 1.3)
Call LijnVerstek(punt(0) + BrStijlen + Afstand1 + BrTussenstijlen + Afstand2 + BrTussenstijlen + Afstand3 + BrTussenstijlen + Afstand4 + BrTussenstijlen - 1.3, punt(1), punt(2) + BrOnderregel + Afstand26 + BrTussenregel - 1.3, punt(0) + BrStijlen + Afstand1 + BrTussenstijlen + Afstand2 + BrTussenstijlen + Afstand3 + BrTussenstijlen + Afstand4 + BrTussenstijlen, punt(1), punt(2) + BrOnderregel + Afstand26 + BrTussenregel)
Call LijnVerstek(punt(0) + BrStijlen + Afstand1 + BrTussenstijlen + Afstand2 + BrTussenstijlen + Afstand3 + BrTussenstijlen + Afstand4 + BrTussenstijlen, punt(1), punt(2) + BrOnderregel + Afstand26 + BrTussenregel, punt(0) + BrStijlen + Afstand1 + BrTussenstijlen + Afstand2 + BrTussenstijlen + Afstand3 + BrTussenstijlen + Afstand4 + BrTussenstijlen, punt(1), punt(2) + BrOnderregel + Afstand26)
'maakt een regeion van de getekende lijnen
Regions = ThisDrawing.ModelSpace.AddRegion(RegionVerstek)
Set Reg = Region(0)
'extrudeerd de region
Set verstek(0) = ThisDrawing.ModelSpace.AddExtrudedSolid(Regions(0), Dikte, 0)
'kopieren van verstek
For A = 0 To HorAantal5 - 3
If A = 0 Then
SpiegelPnt1(0) = punt(0)
SpiegelPnt1(1) = punt(1)
SpiegelPnt1(2) = punt(2) + BrOnderregel + Afstand26 + BrTussenregel + Afstand27 / 2
SpiegelPnt2(0) = punt(0) + Breedte
SpiegelPnt2(1) = punt(1)
SpiegelPnt2(2) = punt(2) + BrOnderregel + Afstand26 + BrTussenregel + Afstand27 / 2
SpiegelPnt3(0) = punt(0)
SpiegelPnt3(1) = punt(1) + Dikte
SpiegelPnt3(2) = punt(2) + BrOnderregel + Afstand26 + BrTussenregel + Afstand27 / 2
Set verstek(1) = verstek(0).Mirror3D(SpiegelPnt1, SpiegelPnt2, SpiegelPnt3)
End If
If A = 1 Then
SpiegelPnt1(0) = punt(0)
SpiegelPnt1(1) = punt(1)
SpiegelPnt1(2) = punt(2) + BrOnderregel + Afstand26 + BrTussenregel + Afstand27 + BrTussenregel + Afstand28 / 2
SpiegelPnt2(0) = punt(0) + Breedte
SpiegelPnt2(1) = punt(1)
SpiegelPnt2(2) = punt(2) + BrOnderregel + Afstand26 + BrTussenregel + Afstand27 + BrTussenregel + Afstand28 / 2
SpiegelPnt3(0) = punt(0)
SpiegelPnt3(1) = punt(1) + Dikte
SpiegelPnt3(2) = punt(2) + BrOnderregel + Afstand26 + BrTussenregel + Afstand27 + BrTussenregel + Afstand28 / 2
Set verstek(2) = verstek(1).Mirror3D(SpiegelPnt1, SpiegelPnt2, SpiegelPnt3)
End If
If A = 2 Then
SpiegelPnt1(0) = punt(0)
SpiegelPnt1(1) = punt(1)
SpiegelPnt1(2) = punt(2) + BrOnderregel + Afstand26 + BrTussenregel + aafstand27 + BrTussenregel + Afstand28 + BrTussenregel + Afstand29 / 2
SpiegelPnt2(0) = punt(0) + Breedte
SpiegelPnt2(1) = punt(1)
SpiegelPnt2(2) = punt(2) + BrOnderregel + Afstand26 + BrTussenregel + Afstand27 + BrTussenregel + Afstand28 + BrTussenregel + Afstand29 / 2
SpiegelPnt3(0) = punt(0)
SpiegelPnt3(1) = punt(1) + Dikte
SpiegelPnt3(2) = punt(2) + BrOnderregel + Afstand26 + BrTussenregel + Afstand27 + BrTussenregel + Afstand28 + BrTussenregel + Afstand29 / 2
Set verstek(3) = verstek(2).Mirror3D(SpiegelPnt1, SpiegelPnt2, SpiegelPnt3)
End If
Next
'spiegelt het verstek naar andere stijl
SpiegelPnt1(0) = punt(0) + BrStijlen + Afstand1 + BrTussenstijlen + Afstand2 + BrTussenstijlen + Afstand3 + BrTussenstijlen + Afstand4 + BrTussenstijlen + Afstand5 / 2
SpiegelPnt1(1) = punt(1)
SpiegelPnt1(2) = punt(2)
SpiegelPnt2(0) = punt(0) + BrStijlen + Afstand1 + BrTussenstijlen + Afstand2 + BrTussenstijlen + Afstand3 + BrTussenstijlen + Afstand4 + BrTussenstijlen + Afstand5 / 2
SpiegelPnt2(1) = punt(1) + Breedte
SpiegelPnt2(2) = punt(2)
SpiegelPnt3(0) = punt(0) + BrStijlen + Afstand1 + BrTussenstijlen + Afstand2 + BrTussenstijlen + Afstand3 + BrTussenstijlen + Afstand4 + BrTussenstijlen + Afstand5 / 2
SpiegelPnt3(1) = punt(1)
SpiegelPnt3(2) = punt(2) + Hoogte
Set verstek(4) = verstek(0).Mirror3D(SpiegelPnt1, SpiegelPnt2, SpiegelPnt3)
Set verstek(5) = verstek(1).Mirror3D(SpiegelPnt1, SpiegelPnt2, SpiegelPnt3)
Set verstek(6) = verstek(2).Mirror3D(SpiegelPnt1, SpiegelPnt2, SpiegelPnt3)
Set verstek(7) = verstek(3).Mirror3D(SpiegelPnt1, SpiegelPnt2, SpiegelPnt3)
Call Tussenstijl(3).Boolean(acSubtraction, verstek(0))
Call Tussenstijl(3).Boolean(acSubtraction, verstek(1))
Call Tussenstijl(3).Boolean(acSubtraction, verstek(2))
Call Tussenstijl(3).Boolean(acSubtraction, verstek(3))
'delete de region
Reg.Delete
End Sub
Welke melding krijg je?
krijg geen foutmelding. hij verspringt gewoon verder naar het einde van het programma of naar de volgende regel na de call van deze SUB.
groeten
Is dit goed dat je de "Counter" op -1 zet ipv 1?
'zet counter terug op 1
Counter = -1
Kan het zijn dat "A" < 0 is (minder dan)
For A = 0 To HorAantal5 - 3
If A = 0 Then
...
Ã"f...
Zit er een code in het andere deel van het programma zoals:
On Error Resume Next
hej,
ik heb het opgelost was inderdaad een fout bij mijn A.
Nu werkt dit terug :d
Mercie