[VB.net] Solidworks Referentie Extractie

Hallo

 

Is er een manier om de referenties uit een bestand uit vb.net te extraheren?

Ik heb in de visuele basis-API van Solidworks gekeken, maar heb niets concreets gevonden :/

 

Vriendelijke groeten

Hallo, a priori is het mogelijk. U moet SolidWorks aangeven en de bijbehorende bibliotheek toevoegen, zie deze link:

http://help.solidworks.com/2014/english/api/sldworksapiprogguide%5Cgettingstarted%5Cvisual_basic_.net_standalone_and_add-in_applications.htm

Zie deze comm thread

http://www.lynkoa.com/forum/autres/vba-excel-pour-solidworks

@+ ;-)

Hallo .PL & gt22

De aangifte is inderdaad verplicht, wat ik al heb gedaan omdat ik momenteel al referenties verander met mijn software, het probleem is dat ik ze een voor een in een tabel moet invullen, daarom probeer ik de referenties direct :) te extraheren.

Wat houdt het precies in om referenties te extraheren?
1 like

Ik zou graag in staat zijn om uit een ASM- of DRW-type bestand de referenties te halen die ze hebben

Voorbeeld:

Het bestand "tekening 1.SLDDRW" verwijst naar de assemblage "assembly1. SLDASME"

De "vergadering1. SLDASM" Verwijst naar het deel "Piece1.SLDPRT"

Ik wil graag de waarden "assembly1. SLDASM" en "Piece1.SLDPRT" in automatisch

Ik weet niet of ik het begrijp :/

1 like
OK, ik denk dat vanaf het moment dat SolidWorks wordt verklaard, het hetzelfde is als in VBA? In feite moet u sinds een tekening de eerste weergave ophalen om de bijbehorende 3D op te halen.

U moet getfirstview gebruiken om de basiskaart op te halen, vervolgens getnextview om de eerste weergave op te halen en ten slotte gerefereerddocument om toegang te krijgen tot het bijbehorende 3D-bestand.

Ik denk dat er een voorbeeld in deze macro die ik gepost op Lynkoa:

http://www.lynkoa.com/tutos/3d/macro-enregistrer-sous-avec-solidworks

Bedankt voor je answer.PL

Ik heb net gekeken naar uw code en het lijkt mij Complex voor wat ik wil doen, daarmee bedoel ik dat van solidworks door te klikken op een tekening meer op referentie krijg je het venster als een bijlage en het zou mij zeer geschikt zijn omdat het de map en de naam van het onderdeel bevat


ref.png
1 like

Hallo

U bent eigenlijk op zoek naar dezelfde resultaten als door Bestand/Zoeken naar referenties uit te voeren en vervolgens op de knop "Lijst kopiëren". Dat klopt?

Dan hoef je het alleen nog maar in een Excel-bestand te plakken.

2 likes

Hallo Benoit.LF,

Inderdaad, dit is wat ik wil om de info direct te krijgen nadat ik niet via Excel zou gaan, maar direct opgeslagen in vb.net, maar dat is alles! :)

Het is niet zo ingewikkeld en het is de enige methode die ik ken! Een kleine herinnering, er kunnen verschillende documenten op een tekening staan, dus verschillende referenties...

De macro die ik heb gepost doet natuurlijk iets anders, maar het is het begin van de code dat interessant is voor deze toepassing.

Zie deze link die dezelfde oplossing geeft:

http://help.solidworks.com/2012/English/api/sldworksapi/Get_Document_Referenced_by_Drawing_View_Example_VB.htm

Nadat ik geïnteresseerd ben in een oplossing die dit doet in minder dan 3 regels code!! (Zonder de declaraties natuurlijk!)
Anders moet voor een assembly GetComponent worden gebruikt:

http://help.solidworks.com/2012/English/api/sldworksapi/SolidWorks.Interop.sldworks~SolidWorks.Interop.sldworks.IAssemblyDoc~GetComponents.html

Een oplossing voor externe verwijzingen (zijn het allemaal referenties?) in ongeveer 50 regels:

http://help.solidworks.com/2013/English/api/swdocmgrapi/Get_All_External_References_for_Drawing_Example_VBNET.htm

Ik heb een voorlopige oplossing gevonden die lang kan duren, ik verander ALLE referenties, zelfs degene die niet bestaat, SOlidWorks geeft geen krimp.

 

Hallo

De API die u moet gebruiken is  : GetDocumentDependencies2

http://help.solidworks.com/2013/english/api/sldworksapi/solidworks.interop.sldworks~solidworks.interop.sldworks.isldworks~getdocumentdependencies2.html

Het retourneert alle externe verwijzingen van het bestand 

Philippe

1 like