明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 5347|回复: 13

求一个能在非当前视口中冻结当前图层的LISP

  [复制链接]
发表于 2008-8-18 17:35 | 显示全部楼层 |阅读模式
我们在做节点图时经常要用到几个视口,在其中的一个视口里增加一个图层后又不想让这个新增加的图层在其它所有视口是显示,需要在其它所有视口中冻结,请高手帮忙啊
发表于 2018-7-31 23:44 | 显示全部楼层
搞错了 LAYVPI
回复 支持 1 反对 0

使用道具 举报

发表于 2018-7-31 23:41 | 显示全部楼层
layiso了解下
 楼主| 发表于 2008-8-22 15:35 | 显示全部楼层

请老大帮帮忙啊!

 楼主| 发表于 2008-9-9 19:56 | 显示全部楼层

会不会是太复杂啊?都没有高手出手啊

发表于 2008-9-12 19:41 | 显示全部楼层
应该能解决这个问题,我看看吧,联系:ljttjl@ tom.com,以便及时回复您.
发表于 2010-5-23 11:37 | 显示全部楼层
ViewportDefault 示例



使用 VBA 以外的其它编程语言

Sub Example_ViewportDefault()
    ' This example creates a new layer called "New_Layer".  It then uses
    ' the ViewportDefault property of each Layer to display whether or not that layer
    ' is frozen in new viewports.  The user has the ability to toggle whether or not
    ' each layer will be frozen in new viewports, and the final ViewportDefault status
    ' for all layers is displayed.
   
    Dim layerObj As AcadLayer, tempLayer As AcadLayer
    Dim msg As String

    ' Add the layer to the layers collection
    Set layerObj = ThisDrawing.Layers.Add("New_Layer")
   
    ' Make the new layer the active layer for the drawing
    ThisDrawing.ActiveLayer = layerObj
   
    ' Cycle through the layers and allow user to make them frozen in new viewports or not
   
    For Each tempLayer In ThisDrawing.Layers
        If tempLayer.ViewportDefault Then     ' Determine if this layer is fozen in new viewports
            If MsgBox("The layer '" & tempLayer.name & "' will be frozen in new viewports.  Would you like to make this layer unfrozen in new viewports?", vbYesNo & vbQuestion) = vbYes Then
                tempLayer.ViewportDefault = False     ' Change frozen state
            End If
        Else
            If MsgBox("The layer '" & tempLayer.name & "' will not be frozen in new viewports.  Would you like to make this layer frozen in new viewports?", vbYesNo & vbQuestion) = vbYes Then
                tempLayer.ViewportDefault = True      ' Change frozen state
            End If
        End If
    Next
   
    ' Display the new viewport freeze status of the layers in this drawing
   
    For Each tempLayer In ThisDrawing.Layers
        ' Determine if this layer is frozen in new viewports
        If tempLayer.ViewportDefault Then
            msg = msg & "The layer '" & tempLayer.name & "' will be frozen in new viewports." & vbCrLf
        Else
            msg = msg & "The layer '" & tempLayer.name & "' will not be frozen in new viewports." & vbCrLf
        End If
    Next

    MsgBox msg
End Sub
发表于 2010-5-23 20:00 | 显示全部楼层
这个程序怎么用啊?
发表于 2010-6-15 17:25 | 显示全部楼层
可以新建一个“在所有视口中都冻结的新图层”来解决这个问题
新建立的这个图层,在任何视口中都是冻结的,你想在那个视口中显示,就在那个视口中解冻就可以了
发表于 2010-8-7 12:07 | 显示全部楼层
试一试<em class="strong"><em class="strong">vplayer命令。</em></em>
发表于 2010-8-9 15:37 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
 楼主| 发表于 2012-5-27 13:43 | 显示全部楼层
时隔四年,回来看看,这个问题好像还没解决,我水平太低,不会用五楼的方法。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-4-25 04:21 , Processed in 0.350645 second(s), 24 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表