Familie van macroonderdelen voor een map

Hallo

Ik ben op zoek naar een macro waarmee ik de onderdeelfamilie uit een onderdeelbestand kan extraheren.

En dat deze macro wordt uitgevoerd voor een hele map (met een X-deelbestand)

Ik geef aan dat de stukken niet het familiedeel hebben om te creëren.

Wat mij interesseert, is om ÉÉN eigenschap op te halen die al mijn onderdelen gemeen hebben in een Excel-bestand.

Ideeën zijn welkom.

Bedankt

1 like

Hallo

Ik deel een macro die ik heb gemaakt en die de meeste functies heeft die je nodig hebt (zoeken in een map en submap van SW-onderdelen ; aangepaste eigenschappen lezen en wijzigen; een tekstbestand invullen)

Wees voorzichtig, het is een beetje een puinhoop omdat het niet wordt afgerond


macrorecusive.txt

Hallo slauzeral,

Maar je macro helpt me niet veel.

Bedankt voor je hulp!

1 like

Hallo

Om er zeker van te zijn dat je het begrijpt. U wilt een macro die:

  1. Herhaalt .sldprt- en .sldasm-bestanden uit een map
  2. Herstelt een eigenschap van elk van de bestanden
  3. Voegt de waarde van de eigenschap toe aan een Excel-tabel.

 

2 likes

Hoi herinnering,

Als je "loop files" zegt, wat bedoel je dan?

Anders ja, ik geef aan dat er alleen .sldprt-bestanden zijn

Voor de rest is dat het,

  1. Herstelt een eigenschap van elk van de bestanden
  2. Voegt de waarde van de eigenschap toe aan een Excel-tabel
1 like

 Daarom

  1. Zoekt naar .sldprt-bestanden in een map
  2. Herstelt een eigenschap van elk van de bestanden
  3. Voegt de waarde van de eigenschap toe aan een Excel-tabel.

Wat is de naam van de woning?

Moet ik teruggaan naar de werkmapinformatie over elk van de bestanden: naam, pad, enz.?

Moeten we ook in de submappen zoeken?

Heb je ooit andere macro's gemaakt?

Is het mogelijk om een map met consistente bestanden te testen?

Ik weet dat dat veel vragen zijn, maar het is essentieel voordat je iets codeert. ;-)

 

2 likes

Ja, dat is het precies:

'Zoekt naar .sldprt-bestanden in een map

Herstelt een eigenschap van elk van de bestanden

Voegt de waarde van het onroerend goed toe aan een Excel-spreadsheet."

Voor uw vragen:

Wat is de naam van de woning? $PROPRIETE@Aantal gaten.

Moet ik teruggaan naar de werkmapinformatie over elk van de bestanden: naam, pad, enz.? Nee, alleen het gebied van eigendom.

Moeten we ook in de submappen zoeken? Nee, de documenten zitten direct in een dossier.

Heb je ooit andere macro's gemaakt? Voor de macro's kwam ik "door te tasten" door stukken rechts en links op te rapen ...

Ik voeg een bestand toe met 5 stukjes om te testen.


lynkoa.zip

Hallo

 

Je zou met deze formule moeten kijken:

Sub parameter()

Dim retVal als Booleaanse
Dim eigenschap als tekenreeks
stuk = Vellen("Chemin_pièce"). Bereik ("A1") Opent bestandskoppelingen

Stel swApp = CreateObject("SldWorks.Application") in

       
        Set Deel = swApp.OpenDoc6(stuk, 1, 0, "", longstatus, longwarnings)

    Stel swModel = swApp.ActiveDoc in
    Stel swConfigMgr = swModel.ConfigurationManager in
    Stel swConfig = swConfigMgr.ActiveConfiguration in
    Z=swConfig.Name                                                 'Haalt de naam van de configuratie op
               
        property = swModel.GetCustomInfoValue(Z, "Gewicht")
        Vellen("Blad1"). Bereik ("A1"). Waarde = ' eigenschap            'kopieert' de waarde van de eigenschap 'gewicht' naar de Excel-sheet

Einde Sub

 

Dat moet je proberen, dan moet je de lus maken waarmee je er omheen kunt.

 

Succes

1 like

Hoi PierrotDls,

Bedankt voor de macro, 

Het is een heel goed begin !!

Het stelt me in staat om de eigenschap voor het gedefinieerde deel op te halen.

Nu moet ik vinden:

- Hoe de ".sldprt"-bestanden van een map te openen en niet van een specifiek bestand.

- Verhoog de "A1"-cel zodat de eigenschappen onder elkaar worden ingevuld.

Bedankt!

Goedenavond

Bijgevoegd is een stukje code om het bestand te scannen.

Voeg gewoon de functies toe om de woning op te halen die u zoekt en het zou moeten werken.


scan_dossier.txt
1 like

Hoi Cyril.f

Bedankt voor de macro,

Maar als ik de herstelregels van mijn eigendom toevoeg, heb ik een directe compilatiefout.

Dim fso As FileSystemObject 

Een door de gebruiker gedefinieerd type dat niet is gedefinieerd.

Als je me kunt helpen... Bedankt

Hallo

U dient de volgende referenties te activeren in de vba editor (tools> Referenties):

Microsoft Scripting Runtime

Solidworks 20xx type bibliotheek

1 like

Ja inderdaad, dat is wat ik net zag.

Zo perfect (nou ja, de macro is waarschijnlijk niet de schoonste en eenvoudigste, maar het werkt)

Bedankt!