Fail proof / idiot proof method of loading company customization?

Discussion in 'AutoCAD' started by David Allen, Oct 20, 2004.

  1. David Allen

    David Allen Guest

    you just type "expresstools" and its reloaded

    "R. Robert Bell" <>
    |>Express Tools does not load reliable. Change profiles to one that doesn't
    |>load Express Tools, or reset the profile. Gone. That is what we are trying
    |>to state... as long as there are profiles, the user can muck it up.
    |>
    |>The best bet is to make sure the install is correct, modify the shortcut
    |>icons to load a specific profile, and write the startup code to load
    |>everything when that profile is loaded. If you have full IT access on a
    |>Win2000/2003 server network, you could also create a custom group policy
    |>template to help standardization (but I've just started exploring that
    |>option myself).


    David
     
    David Allen, Oct 25, 2004
    #21
  2. David Allen

    David Allen Guest

    not sure what this does for me here? Not getting this option?

    "Dan Elkins" <delkins at johnsonfain dot com>
    |>Looks like a Custom Group Policy template may be the best option.
    |>
    |>tip: http://www.jsiinc.com/SUBL/tip5900/rh5946.htm
    |>
    |>-Dan
    |>


    David
     
    David Allen, Oct 25, 2004
    #22
  3. Dave,
    You know I control the startup with our acad.lsp which relies on the top path in the support paths being correct.
    No matter how you run things, there will be some "master" routine that checks and fixes and sets things up.

    The options I see are:
    1) mnl files
    2) acad.lsp or acaddoc.lsp or other autoloaded lsp
    3) lisp or vlx loaded because of registry entries
    4) script called from startup icon
    5) arg specified in icon
    6) .reg file to force settings
    7) some other prog that hooks up with acad and changes its settings, like an exe created with VB.

    Thats all I can think of. Which one is closest to what you want?

    as you know, we run here based on the startup icon. It calls for an arg that only gets used if the profile name does
    not exist already. That profile has the right path at the top to find my acad.lsp. The the acad.lsp runs the rest.

    I would say you just have to make the lisp that checks and fixes things, then make an easy way for users to run it.
    It was RST at Hunsaker (for restart...).

    Its hard to not touch the default paths and keep things running smoothly. I no longer control all support files though
    here, its more towards the default install than 2002 was...


    David Allen <*@*.com>
    |>Got company lisp / menu on a network server.
    |>User logs in and login script setups drive letters.
    |>User runs autocad. Autocad has company pulldown menu menuloaded.
    |>Menu loads customization.
    |>
    |>Now things sometime fail and I get calls that the pulldown menu is missing or the fonts do not work or the shortcut keys
    |>are missing. That is because something has failed in the loading of the company customization. So I need to revise my
    |>approach for loading the company customization.
    |>
    |>I believe that customization should be an addon to the stock installation of autocad regardless of version or
    |>installation location. That being said I am categorically opposed to any solution that involves autocad profiles,
    |>desktop or start menu icons or modifying / adding files to the C:\Program Files\<autocad> folder locations. Ideally I
    |>would like to install autocad (any version). Click something else and be done forever with any need for further messing
    |>with the end users desktop in any way. All Autocad configuration changes, etc... would then be handled by the company
    |>standard customization on the network.
    |>
    |>So my question is, how can I make my customization load 100% of the time with no future interaction of the user or
    |>myself. How can I make sure that if the server goes down or the machine crashes or the windows profile gets reset or
    |>whatever disaster happens that my customization will continue to run the next time autocad is ran.
    |>
    |>
    |>
    |>David

    James Maeding
    jmaeding at hunsaker dot com
    Civil Engineer/Programmer
     
    James Maeding, Oct 25, 2004
    #23
  4. 8^(

    So you use a .bat file. I'm trying to do it fully in VScript.

    --
    R. Robert Bell


    Here's a copy of the logon script I used for LDT2000i - it's more
    illustrative than the LDT2005 version I have, ('work in progress). You'll
    notice I do some stuff that's redundant at times, like making those MapCAD
    folders each time, ('ignored if already there), but that's because I need it
    to also function on first time new logins. I just save it as login.bat…
     
    R. Robert Bell, Oct 26, 2004
    #24
  5. <rolling eyes>

    RoboCopy will require a shell.

    If I can find out what is going on with the permissions, I would use the
    scripting runtime File object.

    --
    R. Robert Bell


    use robocopy from the server resource kit
    Its similar to xcopy but with more options

    "R. Robert Bell" <>
    |>John,
    |>
    |>How are you handling the file copying in the logon process? I've had
    |>permission-related issues with VBScript during the actual logon.


    David
     
    R. Robert Bell, Oct 26, 2004
    #25
  6. David Allen

    LouCancilla Guest

    Here is what we do which is 99% reliable.

    I have a Network Share which is accessible to all AutoCAD Users. It can be via a mapped drive or UNC path. I put all our customized files in this shared folder. **The only requirement is to add this path to AutoCAD and put it at the top**. Now I created a "acad.lsp" here that checks and loads an ADDITIONAL SEPARATE partial menu with our company stuff. There is also an "acaddoc.lsp" that sets up the
    drawing environment and defines and/or loads our customizations. The acaddoc.lsp also includes code to load LOGINNAME.lsp/fas/vlx if found to handle user customizations without touching our company acaddoc.lsp
    SEE BELLOW:
    (setq UN (getvar "LOGINNAME"))
    (cond
    ((setq FN (findfile (strcat UN ".lsp")))
    (princ (strcat "\nAutoloading user " (strcase UN) " Customizations."))
    (load FN "Unable to Load User File!")
    )
    ((setq FN (findfile (strcat UN ".fas")))
    (princ (strcat "\nAutoloading user " (strcase UN) " Customizations."))
    (load FN "Unable to Load User File!")
    )
    ((setq FN (findfile (strcat UN ".vlx")))
    (princ (strcat "\nAutoloading user " (strcase UN) " Customizations."))
    (load FN "Unable to Load User File!")
    )
    )(setq UN nil)

    Also, if you are using multiple versions of AutoCAD load a menufile for each one. Different AutoCAD's compiling the same MNS is trouble. SEE BELOW:
    (cond
    ((= (rtos(atof(getvar "ACADVER"))2 2) "15.00") (setq MENU "menu2000.mns"))
    ((= (rtos(atof(getvar "ACADVER"))2 2) "15.05") (setq MENU "menu2000.mns"))
    ((= (rtos(atof(getvar "ACADVER"))2 2) "15.06") (setq MENU "menu2002.mns"))
    ((= (rtos(atof(getvar "ACADVER"))2 2) "16.00") (setq MENU "menu2004.mns"))
    ((= (rtos(atof(getvar "ACADVER"))2 2) "16.10") (setq MENU "menu2005.mns"))
    )
    (if (findfile MENU) ;;partial menu is in Acad path
    (progn
    (if (not (menugroup "ourmenu"))
    (progn ;;menugroup in not loaded
    (command ".MENULOAD" MENU)
    (menucmd "P19=+ourmenu.pop1")
    )(menucmd "P19=+ourmenu.pop1") ;;menugroup is loaded
    )
    )
    )

    Company toolbars are in the mns as well. Make them read only to non-admins

    This scenario requires NO modification to core AutoCAD files or Profiles other than just adding a toplevel path.
     
    LouCancilla, Oct 27, 2004
    #26
  7. David Allen

    David Allen Guest

    James we both know each others opinions and approches on this subject. We are both well aware of all the normal
    ways to setup customization. I'm looking for a solution that is step above the normal here.

    I think the only real solution is for a login script or group policy to load some program. That program then checks to
    see if the customization is loaded, if not it loads and configures autocad on the fly. We already have that program.
    The question is how to get that program to run. As far as I know there is no way to put into the registry a load lsp
    statement. I want to avoid adding files to the local install of autocad so the only way I see it is via the registry.


    James Maeding <>
    |>Dave,
    |>You know I control the startup with our acad.lsp which relies on the top path in the support paths being correct.
    |>No matter how you run things, there will be some "master" routine that checks and fixes and sets things up.
    |>
    |>The options I see are:
    |>1) mnl files
    |>2) acad.lsp or acaddoc.lsp or other autoloaded lsp
    |>3) lisp or vlx loaded because of registry entries
    |>4) script called from startup icon
    |>5) arg specified in icon
    |>6) .reg file to force settings
    |>7) some other prog that hooks up with acad and changes its settings, like an exe created with VB.
    |>
    |>Thats all I can think of. Which one is closest to what you want?
    |>
    |>as you know, we run here based on the startup icon. It calls for an arg that only gets used if the profile name does
    |>not exist already. That profile has the right path at the top to find my acad.lsp. The the acad.lsp runs the rest.
    |>
    |>I would say you just have to make the lisp that checks and fixes things, then make an easy way for users to run it.
    |>It was RST at Hunsaker (for restart...).
    |>
    |>Its hard to not touch the default paths and keep things running smoothly. I no longer control all support files though
    |>here, its more towards the default install than 2002 was...
    |>
    |>
    |>David Allen <*@*.com>
    |>|>Got company lisp / menu on a network server.
    |>|>User logs in and login script setups drive letters.
    |>|>User runs autocad. Autocad has company pulldown menu menuloaded.
    |>|>Menu loads customization.
    |>|>
    |>|>Now things sometime fail and I get calls that the pulldown menu is missing or the fonts do not work or the shortcut keys
    |>|>are missing. That is because something has failed in the loading of the company customization. So I need to revise my
    |>|>approach for loading the company customization.
    |>|>
    |>|>I believe that customization should be an addon to the stock installation of autocad regardless of version or
    |>|>installation location. That being said I am categorically opposed to any solution that involves autocad profiles,
    |>|>desktop or start menu icons or modifying / adding files to the C:\Program Files\<autocad> folder locations. Ideally I
    |>|>would like to install autocad (any version). Click something else and be done forever with any need for further messing
    |>|>with the end users desktop in any way. All Autocad configuration changes, etc... would then be handled by the company
    |>|>standard customization on the network.
    |>|>
    |>|>So my question is, how can I make my customization load 100% of the time with no future interaction of the user or
    |>|>myself. How can I make sure that if the server goes down or the machine crashes or the windows profile gets reset or
    |>|>whatever disaster happens that my customization will continue to run the next time autocad is ran.
    |>|>
    |>|>
    |>|>
    |>|>David
    |>
    |>James Maeding
    |>jmaeding at hunsaker dot com
    |>Civil Engineer/Programmer


    David
     
    David Allen, Oct 28, 2004
    #27
  8. David Allen

    David Allen Guest

    the best approach so far.
    so Administrative templates is configuring of programs via group policy?
    How do you get programs added to the administrative templates? I don't see autocad or office programs like your screen
    shot.

    "Dan Elkins" <delkins at johnsonfain dot com>
    |>This gives you the option of creating your own custom ADM files you can load
    |>into 'Adminstrative Templates' in your group policy to set registry entrees
    |>(see attached image). I started messing with it, haven't tested yet.
    |>
    |>-Dan
    |>


    David
     
    David Allen, Oct 28, 2004
    #28
  9. David Allen

    Dan Elkins Guest

    You have to get the *.ADM files for each program and import them into your
    group policy. Obtain an ADM file, then copy to %WINDIR%\inf on your server
    (I don't think it's crucial that the ADM file be in this directory, but this
    is where the other ADM files are). Right click on the the 'Administrative
    Templates' folder in group policy editor and select add template, then add
    the desired ADM file.

    I don't recall off hand where I got the ADM file for Office (I'll try and
    track that down), but I created the one for AutoCAD. Still testing to see
    if it will work.

    -Dan
     
    Dan Elkins, Oct 28, 2004
    #29
  10. David Allen

    GTVic Guest

    What we do is this:

    A standalone EXE that detects the current user's current AutoCAD profile and checks it to make sure the company folders are in the AutoCAD path. It also ensures that the correct folders are set for PC3, PMP, CTB, DWT folders etc. The EXE then launches AutoCAD.

    The file AcadDoc.lsp is in one of the company folders and it adds a function to S::STARTUP that ensures the company menu is loaded.

    We don't enforce that the users always launch AutoCAD by using the custom EXE but they know if they get into trouble they can do that.
     
    GTVic, Oct 28, 2004
    #30
  11. David Allen

    Dan Allen Guest

    AutoCAD stores the startup suite file list in the registry. Modify that to
    add your file.

    HKEY_CURRENT_USER\Software\Autodesk\AutoCAD\R15.0\ACAD-1:409\Profiles\Dan\Di
    alogs\Appload\Startup

    Dan

    <snip> As far as I know there is no way to put into the registry a load lsp
    statement. I want to avoid adding files to the local install of autocad so
    the only way I see it is via the registry.
     
    Dan Allen, Oct 29, 2004
    #31
  12. David Allen

    David Allen Guest

    ok how do I get the ADM There is no ADM on the 2005 cd.
    So it seems that ADM files have to be made?
    Can you email me your office ADM file?

    "Dan Elkins" <delkins at johnsonfain dot com>
    |>You have to get the *.ADM files for each program and import them into your
    |>group policy. Obtain an ADM file, then copy to %WINDIR%\inf on your server
    |>(I don't think it's crucial that the ADM file be in this directory, but this
    |>is where the other ADM files are). Right click on the the 'Administrative
    |>Templates' folder in group policy editor and select add template, then add
    |>the desired ADM file.
    |>
    |>I don't recall off hand where I got the ADM file for Office (I'll try and
    |>track that down), but I created the one for AutoCAD. Still testing to see
    |>if it will work.
    |>
    |>-Dan
    |>


    David
     
    David Allen, Oct 29, 2004
    #32
  13. David Allen

    David Allen Guest

    thats if you use the appload function

    "Dan Allen" <>
    |>AutoCAD stores the startup suite file list in the registry. Modify that to
    |>add your file.
    |>
    |>HKEY_CURRENT_USER\Software\Autodesk\AutoCAD\R15.0\ACAD-1:409\Profiles\Dan\Di
    |>alogs\Appload\Startup
    |>
    |>Dan
    |>
    |>|><snip> As far as I know there is no way to put into the registry a load lsp
    |> statement. I want to avoid adding files to the local install of autocad so
    |>the only way I see it is via the registry.
    |>


    David
     
    David Allen, Nov 1, 2004
    #33
  14. David Allen

    Dan Allen Guest

    well if you want to setup autocad to load lisps by only changing the
    registry, then you're just going to have to use the startup suite. or sit
    there shooting down ideas until the next version of autocad.
     
    Dan Allen, Nov 1, 2004
    #34
  15. David Allen

    David Allen Guest

    I'm not trying to shoot down ideas. I know all these ideas already. If any of these ideas would do
    what I wanted then I would not have posted this thread in the first place.
    I think the only foolproof solution would be to place an acad.lsp in
    C:\Documents and Settings\<user>\Application Data\Autodesk\AutoCAD 2005\R16.1\enu\Support\
    via a login script. The acad.lsp would get updated everytime a user logs in. The acad.lsp would only
    say to load a check routine on the server.

    This soution would not modify the Program Files at all and would work with regular user rights. Not the
    most elligant, but from where I am sitting, the only solution.


    "Dan Allen" <>
    |>well if you want to setup autocad to load lisps by only changing the
    |>registry, then you're just going to have to use the startup suite. or sit
    |>there shooting down ideas until the next version of autocad.
    |>
    |>|>> thats if you use the appload function
    |>>
    |>> "Dan Allen" <>
    |>> |>AutoCAD stores the startup suite file list in the registry. Modify that
    |>to
    |>> |>add your file.
    |>> |>
    |>>
    |>|>HKEY_CURRENT_USER\Software\Autodesk\AutoCAD\R15.0\ACAD-1:409\Profiles\Dan\
    |>Di
    |>> |>alogs\Appload\Startup
    |>> |>
    |>> |>Dan
    |>> |>
    |>> |>|>> |><snip> As far as I know there is no way to put into the registry a load
    |>lsp
    |>> |> statement. I want to avoid adding files to the local install of
    |>autocad so
    |>> |>the only way I see it is via the registry.
    |>> |>
    |>>
    |>>
    |>> David
    |>


    David
     
    David Allen, Nov 2, 2004
    #35
Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments (here). After that, you can post your question and our members will help you out.