Macro - Importeren blokkeren + opslaan

Hallo gemeenschap,

Bedankt allemaal voor je waardevolle advies via verschillende berichten. Dit is mijn eerste bericht op het forum :-)

Hier is mijn verzoek: Ik heb honderd blokken (. SLDBLK) afzonderlijk opgeslagen op mijn pc in dezelfde map.

Ik wil een macro maken/uitvoeren die 

Een nieuw onderdeel maken (of als een nieuwe schets invoegen in een bestaand onderdeel)

Plaats het blok op de oorsprong (plaats een blokschaal x4) / op  het voorste vlak bijvoorbeeld

Sluit en sla de kamer op (met dezelfde naam als het blok, nog beter)

voor mijn hele map "blokken" automatisch 

 

Solidworks versie 2020

TB SW kennis, beginner macro

Dank u allen voor uw bijdrage

Vriendelijke groeten

Franck / CAD tekenaar voor 8 jaar

Om te worden getest op een blok om te zien of het werkt, maar hier is de link naar het onderwerp:

https://r1132100503382-eu1-3dswym.3dexperience.3ds.com/#community:yUw32GbYTEqKdgY7-jbZPg/iquestion:G8lFvoZCTzWDcYa61U3jaA

En de code om de schaal te veranderen zet scl=4

Neem het antwoord van RiriFifi en test de code (meestal is de code efficiënt.

Als het goed werkt, moet je deze code aanpassen aan alle bestanden in een map, door de naam van het blok voor de opname op te halen.

Hallo

Voor noobs zoals wij bij het maken van macro's, is er een functie om functies in SW vast te leggen. Je start de opname, je doet je manipulatie en SW maakt automatisch de code van wat je op het scherm hebt gedaan.

Daarmee heb je 90% van je macro.

Het enige wat je nodig hebt is de lus(sen) om het .sldblk-bestand te wijzigen, evenals de declaratie van de variabelen (naam van het recordbestand, waarschijnlijk nog wat meer tijdelijke variabelen..).

 

Succes

Bedankt voor je feedback!

Ik keek naar de link op 3dexperience, ik heb de gegevens bijgewerkt (pad van mijn bestanden en anderen), maar er gebeurt niets bij het starten van de macro. Ik heb de genoemde macro uitgevoerd met een open bestand, van een schets, zonder dat er iets open is, gebeurt er niets... Schaamte

Ik heb wel een macro opgenomen die het werk doet voor ongeveer 1 bestand.

Aan de andere kant weet ik niet hoe ik een lus en een opname onder dezelfde naam als het blok moet integreren. Is er een onderwerp over deze elementen, dan zou het een alternatief kunnen zijn voor mijn zoektocht.

Dank u voor uw tijd

 

Voor de macro heb je die van RIRIFIFI gekopieerd? 

Heb je de module 2e klas 1 gemaakt?

Bijgevoegd de macro van een geselecteerde kamer, een schot dan start de macro en het werkt (behalve dat het blok niet vast is)

Het moet beter, maar we komen steeds dichterbij.

Na het zien van je verzoek als je maar 100 blokken hebt om te wijzigen, weet ik niet zeker of het ontwikkelen van een macro die niet bestaat sneller is voor 1000 blokken of meer, aan de andere kant, ik zeg het niet. 100 blok = 1 tot 2 uur is veel minder dan de ontwikkeling van een macro, zelfs voor iemand die er verstand van heeft.


blok.swp

Hallo sbadenis,

Bedankt voor je feedback. Ja, ik denk dat ik gebruikte de ririfififi macro met class1 en module1 apart en gegevens (bestand pad...) in overeenstemming met mijn bestanden.

Bedankt voor je macro, maar het voldoet niet echt aan mijn behoeften. Van mijn kant slaag ik er met mijn macro in om een nieuwe kamer te maken, het blok op schaal in te voegen, op te slaan en te sluiten. Voor 1 gedefinieerd model.

Ik mis het "loop"-aspect dat het openen van het volgende blok zou automatiseren en de acties zou reproduceren.

Ik heb gekeken maar helaas kom ik vast te zitten... Ik ga overschakelen naar de "handmatige" modus, dus

Hallo Franck,

Het antwoord is misschien een beetje laat, maar de bijgevoegde macro zou uw probleem moeten beantwoorden.
Genereren van de onderdelen met schets in het gezichtsvlak, invoegen bij de oorsprong, op schaal 4.
3 regels moeten worden aangepast om het aan uw systeem aan te passen:
- regel 35: brondirectory van blokdocumenten (met extensie "SLDBLK");
- regel 36: doelmap van de onderdelenbestanden, met dezelfde naam als de blokken, met de extensie "SLDPRT";
- Regel 40: Het pad en de naam van het standaard onderdeelmodel voor uw versie van SolidWorks.

Om te testen op uw pc...

Vriendelijke groeten.

 


invoegen.swp
2 likes

Super! Dank je wel m.blt

Ik heb toch een bug tijdens de uitvoering, ik zal proberen te begrijpen ...

Lijn 42

Stel swSkMgr = swModel.SketchManager in

Ik benadruk dat ik mijn paden heb uitgezet enz...

Of iemand een idee heeft?

Bedankt

 

Hallo

Wat is het type fout? Dit?

Als dit het geval is, moet u controleren of de variabelen Part en swModel niet leeg zijn: in de foutopsporingsmodus hoeft u alleen maar de cursor boven een van deze twee variabelen te laten staan om de inhoud ervan weer te geven.
Als ze gelijk zijn aan Niets, betekent dit dat de vorige instructie Part = swApp.NewDocument... (regel 40) retourneert niets en het SolidWorks-document is niet geopend. Vandaar de fout bij het maken van de sketch manager.
De string die het sjabloonbestand definieert, is waarschijnlijk verkeerd, je moet heel zorgvuldig controleren of het bestaat, met het aangegeven pad (op mijn bronbestand staat het in de map SW 2018).

1 like

PRACHTIG, alles werkt nu wonderwel.

Mijn sjabloon heet "deel" en niet "deel" in mijn map

Een grote DANK aan iedereen en vooral aan  m.blt