Files

432 lines
12 KiB
Plaintext

;;; ACAD.MNL (Also duplicated as ACADFULL.MNL for Windows.)
;;; Copyright (C) 1992, 1993, 1994 by Autodesk, Inc.
;;;
;;; Permission to use, copy, modify, and distribute this software
;;; for any purpose and without fee is hereby granted, provided
;;; that the above copyright notice appears in all copies and
;;; that both that copyright notice and the limited warranty and
;;; restricted rights notice below appear in all supporting
;;; documentation.
;;;
;;; AUTODESK PROVIDES THIS PROGRAM "AS IS" AND WITH ALL FAULTS.
;;; AUTODESK SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTY OF
;;; MERCHANTABILITY OR FITNESS FOR A PARTICULAR USE. AUTODESK, INC.
;;; DOES NOT WARRANT THAT THE OPERATION OF THE PROGRAM WILL BE
;;; UNINTERRUPTED OR ERROR FREE.
;;;
;;; Use, duplication, or disclosure by the U.S. Government is subject to
;;; restrictions set forth in FAR 52.227-19 (Commercial Computer
;;; Software - Restricted Rights) and DFAR 252.227-7013(c)(1)(ii)
;;; (Rights in Technical Data and Computer Software), as applicable.
;;;
;;; AutoLISP routines used by the AutoCAD Release 13 Standard Menu.
;;;
;;; This file is loaded automatically following the menu ACAD.
(princ ;|ACAD_MNL_1|;"\nAutoCAD Release 13 menu utilities ")
;;;=== Icon Menu Functions ===
;;; View -> Layout -> Tiled Viewports...
(defun ai_tiledvp_chk (new)
(setq m:err *error* *error* *merrmsg*)
(if (= (getvar "TILEMODE") 0)
(progn
(princ ;|ACAD_MNL_2|;"\n** Command not allowed unless TILEMODE is set to 1 (On) **")
(princ)
)
(progn
(if new
(menucmd "I=ACAD.IMAGE_VPORTI")
(menucmd "I=IMAGE_VPORTI")
)
(menucmd "I=*")
)
)
(setq *error* m:err m:err nil)
(princ)
)
(defun ai_tiledvp (num ori / ai_tiles_g ai_tiles_cmde)
(setq m:err *error* *error* *merrmsg*
ai_tiles_cmde (getvar "CMDECHO")
ai_tiles_g (getvar "GRIDMODE")
)
(setvar "CMDECHO" 0)
(setvar "GRIDMODE" 0)
(cond ((= num 1)
(command "_.VPORTS" "_SI")
(setvar "GRIDMODE" ai_tiles_g)
)
((< num 4)
(command "_.VPORTS" "_SI")
(command "_.VPORTS" num ori)
(setvar "GRIDMODE" ai_tiles_g)
)
((= ori nil)
(command "_.VPORTS" "_SI")
(command "_.VPORTS" num)
(setvar "GRIDMODE" ai_tiles_g)
)
((= ori ;|ACAD_MNL_3|;"_L")
(command "_.UNDO" "_M")
(command "_.VPORTS" "_SI")
(command "_.VPORTS" "2" "")
(setvar "CVPORT" (car (cadr (vports))))
(command "_.VPORTS" "2" "")
(command "_.VPORTS" "_J" "" (car (cadr (vports))))
(setvar "CVPORT" (car (cadr (vports))))
(command "_.VPORTS" "3" "_H")
(setvar "GRIDMODE" ai_tiles_g)
(setvar "CVPORT" (car (cadddr (vports))))
(setvar "GRIDMODE" ai_tiles_g)
(setvar "CVPORT" (car (cadddr (vports))))
(setvar "GRIDMODE" ai_tiles_g)
(setvar "CVPORT" (car (cadddr (vports))))
(setvar "GRIDMODE" ai_tiles_g)
(command "_.UNDO" "_E")
)
(T
(command "_.UNDO" "_M")
(command "_.VPORTS" "_SI")
(command "_.VPORTS" "2" "")
(command "_.VPORTS" "2" "")
(setvar "CVPORT" (car (caddr (vports))))
(command "_.VPORTS" "_J" "" (car (caddr (vports))))
(setvar "CVPORT" (car (cadr (vports))))
(command "_.VPORTS" "3" "_H")
(setvar "GRIDMODE" ai_tiles_g)
(setvar "CVPORT" (car (cadddr (vports))))
(setvar "GRIDMODE" ai_tiles_g)
(setvar "CVPORT" (car (cadddr (vports))))
(setvar "GRIDMODE" ai_tiles_g)
(setvar "CVPORT" (car (cadddr (vports))))
(setvar "GRIDMODE" ai_tiles_g)
(command "_.UNDO" "_E")
)
)
(setq *error* m:err m:err nil)
(setvar "CMDECHO" ai_tiles_cmde)
(princ)
)
;;;=== Tablet Swap Functions ===
(defun ai_tab1 ()
(setq T_Menu (read (ai_popmenucfg "T_Menu")))
(if (= (logand 1 T_Menu) 1)
(progn
(ai_putmenucfg "T_Menu" (itoa (setq T_Menu (- T_Menu 1))))
(if (< (getvar "EXPERT") 4)
(princ ;|ACAD_MNL_4|;"\nAlternate tablet area 1 unloaded.")
)
(menucmd "T1=TABLET1")
(if (< (getvar "EXPERT") 1)
(princ ;|ACAD_MNL_5|;"\nThis area is for your personal applications and menu items.\n")
)
)
(progn
(ai_putmenucfg "T_Menu" (itoa (setq T_Menu (+ T_Menu 1))))
(if (< (getvar "EXPERT") 4)
(princ ;|ACAD_MNL_6|;"\nAlternate tablet area 1 loaded. ")
)
(menucmd "T1=TABLET1ALT")
(if (< (getvar "EXPERT") 1)
(princ ;|ACAD_MNL_7|;"\nThis area is for your personal applications and menu items.\n")
)
)
)
(princ)
)
(defun ai_tab2 ()
(setq T_Menu (read (ai_popmenucfg "T_Menu")))
(if (= (logand 2 T_Menu) 2)
(progn
(ai_putmenucfg "T_Menu" (itoa (setq T_Menu (- T_Menu 2))))
(if (< (getvar "EXPERT") 4)
(princ ;|ACAD_MNL_8|;"\nAlternate tablet area 2 unloaded. ")
)
(menucmd "T2=TABLET2")
(if old_wv (setvar "WORLDVIEW" old_wv))
(if (< (getvar "EXPERT") 1)
(princ ;|ACAD_MNL_9|;"\nCommands operate transparently: VPOINT and DVIEW in Worldview mode.\n")
)
)
(progn
(ai_putmenucfg "T_Menu" (itoa (setq T_Menu (+ T_Menu 2))))
(setq old_wv (getvar "WORLDVIEW"))
(setvar "WORLDVIEW" 0)
(if (< (getvar "EXPERT") 4)
(princ ;|ACAD_MNL_10|;"\nAlternate tablet area 2 loaded. ")
)
(menucmd "T2=TABLET2ALT")
(if (< (getvar "EXPERT") 1)
(princ ;|ACAD_MNL_11|;"\nZoom and other commands issue CTRL-C's: VPOINT and DVIEW in current UCS mode.\n")
)
)
)
(princ)
)
(defun ai_tab3 ()
(setq T_Menu (read (ai_popmenucfg "T_Menu")))
(if (= (logand 4 T_Menu) 4)
(progn
(ai_putmenucfg "T_Menu" (itoa (setq T_Menu (- T_Menu 4))))
(if (< (getvar "EXPERT") 4)
(princ ;|ACAD_MNL_12|;"\nAlternate tablet area 3 unloaded. ")
)
(menucmd "T3=TABLET3")
(if (< (getvar "EXPERT") 1)
(princ ;|ACAD_MNL_13|;"\nSelect Imperial units from the Numeric menu.\n")
)
)
(progn
(ai_putmenucfg "T_Menu" (itoa (setq T_Menu (+ T_Menu 4))))
(if (< (getvar "EXPERT") 4)
(princ ;|ACAD_MNL_14|;"\nAlternate tablet area 3 loaded. ")
)
(menucmd "T3=TABLET3ALT")
(if (< (getvar "EXPERT") 1)
(princ ;|ACAD_MNL_15|;"\nSelect Metric units from the Numeric menu.\n")
)
)
)
(princ)
)
(defun ai_tab4 ()
(setq T_Menu (read (ai_popmenucfg "T_Menu")))
(if (= (logand 8 T_Menu) 8)
(progn
(ai_putmenucfg "T_Menu" (itoa (setq T_Menu (- T_Menu 8))))
(if (< (getvar "EXPERT") 4)
(princ ;|ACAD_MNL_16|;"\nAlternate tablet area 4 unloaded. ")
)
(menucmd "T4=TABLET4")
(if (< (getvar "EXPERT") 1)
(princ ;|ACAD_MNL_17|;"\nObject snap modes issue overrides: commands do NOT repeat.\n")
)
)
(progn
(ai_putmenucfg "T_Menu" (itoa (setq T_Menu (+ T_Menu 8))))
(if (< (getvar "EXPERT") 4)
(princ ;|ACAD_MNL_18|;"\nAlternate tablet area 4 loaded. ")
)
(menucmd "T4=TABLET4ALT")
(if (< (getvar "EXPERT") 1)
(princ ;|ACAD_MNL_19|;"\nObject snap modes issue running modes: commands repeat.\n")
)
)
)
(princ)
)
;;;=== General Utility Functions ===
;;; ai_popmenucfg -- retrieve parameter from cfg settings
;;; <param> is a string specifiying the parameter
(defun ai_popmenucfg (param)
(set (read param) (getcfg (strcat "CfgData/Menu/" param)))
)
;;; ai_putmenucfg -- store parameter in cfg settings
;;; <param> is a string specifiying the parameter
;;; <cfgval> is the value for that parameter
(defun ai_putmenucfg (param cfgval)
(setcfg (strcat "CfgData/Menu/" param) cfgval)
)
(defun *merr* (msg)
(setq *error* m:err m:err nil)
(princ)
)
(defun *merrmsg* (msg)
(princ msg)
(setq *error* m:err m:err nil)
(princ)
)
(defun c:rectang ( / cmde pt1 pt2)
(setq m:err *error* *error* *merr*
cmde (getvar "CMDECHO")
)
(setvar "CMDECHO" 0)
(setq pt1 (getpoint ;|ACAD_MNL_20|;"\nFirst corner: ")
pt2 (getcorner pt1 ;|ACAD_MNL_21|;"\nOther corner: ")
)
(command "_.PLINE" "_non" pt1 "_non" (list (car pt1) (cadr pt2))
"_non" pt2 "_non" (list (car pt2) (cadr pt1))
"_C"
)
(setvar "CMDECHO" cmde)
(setq *error* m:err m:err nil)
(princ)
)
;|ACAD_MNL_28|;
(defun ai_showedge_alert ()
(alert ;|ACAD_MNL_26|;"Invisible edges will be shown after next Regeneration.")
(princ)
)
(defun ai_hideedge_alert ()
(alert ;|ACAD_MNL_27|;"Invisible edges will be HIDDEN after next Regeneration.")
(princ)
)
;;;=== Menu Functions ===
(defun ai_rootmenus ()
(setq T_MENU 0)
(menucmd "S=S")
(menucmd "S=ACAD.S")
(princ)
)
(defun ai_fms ( / fmsa fmsb)
(setq m:err *error* *error* *merr*)
(if (getvar "TILEMODE") (setvar "TILEMODE" 0))
(setq fmsa (vports) fmsb (nth 0 fmsa))
(if (member 1 fmsb)
(if (> (length fmsa) 1)
(command "_.MSPACE")
(progn
(command "_.MVIEW")
(while (eq 1 (logand 1 (getvar "CMDACTIVE")))
(command pause)
)
(command "_.MSPACE")
)
)
)
(setq *error* m:err m:err nil)
(princ)
)
(defun c:ai_propchk ( / a)
(setq m:err *error* *error* *merr*)
(if (not (setq a (ssget "I")))
(setq a (ssget))
)
(if (> (sslength a) 1)
(progn
(if (not ddchprop)
(load "ddchprop")
)
(setq *error* m:err m:err nil)
(ddchprop a)
)
(progn
(if (not ddmodify)
(load "ddmodify")
)
(setq *error* m:err m:err nil)
(ddmodify (ssname a 0))
)
)
(princ)
)
(defun ai_onoff (var)
(setvar var (abs (1- (getvar var))))
(princ)
)
;;; Pop menu Draw/ Dim/ Align Text/ Centered
;;; Toolbar Dimensions/ Align Text/ Centered
(defun ai_dim_cen (/ ai_sysvar ai_dim_ss)
(setq ai_sysvar (getvar "cmdecho"))
(setvar "cmdecho" 0)
(cond
((setq ai_dim_ss (ssget "P"))
(command "_dimoverride" "_dimjust" 0 "" ai_dim_ss ""
"_dimtedit" ai_dim_ss "_h")
)
(T nil)
)
(setvar "cmdecho" ai_sysvar)
(princ)
)
;;; Set alternate tablet menus based on cfg settings
(defun set_alt_tabs ()
;; check for active tablet areas
(setq T_Menu (read (ai_popmenucfg "T_Menu")))
(mapcar
'(lambda (x y z)
(if (= (logand x T_Menu) x)
(progn
(menucmd (strcat "T" y "=TABLET" y "ALT"))
(if (/= "" (getcfg "CfgData/Editor/TabletMenusActive"))
(eval z)
)
)
)
)
'(1 2 4 8)
'("1" "2" "3" "4")
'(
(princ ;|ACAD_MNL_6|;"\nAlternate tablet area 1 loaded. ")
(princ ;|ACAD_MNL_10|;"\nAlternate tablet area 2 loaded. ")
(princ ;|ACAD_MNL_14|;"\nAlternate tablet area 3 loaded. ")
(princ ;|ACAD_MNL_18|;"\nAlternate tablet area 4 loaded. ")
)
)
(if (and (/= "" (getcfg "CfgData/Editor/TabletMenusActive"))
(/= 0 T_Menu)
)
(terpri)
)
(setq set_alt_tabs nil)
)
;; If no Tablet menu data exists, insert defaults
(if (or (not (setq T_Menu (ai_popmenucfg "T_Menu")))
(= "" T_Menu)
)
;; check for hardware lock
(if (/= "" (getvar "_linfo"))
(ai_putmenucfg "T_Menu" "4")
(ai_putmenucfg "T_Menu" "0")
)
)
;;; Restore alternate tablets upon menu load
(set_alt_tabs)
(setvar "MENUCTL" 1)
;; Load AutoVision menu if AutoVision is installed, and we are on Windows.
(if (and
(wcmatch (getvar "platform") "*Windows*")
(AutoVisionPresent)
)
(progn
(setq filedia (getvar "FILEDIA"))
(setq cmdecho (getvar "CMDECHO"))
(setvar "FILEDIA" 0)
(setvar "CMDECHO" 0)
(command "_.MENUUNLOAD" "autovis")
(command "_.MENULOAD" "autovis")
(menucmd "P7=+autovis.pop1")
(setvar "FILEDIA" filedia)
(setvar "CMDECHO" cmdecho)
)
)
(princ ;|ACAD_MNL_25|;"loaded.")
(princ)