freefeng 发表于 2008-8-18 17:35:00

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

我们在做节点图时经常要用到几个视口,在其中的一个视口里增加一个图层后又不想让这个新增加的图层在其它所有视口是显示,需要在其它所有视口中冻结,请高手帮忙啊

一般般 发表于 2018-7-31 23:44:29

搞错了 LAYVPI

一般般 发表于 2018-7-31 23:41:37

layiso了解下

freefeng 发表于 2008-8-22 15:35:00

<p>请老大帮帮忙啊!</p><p></p>

freefeng 发表于 2008-9-9 19:56:00

<p>会不会是太复杂啊?都没有高手出手啊</p>

ljttjl 发表于 2008-9-12 19:41:00

应该能解决这个问题,我看看吧,联系:ljttjl@ tom.com,以便及时回复您.

alex0007 发表于 2010-5-23 11:37:00

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

lqss 发表于 2010-5-23 20:00:00

这个程序怎么用啊?

xotoo 发表于 2010-6-15 17:25:00

可以新建一个“在所有视口中都冻结的新图层”来解决这个问题
新建立的这个图层,在任何视口中都是冻结的,你想在那个视口中显示,就在那个视口中解冻就可以了

zzsong 发表于 2010-8-7 12:07:00

试一试<em class="strong"><em class="strong">vplayer命令。</em></em>

20100 发表于 2010-8-9 15:37:00

freefeng 发表于 2012-5-27 13:43:30

时隔四年,回来看看,这个问题好像还没解决,我水平太低,不会用五楼的方法。
页: [1] 2
查看完整版本: 求一个能在非当前视口中冻结当前图层的LISP