获取布局或打印配置的自定义比例。 支持的平台:仅窗口 签名工 务 局: object.GetCustomScale Numerator, Denominator 返回值(RetVal)无返回值。 言论分子参数取决于属性的设置。PaperUnits 例子工 务 局: Sub Example_GetCustomScale()
' This example will access the Layouts collection for the current drawing
' and list basic information about the custom scale for each Layout.
' It will then change the custom scale information for model space and re-display
' the scale information.
Dim Layouts As AcadLayouts, Layout As ACADLayout
Dim msg As String
Dim Numerator As Double, Denominator As Double
Dim Measurement As String
' Display current scale information
GoSub DISPLAY_SCALE_INFO
' Modify scale
Numerator = 1
Denominator = 1
ThisDrawing.Layouts("Model").SetCustomScale Numerator, Denominator
ThisDrawing.Regen acAllViewports
' Display new scale information
GoSub DISPLAY_SCALE_INFO
Exit Sub
DISPLAY_SCALE_INFO:
' Get layouts collection from document object
Set Layouts = ThisDrawing.Layouts
msg = vbCrLf & vbCrLf ' Start with a space
' Get the scale information of every layout in this drawing
For Each Layout In Layouts
msg = msg & Layout.name & vbCrLf
' Get scale information
Layout.GetCustomScale Numerator, Denominator
' Are we using inches or millimeters
Measurement = IIf(Layout.PaperUnits = acInches, " inch(es)", " millimeter(s)")
' Format for display
msg = msg & vbTab & "Contains " & Numerator & Measurement & vbCrLf
msg = msg & vbTab & "Contains " & Denominator & " drawing units" & vbCrLf
msg = msg & "_____________________" & vbCrLf
Next
' Display custom scale information
MsgBox "Custom scale information for the current drawing is: " & msg
Return
End Sub
Visual LISP: (vl-load-com)
(defun c:Example_GetCustomScale()
;; This example will access the Layouts collection for the current drawing
;; and list basic information about the custom scale for each Layout.
;; It will then change the custom scale information for model space and re-display
;; the scale information.
(setq acadObj (vlax-get-acad-object))
(setq doc (vla-get-ActiveDocument acadObj))
;; Display current scale information
(setq Layouts (vla-get-Layouts doc))
(setq msg "")
;; Get the scale information of every layout in this drawing
(vlax-for Layout Layouts
(setq msg (strcat msg (vla-get-Name Layout) "\n"))
;; Get scale information
(vla-GetCustomScale Layout 'Numerator 'Denominator)
;; Are we using inches or millimeters
(setq Measurement (if (= (vla-get-PaperUnits Layout) acInches) " inch(es)\n" " millimeter(s)\n"))
;; Format for display
(setq msg (strcat msg " Contains " (rtos Numerator 2) Measurement
" Contains " (rtos Denominator 2) " drawing units\n"
"_____________________\n"))
)
;; Display custom scale information
(alert (strcat "Custom scale information for the current drawing is: " msg))
;; Modify scale
(setq Numerator 1
Denominator 1)
(vla-SetCustomScale (vla-Item (vla-get-Layouts doc) "Model") Numerator Denominator)
(vla-Regen doc acAllViewports)
;; Display new scale information
(setq Layouts (vla-get-Layouts doc))
(setq msg "")
;; Get the scale information of every layout in this drawing
(vlax-for Layout Layouts
(setq msg (strcat msg (vla-get-Name Layout) "\n"))
;; Get scale information
(vla-GetCustomScale Layout 'Numerator 'Denominator)
;; Are we using inches or millimeters
(setq Measurement (if (= (vla-get-PaperUnits Layout) acInches) " inch(es)\n" " millimeter(s)\n"))
;; Format for display
(setq msg (strcat msg " Contains " (rtos Numerator 2) Measurement
" Contains " (rtos Denominator 2) " drawing units\n"
"_____________________\n"))
)
;; Display custom scale information
(alert (strcat "Custom scale information for the current drawing is: " msg))
)
|
|Archiver|CAD开发者社区
( 苏ICP备2022047690号-1 苏公网安备32011402011833)
GMT+8, 2025-10-29 08:44
Powered by Discuz! X3.4
Copyright © 2001-2021, Tencent Cloud.