Macro om nieuwe plannen te bouwen op een geïmporteerd onderdeel

Hoi allemaal 

Ik zou graag geïnformeerd worden over de mogelijkheid om plannen te maken met vooraf gedefinieerde namen. Ik werk alleen aan geïmporteerde onderdelen en ik hou niet vaak van de originele lay-out van de plannen. Dus ik zou graag willen weten of er een techniek is om hun creatie automatisch te maken en dat de naam altijd hetzelfde zal zijn, afhankelijk van het gemaakte plan. 

Bedankt 

Hallo

Ja, het is mogelijk om plannen op code te maken.

Het probleem is dat je referenties nodig hebt om plannen te maken. Dus per macro moet u niet alleen niet op een nieuw plan klikken, maar ook de referenties van tevoren selecteren, waardoor het naar mijn mening nutteloos is om een macro te gebruiken.

Als je weet, doe vrij geavanceerde macro's, je kunt een selectieklasse maken, dynamisch een formulier maken, de combinaties van selecties in een verzameling plaatsen, door die verzameling gaan om de contouren te maken. (ongeveer 4 uur programmeren voor een kenner)

Volgens dit principe vult u het formulier in met al uw selecties en start u de macro die zorgt voor het maken van de plannen.

1 like

Hallo Jean-Luc Villamy, een soortgelijk onderwerp is al besproken, misschien kan het bij je passen? http://www.lynkoa.com/forum/electrique/macro-pour-changement-dorientation-des-vue-sous-solidworks

Anders kunnen we kijken of u ons een voorbeeldbestand stuurt met het te maken plan:)

1 like

@Yves.T Ik ben pas nieuw in VBA-code, en deze stappen die u beschrijft lijken onhaalbaar voor mijn coderingsniveau. Ik hoopte dat iemand een macroframe zou hebben dat zo dicht mogelijk bij wat ik wil doen en dat ik kan aanpassen aan mijn behoeften. 

@Mad ja, ik weet het omdat ik degene was die dit onderwerp heeft gepost:) Ik ben erin geslaagd om de macro die je me gaf aan te passen om op mijn manier te werken. In dit geval probeer ik niet langer de oriëntatie van mijn partij ten opzichte van de coördinatensystemen te veranderen, maar creëer ik nieuwe vlakken die een gedefinieerde naam hebben volgens het coördinatensysteem (x;y; z). Bijvoorbeeld, NOM_PRENOM_FACE en dat voor de drie vliegtuigen... GEZICHT... DOITE en ... BOVEN de markering, zodat wanneer ik de macro start, ik ze gewoon hoef te beperken zoals ik wil. Het probleem met de macro die je me gaf is dat sommige delen niet de beperkte vlakken op de oppervlakken hebben die ik zou willen, dus deze macro raakt mijn probleem niet rechtstreeks. 

Ik hoop dat ik duidelijk genoeg ben geweest over waar ik naar op zoek ben, bedankt dat je me hebt geholpen in mijn proces en dat je zo geduldig bent geweest!

Edit: de reden om de originele plannen van de STEP-import van het onderdeel te willen wijzigen, komt voort uit het feit dat de resulterende weergave in de tekening niet laat zien wat ik van het onderdeel wil. 

De macrorecorder geeft deze code voor het genereren van drie vlakken op 100 mm afstand

Dim swApp As Object

Dim Part As Object
Dim boolstatus As Boolean
Dim longstatus As Long, longwarnings As Long

Sub main()

Set swApp = Application.SldWorks

