Een deel van de SW-bestandsnaam ophalen

Hallo, kunnen we een deel van de bestandsnaam in de SW-eigenschappen krijgen?

 

Bij voorbaat dank.

Hallo

Hier is hoe de opdracht om de bestandsnaam te herstellen:

$PRP:"SW-bestandsnaam

Wat betreft het terugkrijgen van een deel; Ik denk niet dat het mogelijk is, tenzij een van mijn collega's het weet  

commando en dat het deel van de naam dat moet worden opgehaald constant is.

Hallo

Het is mogelijk om meerdere eigenschappen samen te voegen, maar ik betwijfel of het mogelijk is om slechts een deel van een ervan op te halen, behalve via een macro natuurlijk, omdat in dit geval alle functies voor het manipuleren van strings beschikbaar zijn in de macro.

Vriendelijke groeten

1 like

Ja, ik gebruik al een macro om op te halen wat ik wil, maar ik had graag gezien dat het automatisch ging. 

 

Dank u voor uw antwoorden! 

 

Tot gauw.

Hallo 

Is het mogelijk om je macro te delen? Inderdaad, ik zou ook hetzelfde willen doen als u door aan de ene kant mijn plannummer op te halen en aan de andere kant mijn beschrijving, waarbij mijn bestanden de naam "n°deplan - description.sldprt" krijgen

Bij voorbaat dank

1 like

Hallo

 

Sorry voor het late antwoord, hier is de eerste macro om de referentie op te halen (de eerste 13 tekens)

Dim swApp als object
Dimfilename, foo, length, variable1, variable2, repname
De Manier van de zon
Zon lang, pos
Model dimmen als object
Sub hoofd()

Stel swApp = CreateObject("SldWorks.Application") in
Deel instellen = swApp.ActiveDoc
Weergave instellen = Deel.ActiveDrawingView

'Pad ophalen + bestandsnaam van de weergave
filename = View.GetReferencedModelName
"MsgBox (bestandsnaam)
'recup' bestandsnaam
foo = dir(bestandsnaam)
"MsgBox (foo)
'Haal de eerste 13 tekens van de bestandsnaam op
variabele2 = Links(foo, 13)
'MsgBox (variabele2)

'Berekening: aantal tekens in de bestandsnaam
lengte = Len(foo) + 1
"MsgBox (lengte)
'Een string maken zonder bestandsnaam
long = Lin (bestandsnaam)
RORO = Lang - Lengte
"MsgBox (roro)
pad = Links (bestandsnaam, roro)
'MsgBox (pad)
'Zoek positie van \ van rechts
pos = InStrRev(pad, "\")
'Variabele aanmaak 13 tekens eerste bovenliggende map
variabele1 = Midden (pad, pos + 1, 13)
'MsgBox (variabele1)

'Aaneenschakeling van de 2 variabelen
velden = variabele2
"MsgBox (velden)

'PP 'veld' aanmaken in SW voor cartridge vullen
Als de velden <> "" Dan
    Waarde = Part.CustomInfo2("", "veld")
    Als waarde = "" dan
        Part.AddCustomInfo3"", "veld", 50, velden
        Anders
        Part.CustomInfo2("", "veld") = velden
    Einde als
Einde als

Deel.BewerkenOpnieuw opbouwen3
Einde Sub
 

 

2 likes

En het tweede deel om de naam na de referentie op te halen:

 

Dim swApp als object
Dimfilename, foo, length, variable1, variable2, repname
De Manier van de zon
Zon lang, pos
Model dimmen als object
Sub hoofd()

Stel swApp = CreateObject("SldWorks.Application") in
Deel instellen = swApp.ActiveDoc
Weergave instellen = Deel.ActiveDrawingView

'Pad ophalen + bestandsnaam van de weergave
filename = View.GetReferencedModelName
"MsgBox (bestandsnaam)
'recup' bestandsnaam
foo = dir(bestandsnaam)
"MsgBox (foo)


"Berekening aantal tekens in foo
lengte = Len(foo)
"MsgBox (lengte)

'Totstandkoming van een keten zonder uitbreiding
variabele = Links(foo, lengte - 7)
'MsgBox (variabel)

"Recuperatie met variabele lengte
long = Len(variabel)
'MsgBox (lang)

'Recup' bestandsnaam zonder eerste 14 tekens
velden = Rechts(variabele, lang - 14)
"MsgBox (velden)

'PP 'veld' aanmaken in SW voor cartridge vullen
Als de velden <> "" Dan
    Waarde = Part.CustomInfo2("", "veld2")
    Als waarde = "" dan
        Part.AddCustomInfo3"", "field2", 50 velden
        Anders
        Part.CustomInfo2("", "veld2") = velden
    Einde als
Einde als

Deel.BewerkenOpnieuw opbouwen3

Einde Sub
 

2 likes

Hallo, ik zou ook graag de eerste 6 tekens willen herstellen, maar ik kan je macro niet aan het werk krijgen.

 

Hoi allemaal

Als je integratie hebt opgenomen in de My CADtools-tools is het heel goed gedaan, zie de bijgevoegde schermafbeelding.

 


capture.png

Ik heb Mycadtools en ik wist niets van deze functie

Bedankt.