Author Topic: Set Viewport Scale  (Read 3040 times)

0 Members and 1 Guest are viewing this topic.

ANA

  • Guest
Set Viewport Scale
« on: April 26, 2009, 05:45:17 PM »
A command to set viewport scale for one or more viewports, even if they're locked. Suitable for keyboard or pull-down menu. It works in Briscad v9.

Code: [Select]
(defun c:SVP (/ NotPS NoSS SF SFI ss1 N vpN ObjN)
(defun NotPS () (prompt "\nOnly works in Paperspace. ") (exit) )
(if (> (getvar "CVPORT") 1) (NotPS) )  ;; CVport:  Pspace=1;  Mspace=2;  Vport=2+
(initget 7)   ; prevents Negative, Zero, or Null input
(setq SF (getreal "Scale Factor: "))
(setq SFI (/ 1.0 SF))
(defun NoSS () (princ "\nNo viewport selected. ") (exit) )
(setq ss1 (ssget '((0 . "VIEWPORT")) ) )  ; selection filtered - viewports only
(if (not ss1) (NoSS))
(setq N 0)
(while (< N (sslength ss1) )
  (setq vpN (ssname ss1 N) )
  (setq ObjN (vlax-ename->vla-object vpN))
  (Vla-Put-CustomScale ObjN SFI)
  (setq N (+ N 1))
  )
(sssetfirst nil ss1)
) ;; defun

ANA

  • Guest
Re: Set Viewport Scale
« Reply #1 on: April 26, 2009, 05:48:22 PM »
And a partial CUI file that uses it to set scales commonly used in construction in the US.

Code: [Select]
<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
<CustSection xml:lang="en-US">
   <FileVersion IncrementalVersion="2" MajorVersion="0" MinorVersion="3" UserVersion="0"/>
   <Header>
      <CommonConfiguration>
         <CommonItems>
        </CommonItems>
      </CommonConfiguration>
      <WorkspaceRoot>
         <WorkspaceConfigRoot/>
      </WorkspaceRoot>
   </Header>
   <MenuGroup Name="Scales">
     
      <MacroGroup Name="Viewport Scales">
      <MenuMacro UID="fullsize">
        <Macro>
          <Name>Full Size (1)</Name>
          <Command>SVP;1</Command>
        </Macro>
      </MenuMacro>
      <MenuMacro UID="halfsize">
        <Macro>
          <Name>Half Size (2)</Name>
          <Command>SVP;2</Command>
        </Macro>
      </MenuMacro>
      <MenuMacro UID="3&quot;=1'-0&quot;">
        <Macro>
          <Name>3"  (4)</Name>
          <Command>SVP;4</Command>
        </Macro>
      </MenuMacro>
      <MenuMacro UID="11/2&quot;=1'-0&quot;">
        <Macro>
          <Name>1 1/2"  (8)</Name>
          <Command>SVP;8</Command>
        </Macro>
      </MenuMacro>
      <MenuMacro UID="1&quot;=1'-0&quot;">
        <Macro>
          <Name>1"  (12)</Name>
          <Command>SVP;12</Command>
        </Macro>
      </MenuMacro>
      <MenuMacro UID="3/4&quot;=1'-0&quot;">
        <Macro>
          <Name>3/4"  (16)</Name>
          <Command>SVP;16</Command>
        </Macro>
      </MenuMacro>
      <MenuMacro UID="1/2&quot;=1'-0&quot;">
        <Macro>
          <Name>1/2"  (24)</Name>
          <Command>SVP;24</Command>
        </Macro>
      </MenuMacro>
      <MenuMacro UID="3/8&quot;=1'-0&quot;">
        <Macro>
          <Name>3/8"  (32)</Name>
          <Command>SVP;32</Command>
        </Macro>
      </MenuMacro>
      <MenuMacro UID="1/4&quot;=1'-0&quot;">
        <Macro>
          <Name>1/4"  (48)</Name>
          <Command>SVP;48</Command>
        </Macro>
      </MenuMacro>
      <MenuMacro UID="3/16&quot;(64)">
        <Macro>
          <Name>3/16"  (64)</Name>
          <Command>SVP;64</Command>
        </Macro>
      </MenuMacro>
      <MenuMacro UID="1/8&quot;(96)">
        <Macro>
          <Name>1/8"  (96)</Name>
          <Command>SVP;96</Command>
        </Macro>
      </MenuMacro>
      <MenuMacro UID="3/32&quot;(128)">
        <Macro>
          <Name>3/32"  (128)</Name>
          <Command>SVP;128</Command>
        </Macro>
      </MenuMacro>
      <MenuMacro UID="1/16&quot;(192)">
        <Macro>
          <Name>1/16"  (192)</Name>
          <Command>SVP;192</Command>
        </Macro>
      </MenuMacro>
      <MenuMacro UID="10'(120)">
        <Macro>
          <Name>1"=10'  (120)</Name>
          <Command>SVP;120</Command>
        </Macro>
      </MenuMacro>
      <MenuMacro UID="20'(240)">
        <Macro>
          <Name>1"=20'  (240)</Name>
          <Command>SVP;240</Command>
        </Macro>
      </MenuMacro>
      <MenuMacro UID="30'(360)">
        <Macro>
          <Name>1"=30'  (360)</Name>
          <Command>SVP;360</Command>
        </Macro>
      </MenuMacro>
      <MenuMacro UID="40'(480)">
        <Macro>
          <Name>1"=40'  (480)</Name>
          <Command>SVP;480</Command>
        </Macro>
      </MenuMacro>
      <MenuMacro UID="50'(600)">
        <Macro>
          <Name>1"=50'  (600)</Name>
          <Command>SVP;600</Command>
        </Macro>
      </MenuMacro>
      <MenuMacro UID="60'(720)">
        <Macro>
          <Name>1"=60'  (720)</Name>
          <Command>SVP;720</Command>
        </Macro>
      </MenuMacro>
      <MenuMacro UID="100'(1200)">
        <Macro>
          <Name>1"=100'  (1200)</Name>
          <Command>SVP;1200</Command>
        </Macro>
      </MenuMacro>
     
    </MacroGroup>
    <MenuRoot>
         <OverrideRoot/>
         <MouseButtonRoot/>
         <DigitizerButtonRoot/>
         <PopMenuRoot>

        <PopMenu UID="ID_MnScale">
          <Alias>SCALE</Alias>
          <Name>&amp;Scale</Name>
          <PopMenuItem>
            <NameRef>&amp;Full Size (1)</NameRef>
            <MenuItem>
              <MacroRef MenuMacroID="fullsize"/>
            </MenuItem>
          </PopMenuItem>
          <PopMenuItem>
            <NameRef>&amp;Half Size (2)</NameRef>
            <MenuItem>
              <MacroRef MenuMacroID="halfsize"/>
            </MenuItem>
          </PopMenuItem>
          <PopMenuItem>
            <NameRef>&amp;3"  (4)</NameRef>
            <MenuItem>
              <MacroRef MenuMacroID="3&quot;=1'-0&quot;"/>
            </MenuItem>
          </PopMenuItem>
          <PopMenuItem>
            <NameRef>&amp;1 1/2"  (8)</NameRef>
            <MenuItem>
              <MacroRef MenuMacroID="11/2&quot;=1'-0&quot;"/>
            </MenuItem>
          </PopMenuItem>
          <PopMenuItem>
            <NameRef>&amp;1"  (12)</NameRef>
            <MenuItem>
              <MacroRef MenuMacroID="1&quot;=1'-0&quot;"/>
            </MenuItem>
          </PopMenuItem>
          <PopMenuItem>
            <NameRef>&amp;3/4"  (16)</NameRef>
            <MenuItem>
              <MacroRef MenuMacroID="3/4&quot;=1'-0&quot;"/>
            </MenuItem>
          </PopMenuItem>
          <PopMenuItem>
            <NameRef>&amp;1/2"  (24)</NameRef>
            <MenuItem>
              <MacroRef MenuMacroID="1/2&quot;=1'-0&quot;"/>
            </MenuItem>
          </PopMenuItem>
          <PopMenuItem>
            <NameRef>&amp;3/8"  (32)</NameRef>
            <MenuItem>
              <MacroRef MenuMacroID="3/8&quot;=1'-0&quot;"/>
            </MenuItem>
          </PopMenuItem>
          <PopMenuItem>
            <NameRef>&amp;1/4"  (48)</NameRef>
            <MenuItem>
              <MacroRef MenuMacroID="1/4&quot;=1'-0&quot;"/>
            </MenuItem>
          </PopMenuItem>
          <PopMenuItem>
            <NameRef>&amp;3/16"  (64)</NameRef>
            <MenuItem>
              <MacroRef MenuMacroID="3/16&quot;(64)"/>
            </MenuItem>
          </PopMenuItem>
          <PopMenuItem>
            <NameRef>&amp;1/8"  (96)</NameRef>
            <MenuItem>
              <MacroRef MenuMacroID="1/8&quot;(96)"/>
            </MenuItem>
          </PopMenuItem>
          <PopMenuItem>
            <NameRef>&amp;3/32"  (128)</NameRef>
            <MenuItem>
              <MacroRef MenuMacroID="3/32&quot;(128)"/>
            </MenuItem>
          </PopMenuItem>
          <PopMenuItem>
            <NameRef>&amp;1/16"  (192)</NameRef>
            <MenuItem>
              <MacroRef MenuMacroID="1/16&quot;(192)"/>
            </MenuItem>
          </PopMenuItem>
          <PopMenuItem IsSeparator="true"/>
          <PopMenuItem>
            <NameRef>&amp;1"=10'  (120)</NameRef>
            <MenuItem>
              <MacroRef MenuMacroID="10'(120)"/>
            </MenuItem>
          </PopMenuItem>
          <PopMenuItem>
            <NameRef>&amp;1"=20'  (240)</NameRef>
            <MenuItem>
              <MacroRef MenuMacroID="20'(240)"/>
            </MenuItem>
          </PopMenuItem>
          <PopMenuItem>
            <NameRef>&amp;1"=30'  (360)</NameRef>
            <MenuItem>
              <MacroRef MenuMacroID="30'(360)"/>
            </MenuItem>
          </PopMenuItem>
          <PopMenuItem>
            <NameRef>&amp;1"=40'  (480)</NameRef>
            <MenuItem>
              <MacroRef MenuMacroID="40'(480)"/>
            </MenuItem>
          </PopMenuItem>
          <PopMenuItem>
            <NameRef>&amp;1"=50'  (600)</NameRef>
            <MenuItem>
              <MacroRef MenuMacroID="50'(600)"/>
            </MenuItem>
          </PopMenuItem>
          <PopMenuItem>
            <NameRef>&amp;1"=60'  (720)</NameRef>
            <MenuItem>
              <MacroRef MenuMacroID="60'(720)"/>
            </MenuItem>
          </PopMenuItem>
          <PopMenuItem>
            <NameRef>&amp;1"=100'  (1200)</NameRef>
            <MenuItem>
              <MacroRef MenuMacroID="100'(1200)"/>
            </MenuItem>
          </PopMenuItem>
        </PopMenu>
       
      </PopMenuRoot>
         <ToolbarRoot>

         </ToolbarRoot>
         <ScreenMenuRoot/>
         <ImageMenuRoot/>
         <TabletMenuRoot/>
         <DoubleClickRoot/>
         <ToolPanelRoot/>
         <PanelSetRoot/>
      </MenuRoot>
   </MenuGroup>

</CustSection>