Onderdeelnaam lezen in assemblage

Hallo

Ik wil de namen van de onderdelen in de creatieboom lezen en ze opslaan in variabelen.

Zoals wat:

Variabele1= "Kroonring 26"

Variabele2= "EP-BC-AR

...

...

(zie bijlage)

Dank u voor uw hulp,

 

JB

 


capture.png

Hallo jb!

 

Ondanks mijn twijfels heb ik het zo voor elkaar gekregen:

 

TreePiece = InputBox ("voer de naam van het te selecteren onderdeel in, evenals het nummer in de boomstructuur" & vbCrLf & "00-XXXXX-0-Piece-3" & vbCrLf & "'-3' is hier de voorkomensindex")

 

gevolgd door 

 

swModel.ClearSelection2 Waar
bstatus = swModel.Extension.SelectByID2(stnewfilename & "@SE-XXXXX-0-Trajectory", "COMPONENT", 0, 0, 0, True, 0, Nothing, 0)

 

om het stuk te selecteren :-)

Zie de GetComponents Method API (IAssemblyDoc)

 

Hier is een voorbeeld 

 

 

Dim swDoc als SldWorks.ModelDoc2

Dim swAss als SldWorks.AssemblyDoc

Dim stOldFileName As String, stNewFileName As String

Dim bStatus als Booleaanse

 

Sub hoofd()

 

    Stel swApp = Toepassing.SldWorks in

    Stel swDoc in = swApp.ActiveDoc

    

    Als swDoc niets is, sluit dan Sub af

    Als swDoc.GetType <> swDocumentTypes_e.swDocASSEMBLY afsluit, sluit dan Sub af

    

    Stel swAss = swDoc in

   

    Dim swComponents als variant: swComponents = swAss.GetComponents(True)

    

    Voor i = 0 TB UBound(swComponents)

        MsgBox swComponents(i). Naam

    Volgend

    

 

Einde Sub

 

 

4 likes

Te goed!

 

Bedankt

Is het ook mogelijk om op deze manier de link naar de kamer te hebben?

 

Bij voorbaat dank

Goedenavond allemaal,

 

Ik begrijp je verzoek niet>> "Is het ook mogelijk om op deze manier de link naar de kamer te hebben?"

 

A+

 

MC

Ik begrijp de link van de kamer ook niet?

3 likes

Hallo

 

Mijn doel is om vergelijkingen aan te passen op basis van de afmetingen van de onderdelen van een assemblage ( Macro vergelijking vraag op het forum).

 

Om dit te doen, was mijn eerste idee om de onderdelen in de assemblage te bewerken om de vergelijkingen aan te passen. (per macro)

 

behalve dat:

Voor i = 0 To swEquationMgr.GetCount - 1 (in mijn programma)

werkt niet in een bewerkt deel ==> einde van de lus

 

Dus twee oplossingen:

   - 1) verander swEquationMgr.GetCount om de vergelijkingen in een bewerkt deel te kunnen lezen

   - 2) open de delen één voor één waar swEquationMgr.GetCount werkt

 

De eerste zou waarschijnlijk beter zijn voor de eenvoud en uitvoering van het programma. Ik heb wat onderzoek gedaan naar het gebruik van de GetEquationMgr-methode (IModelDoc2), maar heb niets gevonden dat me zal helpen.

 

Voor de tweede heb je de volledige link nodig om de kamer te openen:

voorbeeld

Deel instellen = swApp.OpenDoc6("D:\LIBRARY\03-Technische Bibliotheek Schouder\EP-BC-AR. SLDPRT", 1, 0, "", longstatus, longwarnings)
Deel instellen = swApp.ActiveDoc

 

En dus door de assemblage te openen om de link van de onderdelen waaruit het bestaat te kunnen lezen om ze te openen.

Natuurlijk zal deze methode het programma vertragen.

 

Ik hoop dat ik een beetje duidelijker ben geweest ^^

 

Bedankt 

JB

 

OK!

PRB opgelost!

 

Bedankt voor je hulp!