CAD开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

AutoCAD 2018 开发者帮助

Mask 属性 (ActiveX)

2024-5-18 16:54| 发布者: admin| 查看: 112| 评论: 0|原作者: admin|来自: AutoCAD

Mask 属性 (ActiveX)

指定要恢复的图层属性。

支持的平台:仅限 Windows

签名

VBA:

object.Mask
对象

类型:LayerStateManager

此属性应用于的对象。

属性值

只读:

类型:枚举AcLayerStateMask

表示要恢复的图层属性的数字。使用下表中的常量来标识图层属性:

  • acLsAll:所有图层属性
  • acLsColor:颜色
  • acLsFrozen:冷冻或解冻
  • acLsLineType:线型
  • acLsLineWeight:线宽
  • acLsLocked:锁定或解锁
  • acLsNewViewport:冻结或解冻的新视口图层
  • acLsNone:没有
  • acLsOn:开或关
  • acLsPlot:开或关绘图
  • acLsPlotStyle:剧情风格

言论

LayerStateManager 方法使用 Mask 属性来标识要还原的图层属性。首先,在使用 LayerStateManager 方法保存图层设置时设置该属性。但是,Save 方法实际上保存了每个绘图图层的所有属性。您可以在恢复图层设置之前随时更新属性,从而更改要恢复的图层属性。RestoreMaskSaveMask

要在蒙版中指定多个图层属性,请添加表示这些属性的常量。例如,若要保存 Color 和 LineType 属性,请指定以下内容:

acLsColor + acLsLineType

例子

VBA:

Sub Example_SetMask()
    ' The following code updates the Mask property of layer
    ' settings saved under the name "ColorLineType, so that
    ' Color, LineType, and LineWeight layer properties will
    ' be restored by a Restore operation.
    
    Dim oLSM As AcadLayerStateManager
    Dim settings As AcLayerStateMask
    
    Set oLSM = ThisDrawing.Application. _
       GetInterfaceObject("AutoCAD.AcadLayerStateManager." & Left(CStr(AcadApplication.Version), 2))
    oLSM.SetDatabase ThisDrawing.Database
    
    oLSM.Save "ColorLinetype", acLsColor + acLsLineType
    
    ' Retrieve the current mask setting from ColorLinetype
    settings = oLSM.Mask("ColorLinetype")
       
    ' Set mask so that Color, LineType, and LineWeight
    ' properties will be restored by a Restore operation
    settings = acLsColor + acLsLineType + acLsLineWeight
         
    ' Commit the new settings mask to ColorLinetype
    oLSM.Mask("ColorLinetype") = settings

End Sub

可视化 LISP:

(vl-load-com)
(defun c:Example_Mask()
    ;; The following code updates the Mask property of layer
    ;; settings saved under the name "ColorLineType, so that
    ;; Color, LineType, and LineWeight layer properties will
    ;; be restored by a Restore operation.
    (setq acadObj (vlax-get-acad-object))
    (setq doc (vla-get-ActiveDocument acadObj))
  
    (setq oLSM (vla-GetInterfaceObject acadObj (strcat "AutoCAD.AcadLayerStateManager." (substr (getvar "ACADVER") 1 2))))

    (vla-SetDatabase oLSM (vla-get-Database doc))

    (vla-Save oLSM "ColorLinetype" (+ acLsColor acLsLineType))

    ;; Retrieve the current mask setting from ColorLinetype
    (setq settings (vla-get-Mask oLSM "ColorLinetype"))
       
    ;; Set mask so that Color, LineType, and LineWeight
    ;; properties will be restored by a Restore operation
    (setq settings (+ acLsColor acLsLineType acLsLineWeight))
         
    ;; Commit the new settings mask to ColorLinetype
    (vla-put-Mask oLSM "ColorLinetype" settings)

    (vlax-release-object oLSM)
)

路过

雷人

握手

鲜花

鸡蛋

最新评论

QQ|Archiver|CAD开发者社区 ( 苏ICP备2022047690号-1   苏公网安备32011402011833)

GMT+8, 2025-3-14 08:34

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

返回顶部