Help with Enterprise .cuix not loading pull-down menus

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report
Hi All -
I am setting up my company's custom AutoCAD environment in r2015 using an install/setup LISP (see below) which, among other things, defines/loads the Enterprise .cuix file via the SETENV function. This will be used to set up about 12 workstations.
My problem is that the pull-down menus in my Enterprise .cuix menu file are not displaying (yes, I've closed then restarted AutoCAD after running the LISP)... My research has pointed me to a solution to this problem, using Profile (.arg) files and a custom WorkSpace to control menu element visibility.
The problem is that I REALLY want to avoid using a Profile (.arg) template because I prefer to do as much, programmatically, as possible, as I find it a cleaner way to control setting up a custom environment from a raw vanilla install. I've had bad experiences with well meaning people setting up template Profile files that are contaminated with unwanted environment settings or other customization references.
I've inserted my setup LISP, below - does anyone have any critique or ideas on how I can ensure visibility of ALL the Enterprise menu elements without relying on Profiles or Workspaces -- just all done via programming?
Thanks in advance!
- MRG
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; DEFINE SUPPORT FUNCTIONS ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;LOAD VISUAL LISP SUPPORT FOR FUTURE AS NEEDED (vl-load-com) ;************************************************************* ; STRPARSE - SUPPORT FUNCTION ;************************************************************* (defun strParse (Str Delimiter / SearchStr StringLen return n char) (setq SearchStr Str) (setq StringLen (strlen SearchStr)) (setq return '()) (while (> StringLen 0) (setq n 1) (setq char (substr SearchStr 1 1)) (while (and (/= char Delimiter) (/= char "")) (setq n (1+ n)) (setq char (substr SearchStr n 1)) ) ;_ end of while (setq return (cons (substr SearchStr 1 (1- n)) return)) (setq SearchStr (substr SearchStr (1+ n) StringLen)) (setq StringLen (strlen SearchStr)) ) ; end of while (reverse return) ) ; end defun STRPARSE ;************************************************************* ; ADDSUPPORTPATH - SUPPORT FUNCTION ;************************************************************* (defun addSupportPath (dir pos / tmp c lst) (setq tmp "" c -1) (if (not (member (strcase dir) (setq lst (mapcar 'strcase (strParse (getenv "ACAD") ";"))))) (progn (if (not pos) (setq tmp (strcat dir ";" (getenv "ACAD"))) (mapcar '(lambda (x) (setq tmp (if (= (setq c (1+ c)) pos) (strcat tmp ";" dir ";" x) (strcat tmp ";" x) ) ) ) lst ) ) (setenv "ACAD" tmp) ) ) (princ) ); end defun ADDSUPPORTPATH ;************************************************************* ; ADDTRUSTPATH - SUPPORT FUNCTION ;************************************************************* (defun addTrustPath (dir2 pos2 / tmp c lst) (setq tmp "" c -1) (if (not (member (strcase dir2) (setq lst (mapcar 'strcase (strParse (getvar "TRUSTEDPATHS") ";"))))) (progn (if (not pos2) (setq tmp (strcat dir2 ";" (getvar "TRUSTEDPATHS"))) (mapcar '(lambda (x) (setq tmp (if (= (setq c (1+ c)) pos2) (strcat tmp ";" dir2 ";" x) (strcat tmp ";" x) ) ) ) lst ) ) (setvar "TRUSTEDPATHS" tmp) ) ) (princ) ); end defun ADDTRUSTPATH ;************************************************************* ; SAVE and RESET WORKSPACE FUNCTION ;************************************************************* (defun SAVEWS () (SETQ USR (GETVAR "LOGINNAME")) (setq UserWS (getvar "wscurrent")) (if (= (getvar "WSCURRENT") "") (progn ; 'then' [test succeeded] (COMMAND "WORKSPACE" "SAVEAS" USR) ;(alert (strcat "\nWelcome " USR)) ); end progn (progn ; 'else' [test failed] (COMMAND "WORKSPACE" "SAVEAS" UserWS "Y") ;(alert (strcat "\nWelcome " UserWS)) ); end progn ); end if ); end defun SAVEWS ;************************************************************* ; GH-MENULOAD (DON'T USE THIS TO LOAD AN ENTERPRISE MENU!! IT CREATES DOUBLE MENUS AFTER THE "SETENV" CALL TO ENTERPISE MENU) ;************************************************************* (defun GH-MENULOAD ( / old_cmdecho old_ribbonstate) (setq old_cmdecho(getvar "cmdecho")) (setvar "cmdecho" 0) (setq old_ribbonstate(getvar "ribbonstate")) (setvar "MENUBAR" 1) (if (not(menugroup "GH-MENU-ACAD")) (command "cuiload" "G:\\CAD Library\\G&H Custom Menus\\GH-MENU-ACAD-ENTERPRISE\\GH-MENU-ACAD.cuix") ); end IF (menucmd "p14=+GH-MENU-ACAD.pop8") (menucmd "p15=+GH-MENU-ACAD.pop9") (menucmd "p16=+GH-MENU-ACAD.pop10") (menucmd "p17=+GH-MENU-ACAD.pop11") (menucmd "p18=+GH-MENU-ACAD.pop12") (menucmd "p19=+GH-MENU-ACAD.pop13") (menucmd "p20=+GH-MENU-ACAD.pop14") (setvar "cmdecho" old_cmdecho) (setvar "ribbonstate" old_ribbonstate) (princ) );end defun GH-MENULOAD ;************************************************************* ; INSTALLALERT DIALOG BOX FUNCTION ;************************************************************* (defun INSTALLALERT () (setq acad_ipath (substr (findfile "acad.exe") 1 (- (strlen (findfile "acad.exe")) 8) ) ) (alert (strcat "\n G & H's" "\n" "\n Custom Menu for AutoCAD" "\n has been installed" "\n and configured to work with your AutoCAD" "\n installation at: " "\n" "\n" acad_ipath) ) ) ;end defun INSTALLALERT ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; FUNCTION THAT DEFINES ALL OF G&H'S 'SUPPORT FILE SEARCH PATHS' ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; (defun ADDPATHS () (addSupportPath "G:\\CAD Library\\G&H Custom Menus\\GH-MENU-ACAD-ENTERPRISE\\PLUMBING" nil) (addSupportPath "G:\\CAD Library\\G&H Custom Menus\\GH-MENU-ACAD-ENTERPRISE\\HVAC" nil) (addSupportPath "G:\\CAD Library\\G&H Custom Menus\\GH-MENU-ACAD-ENTERPRISE\\ELECTRIC" nil) (addSupportPath "G:\\CAD Library\\G&H Custom Menus\\GH-MENU-ACAD-ENTERPRISE\\ANNOTATION" nil) (addSupportPath "G:\\CAD Library\\G&H Custom Menus\\GH-MENU-ACAD-ENTERPRISE\\SUPPORT" nil) (addSupportPath "G:\\CAD Library\\G&H Custom Menus\\GH-MENU-ACAD-ENTERPRISE\\BITMAPS" nil) (addSupportPath "G:\\CAD Library\\G&H Custom Menus\\GH-MENU-ACAD-ENTERPRISE" nil) (addSupportPath "G:\\CAD LIBRARY\\FONTS" nil) ) ;end defun ADDPATHS ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; FUNCTION THAT DEFINES ALL OF G&H'S 'TRUSTED LOCATIONS' FOR LISP, ETC ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; (defun ADDTRUST () (addTrustPath "G:\\CAD Library\\..." nil) ) ;end defun ADDTRUST ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; DEFINE/SET G&H'S ENVIRONMENT SETTINGS ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; (defun setGHenv () ;CREATE THE GLOBAL TEMPORARY DIRECTORY FOLDER (command "shell" "md C:\\ACADTEMP") (princ) ;************************************************************* ; OPTIONS > FILES ;************************************************************* ;SET G&H'S MENU AS THE ENTERPRISE MENU (setenv "EnterpriseMenuFile" "G:\\CAD Library\\G&H Custom Menus\\GH-MENU-ACAD-ENTERPRISE\\GH-MENU-ACAD.cuix") ;SET "ALTERNATE FONT FILE" (setenv "EmergencyFont" "romanf.shx") ;SET PATH OF .PC3 FILES ("PRINTER CONFIGURATION" SEARCH PATH) (setenv "PrinterConfigDir" "G:\\CAD Library\\Plotters") ;SET PATH OF .PMP FILES ("PRINTER DESCRIPTION FILE" SEARCH PATH) (setenv "PrinterDescDir" "G:\\CAD Library\\Plotters\\PMP Files") ;SET PATH OF .CTB FILES ("PLOT STYLE TABLE" SEARCH PATH) (setenv "PrinterStyleSheetDir" "G:\\CAD Library\\Plotters\\plot styles") ;SET "AUTOMATIC SAVE FILE LOCATION" (setenv "SaveFilePath" "C:\\ACADTEMP") ;SET PATH OF "DRAWING TEMPLATE FILE" (setenv "TemplatePath" "G:\\CAD Library\\G&H Templates\\Sheets") ;SET FILE TO USE FOR "QNEW" (setenv "QnewTemplate" "G:\\CAD Library\\G&H Templates\\Sheets\\G&H 30x42 Sheet Template.dwt") ;SET "TEMPLATE FOR SHEET CREATION AND PAGE SETUP OVERRIDES" (vla-put-PageSetupOverridesTemplateFile (vla-Get-Files (vla-Get-Preferences (vlax-get-acad-object))) "G:\\CAD Library\\G&H Templates\\Sheets\\G&H 30x42 Sheet Template.dwt") ;SET "LOG FILE" LOCATION (setenv "LogFilePath" "C:\\ACADTEMP") ;SET "PLOT AND PUBLISH LOG FILE" LOCATION (setenv "PlotLogPath" "C:\\ACADTEMP") ;SET "TEMPORARY DRAWING FILE" LOCATION (setenv "TempDirectory" "C:\\ACADTEMP") ;SET "TEMPORARY EXTERNAL REFERENCE FILE LOCATION" (setenv "XrefLoadPath" "C:\\ACADTEMP") ;************************************************************* ; OPTIONS > DISPLAY ;************************************************************* ;IF AUTOCAD VERSION EQUAL TO OR GREATER THAN 2014, SET "DISPLAY FILE TABS" TO 'ON' (if (>= (getvar "ACADVER") "19.1")(setvar "FILETABSTATE" 1)) ;SET VIEWRES ("ARC AND CIRCLE SMOOTHNESS") TO 10000 (command "_.viewres" "y" "10000") ;************************************************************* ; OPTIONS > OPEN AND SAVE ;************************************************************* ;SET TO DEFAULT FILE SAVE AS ACAD VERSION 2007 .DWG (setenv "DefaultFormatForSave" "36") ;SET AUTOMATIC SAVE TIME FOR 15 MINUTE INTERVALS (setvar "SAVETIME" 15) ;SET "CREATE BACKUP COPY WITH EACH SAVE (.BAK FILE) (setvar "ISAVEBAK" 1) ;SET TO "DISPLAY FULL PATH IN TITLE" (setenv "ShowFullPathInTitle" "1") ;SET "RETAIN CHANGES TO XREF LAYERS" TO 'ON' (setvar "VISRETAIN" 1) ;SET PROXY IMAGES FOR CUSTOM OBJECTS TO "SHOW PROXY GRAPHICS" (setvar "PROXYSHOW" 1) ;TURN OFF "SHOW PROXY INFORMATION DIALOG BOX" (setvar "PROXYNOTICE" 0) ;************************************************************* ; OPTIONS > SYSTEM ;************************************************************* ;SET LAYOUT REGEN OPTION: "CACHE MODEL TAB AND LAST LAYOUT" (setvar "LAYOUTREGENCTL" 1) ;************************************************************* ; OPTIONS > SYSTEM > EXECUTABLE FILE SETTINGS ;************************************************************* ;SET SECURE LOADING "LOAD FROM TRUSTED LOCATIONS, DISPLAY A WARNING FOR OTHER LOCATIONS (if (>= (getvar "ACADVER") "19.1")(setvar "SECURELOAD" 1)) ;SET TO LOAD 'ACAD.LSP' FILE WITH EVERY DRAWING THAT IS OPENED (setvar "ACADLSPASDOC" 1) ;************************************************************* ; OPTIONS > USER PREFERENCES ;************************************************************* ;TURN ON "DOUBLE CLICK EDITING" (setvar "DBLCLKEDIT" 1) ;SET "MAKE NEW DIMENSIONS ASSOCIATIVE" 'OFF' (setvar "DIMASSOC" 1) ;************************************************************* ; MISC. SYSTEM VARIABLES ;************************************************************* ;TURN ON MENUBAR FOR PULL-DOWN MENUS (setvar "MENUBAR" 1) ;SET SO THAT VIEWPORTS DON'T ZOOM EXTENTS WHEN SWITCHING AMONG THEM (setvar "UCSFOLLOW" 0) );end defun SETGHENV ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; GHRESET - COMPLETE ENVIRONMENT UPDATER FUNCTION ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; (defun c:GHRESET () (setq old_cmdecho(getvar "cmdecho")) (setvar "cmdecho" 0) (SAVEWS) (ADDPATHS) (if (>= (getvar "ACADVER") "19.1")(ADDTRUST)) (setGHenv) ;(GH-MENULOAD) (INSTALLALERT) (setvar "cmdecho" old_cmdecho) );end defun GHRESET ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; ACTUAL CALL/FUNCTION TO GHRESET AND SET ALL THIS UP... ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; (C:GHRESET) (princ)