Functie als, dan, elseIf (Solidworks Macro)

Hoi allemaal

Ik heb geen training in API's, maar ik moet een code maken waarmee we, door de referentie van een as in te voeren, deze op de juiste afmetingen kunnen bouwen, enz

Ik heb deze code al af, maar als de klant-Ø < 6,35 is, hebben we een schouder van Ø6,35 bij 0,5 mm.

En als het groter is dan of gelijk is aan 6,35, hebben we in plaats van de schouder de klant-Ø op de klantlengte

Ik heb dit al geprobeerd, maar het geeft me nu nog steeds een schouder:

Als O < 6,35 dan

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

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

boolstatus = Part.Extension.SelectByID2("Plan4", "PLANE", 0, 0, 0, False, 0, Nothing, 0) 'Een plan gemaakt en er vervolgens uit geëxtrudeerd
Part.CreatePlaneAtOffset3 0.5/1000, False, True 'Afstanden worden gedefinieerd door de 1e lengte
Deel.ClearSelection2 Waar
boolstatus = Part.Extension.SelectByID2("Plan5", "PLANE", 0, 0, 0, False, 0, Nothing, 0)

Stel sksegment in = Part.SketchManager.CreateCircleByRadius(0, 0, 0, O / 2) 'Cirkelafmetingen (Ø)+ Positie

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

boolstatus = Part.Extension.SelectByID2("Plan5", "PLANE", 0, 0, 0, False, 0, Nothing, 0) 'Een plan gemaakt en er vervolgens uit geëxtrudeerd
Part.CreatePlaneAtOffset3 M - 0.7/1000, False, True 'Afstanden worden gedefinieerd door de 1e lengte
Deel.ClearSelection2 Waar
boolstatus = Part.Extension.SelectByID2("Plan6", "PLANE", 0, 0, 0, False, 0, Nothing, 0)


Stel sksegment in = Part.SketchManager.CreateCircleByRadius(0, 0, 0, O/2)
Deel.ClearSelection2 Waar
boolstatus = Part.Extension.SelectByID2("Plan6", "PLANE", 0, 0, 0, False, 0, Nothing, 0)
Deel.SketchManager.InsertSketch Waar
boolstatus = Part.Extension.SelectByID2("Plan6", "PLANE", 0, 0, 0, False, 0, Nothing, 0)
 

 

ElseIf O >= 6.35 Dan

Stel sksegment in = Part.SketchManager.CreateCircleByRadius(0, 0, 0, O / 2) 'Cirkelafmetingen (Ø)+ Positie

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

boolstatus = Part.Extension.SelectByID2("Plan4", "PLANE", 0, 0, 0, False, 0, Nothing, 0) 'Een plan gemaakt en er vervolgens uit geëxtrudeerd
Part.CreatePlaneAtOffset3 M - 0.7/1000, False, True 'Afstanden worden gedefinieerd door de 1e lengte
Deel.ClearSelection2 Waar
boolstatus = Part.Extension.SelectByID2("Plan5", "PLANE", 0, 0, 0, False, 0, Nothing, 0)

Stel sksegment in = Part.SketchManager.CreateCircleByRadius(0, 0, 0, O/2)
Deel.ClearSelection2 Waar
boolstatus = Part.Extension.SelectByID2("Plan5", "PLANE", 0, 0, 0, False, 0, Nothing, 0)
Deel.SketchManager.InsertSketch Waar
boolstatus = Part.Extension.SelectByID2("Plan5", "PLANE", 0, 0, 0, False, 0, Nothing, 0)
 

 

Einde als

Als iemand een oplossing heeft, ben ik een en al oor.

Oprechte groeten

Hallo Heb je je macro stap voor stap uitgerold om het gedrag te controleren? Als niemand je vandaag antwoordt, zal ik morgen eens kijken, want op mycdday dus geen pc beschikbaar.
1 like

Als ik het stap voor stap doe, gaat hij nog steeds over de lijn waar de constructie van de schouder zit en doet het bij mij

Dat is me gelukt, maar ik heb nog steeds een probleem met deze functie.

Ik heb in mijn codetekst een deel gezet dat de schaal met twee "vermenigvuldigt", want als het op een schaal van 1:1 is, is het onmogelijk om de afmetingen te onderscheiden.

Ik zou graag willen dat dit stukje code alleen wordt geactiveerd als de schaal in 1:1 is en ik weet niet hoe ik het in VBA moet schrijven

Hallo, voor de schaal van de tekening, kunt u uw onderwerp bekijken aantal macro's waar ik je de link gaf naar de hulp van de api op sheetscale