S- of NS-status van een functie via een macro - VBA

Hoi allemaal

Ik ben momenteel op zoek naar een manier om een SolidWorks (VBA) macro te gebruiken om een functie van de creatieboom in de verwijderde staat te zetten of niet (ik heb eerder alle namen van de dimensie in mijn Excel-bestand ingevoerd).

Als iemand de oplossing heeft, zou het erg nuttig voor mij zijn ...

Vriendelijke groeten

Steen

Hallo

Klik met de rechtermuisknop op de functie en vervolgens op de eigenschappen van de functie en u kiest voor verwijderen en kiest in deze configuratie of alle configuraties of specificeer de configuratie(s).... Het resultaat is hetzelfde, als veel klikken en minder vervelend om te doen...

Hallo ac cobra 427,

Je zult merken dat ik "via een macro" heb opgegeven, dus je antwoord is niet echt nuttig voor mij, maar toch bedankt.

Tampis, het was in de tussentijd een alternatieve oplossing voor je probleem. Want om dat in VBA te doen, wordt het heet...

 

Hallo

De macrorecorder werkt niet?

Hallo!

Heb je erover nagedacht om een kijkje te nemen bij DriveWorksXpress?

DriveWorksXpress is een gratis tool waarmee u uw ontwerpen kunt automatiseren. Een van de functies is de mogelijkheid om de status (al dan niet verwijderd) van een of meer SolidWorks-functies te wijzigen.

Maar als u vertrouwd bent met programmeren en tijd aan deze taak wilt besteden.

Uw macro moet:

  • Haal de waarde van een Excel-rij op. (Lus)
  • haal de namen op van alle SolidWorks-functies in uw model (lus)
  • Als het bestaat, selecteer het dan.
  • haal de status op die moet worden beheerd uit dezelfde Excel-regel
  • De status van de functie wijzigen

enz enz

Je wilt zeker een kijkje nemen naar de SOLIDWORKS API:

Zoals wat

  • Part.Extension.SelectByID2 (een van de verschillende selectiemethoden)
  • Part.EditSuppress2 (een manier om de status van de geselecteerde functie te wijzigen).

Hieronder vindt u de link naar de SolidWorks-interfaces voor documentatie:

http://help.solidworks.com/2016/English/api/SWHelp_List.html?id=e016d4d94ffb4feb9865a83290877513#Pg0&ProductType=&ProductName=

Succes!

2 likes

Trouwens, ik heb het net snel gecontroleerd, het idee van optiSW is volledig geldig, alles wat ik zojuist zei, is vervat in een macro die snel wordt opgenomen.

Sterker nog, ik denk dat hij graag een klein "drop-down" menu zou willen hebben met de verwijderde en niet-verwijderde in de creatieboom. Maar daarvoor moet je liever kijken om een add-on te ontwikkelen of als die bestaat ....

Hallo thomas.guillard,

Ik heb eindelijk de oplossing gevonden en het is dezelfde als degene die je me hebt voorgesteld.

Ik heb een kleine macro gemaakt die zoekt naar de naam van de kust in mijn Excel en deze vervolgens selecteert op het 3D-gedeelte om de status te wijzigen.

                    naam = Cellen(2, i). Waarde
                    Searchstring = naam
                    SearchChar="@"
                    mypos = InStr(1, Zoektekenreeks, Zoektekening, 1)
                    nom_cote = Right(Searchstring, Len(naam) - Mypos) 'telt het aantal tekens en trekt de Mypos ervan af
                        Deel instellen = swApp.ActiveDoc
                    boolstatus = Part.Extension.SelectByID2(nom_cote, "BODYFEATURE", 0, 0, 0, False, 0, Nothing, 0)
                            Deel.EditSuppress2

 

Dank u allen voor uw hulp,

Als thomas.guillard je het antwoord gaf of je sterk stuurde, had hij gevalideerd moeten worden als het beste antwoord...

Ik identificeerde het als het beste antwoord, maak je geen zorgen.

Zelfs als ik uiteindelijk zelf de oplossing had gevonden en nadat ik die had gevonden, zag ik zijn antwoord dat overeenkwam met het begin van mijn oplossing.

In ieder geval, bedankt allemaal,

1 like