CAD开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

ActiveX 开发指南

相关分类

ViewToPlot Property (ActiveX)

2023-1-3 01:27| 发布者: admin| 查看: 220| 评论: 0|来自: AutoCAD

摘要: 指定要打印的视图的名称。

指定要打印的视图的名称。

支持的平台:仅窗口

签名

工 务 局:

object.ViewToPlot
对象

类型:布局绘图配置

此属性适用的对象。

属性值

只读:

类型:字符串

要打印的视图的名称。

言论

要将打印指定到视图,请将布局或打印配置的属性设置为。PlotTypeacView

例子

工 务 局:

Sub Example_ViewToPlot()
    ' This example reads a list of available Named Views and displays a plot preview
    ' of the view selected by the user.  The current view to plot,
    ' if set, if preceded by an '*'
    '
    ' * Note: After previewing the plot, you will have to exit the
    ' plot preview before the VBA example will stop and control will be returned
    
    Dim ViewList As New Collection
    Dim View As AcadView
    Dim iCount As Long
    Dim msg As String
    Dim ViewName As String, ViewNum As String
    
    ' Get list of views available to plot
    For Each View In ThisDrawing.Views
        ViewList.Add View
    Next
    
    ' Are there any named views to plot
    If ViewList.count = 0 Then
        MsgBox "There are no named views to plot.", vbInformation
        Exit Sub
    End If
    
    ' Read and display the current plot style table path
    For iCount = 1 To ViewList.count
        ViewName = ViewList(iCount).Name
        
        If ViewName = ThisDrawing.ActiveLayout.ViewToPlot Then  ' Is this the current view to plot
            ViewNum = iCount
            ViewName = "*" & ViewName
        End If
        
        msg = msg & "(" & iCount & ") " & vbTab & ViewName & vbCrLf
    Next
    
    ' Prompt user for the view to plot
RETRY:
    ViewNum = InputBox("Which view would you like to plot?" & vbCrLf & vbCrLf & msg, "View To Plot", ViewNum)
    
    If Trim(ViewNum) = "" Then
        Exit Sub
    End If
    
    If Not (IsNumeric(ViewNum)) Then
        MsgBox "You must supply a numeric value corresponding to one of the views listed above.", vbExclamation
        GoTo RETRY
    End If
    
    ' Tell the drawing which view to plot
    ThisDrawing.ActiveLayout.ViewToPlot = ViewList(CLng(ViewNum)).Name
    
    ' Make sure you tell the drawing to plot a view, not some other plot style
    ThisDrawing.ActiveLayout.PlotType = acView
    
    ' Send Plot To Window
    ThisDrawing.ActiveLayout.ConfigName = "DWG to PDF.pc3"
    ThisDrawing.Plot.DisplayPlotPreview acFullPreview
End Sub

Visual LISP:

(vl-load-com)
(defun c:Example_ViewToPlot()
    ;; This example reads a list of available Named Views and displays a plot preview
    ;; of the view selected by the user.  The current view to plot,
    ;; if set, if preceded by an '*'
    ;;
    ;; * Note: After previewing the plot, you will have to exit the
    ;; plot preview before the VBA example will stop and control will be returned
    (setq acadObj (vlax-get-acad-object))
    (setq doc (vla-get-ActiveDocument acadObj))
    
    ;; Get list of views available to plot
    (setq viewList (vlax-make-safearray vlax-vbObject (cons 0 (vla-get-Count (vla-get-Views doc))))
          cnt 0)
  
    (vlax-for view (vla-get-Views doc)
        (vlax-safearray-put-element viewList cnt view)
        (setq cnt (1+ cnt))
    )
    
    ;; Are there any named views to plot
    (if (> (vla-get-Count (vla-get-Views doc)) 0)
        (progn
            ;; Read and display the current plot style table path
            (setq iCount 0
                  msg "")
            (while (> (vla-get-Count (vla-get-Views doc)) iCount)
                (setq viewName (vla-get-Name (vlax-safearray-get-element ViewList iCount)))
        
                (if (= viewName (vla-get-ViewToPlot (vla-get-ActiveLayout doc)))  ;; Is this the current view to plot
                    (setq ViewNum (1+ iCount)
                          ViewName (strcat "*" ViewName))
                )
        
                (setq iCount (1+ iCount)
                      msg (strcat msg "(" (itoa iCount) ")   " viewName "\n"))
            )
    
            ;; Prompt user for the view to plot
            (setq viewNum (vla-GetInteger (vla-get-Utility doc) (strcat "\nWhich view would you like to plot?\n" msg)))
    
            (if (and (<= viewNum (vla-get-Count (vla-get-Views doc)))
                     (> viewNum 0))
                (progn
                    ;; Tell the drawing which view to plot
                    (vla-put-ViewToPlot (vla-get-ActiveLayout doc) (vla-get-Name (vlax-safearray-get-element ViewList (1- viewNum))))
    
                    ;; Make sure you tell the drawing to plot a view, not some other plot style
                    (vla-put-PlotType (vla-get-ActiveLayout doc) acView)
                    (vla-put-ConfigName (vla-get-ActiveLayout doc) "DWF6 ePlot.pc3")
                  
                    ;; Send Plot To Window
                    (vla-DisplayPlotPreview (vla-get-Plot doc) acFullPreview)
                )
                (alert "The view number entered is not valid.")
            )
        )
        (alert "There are no named views to plot.")
    )
)

路过

雷人

握手

鲜花

鸡蛋

最新评论

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

GMT+8, 2024-5-12 11:03

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

返回顶部