[VB script] Inverser la sélection

Voir le sujet précédent Voir le sujet suivant Aller en bas

[VB script] Inverser la sélection

Message  dh42 le Ven 9 Aoû - 23:47

Salut,

Voici un nouveau script permettant d'inverser la sélection (des objets de dessin)
Sauver le avec l’extension .vbs dans votre dossier script de Cambam.

Code:
'invert selection - dh42 2013

sub main

 dim ent as Entity
 dim ID as integer
 dim rep as boolean = false

CamBamConfig.Defaults.ReloadTreeAfterScript = false

 ' store data for actual selection
 dim oldselection as ArrayList = new ArrayList()

 for each ent in view.SelectedEntities

 oldselection.Add(ent)

 next ent


 'select all
 view.SelectAllVisibleGeometry()

 dim invertselect as ArrayList = new ArrayList()

 'scan all the objects
 for each ent in view.SelectedEntities
 
rep = scanID(ent.ID, oldselection) ' test if ID exist in old selection
 
if rep = false then 'not found
 invertselect.Add(ent) ' add the object to the new list
 end if

 next ent

 view.Select(invertselect)

end sub

'--------------------------------------------------------------------

function scanID( ID as integer, oldsel as ArrayList ) as boolean
 
'scan the old selection, if ID match, return true, else false

 dim ent as Entity

 for each ent in oldsel
 
if ID = ent.ID then 'match found
 return true
 exit function
 end if

 next ent

 return false 'no match found

end function
Utilisez la touche F5 pour lancer le code (la fenêtre de code doit être sélectionnée)











Unable to display content. Adobe Flash is required.


++
David

_________________

Traduction Française de CamBam et de sa documentation.

dh42
Admin
Admin

Messages : 12402
Points : 25130
Date d'inscription : 21/06/2009
Age : 53
Localisation : Près de St Etienne (42)

http://dh42.free.fr/

Revenir en haut Aller en bas

Re: [VB script] Inverser la sélection

Message  dh42 le Mar 10 Sep - 13:35

Salut,

correction d'un bug dans le script ci-dessus (les objets étaient sélectionnés à l'écran, mais pas dans l'arborescence, ce qui rendait la sélection inutilisable)

Recopiez tout le code ci dessous, ou changez votre script existant ; il faut ajouter la ligne

CamBamConfig.Defaults.ReloadTreeAfterScript = false

(4 ieme ligne dans la fonction main ; voir ci dessus)

++
David

_________________

Traduction Française de CamBam et de sa documentation.

dh42
Admin
Admin

Messages : 12402
Points : 25130
Date d'inscription : 21/06/2009
Age : 53
Localisation : Près de St Etienne (42)

http://dh42.free.fr/

Revenir en haut Aller en bas

Voir le sujet précédent Voir le sujet suivant Revenir en haut

- Sujets similaires

 
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum