Transparante printer op 1 SW-laag

Hallo
Voor de sterken in MYCAD-integratie: hoe een printer opnieuw te activeren voor een van de lagen
Ik heb de activeringsfunctie van de formaatlaag gedaan
Ik had * geactiveerd
Maar niets werkt
calque Image 001

Een laag verbergen weergeven:


Aan de andere kant, om wel of niet af te drukken heeft geen functie zichtbaar.

Het probleem is dat ik dit al besef heb
het geeft het oog weer, maar niet de printer => in PDF-formaat, zodat er geen regel verschijnt omdat deze niet wordt afgedrukt.
in de afbeelding in PJ is het formaat dat niet wordt afgedrukt
Ik denk dat " poster " is + om het calqueerpapier te laten zien, maar niet de afdruk

Ja, dat is wat ik je vertelde om te laten zien, verbergen is mogelijk, maar geen optie om af te drukken of niet af te drukken.
Aan de andere kant kun je een macro starten via integratie:


Je begint met het maken van je macro:
Macro tool, nieuw noem maar op wat je wilt.
Vervolgens plak je deze code in:

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

Zorg ervoor dat u alleen wordt uitgevoerd op Europarlementariërs die de laag hebben gemaakt, anders zal er zeker een fout optreden, aangezien ik foutafhandeling niet in de code heb geïntegreerd.

1 like

hum Ik herinnerde me de macro-launcher niet ...
Als we een laagvoorwaarde in Integratie plaatsen, kan het helpen om geen foutafhandeling te hebben

1 like

Ja, maar op dit moment kun je het net zo goed in de macro zetten:

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
2 likes