Funkcjonować if, then, elseIf (Makro Solidworks)

Cze wszystkim

Nie mam żadnego przeszkolenia z API, ale muszę stworzyć kod, który pozwoli nam, poprzez wpisanie referencji osi, zbudować ją do odpowiednich wymiarów itp

Skończyłem już ten kod, ale gdy klient Ø wynosi < 6,35, mamy ramię Ø6,35 na 0,5 mm.

A jeśli jest większa lub równa 6,35, zamiast ramienia mamy klienta Ø na długości klienta

Już tego próbowałem, ale nadal daje mi to ramię:

Jeżeli O < 6,35, to

Set sksegment = Part.SketchManager.CreateCircleByRadius(0, 0, 0, Diam / 2) 'Wymiary okręgu (Ø)+ pozycja

Set sksegment = Part.FeatureManager.FeatureExtrusion2(Prawda, Fałsz, Fałsz, 0, 0, 0.5 / 1000, 0.01, Fałsz, Fałsz, Fałsz, Fałsz, 0.01745329251994, 0.01745329251994, Fałsz, Fałsz, Fałsz, Fałsz, 1, 1, 1, 0, 0, Fałsz)

boolstatus = Part.Extension.SelectByID2("Plan4", "PŁASZCZYZNA", 0, 0, 0, Fałsz, 0, Nic, 0) 'Utworzono plan, a następnie z niego wyciągnięto
Part.CreatePlaneAtOffset3 0.5/1000, False, True 'Odległości są definiowane przez 1. długość
Part.ClearSelection2 Prawda
boolstatus = Part.Extension.SelectByID2("Plan5", "PŁASZCZYZNA", 0, 0, 0, Fałsz, 0, Nic, 0)

Ustaw sksegment = Part.SketchManager.CreateCircleByRadius(0, 0, 0, O / 2) 'Wymiary okręgu (Ø)+ Pozycja

Set sksegment = Part.FeatureManager.FeatureExtrusion2(Prawda, Fałsz, Fałsz, 0, 0, M - 0.7 / 1000, 0.01, Fałsz, Fałsz, Fałsz, Fałsz, Fałsz, 0.01745329251994, 0.01745329251994, Fałsz, Fałsz, Fałsz, Fałsz, 1, 1, 1, 0, 0, Fałsz)

boolstatus = Part.Extension.SelectByID2("Plan5", "PŁASZCZYZNA", 0, 0, 0, Fałsz, 0, Nic, 0) 'Utworzono plan, a następnie z niego wyciągnięto
Part.CreatePlaneAtOffset3 M - 0.7/1000, False, True 'Odległości są definiowane przez 1. długość
Part.ClearSelection2 Prawda
boolstatus = Part.Extension.SelectByID2("Plan6", "PŁASZCZYZNA", 0, 0, 0, Fałsz, 0, Nic, 0)


Ustaw sksegment = Part.SketchManager.CreateCircleByRadius(0, 0, 0, O/2)
Part.ClearSelection2 Prawda
boolstatus = Part.Extension.SelectByID2("Plan6", "PŁASZCZYZNA", 0, 0, 0, Fałsz, 0, Nic, 0)
Part.SketchManager.InsertSketch Prawda
boolstatus = Part.Extension.SelectByID2("Plan6", "PŁASZCZYZNA", 0, 0, 0, Fałsz, 0, Nic, 0)
 

 

ElseIf O >= 6.35 to

Ustaw sksegment = Part.SketchManager.CreateCircleByRadius(0, 0, 0, O / 2) 'Wymiary okręgu (Ø)+ Pozycja

Set sksegment = Part.FeatureManager.FeatureExtrusion2(Prawda, Fałsz, Fałsz, 0, 0, M - 0.7 / 1000, 0.01, Fałsz, Fałsz, Fałsz, Fałsz, Fałsz, 0.01745329251994, 0.01745329251994, Fałsz, Fałsz, Fałsz, Fałsz, 1, 1, 1, 0, 0, Fałsz)

boolstatus = Part.Extension.SelectByID2("Plan4", "PŁASZCZYZNA", 0, 0, 0, Fałsz, 0, Nic, 0) 'Utworzono plan, a następnie z niego wyciągnięto
Part.CreatePlaneAtOffset3 M - 0.7/1000, False, True 'Odległości są definiowane przez 1. długość
Part.ClearSelection2 Prawda
boolstatus = Part.Extension.SelectByID2("Plan5", "PŁASZCZYZNA", 0, 0, 0, Fałsz, 0, Nic, 0)

Ustaw sksegment = Part.SketchManager.CreateCircleByRadius(0, 0, 0, O/2)
Part.ClearSelection2 Prawda
boolstatus = Part.Extension.SelectByID2("Plan5", "PŁASZCZYZNA", 0, 0, 0, Fałsz, 0, Nic, 0)
Part.SketchManager.InsertSketch Prawda
boolstatus = Part.Extension.SelectByID2("Plan5", "PŁASZCZYZNA", 0, 0, 0, Fałsz, 0, Nic, 0)
 

 

Zakończ jeżeli:

Jeśli ktoś ma rozwiązanie, jestem do dyspozycji.

Serdeczne pozdrowienia

Witam Czy makro zostało wdrożone krok po kroku, aby sprawdzić jego zachowanie? Jeśli nikt ci dzisiaj nie odpowie, zajrzę jutro, ponieważ w mycdday więc nie ma dostępnego komputera.
1 polubienie

Kiedy robię to krok po kroku, on i tak przechodzi przez linię, na której znajduje się konstrukcja barku i robi to ze mną

W rezultacie mi się udało, ale nadal mam problem, który wiąże się z tą funkcją.

Umieściłem w tekście mojego kodu część, która "mnoży" skalę przez dwa, ponieważ gdy jest ona w skali 1:1, nie da się rozróżnić wymiarów.

Chciałbym, aby ten fragment kodu był aktywowany tylko wtedy, gdy skala jest w 1:1 i nie wiem jak to napisać w VBA

Witam, dla skali rysunku możesz przejrzeć swój temat kilka makr gdzie podałem Ci link do pomocy api na skali arkusza