Hallo
Für die starke MYCAD-Integration, wie man einen Drucker für eine der Schichten reaktiviert
Ich habe die Aktivierungsfunktion der Formatebene aktiviert
Ich hatte * aktiviert
Aber nichts funktioniert
So blenden Sie eine Ebene aus:
Auf der anderen Seite, keine Funktion sichtbar zu drucken oder nicht zu drucken.
Das Problem ist, dass ich das bereits erkannt habe
Es zeigt das Auge, aber nicht den Drucker = > im PDF-Format an, so dass keine Zeile erscheint, da es nicht gedruckt wird.
im Bild in PJ ist es ein Format, das nicht gedruckt wird
Ich denke, dass " Poster " + ist, um das Transparentpapier zu zeigen, aber nicht den Druck
Ja, das habe ich Ihnen gesagt, um es zu zeigen, zu verstecken, es ist möglich, aber keine Option zum Drucken oder kein Drucken.
Auf der anderen Seite können Sie ein Makro über die Integration starten:
Sie beginnen mit der Erstellung Ihres Makros:
Makro-Tool, neu nennen Sie es, wie Sie wollen.
Dann fügen Sie diesen Code ein:
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
Achten Sie darauf, dass Sie nur auf MEPs ausführen, bei denen die Schicht erstellt wurde, da sonst sicherlich ein Fehler auftritt, da ich die Fehlerbehandlung nicht in den Code integriert habe.
hm, ich habe mich nicht an den Makro-Launcher erinnert...
Wenn wir eine Layer-Bedingung in Integration platzieren, kann es hilfreich sein, keine Fehlerbehandlung zu haben
Ja, aber an dieser Stelle können Sie es genauso gut in das Makro einfügen:
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