API Naamlichamen hernoemen

Hallo

Ik ben op zoek naar een manier om het begrijpen en tekenen van een multi-body bestand te vergemakkelijken. Om dit te doen, zou een van mijn manieren van reflectie zijn om de lichamen van dit deel te hernoemen met een verhoogde subset. Allemaal via een macro waarmee ik op de lichamen kan klikken die zijn hernoemd.

Op een duidelijkere en explicietere manier: stel je een onderdelenmap van een meubelstuk voor die bestaat uit meerdere subassemblages: lichaam, deur, lade, planken. Deze subassemblages zijn op hun beurt opgebouwd uit verschillende afzonderlijke behuizingen (bijvoorbeeld voor de lade: de voorkant, de knop, de bodem, de zijkanten en de achterkant). Om dit leesbaar te maken, wil ik een macro starten die me vraagt om op de lichamen in de 3D-weergave te klikken waaruit de lade bestaat en deze lichamen te hernoemen naar "lade [1], lade[2], lade [3], ... ". Als ik alle onderdelen van de lade heb geïdentificeerd, klik ik op de rechterknop en de macro schakelt automatisch over op het hernoemen van de deurelementen: "deur [1], deur [2], ..."  Enzovoort voor alle subsets. Na verschillende zoektochten vond ik een macro waarmee je de naam van een lichaam kunt weergeven als je erop klikt, die ik heb gemengd met een andere waarmee je kunt hernoemen met swbody.name=. Ik struikel over het bewerken van de loops, vooral de rechtskliktest.

Ik ben bijna nieuw met API's, mijn oude ervaringen zijn helaas totaal vergeten, door een gebrek aan regelmatige oefening. Ik weet dat API-experts hier actief zijn (ik heb eigenlijk de selectiemacro gestolen van de tutorials in .PL), alle hulp bij wat voor hen vrij eenvoudig moet zijn, is welkom.

Bedankt.

Sebastian

2 likes

Hallo

Iets heel eenvoudigs en binnen ieders bereik, is om een macro te maken door te leren, zodat je kunt zien hoe SolidWorks het doet!

Anders is er hier wat interessante informatie:

https://forum.solidworks.com/thread/81918

En misschien hier:

https://forum.solidworks.com/thread/55341

1 like

Bedankt voor deze eerste feedback. De tweede link heb ik al gevonden en geëxploiteerd.

Mijn probleem is niet zozeer meer op SW, maar eerder op VBA. Het leren van macro's onder SW stelt me niet in staat om te leren hoe ik een lus en zijn uitvoergebeurtenissen moet coderen (rechterknop in dit geval).

Mijn script zou zijn:

  • implementatie in de code van een lijst met namen (lade, plank, ...) -> ik zal ernaar zoeken, niet zo'n probleem denk ik
  • bij het starten van de macro wordt me gevraagd om op de items in de eerste lijst (lade) te klikken -> gedeeltelijk OK
  • Ik klik achtereenvolgens op X body met de linkerknop, de macro verandert de naam van de bodies in lade1, lade2,...,  ladeX ("lade" is de eerste op de lijst)-> OK dankzij de 2e link en macro.PL
  • Ik klik op de rechterknop, de macro hervat de lus net erboven door me te vragen op de items op de plank te klikken (2e op de lijst) -> Dit is waar ik vast kom te zitten
  • Einde van de macro wanneer u met de rechtermuisknop klikt op het laatste stuk van de laatste lijst (die leeg kan zijn).

Daarna zal ik zoeken naar hoe ik de lijst kan invoeren via een dialoogvenster bij het opstarten, maar het is echt accessoire.

Ik ga doornemen en testen op basis van de eerste link die ik niet had gevonden, er staat op het eerste gezicht zeer interessante informatie in. Maar ik weet niet of de rechtsklikactie wordt gebruikt.

Bedankt.

2 likes

Zoek voor de klik naar 'klik op evenement'.

Zie deze pagina:

https://books.google.fr/books?id=ftVsBgAAQBAJ&pg=PA97&lpg=PA97&dq=event+click+solidworks&source=bl&ots=11x9fcPapa&sig=yk4KI0H_hDwF6M2BpRQBoPdH5ow&hl=fr&sa=X&redir_esc=y#v=onepage&q=event%20click%20solidworks&f=false

Of kijk hier:

http://help.solidworks.com/2015/English/api/sldworksapi/Run_SOLIDWORKS_Commands_and_Synthesize_Mouse_Events_Example_VB.htm

http://help.solidworks.com/2012/English/api/sldworksapiprogguide/Overview/Events.htm?id=6328edd0faf9464baf45de5be3f06f30