SelectByID2 funktioniert in einem bestimmten Fall nicht

Hallo

Ich bin dabei, ein Makro zu erstellen, und der letzte Schritt funktioniert zwangsläufig nicht. 

Ich möchte eine Skizze aus einer Bauteildatei auswählen. 

Wenn ich den Namen des Teils, in dem sich der Sketch befindet, fest codiere: OK (Beispiel: SelectByID2("Nomdelesquisse@partname@assemablage" usw. usw.)

Wenn ich den Teilenamen durch eine Variable ersetze (die von Name2 stammt), NICHT OK. Kein Compilerfehler, aber es passiert einfach nichts und es wird hintereinander übergeben.  (Beispiel: SelectByID2("Nomdelesquisse@&PieceName&@assemablage" usw. usw.)

Kleine Klarstellungen: Name2 gibt einen String zurück und SelectByID2 fragt nach einem Namen in STRING, also ist das gut (naja, denke ich) 

                               Meine Methode, Name2 abzufangen, funktioniert (ich habe einen Spion auf meiner swComp.Name2-Zeile platziert und es ist in Ordnung, dass ich die Socket-Eigenschaft habe) 

 

Bitteschön, wenn jemand eine Idee hat. Ich bin ein Nehmer!!

 

Vielen Dank

Hallo

Wenn die Zeile Ihrem Code entspricht, lautet sie eher:  "Nomdelesquisse@" & partname & "@assemblage"

So wie es geschrieben ist, wird es als 100% Text interpretiert

1 „Gefällt mir“

Hallo und vielen Dank für Ihre Antwort, 

Dann

in dieser Version -  SelectByID2("Nomdelesquisse@partname@assemblage" -: Dies ist der Makrodatensatz. In der Tat, nur Text.

In dieser Version - SelectByID2("Nomdelesquisse@&PieceName&@assemablage" - : Ich habe die Variable PieceName verkettet, aber es funktioniert nicht.

Außerdem kann ich kein " vor und nach dem & setzen, das der Compiler nicht akzeptiert. Im Grunde ist es nicht wie in einer MsgBox.

Kurz gesagt, es ist, als ob es keine Variable annehmen will, wenn sie in String gut deklariert ist.  Ich muss etwas sehr Dummes übersehen, aber hier bleibe ich. 

 

Hallo

Stimmen Sie Cyril.f zu, seien Sie vorsichtig mit der Position der Anführungszeichen.

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

Funktioniert sehr gut.

Herzliche Grüße

Da sich Ihr Teil jedoch in einer Baugruppe befindet, dürfen Sie nicht vergessen, den Bezeichner des Vorkommens des Teils anzugeben, der aus dem Speicher nicht in swComp.Name2 übernommen wird, also:

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

für Vorkommen 1

Herzliche Grüße

 

Hallo und vielen Dank für Ihre Antwort, 

Die Codezeile, wie sie von VB aufgezeichnet wurde:

 boolstatus = swModel.Extension.SelectByID2("Contourdecoupe@19XXX000001A-256@Simulateur", "SKETCH", 0, 0, 0, Falsch, 0, Nichts, 0)

Contourdecut ist der Name der Skizze. Er ändert sich nie. 

Simulator ist der Name der Baugruppe. Er ändert sich nie. 

Funktioniert einwandfrei. Aber 19XXX000001A ändert sich ständig. Sowie -256, die Instanznummer in der Assembly. Daher die Platzierung einer Variablen. 

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

Was ich will (meine Variable in fett und kursiv unterstrichen):

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

Ich kann Verschiebungszitate hinzufügen, es funktioniert nicht. So wie es geschrieben steht, passiert absolut nichts. Kein Fehler. Nichts.  

Ich habe einen Spion auf die Name2-Rückgabe gesetzt, die Vorkommens-ID geht gut zurück. 256 wie in meiner zu langsam zu schreibenden Antwort angegeben:D

Ich habe auch versucht, eine zweite Variable zu erstellen, die genau diese Zahl enthält. Auch nichts. 

Endlich! 

Es ist also ein Problem der Anführungszeichen. Aber auch des Weltraums. 

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

Sie benötigen:        boolstatus = swModel.Extension.SelectByID2("Contourdecoupe@" & Name & " @Simulateur", "SKETCH", 0, 0, 0, False, 0, Nothing, 0) 

Und nicht:      boolstatus = swModel.Extension.SelectByID2("Contourdecoupe@"&Name&"@Simulateur", "SKETCH", 0, 0, 0, False, 0, Nichts, 0)

Wir lernen jeden Tag dazu! 

Vielen Dank für Ihren Rat:)

 

 

Mein Gedächtnis versagte also, die Kennung des Vorkommens des Teils geht gut zurück...

Zu Ihrer Information, damit dies funktioniert, müssen sich Ihre Teile auch im aufgelösten Modus befinden.

Herzliche Grüße

Hallo

Sind Sie sicher, dass Sie die beste Antwort gewählt haben?

Cyril.f's hat alles, was Sie brauchen, die Anführungszeichen, die Leerzeichen...

Herzliche Grüße

3 „Gefällt mir“