SelectByID2 werkt in een bepaald geval niet

Hallo

Ik ben bezig met het maken van een macro en het is onvermijdelijk dat de laatste stap niet werkt. 

Ik wil een schets selecteren uit een onderdeelbestand. 

Als ik de naam van het deel waarin de schets zich bevindt hard codeer: OK (bijvoorbeeld: SelectByID2("Nomdelesquisse@onderdeelnaam@assemablage" etc etc )

Als ik de partname vervang door een variabele (die afkomstig is van Name2) NIET OK. Geen compiler fout, maar gewoon niets gebeurt en het passeert op een rij.  (bijvoorbeeld: SelectByID2("Nomdelesquisse@&PieceName&@assemablage" etc etc )

Kleine verduidelijkingen: Name2 geeft een String terug en SelectByID2 vraagt om een naam in STRING dus dat is goed (nou ja, denk ik) 

                               Mijn methode om Name2 te vangen werkt (ik heb een spion op mijn swComp.Name2 lijn geplaatst en het is oké dat ik de socket eigenschap heb) 

 

Ziezo, als iemand een idee heeft. Ik ben een nemer!!

 

Hartelijk dank

Hallo

Als de regel overeenkomt met uw code, is het eerder:  "Nomdelesquisse@" & partname & "@assemblage"

Zoals het is geschreven, wordt het geïnterpreteerd als 100% tekst

1 like

Hallo en bedankt voor je antwoord, 

Dan

in deze versie -  SelectByID2("Nomdelesquisse@partname@assemblage" -: dit is het macrorecord. Inderdaad, alleen tekst.

In deze versie - SelectByID2("Nomdelesquisse@&PieceName&@assemablage" - : Ik heb de PieceName variabele samengevoegd, maar het werkt niet.

Ook kan ik geen " voor en na de & zetten, de compiler accepteert het niet. Kortom, het is niet zoals in een MsgBox.

Kortom, het is alsof het geen variabele wil nemen, als het goed gedeclareerd is in String.  Ik moet iets heel stoms missen, maar hier blijf ik bij. 

 

Hallo

Ben het eens met Cyril.f, wees voorzichtig met de positie van de aanhalingstekens.

boolstatus = Part.Extension.SelectByID2(DimensionName & "@" & SketchName & "@" & PartName, "DIMENSION", 0, 0, 0, False, 0, Nothing, 0)

Werkt heel goed.

Vriendelijke groeten

Maar aangezien uw onderdeel zich in een assemblage bevindt, moet u niet vergeten de identificatie van het voorkomen van het onderdeel aan te geven, die uit het geheugen niet omhoog gaat in de swComp.Name2, dus:

boolstatus = Part.Extension.SelectByID2("Esquisse1@" & PieceName & "-1@Assemblage1", "SKETCH", 0, 0, 0, False, 0, Nothing, 0)

voor voorkomen 1

Vriendelijke groeten

 

Hallo en bedankt voor je antwoord, 

De regel van de code zoals vastgelegd door VB:

 boolstatus = swModel.Extension.SelectByID2("Contourdecoupe@19XXX000001A-256@Simulateur", "SCHETS", 0, 0, 0, Onwaar, 0, Niets, 0)

Contourdecut is de naam van de schets. Hij verandert nooit. 

Simulator is de naam van de assemblage. Hij verandert nooit. 

Werkt perfect. Maar 19XXX000001A verandert voortdurend. Evenals -256, het instantienummer in de assembly. Vandaar de plaatsing van een variabele. 

--------------------------------------------------------------------------------

Wat ik wil (mijn variabele in vet cursief onderstreept):

boolstatus = swModel.Extension.SelectByID2("Contourdecoupe@&Name&@Simulateur", "SKETCH", 0, 0, 0, False, 0, Nothing, 0)

Ik kan aanhalingstekens toevoegen, het werkt niet. Zoals het geschreven staat, gebeurt er absoluut niets. Geen vergissing. Niets.  

Ik heb een spion geplaatst op de Name2-terugkeer, de gebeurtenis-ID gaat goed terug. 256 zoals aangegeven in mijn te traag om te schrijven antwoord:D

Ik heb het ook geprobeerd door een tweede variabele te maken die precies dit getal bevat. Ook niets. 

Eindelijk! 

Het is dus een probleem van aanhalingstekens. Maar ook van de ruimte. 

In plaats van: boolstatus = swModel.Extension.SelectByID2("Contourdecoupe@&Name&@Simulateur", "SKETCH", 0, 0, 0, False, 0, Nothing, 0)

Je hebt nodig:        boolstatus = swModel.Extension.SelectByID2("Contourdecoupe@" & Naam & " @Simulateur", "SKETCH", 0, 0, 0, False, 0, Nothing, 0) 

En niet:      boolstatus = swModel.Extension.SelectByID2("Contourdecoupe@"&Name&"@Simulateur", "SKETCH", 0, 0, 0, False, 0, Nothing, 0)

We leren elke dag bij! 

Dank u voor uw advies:)

 

 

Dus mijn geheugen faalde, de identificatie van het voorkomen van het onderdeel gaat goed terug...

Ter info, om dit te laten werken, moeten je stukken ook in de opgeloste modus staan.

Vriendelijke groeten

Hallo

Weet je zeker dat je het beste antwoord hebt gekozen?

Cyril.f's heeft alles wat je nodig hebt, de aanhalingstekens, de spaties...

Vriendelijke groeten

3 likes