Selecteer een onderdeel om een SolidWorks VBA-notitie toe te voegen

Hallo

Ik wil via een macro een notitie toevoegen die betrekking heeft op de eigenschap van het onderdeel waaraan het is gekoppeld in een SolidWorks-tekening.

Ik heb geprobeerd de SolidWorks-registratiemethode te gebruiken, maar de gegenereerde code werkt niet voor mij. Dit komt omdat het onderdeel wordt geselecteerd op basis van zijn coördinaten en als ik deze macro wil toepassen op een andere tekening waar het onderdeel zich bevindt, werkt het niet als het onderdeel niet op dezelfde manier op het vel wordt geplaatst.

Hier is de code gegenereerd door SolidWorks:

Dim swApp als object

Deel dimmen als object
Dim boolstatus als Booleaanse
Dim longstatus As Long, longwarnings As Long

Sub hoofd()

Stel swApp in = _
Toepassing.SldWorks

Deel instellen = swApp.ActiveDoc
boolstatus = Part.Extension.SelectByID2("", "EDGE", 0.418950851731392, 0.261697604464967, -499.977072134691, Onwaar, 0, Niets, 0)

MyNote dimmen als object
MyAnnotation dimmen als object
myTextFormat dimmen als object
Set myNote = Part.InsertNote("$PRPMODEL:""Oriëntatiepunt""")
Zo niet, dan is myNote niets
   myNote.LockPosition = Onwaar
   myNote.Hoek = 0
   boolstatus = myNote.SetBalloon(0, 0)
   Stel myAnnotation in = myNote.GetAnnotation()
   Zo niet, dan is myAnnotation niets
      longstatus = myAnnotation.SetLeader3(swLeaderStyle_e.swSTRAIGHT, 0, Waar, Onwaar, Onwaar, Onwaar)
      boolstatus = myAnnotation.SetPosition(0.304559076486096, 0.311886588479215, 0)
      boolstatus = myAnnotation.SetTextFormat(0, True, myTextFormat)
   Einde als
Einde als
Deel.ClearSelection2 Waar
Deel.VensterHertekenen
Einde Sub

 

Ik heb geprobeerd boolstatus te vervangen = Part.Extension.SelectByID2("", "EDGE", 0.418950851731392, 0.261697604464967, -499.977072134691, False, 0, Nothing, 0)

bij

boolstatus = Part.Extension.SelectByID2("Part2-1", "COMPONENT", 0.418950851731392, 0.261697604464967, -499.977072134691, Onwaar, 0, Niets, 0)

Maar het werkt niet.

Weet iemand een oplossing?

Bedankt

Hallo

Ik stel een idee voor; Maar als jede oorsprong zou weergeven en je macro opnieuw zou doen met de haak van de oorsprong van het stuk, zou het niet werken??? Ik ben nieuw op macro's ....

Hallo manu67,

Dank u voor uw antwoord dat bijna werkt.

Ik heb mijn notitie oorspronkelijk toegevoegd door mijn macro op te nemen, wat me een regel code geeft die overeenkomt met wat ik wilde, d.w.z. het onderdeel is geselecteerd op zijn naam en niet op zijn coördinaten.

Aan de andere kant werkt het alleen met onderdelen zonder configuratie. Ik ben op zoek om het te doen met geconfigureerde onderdelen.

Hallo

Zou het niet het gemakkelijkst zijn om een briefje door te nemen dat je in de bibliotheek hebt gelegd?

Hier is de procedure in het bijgevoegde bestand

Ik hoop dat ik je heb geholpen.


note_en_bibliotheque.docx

Uiteindelijk was het geen probleem van configuratie, maar van taal in de kamer. Ik heb een gedownload deel dat in het Engels is, dus de oorsprong heet "Origin". Dat is de reden waarom de macro niet macrch voor dit deel.

@fliard: bedankt voor je antwoord, ik bewaar de tip die me later van pas kan komen. Aan de andere kant komt het voor deze applicatie niet overeen met wat ik verwacht, omdat ik al een macro heb die dimensies toevoegt en ik deze afmaak om notities toe te voegen. Ook staan de noten die ik toevoeg niet altijd op hetzelfde stuk.

Fijne dag:)

Hallo

Is het mogelijk om de macro die werkt te posten in een tekstbestand bijvoorbeeld?

Bedankt!

Bijgevoegd is de macro die werkt


macronote.txt

Hallo

bedankt dat je mij als het beste antwoord hebt gekozen, maar ik denk niet dat ik je veel heb geholpen, maar bedankt...