Bonjour,
j'aimerais créer une macro de filtre (Dans mon entreprise, tous les assemblages sont composés sur le même modèle). J'aimerais donc pouvoir créer une macro qui cache tout et affiche seulement certaines pièces (En fonction du NOM du fichier).
Egalement une macro qui réafficherais tout ..
En vous remerciant.
[edit] Le problème surtout est de "parser" tous les composants dans l'assemblage .. Y a t'il un moyen de le faire dans une boucle for ?
Bonjour,
Si vous possédez les utilitaires Mycadtools il y a l'application TreeManager qui pourrait bien t'aider à faire cela.
Bonne journée.
1 « J'aime »
Merci,
Je ne pourrai malheureusement pas avoir accès au utilitaires MyCadTools.
Il faudrait vraiment donc que je puisse le faire avec une macro, et comme je l'ai dit le gros soucis est actuellement de prendre tous les éléments dans un assemblages.
Bonjour, dans les tutoriels que j'ai postés sur Lynkoa, il y a un ou deux exemples pour traverser tous les composants d'un assemblage. Sinon, pour filtrer, voir du côté de la sélection avancée de SolidWorks.
1 « J'aime »
Bonjour, merci.
Pourriez-vous me donner un lien d'un de vos tutoriels ou vous parlez de cela ?
C'est vrai que c'est impossible de trouver les tutoriels faits par une personne, désolé.
Je parlais de ce tutoriel mais en fait il concerne toutes les configurations d'un assemblage :
http://www.lynkoa.com/tutos/solidworks/macro-pour-toutes-les-configurations-d-un-assemblage-pour-activer-l-option-“promouv
Je cherche la macro que j'ai faire mais qui n'es pas sur Lynkoa.
1 « J'aime »
J'ai trouvé quelque chose sur internet qui me permet de parcourir les composants d'un assemblages, le problème est que je n'arrive pas les masqué. Pourquoi ?
Sub main()
Dim swModel As ModelDoc2
Dim vComps As Variant
Dim swComp As SldWorks.Component2
Dim swAssy As SldWorks.AssemblyDoc
Dim i As Integer
Set swApp = Application.SldWorks
Set swModel = swApp.ActiveDoc
If swModel.GetType = swDocASSEMBLY Then
Set swAssy = swModel
vComps = swAssy.GetComponents(False)
For i = 0 To UBound(vComps)
Set swComp = vComps(i)
Set swModel = swComp.GetModelDoc2
Debug.Print swModel.GetTitle
swModel.HideComponent2 'Ne fonctionne pas...
swModel.ClearSelection2 True
Next i
End If
End Sub
[edit]
J'ai trouvé le moyen de reprendre l'ID avec:
Debug.Print swComp.GetSelectByIDString
boolstatus = Part.Extension.SelectByID2(swComp.GetSelectByIDString, "COMPONENT", 0, 0, 0, False, 0, Nothing, 0)
Part.HideComponent2
Donc pour le moment je pense que mon problème devrait être résolu. Je vais encore un peu attendre avec de le mettre en résolu. Merci !
1 « J'aime »
En effet, comme indiqué dans le lien ci-dessous il faut sélectionner le composant avec HideComponent2 , ou sinon ils proposent une autre méthode avec la visibilité (visibility) :
https://books.google.fr/books?id=ftVsBgAAQBAJ&pg=PA39&lpg=PA39&dq=HideComponent2&source=bl&ots=11v9gfMep9&sig=Kdp-G1le6iPqcbxSFNSueTQXQs4&hl=fr&sa=X&ved=0CCwQ6AEwAmoVChMI-6DIiZuyxwIVAr0aCh3dXQmW#v=onepage&q=HideComponent2&f=false
1 « J'aime »
Merci à vous, je considère donc le problème comme résolu.