Set Part = swApp.ActiveDoc
boolstatus = Part.Extension.SelectByID2("Plan de face", "PLANE", 0, 0, 0, False, 0, Nothing, 0)
boolstatus = Part.Extension.SelectByID2("Plan de face", "PLANE", 0, 0, 0, True, 0, Nothing, 0)
Dim myRefPlane As Object
Set myRefPlane = Part.FeatureManager.InsertRefPlane(8, 0.1, 0, 0, 0, 0)
Part.ClearSelection2 True
boolstatus = Part.Extension.SelectByID2("Plan de face", "PLANE", 0, 0, 0, False, 0, Nothing, 0)
Part.ClearSelection2 True
boolstatus = Part.Extension.SelectByID2("Plan de dessus", "PLANE", 0, 0, 0, False, 0, Nothing, 0)
boolstatus = Part.Extension.SelectByID2("Plan de dessus", "PLANE", 0, 0, 0, True, 0, Nothing, 0)
Set myRefPlane = Part.FeatureManager.InsertRefPlane(8, 0.1, 0, 0, 0, 0)
Part.ClearSelection2 True
boolstatus = Part.Extension.SelectByID2("Plan de dessus", "PLANE", 0, 0, 0, False, 0, Nothing, 0)
Part.ClearSelection2 True
boolstatus = Part.Extension.SelectByID2("Plan de droite", "PLANE", 0, 0, 0, False, 0, Nothing, 0)
boolstatus = Part.Extension.SelectByID2("Plan de droite", "PLANE", 0, 0, 0, True, 0, Nothing, 0)
Set myRefPlane = Part.FeatureManager.InsertRefPlane(8, 0.1, 0, 0, 0, 0)
Part.ClearSelection2 True
boolstatus = Part.Extension.SelectByID2("Plan de droite", "PLANE", 0, 0, 0, False, 0, Nothing, 0)
Part.ClearSelection2 True
End Sub

 

Deze macro brengt geen veranderingen teweeg op mijn stuk, behalve dat ik mijn foto's heel beknopt laat schitteren ... Moest ik een paar regels veranderen om het te laten werken?

Ja, de te wijzigen elementen zijn de namen van de plannen

Ik heb geprobeerd alles aan te passen voor de namen van de vliegtuigen, niets te doen als ik de macro start, het bouwt me anderen met de namen Plan 12, Plan 13 en Plan 14. Ik geef toe dat ik niet echt begrijp waarom het niet werkt, ik heb alle mogelijke combinaties geprobeerd

Mea culpa na het controleren van een nieuw stuk doet het inderdaad niets, ik kijk naar zijn

Geen probleem, bedankt voor de hulp, ik zal uiteindelijk weten hoe ik moet coderen door naar de codes te kijken om te weten waar het vastloopt!

Ik heb veel gezocht en helaas kan ik niets vinden op internet... Mijn probleem zou ook opgelost kunnen worden als de macro het vliegtuig dat ik ervoor aanwijs een andere naam geeft, bijvoorbeeld een macro voor het voorste vlak etc.  met een naam die ik voor hem definieer. Het kan me niet schelen of ik veel macro's in mijn SW-taakbalk heb. Ik wil alleen de invoer van tekst automatiseren, wat op de lange termijn mijn tijd verspilt, dus een macro op opnamenaam is niet vervelend.

U wilt alleen planA hernoemen naar plan1?

Ik heb de oplossing gevonden, ik neem een macro op wanneer ik de foto's hernoem die ik net daarvoor zou hebben gemaakt, zodat shot 1 NOM_Face is enz. voor de andere opnamen, dat wil zeggen dat mijn macro de naam zal vinden van de foto's die eerder zijn bewerkt en die altijd dezelfde roepnamen hebben, dus het is aan mij om mezelf te dwingen een bevel op te volgen om degene te vinden die vandaan komt gezicht enz. wanneer ik ze maak. 

Aan de andere kant ben ik nu op zoek naar een macro op te nemen wanneer ik een beperking uit te voeren op twee vlakken die altijd dezelfde namen zullen hebben voor het moment, maar SW wil niets weten over de beperkingen blijkbaar... Heeft iemand ooit een macro gemaakt om de beperkingen van het instellen van vlakken (positionering in de ASM) te verhogen?

Dit is de macro waarmee ik de clips die ik eerder heb gemaakt automatisch kan hernoemen. Vergeet niet om een bouwopdracht op te leggen, om uw tekeningaanzichten te ordenen.

 


renommer_les_plans.txt