Funktion if, dann, elseIf (Solidworks Makro)

Hallo ihr alle

Ich habe keine Ausbildung in APIs, aber ich muss einen Code erstellen, der es uns ermöglicht, durch Eingabe der Referenz einer Achse sie auf die richtigen Abmessungen usw. zu erstellen

Ich habe diesen Code bereits fertiggestellt, aber wenn der Kunden-Ø < 6,35 beträgt, haben wir eine Schulter von Ø6,35 x 0,5 mm.

Und wenn sie größer oder gleich 6,35 ist, haben wir anstelle der Schulter den Kunden-Ø auf der Kundenlänge

Ich habe das schon ausprobiert, aber es gibt mir jetzt immer noch eine Schulter:

Wenn O < 6.35 Uhr, dann

Set sksegment = Part.SketchManager.CreateCircleByRadius(0, 0, 0, Diam / 2) 'Kreisabmessungen (Ø)+ Position

Set sksegment = Part.FeatureManager.FeatureExtrusion2(True, False, False, 0, 0, 0.5 / 1000, 0.01, False, False, False, False, 0.01745329251994, 0.01745329251994, False, False, False, False, 1, 1, 1, 0, 0, False)

boolstatus = Part.Extension.SelectByID2("Plan4", "PLANE", 0, 0, 0, False, 0, Nothing, 0) 'Einen Plan erstellt und dann daraus extrudiert
Part.CreatePlaneAtOffset3 0.5/1000, False, True 'Abstände werden durch die 1. Länge definiert
Part.ClearSelection2 Wahr
boolstatus = Part.Extension.SelectByID2("Plan5", "PLANE", 0, 0, 0, Falsch, 0, Nichts, 0)

Set sksegment = Part.SketchManager.CreateCircleByRadius(0, 0, 0, O / 2) 'Kreisabmessungen (Ø)+ Position

Set sksegment = Part.FeatureManager.FeatureExtrusion2(True, False, False, 0, 0, M - 0.7 / 1000, 0.01, False, False, False, False, 0.01745329251994, 0.01745329251994, False, False, False, False, 1, 1, 1, 0, 0, False)

boolstatus = Part.Extension.SelectByID2("Plan5", "PLANE", 0, 0, 0, False, 0, Nothing, 0) 'Einen Plan erstellt und dann daraus extrudiert
Part.CreatePlaneAtOffset3 M - 0.7/1000, False, True 'Abstände werden durch die 1. Länge definiert
Part.ClearSelection2 Wahr
boolstatus = Part.Extension.SelectByID2("Plan6", "PLANE", 0, 0, 0, Falsch, 0, Nichts, 0)


Set sksegment = Part.SketchManager.CreateCircleByRadius(0, 0, 0, O/2)
Part.ClearSelection2 Wahr
boolstatus = Part.Extension.SelectByID2("Plan6", "PLANE", 0, 0, 0, Falsch, 0, Nichts, 0)
Part.SketchManager.InsertSketch True
boolstatus = Part.Extension.SelectByID2("Plan6", "PLANE", 0, 0, 0, Falsch, 0, Nichts, 0)
 

 

ElseIf O >= 6,35 dann

Set sksegment = Part.SketchManager.CreateCircleByRadius(0, 0, 0, O / 2) 'Kreisabmessungen (Ø)+ Position

Set sksegment = Part.FeatureManager.FeatureExtrusion2(True, False, False, 0, 0, M - 0.7 / 1000, 0.01, False, False, False, False, 0.01745329251994, 0.01745329251994, False, False, False, False, 1, 1, 1, 0, 0, False)

boolstatus = Part.Extension.SelectByID2("Plan4", "PLANE", 0, 0, 0, False, 0, Nothing, 0) 'Einen Plan erstellt und dann daraus extrudiert
Part.CreatePlaneAtOffset3 M - 0.7/1000, False, True 'Abstände werden durch die 1. Länge definiert
Part.ClearSelection2 Wahr
boolstatus = Part.Extension.SelectByID2("Plan5", "PLANE", 0, 0, 0, Falsch, 0, Nichts, 0)

Set sksegment = Part.SketchManager.CreateCircleByRadius(0, 0, 0, O/2)
Part.ClearSelection2 Wahr
boolstatus = Part.Extension.SelectByID2("Plan5", "PLANE", 0, 0, 0, Falsch, 0, Nichts, 0)
Part.SketchManager.InsertSketch True
boolstatus = Part.Extension.SelectByID2("Plan5", "PLANE", 0, 0, 0, Falsch, 0, Nichts, 0)
 

 

Ende, wenn

Wenn jemand eine Lösung hat, bin ich ganz Ohr.

Herzliche Grüße

Hallo Haben Sie Ihr Makro Schritt für Schritt ausgerollt, um das Verhalten zu überprüfen? Wenn dir heute keiner antwortet, schaue ich morgen mal nach, denn am mycdday ist also kein PC verfügbar.
1 „Gefällt mir“

Wenn ich es Schritt für Schritt mache, geht er immer noch über die Linie, wo die Konstruktion der Schulter ist und macht es mit mir

Das ist mir gelungen, aber ich habe immer noch ein Problem, das diese Funktion betrifft.

Ich habe in meinen Codetext einen Teil eingefügt, der die Skala mit zwei "multipliziert", denn wenn es sich um einen Maßstab von 1:1 handelt, ist es unmöglich, die Dimensionen zu unterscheiden.

Ich möchte, dass dieser Code nur aktiviert wird, wenn die Skala 1:1 ist, und ich weiß nicht, wie ich ihn in VBA schreiben soll

Hallo, für den Maßstab der Zeichnung können Sie Ihr Thema einige Makros überprüfen, bei denen ich Ihnen den Link zur Hilfe der API auf sheetscale gegeben habe