Bonjour
Pour les fort en MYCAD intégration comment réactiver une l’imprimante pour un des calque
J’ai fait la fonction activer du calque format
j’ai fait activer *
mais rien n’y fait
Pour afficher cacher un calque:
Par contre pour imprimer ou ne pas imprimer pas de fonction visiblement.
Le problème c’est que ça j’ai déjà réalisé
cela affiche l’œil mais pas l’imprimante => en format PDF du coup aucune ligne n’apparait puisque non imprimé.
dans l’image en PJ c’est format qui ne s’imprime pas
Je pense que « affiche » tiens + de montrer le calque mais pas l’imprimé
Oui c’est ce que je te disais pour afficher cacher c’est possible mais pas d’option pour l’impression ou pas d’impression.
Par contre tu peux lancer une macro via intégration:
Tu commence par créer ta macro:
Outil macro, nouvelle tu la nommes comme tu le veux.
Puis tu colles ce code dedans:
Option Explicit
'Changer ci-dessous le nom du calque à rendre invisible à la place de NomDuCalque
Public Const layerName As String = "NomDuCalque"
Sub main()
Dim swApp As SldWorks.SldWorks
Dim swModel As SldWorks.ModelDoc2
Dim swLayerMgr As SldWorks.LayerMgr
Dim swLayer As SldWorks.Layer
Set swApp = Application.SldWorks
Set swModel = swApp.ActiveDoc
Set swLayerMgr = swModel.GetLayerManager
Set swLayer = swLayerMgr.GetLayer(layerName)
swLayer.Printable = False 'Pour rendre le calque visible mettre True
End Sub
Attention à lancer uniquement sur des MEP qui ont le calque de créé sans quoi il y aura sûrement une erreur, puisque je n’ai pas intégré dans la code la gestion d’erreur.
hum je ne me souvenais pas du lanceur de macro …
si on place une condition de calque dans intégration cela peux aider a ne pas avoir de gestion d’erreur
Oui mais arrivé là, autant la mettre dans la macro:
Option Explicit
'Changer ci-dessous le nom du calque à rendre invisible à la place de NomDuCalque
Public Const layerName As String = "NomDuCalque"
Sub main2()
Dim swApp As SldWorks.SldWorks
Dim swModel As SldWorks.ModelDoc2
Dim swLayerMgr As SldWorks.LayerMgr
Dim vLayerArr As Variant
Dim vLayer As Variant
Dim swLayer As SldWorks.Layer
Set swApp = Application.SldWorks
Set swModel = swApp.ActiveDoc
'Vérification si un modèle est chargé
If swModel Is Nothing Then
Exit Sub
End If
'Vérification si le document chargé est une MEP
If (swModel.GetType <> swDocDRAWING) Then
Exit Sub
End If
Set swLayerMgr = swModel.GetLayerManager
vLayerArr = swLayerMgr.GetLayerList
For Each vLayer In vLayerArr
Set swLayer = swLayerMgr.GetLayer(vLayer)
'Vérification du nom du calque
If swLayer.Name = layerName Then
swvLayer.Printable = False 'Pour rendre le calque visible mettre True
End If
Next
End Sub