Hallo
voor een project moet ik een SolidWorks-macro maken om een bepaalde taak te automatiseren. Tot nu toe is het me gelukt om de onderdelen automatisch te maken en in een assemblage te monteren.
Toch zit ik nu met een probleem: ik moet de onderdelen met beperkingen aan elkaar koppelen. Dus ik probeer het automatisch te doen. Hier is de code:
Dim swApp als object
Deel dimmen als object
Dim boolstatus als Booleaanse
Dim longstatus As Long, longwarnings As Long
Sub hoofd()
Stel swApp = Toepassing.SldWorks in
Deel instellen = swApp.ActiveDoc
' Stuurman
Deel.ClearSelection2 Waar
boolstatus = Part.Extension.SelectByID2("Verwijderde mat.-Extru.1@disque1-1@Assemblage1", "BODYFEATURE", 0, 0, 0, False, 1, Nothing, 0)
boolstatus = Part.Extension.SelectByID2("Baas.-Extru.6@Pièce1-1@Assemblage1", "BODYFEATURE", 0, 0, 0, True, 1, Niets, 0)
Dim swMate als Mate2
Stel swMate in = Part.AddMate5(1, 0, Onwaar, 3.90150366882658E-02, 0.001, 0.001, 0.001, 0.523598755983, 0.5235987755983, Onwaar, Onwaar, 0, longstatus)
Deel.ClearSelection2 Waar
Deel.BewerkenOpnieuw opbouwen3
Einde Sub
(op twee stukken.)
Het probleem is als volgt:
Wanneer ik de beperking handmatig probeer uit te voeren (dus door de bijbehorende regel in de bovenstaande code te verwijderen), heb ik twee keuzes, afhankelijk van de markeringen die het in mijn code plaatst (de argumenten van de SelectID2-methoden)
- -Als ik marker 0 gebruik, worden de onderdelen niet daadwerkelijk geselecteerd in het beperkingenmenu (screenshot 1)
- - Als ik markering 1 gebruik, heb ik maar één beperkingskeuze!
Dus ik denk dat er een parameter van mijn methoden moet zijn die niet de juiste is, maar ondanks lang zoeken heb ik hem niet gevonden. Daarom kom ik u de vraag stellen: hoe kan deze beperking automatisch worden bereikt?
Alvast bedankt voor de hulp die je me kunt geven.
captures_ecran.rar