Gets the custom scale for a layout or plot configuration.
Supported platforms: Windows only
VBA:
object.GetCustomScale Numerator, Denominator
Type: Layout, PlotConfiguration
The objects this method applies to.
Access: Output-only
Type: Double
The numerator in the scale ratio. This value represents the number of inches or mm for the scale.
Access: Output-only
Type: Double
The denominator in the scale ratio. This value represents the number of drawing units for the scale.
No return value.
The Numerator parameter depends upon the setting of the PaperUnits property.
VBA:
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)) )