Een assemblagestuklijst maken | SolidWorks API: Documentbeheer

Hallo

Ik ben bezig met het maken van een VB.net applicatie om de uitwisseling van gegevens tussen SolidWorks en ons ERP op te zetten.

Om dit te doen, gebruik ik de SolidWorks Document Manager API, waarmee je toegang hebt tot de informatie in de bestanden zonder ze in de applicatie te openen. Meer informatie: http://help.solidworks.com/2015/english/api/swdocmgrapi/GettingStarted-swdocmgrapi.html?id=c64a324db326402a84186311e072bc1c#Pg0

Ik kan aangepaste eigenschappen lezen, bewerken en maken.

Ik wil assemblagestuklijsten maken. Om dit te doen, slaag ik erin om een stuklijst te extraheren als deze al bestaat en deze vervolgens in Excel te importeren. Met behulp van de methoden GetTableNames en GetTableCellText.

Ondanks veel onderzoek lukt het me echter niet om een nomenclatuur te maken.

Bij voorbaat dank

2 likes

Hallo

Wilt u een stuklijst in een assemblage 3D maken zonder het bestand te openen?

1 like

Ja. Een beetje zoals SmartBom maar dan op mijn bescheiden niveau...

1 like

Ik kwam een bericht tegen dat niet de oplossing geeft, maar ik zag net dat je er vanmorgen al bent geweest ;-) Ik denk dat de persoon die zei dat het mogelijk is, niet op de hoogte was van Document Manager...

Op zoek naar BOM op deze pagina (die alle A priori van Document Manager-opdrachten opsomt), zijn er alleen instructies zoals "toegang" of "ophalen", maar niets om te maken, sorry:

http://help.solidworks.com/2015/english/api/swdocmgrapi/SolidWorks.Interop.swdocumentmgr~SolidWorks.Interop.swdocumentmgr_namespace.html?id=30a118bab16d4ebdb948d29c74dcfd9f#Pg0

Of door te zoeken naar TABEL en te kijken naar de leden op deze pagina (uitvouwbaar met de +), vinden we ook niets:

http://help.solidworks.com/2015/english/api/swdocmgrapi/SolidWorks.Interop.swdocumentmgr~SolidWorks.Interop.swdocumentmgr.ISwDMTable_members.html?id=b4f08e90682443dd91ef867afd8a2192#Pg0

A priori is de onderstaande link alleen nuttig als het bestand wordt geopend, nietwaar? Ik denk dat dat is wat je zult moeten doen.

http://help.solidworks.com/2015/English/api/sldworksapi/Insert_and_Show_BOM_Table_in_Assembly_Example_VBNET.htm

 

Of een andere capillotracted oplossing, is om door de hele SolidWorks-boom te gaan om uw tabel te maken en deze opnieuw te maken als een tekstbestand...

 

Trouwens, weet je zeker dat SmartBOM het bestand niet opent?

 

Bewerken:

Een reactie van iemand die de Domcument Manager gebruikt om mijn woorden te bevestigen:

https://forum.solidworks.com/message/467937#467937

Het gaat goed door alle kamers...

 

Edit 2: het kan gevaarlijk zijn om de stuklijst te maken zonder het bestand te openen, want als een van de componenten is gewijzigd (wijziging van code, materiaal, in een gelaste machine, enz.) zonder de assemblages die het bevatten bij te werken, zal uw stuklijst verkeerd zijn!

 

Edit 3: een oplossing zou kunnen zijn om een stuklijst op te nemen in de modellen van je assemblages, in ieder geval zullen alle nieuwe gemaakte assemblages geen probleem zijn!

6 likes

Dank u .PL voor dit antwoord.

Ik zie dat we vergelijkbare onderzoeksmethoden hebben. ;-)

Inderdaad, ik had SmartBom al lang niet meer getest op grote assemblages, ik denk dat hij het moet openen...

Dus ik ga proberen hetzelfde te doen.

Ik kom hier terug zodra het me lukt. :-)

1 like

Succes, want het is geen gemakkelijke opgave.

Heb je een PDM om bestanden te beheren? Omdat ik niet op dezelfde manier te werk ga.

En heb je mijn edit 3 van de vorige vraag gezien?

Natuurlijk, als ik mijn bestand niet open, is de tabel mogelijk niet up-to-date.

In de code zal ik:

  1. Controleer of een tabel (uit het script) aanwezig is zonder deze te openen.
  2. Als dat zo is, vertel ik de gebruiker de datum van de laatste registratie om te weten of deze verouderd is.
  3. Zo niet, dan open ik het bestand om een tabel bij te werken of te maken.

Fijne dag.

En heb je een PDM om bestanden te beheren? Of is het gewoon een slot op de server?

Nee, niet PDM.

Maar we werken eraan...

Ok, en je wilt je macro doen op alle bestanden? Of alleen de nieuwe?

Ter info, ik denk dat je de achtergrondmodus kunt gebruiken om de opening niet weer te geven:

http://help.solidworks.com/2011/English/api/sldworksapi/Enable_Background_Processing_When_Opening_Drawing_Document_Example_VB.htm

 

Hallo

Dit is een applicatie die Vb.net als volgt in Excel is geïntegreerd: http://jfdeterme.developpez.com/tutoriels/dotnet/developper-add-in-pour-excel-2007-avec-visual-studio-2010/

Tot ziens.

Dankzij .PL,

Inderdaad na het vragen van de APi-ondersteuning en op het SW-forum.

Het is noodzakelijk om de bestanden te openen en vervolgens de methode te gebruiken: IModelDocExtension::InsertBomTable3

Mijn app werkt! ;-)

Bedankt.

 

 

1 like