{"id":1766,"date":"2016-02-04T20:23:55","date_gmt":"2016-02-05T04:23:55","guid":{"rendered":"https:\/\/www.autodesk.com/blogs\/autocad\/?p=1766"},"modified":"2020-04-07T14:48:59","modified_gmt":"2020-04-07T21:48:59","slug":"bootstrap-autocad-deployments-customizations-5","status":"publish","type":"post","link":"https:\/\/www.autodesk.com/blogs\/autocad\/bootstrap-autocad-deployments-customizations-5\/","title":{"rendered":"Bootstrap AutoCAD Deployments for Customizations (5)"},"content":{"rendered":"<p>Wasn&#8217;t that fun last week?<\/p>\n<p>In\u00a0<a href=\"https:\/\/www.autodesk.com/blogs\/autocad\/bootstrap-autocad-deployments-customizations-4\/\">Bootstrap AutoCAD Deployments for Customizations Part 4<\/a>,\u00a0you worked with\u00a0some code. Editing it was no big deal because you only needed to change one line.<\/p>\n<p>This week we take the next step: Writing the code that will live on the network and do the &#8220;heavy lifting&#8221; of installing any missing profiles. I will explain each line of code and point out the ones you need to change for your own use.<\/p>\n<p>Most edits will be made to the beginning of the code. But if you\u2019re supporting multiple profiles\u2014e.g., you have a main profile and also a metric profile\u2014you will need to copy and edit a section of code, in the middle, for each secondary profile. If you\u2019re supporting a single profile, you simply comment out\u00a0that small section.<\/p>\n<h2 id=\"additional-files-you-will-need-for-bootstrapping-autocad\">Additional files you will need for bootstrapping AutoCAD<\/h2>\n<p>First things first: Locate the\u00a0<em><a href=\"http:\/\/jtbworld.com\/autocad-profiles-lsp\">profiles.lsp<\/a><\/em>\u00a0file you downloaded from\u00a0<a href=\"http:\/\/jtbworld.com\/\">JTB World<\/a>. It should be on the network where you put the rest of your code and\/or customizations. The bootstrap code will load the <em>profiles.lsp<\/em> file\u2014this is easy to do\u2014and use some of its functions.<\/p>\n<p>Also, you will need to:<\/p>\n<ul>\n<li>Ensure your code is in an AutoCAD trusted location.<\/li>\n<li>Place exported copies of your profiles on the network.\u00a0Use the Options dialog box to export profiles from AutoCAD. The Export button saves the desired profiles as .<em>arg<\/em> files, which, I advise, you put in a network location specific to your AutoCAD version. Such as <em>p:autocad_2016<\/em>.<\/li>\n<li>Create shortcuts for each supported profile, and place them with the .<em>arg<\/em> files (shortcuts are also version-specific).\u00a0Note: these shortcuts could be\u00a0added to the network deployment. The bootstrap code will place the shortcuts on the user&#8217;s own desktop if they are missing from the public desktop.<\/li>\n<\/ul>\n<h2 id=\"the-main-event-bootstrap-lsp\">The main event: Bootstrap.lsp<\/h2>\n<p>Here is this week\u2019s code. Don&#8217;t go running for the hills screaming in panic!<\/p>\n<p>Yes, there is a lot more of it. But you need to edit only a few lines. And it will all become much clearer after you read the following section.<\/p>\n<p><code>(setq pathCodePrefix \"p:\\autocad\\code\\\")<br \/>\n(setq pathAcadPrefix \"p:\\autocad_2016\\\")<br \/>\n(setq myMainProfile \"Company AutoCAD\")<br \/>\n(setq myMainProfileFile \"Company AutoCAD.arg\")<br \/>\n(setq allShortcuts (list \"Company AutoCAD.lnk\" \"Company AutoCAD Metric.lnk\"))<br \/>\n(setq msgAlert (strcat \"Your profiles have been imported.\"<br \/>\n\"nAutoCAD must be restarted to update the support paths.\"<br \/>\n\"nnAutoCAD will be closed after dismissing this dialog box.\"))<br \/>\n;; Edit lines above for your environment<br \/>\n(cond ((and (setvar \"TrustedPaths\"<br \/>\n(strcat (vl-string-right-trim \";\" (getvar \"TrustedPaths\"))<br \/>\n\";\"<br \/>\npathCodePrefix))<br \/>\n(setq fqnProfileUtils (strcat pathCodePrefix \"profiles.lsp\"))<br \/>\n(findfile fqnProfileUtils)<br \/>\n(load fqnProfileUtils)<br \/>\n(setq allProfiles (getAllProfileNames)))<br \/>\n(cond ((not (existProfile myMainProfile))<br \/>\n(princ \"nExecuting Bootstrap.\")<br \/>\n(setq includePaths 1)<br \/>\n;; Add main profile and make it the current profile<br \/>\n(forceImport myMainProfile<br \/>\n(strcat pathAcadPrefix myMainProfileFile)<br \/>\nincludePaths)<br \/>\n;; Copy the below and edit as needed for each secondary profile<br \/>\n(importProfile \"Company AutoCAD Metric\"<br \/>\n(strcat pathAcadPrefix \"Company AutoCAD Metric.arg\")<br \/>\nincludePaths)<br \/>\n;; This comment ends the copy and edit section<br \/>\n(foreach lnkFilename (cond ((not (findfile (strcat (getenv \"Public\") \"\\Desktop\\\" lnkFilename)))<br \/>\n(vl-file-copy (strcat pathAcadPrefix lnkFilename)<br \/>\n(strcat (getenv \"UserProfile\") \"\\Desktop\\\" lnkFilename))))<br \/>\nallShortcuts)<br \/>\n(alert msgAlert)<br \/>\n(command \"._Quit\")))))<br \/>\n(princ)<br \/>\n<\/code><\/p>\n<h2 id=\"a-detailed-look-at-autocad-bootstrapping-code-what-you-will-edit\">A detailed look at AutoCAD bootstrapping code: What you WILL\u00a0edit<\/h2>\n<p><code>(setq pathCodePrefix \"p:\\autocad\\code\\\")<\/code><br \/>\nChange the text within the double quotes to the location where you put <em>profiles.lsp<\/em>. Double backslashes: Use them, be sure there\u2019s a set at the end of the text.<\/p>\n<p><code>(setq pathAcadPrefix \"p:\\autocad_2016\\\")<\/code><br \/>\nYou change the text within the double quotes to the location where you put the .<em>arg<\/em> and .lnk files.<\/p>\n<p>Note: The <em>bootstrap.lsp<\/em> file should also be placed in this location, which is the same place you put the <em>acad.lsp<\/em> file from <a href=\"https:\/\/www.autodesk.com/blogs\/autocad\/bootstrap-autocad-deployments-customizations-4\/\">Bootstrap AutoCAD Deployments for Customizations Part 4.<\/a><\/p>\n<p><code>(setq myMainProfile \"Company AutoCAD\")<\/code><br \/>\nThis is the actual name of your main profile. Change the text within the double quotes to match the AutoCAD Profiles tab in Options. This should be the profile you want your users to use by default. Note: Once the bootstrap is done, users can use any shortcut to load another profile.<\/p>\n<p><code>(setq myMainProfileFile \"Company AutoCAD.arg\")<\/code><br \/>\nChange the text within the double quotes to the filename of the .<em>arg<\/em> file exported from your main profile.<\/p>\n<p><code>(setq allShortcuts (list \"Company AutoCAD.lnk\" \"Company AutoCAD Metric.lnk\"))<\/code><br \/>\nThis is a list of the filenames for all of your needed shortcuts. There are two shortcuts listed here: <em>Company AutoCAD.lnk<\/em> and <em>Company AutoCAD Metric.lnk<\/em>. But: you are not limited to just two. Edit as needed for the filenames of the <em>.lnk<\/em> files and add any additional ones right before the closing parentheses. If you are providing only one profile, simply delete the unneeded one; a one-element list is fine.<\/p>\n<p><code>(setq msgAlert (strcat \"Your profiles have been imported.\"<br \/>\n\"nAutoCAD must be restarted to update the support paths.\"<br \/>\n\"nnAutoCAD will be closed after dismissing this dialog box.\"))<\/code><br \/>\nThese three lines will let the user know the profiles were added and that AutoCAD will be closed. From this point forward, the user should start AutoCAD from the correct shortcuts.<\/p>\n<p><code>;; Edit lines above for your environment<\/code><br \/>\nThis is just a comment in the code so you know where to edit things. Comments are ignored when the code is running.<\/p>\n<h2 id=\"a-detailed-look-at-autocad-bootstrapping-code-what-you-will-not-edit\">A detailed look at AutoCAD bootstrapping code: What you WILL\u00a0NOT edit<\/h2>\n<p>You won\u2019t edit the next few lines of code. My descriptions are just to help you understand what the code is doing.<\/p>\n<p><code>(cond ((and<\/code><br \/>\nThis sets up a test. All the following needs to be true for the bootstrap to run correctly.<\/p>\n<p><code>(setvar \"TrustedPaths\"<br \/>\n(strcat (vl-string-right-trim \";\" (getvar \"TrustedPaths\"))<br \/>\n\";\"<br \/>\npathCodePrefix))<\/code><br \/>\nThis adds the <em>profiles.lsp<\/em> file location to AutoCAD trusted locations. Note: For security, ensure IT provides a location that is read-only to normal users, and where only specific, secure logins can modify the files.<\/p>\n<p><code>(setq fqnProfileUtils (strcat pathCodePrefix \"<em>profiles.lsp<\/em>\"))<\/code><br \/>\nThis adds the path to the plain filename; it is used by the next two lines of code.<\/p>\n<p><code>(findfile fqnProfileUtils)<\/code><br \/>\nThis looks for the file in the location you specified. If the file isn\u2019t be found, the code will not continue to run.<\/p>\n<p><code>(load fqnProfileUtils)<\/code><br \/>\nThis loads the <em>profile.lsp<\/em> file so that its functions can be used with the AutoCAD profiles.<\/p>\n<p><code>(setq allProfiles (getAllProfileNames)))<\/code><br \/>\nThis gets all the profiles configured in AutoCAD. The getAllProfileNames function comes from the <em>profile.lsp<\/em> file. Note: This is the last line to test if the bootstrap <em>can<\/em> run. We have not yet tested whether the bootstrap <em>needs to<\/em> run.<\/p>\n<p><code>(cond ((not (existProfile myMainProfile))<\/code><br \/>\nThis is a new test, looking to see if your main profile is loaded in AutoCAD. If it is not, the bootstrap needs to run.<\/p>\n<p><code>(princ \"nExecuting Bootstrap.\")<\/code><br \/>\nBecause we determined the main profile was missing, the code tells the user what is going on at the AutoCAD command prompt.<\/p>\n<p><code>(setq includePaths 1)<\/code><br \/>\nThis is here only to make the next few lines of code a little easier to read.<\/p>\n<p>We are going to include paths. A setting in some of the <em>profiles.lsp<\/em> functions allow an imported profile to include paths or to ignore paths; the value for that setting is 1. That number won\u2019t be easy to understand later, when you need to create a new copy of the bootstrap for AutoCAD 2017. So we assign the number to a variable that makes it easier for us to read some of the rest of the code.<\/p>\n<p><code>;; Add main profile and make it the current profile<\/code><br \/>\nThis is another comment to let you know what the next few lines of code are doing.<\/p>\n<p><code>(forceImport myMainProfile<br \/>\n(strcat pathAcadPrefix myMainProfileFile)<br \/>\nincludePaths)<\/code><br \/>\nThis function from the <em>profile.lsp<\/em> file loads a profile from an .<em>arg<\/em> file and makes it the current profile. It uses information you provided at the top of the code.<\/p>\n<h2 id=\"a-detailed-look-at-autocad-bootstrapping-code-ok-i-lied-you-will-need-to-edit-this\">A detailed look at AutoCAD bootstrapping code: OK, I lied,\u00a0you will need to edit this<\/h2>\n<p><code>;; Copy the below and edit as needed for each secondary profile<\/code><br \/>\nThis comment tells you to copy the following three lines and edit them for as many secondary profiles as you need. You do not need to copy the comment. If you do not need any secondary profiles, you should comment out the code by adding two semi-colons to the start of each of the three lines.<\/p>\n<p>Why not just delete the lines? You may later decide you need to add some secondary profiles. Then you can uncomment the lines by removing the semi-colons.<\/p>\n<p><code>(importProfile \"Company AutoCAD Metric\"<br \/>\n(strcat pathAcadPrefix \"Company AutoCAD Metric.arg\")<br \/>\nincludePaths)<\/code><br \/>\nThis a function from the <em>profile.lsp<\/em> file only loads a profile from an .<em>arg<\/em> file. It uses information you provided at the top of the code.<\/p>\n<p><code>;; This comment ends the copy and edit section<\/code><br \/>\nThis comment tells you not to copy any of the remaining code.<\/p>\n<h2 id=\"a-detailed-look-at-autocad-bootstrapping-code-im-done-lying-dont-edit-the-rest-of-this\">A detailed look at AutoCAD bootstrapping code: I&#8217;m done lying, don&#8217;t edit the rest of this<\/h2>\n<p><code>(foreach lnkFilename (cond ((not (findfile (strcat (getenv \"Public\") \"\\Desktop\\\" lnkFilename)))<br \/>\n(vl-file-copy (strcat pathAcadPrefix lnkFilename)<br \/>\n(strcat (getenv \"UserProfile\") \"\\Desktop\\\" lnkFilename))))<br \/>\nallShortcuts)<\/code><br \/>\nThis is the trickiest part of the code, but it isn&#8217;t code you need to edit! These four lines check to see if the shortcuts are on the desktop. If the shortcuts aren&#8217;t on the public desktop\u2014i.e., they came from the deployment\u2014then any missing ones are added to the user&#8217;s desktop. That\u2019s because AutoCAD users typically won&#8217;t have rights to add shortcuts to the public desktop, so the shortcuts are added to the user&#8217;s desktop instead.<\/p>\n<p>The list of shortcuts were provided by you at the top of the code.<\/p>\n<p><code>(alert msgAlert)<\/code><br \/>\nWhen the bootstrap is complete, this shows the user a dialog box that says AutoCAD will close. The dialog box text is at the top of the code, and you can edit it.<\/p>\n<p><code>(command \"._Quit\")))))<\/code><br \/>\nIf the bootstrap executed, this quits AutoCAD. All of those closing parentheses are for the earlier tests.<\/p>\n<p><code>(princ)<\/code><br \/>\nIf the bootstrap was not executed, this provides a clean exit from the code.<\/p>\n<div id=\"attachment_1801\" style=\"width: 310px\" class=\"wp-caption alignnone\"><a href=\"https:\/\/res.cloudinary.com\/dnngwl1yi\/image\/upload\/v1572909075\/autocad-2016-bootstrap.lsp-code-part5_a45rkd.png\" rel=\"attachment wp-att-1801\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-1801\" class=\"size-medium wp-image-1801\" src=\"https:\/\/www.autodesk.com/blogs\/autocad\/wp-content\/uploads\/sites\/35\/2020\/04\/autocad-2016-bootstrap.lsp-code-part5_a45rkd-300x174.png?cld_params=w_300\" alt=\"AutoCAD bootstrap.lsp code as formatted in the Visual LISP\u00ae editor.\" width=\"300\" height=\"174\" srcset=\"https:\/\/www.autodesk.com/blogs\/autocad\/wp-content\/uploads\/sites\/35\/2020\/04\/autocad-2016-bootstrap.lsp-code-part5_a45rkd-300x174.png 300w, https:\/\/www.autodesk.com/blogs\/autocad\/wp-content\/uploads\/sites\/35\/2020\/04\/autocad-2016-bootstrap.lsp-code-part5_a45rkd-768x445.png 768w, https:\/\/www.autodesk.com/blogs\/autocad\/wp-content\/uploads\/sites\/35\/2020\/04\/autocad-2016-bootstrap.lsp-code-part5_a45rkd.png 937w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><p id=\"caption-attachment-1801\" class=\"wp-caption-text\">AutoCAD bootstrap.lsp code as formatted in the Visual LISP\u00ae editor.<\/p><\/div>\n<h2 id=\"next-up-bootstrap-autocad-deployments-for-customizations-part-6\">Next up: <a href=\"https:\/\/www.autodesk.com/blogs\/autocad\/bootstrap-autocad-deployments-for-customizations-6\/\">Bootstrap AutoCAD Deployments for Customizations Part\u00a06<\/a><\/h2>\n<p>In my next post (<a href=\"https:\/\/www.autodesk.com/blogs\/autocad\/bootstrap-autocad-deployments-for-customizations-6\/\">Bootstrap AutoCAD Deployments for Customizations Part 6<\/a>) we\u2019ll look at how you\u00a0add the <em>acad.lsp<\/em> file to the AutoCAD deployment\u00a0to enable bootstrapping.<\/p>\n<p>Here&#8217;re all the previous installments:<\/p>\n<p><a href=\"https:\/\/www.autodesk.com/blogs\/autocad\/bootstrap-autocad-deployments-part-1\/\">Bootstrap AutoCAD Deployments for Customizations Part 1<\/a><\/p>\n<p><a href=\"https:\/\/www.autodesk.com/blogs\/autocad\/bootstrap-autocad-deployments-customizations-part-2\/\">Bootstrap AutoCAD Deployments for Customizations Part 2<\/a><\/p>\n<p><a href=\"https:\/\/www.autodesk.com/blogs\/autocad\/bootstrap-autocad-deployments-customizations-3\/\">Bootstrap AutoCAD Deployments for Customizations Part 3<\/a><\/p>\n<p><a href=\"https:\/\/www.autodesk.com/blogs\/autocad\/bootstrap-autocad-deployments-customizations-4\/\">Bootstrap AutoCAD Deployments for Customizations Part 4<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Wasn&#8217;t that fun last week? In\u00a0Bootstrap AutoCAD Deployments for Customizations Part 4,\u00a0you worked with\u00a0some code. Editing it was no big deal because you only needed to change one line. This week we take the next step: Writing the code that will live on the network and do the &#8220;heavy lifting&#8221; of installing any missing profiles. [&hellip;]<\/p>\n","protected":false},"author":110,"featured_media":1801,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"inline_featured_image":false,"footnotes":""},"categories":[380,893],"tags":[11,248,395,389],"class_list":["post-1766","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-cad-management","category-learning","tag-autocad","tag-autocad-2016","tag-cad-management","tag-deployment","dhig-theme--light"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v27.3 (Yoast SEO v27.3) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>Bootstrap AutoCAD Deployments for Customizations Part 5<\/title>\n<meta name=\"description\" content=\"Bootstrap AutoCAD\u00ae Deployments for Customizations 5: We walk through the bootstrapping code you need. Much copy and paste; the rest is carefully explained.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.autodesk.com/blogs\/autocad\/bootstrap-autocad-deployments-customizations-5\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Bootstrap AutoCAD Deployments for Customizations (5)\" \/>\n<meta property=\"og:description\" content=\"Bootstrap AutoCAD\u00ae Deployments for Customizations 5: We walk through the bootstrapping code you need. Much copy and paste; the rest is carefully explained.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.autodesk.com/blogs\/autocad\/bootstrap-autocad-deployments-customizations-5\/\" \/>\n<meta property=\"og:site_name\" content=\"AutoCAD Blog\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/autocad\" \/>\n<meta property=\"article:published_time\" content=\"2016-02-05T04:23:55+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2020-04-07T21:48:59+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/i0.wp.com\/blogs.autodesk.com\/autocad\/wp-content\/uploads\/sites\/35\/2020\/04\/autocad-2016-bootstrap.lsp-code-part5_a45rkd.png?fit=937%2C543&ssl=1\" \/>\n\t<meta property=\"og:image:width\" content=\"937\" \/>\n\t<meta property=\"og:image:height\" content=\"543\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"R. Robert Bell\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@r_robert_bell\" \/>\n<meta name=\"twitter:site\" content=\"@autocad\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"R. Robert Bell\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"9 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.autodesk.com/blogs\\\/autocad\\\/bootstrap-autocad-deployments-customizations-5\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.autodesk.com/blogs\\\/autocad\\\/bootstrap-autocad-deployments-customizations-5\\\/\"},\"author\":{\"name\":\"R. Robert Bell\",\"@id\":\"https:\\\/\\\/www.autodesk.com/blogs\\\/autocad\\\/#\\\/schema\\\/person\\\/de0e415560e8c287b57dd65d59168dc8\"},\"headline\":\"Bootstrap AutoCAD Deployments for Customizations (5)\",\"datePublished\":\"2016-02-05T04:23:55+00:00\",\"dateModified\":\"2020-04-07T21:48:59+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.autodesk.com/blogs\\\/autocad\\\/bootstrap-autocad-deployments-customizations-5\\\/\"},\"wordCount\":1431,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/www.autodesk.com/blogs\\\/autocad\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/www.autodesk.com/blogs\\\/autocad\\\/bootstrap-autocad-deployments-customizations-5\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.autodesk.com/blogs\\\/autocad\\\/wp-content\\\/uploads\\\/sites\\\/35\\\/2020\\\/04\\\/autocad-2016-bootstrap.lsp-code-part5_a45rkd.png\",\"keywords\":[\"AutoCAD\",\"AutoCAD 2016\",\"CAD Management\",\"Deployment\"],\"articleSection\":[\"CAD Management\",\"Learning\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.autodesk.com/blogs\\\/autocad\\\/bootstrap-autocad-deployments-customizations-5\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.autodesk.com/blogs\\\/autocad\\\/bootstrap-autocad-deployments-customizations-5\\\/\",\"url\":\"https:\\\/\\\/www.autodesk.com/blogs\\\/autocad\\\/bootstrap-autocad-deployments-customizations-5\\\/\",\"name\":\"Bootstrap AutoCAD Deployments for Customizations Part 5\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.autodesk.com/blogs\\\/autocad\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.autodesk.com/blogs\\\/autocad\\\/bootstrap-autocad-deployments-customizations-5\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.autodesk.com/blogs\\\/autocad\\\/bootstrap-autocad-deployments-customizations-5\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.autodesk.com/blogs\\\/autocad\\\/wp-content\\\/uploads\\\/sites\\\/35\\\/2020\\\/04\\\/autocad-2016-bootstrap.lsp-code-part5_a45rkd.png\",\"datePublished\":\"2016-02-05T04:23:55+00:00\",\"dateModified\":\"2020-04-07T21:48:59+00:00\",\"description\":\"Bootstrap AutoCAD\u00ae Deployments for Customizations 5: We walk through the bootstrapping code you need. Much copy and paste; the rest is carefully explained.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.autodesk.com/blogs\\\/autocad\\\/bootstrap-autocad-deployments-customizations-5\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.autodesk.com/blogs\\\/autocad\\\/bootstrap-autocad-deployments-customizations-5\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.autodesk.com/blogs\\\/autocad\\\/bootstrap-autocad-deployments-customizations-5\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.autodesk.com/blogs\\\/autocad\\\/wp-content\\\/uploads\\\/sites\\\/35\\\/2020\\\/04\\\/autocad-2016-bootstrap.lsp-code-part5_a45rkd.png\",\"contentUrl\":\"https:\\\/\\\/www.autodesk.com/blogs\\\/autocad\\\/wp-content\\\/uploads\\\/sites\\\/35\\\/2020\\\/04\\\/autocad-2016-bootstrap.lsp-code-part5_a45rkd.png\",\"width\":937,\"height\":543,\"caption\":\"AutoCAD bootstrap.lsp code as formatted in the Visual LISP\u00ae editor.\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.autodesk.com/blogs\\\/autocad\\\/bootstrap-autocad-deployments-customizations-5\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"\u30db\u30fc\u30e0\",\"item\":\"https:\\\/\\\/www.autodesk.com/blogs\\\/autocad\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"CAD Management\",\"item\":\"https:\\\/\\\/www.autodesk.com/blogs\\\/autocad\\\/cad-management\\\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Bootstrap AutoCAD Deployments for Customizations (5)\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.autodesk.com/blogs\\\/autocad\\\/#website\",\"url\":\"https:\\\/\\\/www.autodesk.com/blogs\\\/autocad\\\/\",\"name\":\"AutoCAD Blog\",\"description\":\"Your home for all things AutoCAD\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.autodesk.com/blogs\\\/autocad\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.autodesk.com/blogs\\\/autocad\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/www.autodesk.com/blogs\\\/autocad\\\/#organization\",\"name\":\"Autodesk, Inc.\",\"url\":\"https:\\\/\\\/www.autodesk.com/blogs\\\/autocad\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.autodesk.com/blogs\\\/autocad\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/www.autodesk.com/blogs\\\/autocad\\\/wp-content\\\/uploads\\\/sites\\\/35\\\/2022\\\/06\\\/16\\\/autodesk-autocad-small_social-400.png\",\"contentUrl\":\"https:\\\/\\\/www.autodesk.com/blogs\\\/autocad\\\/wp-content\\\/uploads\\\/sites\\\/35\\\/2022\\\/06\\\/16\\\/autodesk-autocad-small_social-400.png\",\"width\":400,\"height\":400,\"caption\":\"Autodesk, Inc.\"},\"image\":{\"@id\":\"https:\\\/\\\/www.autodesk.com/blogs\\\/autocad\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/www.facebook.com\\\/autocad\",\"https:\\\/\\\/x.com\\\/autocad\"]},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.autodesk.com/blogs\\\/autocad\\\/#\\\/schema\\\/person\\\/de0e415560e8c287b57dd65d59168dc8\",\"name\":\"R. Robert Bell\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/faededf39b794760f272dc1b7533e431fc61bebbd2f1109ba397c62f066651df?s=96&d=blank&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/faededf39b794760f272dc1b7533e431fc61bebbd2f1109ba397c62f066651df?s=96&d=blank&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/faededf39b794760f272dc1b7533e431fc61bebbd2f1109ba397c62f066651df?s=96&d=blank&r=g\",\"caption\":\"R. Robert Bell\"},\"description\":\"A longtime AUGI director\u2014and the organization\u2019s current President\u2014Robert has been active in the MEP industry for over 25 years and an AutoCAD user since version 2.18. He provides strategic direction, technical oversight, and high-level support for Stantec. Follow him on Twitter @r_robert_bell.\",\"sameAs\":[\"https:\\\/\\\/x.com\\\/r_robert_bell\",\"robertbell\"],\"url\":\"https:\\\/\\\/www.autodesk.com/blogs\\\/autocad\\\/author\\\/robertbell\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Bootstrap AutoCAD Deployments for Customizations Part 5","description":"Bootstrap AutoCAD\u00ae Deployments for Customizations 5: We walk through the bootstrapping code you need. Much copy and paste; the rest is carefully explained.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.autodesk.com/blogs\/autocad\/bootstrap-autocad-deployments-customizations-5\/","og_locale":"en_US","og_type":"article","og_title":"Bootstrap AutoCAD Deployments for Customizations (5)","og_description":"Bootstrap AutoCAD\u00ae Deployments for Customizations 5: We walk through the bootstrapping code you need. Much copy and paste; the rest is carefully explained.","og_url":"https:\/\/www.autodesk.com/blogs\/autocad\/bootstrap-autocad-deployments-customizations-5\/","og_site_name":"AutoCAD Blog","article_publisher":"https:\/\/www.facebook.com\/autocad","article_published_time":"2016-02-05T04:23:55+00:00","article_modified_time":"2020-04-07T21:48:59+00:00","og_image":[{"width":937,"height":543,"url":"https:\/\/i0.wp.com\/blogs.autodesk.com\/autocad\/wp-content\/uploads\/sites\/35\/2020\/04\/autocad-2016-bootstrap.lsp-code-part5_a45rkd.png?fit=937%2C543&ssl=1","type":"image\/png"}],"author":"R. Robert Bell","twitter_card":"summary_large_image","twitter_creator":"@r_robert_bell","twitter_site":"@autocad","twitter_misc":{"Written by":"R. Robert Bell","Est. reading time":"9 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.autodesk.com/blogs\/autocad\/bootstrap-autocad-deployments-customizations-5\/#article","isPartOf":{"@id":"https:\/\/www.autodesk.com/blogs\/autocad\/bootstrap-autocad-deployments-customizations-5\/"},"author":{"name":"R. Robert Bell","@id":"https:\/\/www.autodesk.com/blogs\/autocad\/#\/schema\/person\/de0e415560e8c287b57dd65d59168dc8"},"headline":"Bootstrap AutoCAD Deployments for Customizations (5)","datePublished":"2016-02-05T04:23:55+00:00","dateModified":"2020-04-07T21:48:59+00:00","mainEntityOfPage":{"@id":"https:\/\/www.autodesk.com/blogs\/autocad\/bootstrap-autocad-deployments-customizations-5\/"},"wordCount":1431,"commentCount":0,"publisher":{"@id":"https:\/\/www.autodesk.com/blogs\/autocad\/#organization"},"image":{"@id":"https:\/\/www.autodesk.com/blogs\/autocad\/bootstrap-autocad-deployments-customizations-5\/#primaryimage"},"thumbnailUrl":"https:\/\/www.autodesk.com/blogs\/autocad\/wp-content\/uploads\/sites\/35\/2020\/04\/autocad-2016-bootstrap.lsp-code-part5_a45rkd.png","keywords":["AutoCAD","AutoCAD 2016","CAD Management","Deployment"],"articleSection":["CAD Management","Learning"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.autodesk.com/blogs\/autocad\/bootstrap-autocad-deployments-customizations-5\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.autodesk.com/blogs\/autocad\/bootstrap-autocad-deployments-customizations-5\/","url":"https:\/\/www.autodesk.com/blogs\/autocad\/bootstrap-autocad-deployments-customizations-5\/","name":"Bootstrap AutoCAD Deployments for Customizations Part 5","isPartOf":{"@id":"https:\/\/www.autodesk.com/blogs\/autocad\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.autodesk.com/blogs\/autocad\/bootstrap-autocad-deployments-customizations-5\/#primaryimage"},"image":{"@id":"https:\/\/www.autodesk.com/blogs\/autocad\/bootstrap-autocad-deployments-customizations-5\/#primaryimage"},"thumbnailUrl":"https:\/\/www.autodesk.com/blogs\/autocad\/wp-content\/uploads\/sites\/35\/2020\/04\/autocad-2016-bootstrap.lsp-code-part5_a45rkd.png","datePublished":"2016-02-05T04:23:55+00:00","dateModified":"2020-04-07T21:48:59+00:00","description":"Bootstrap AutoCAD\u00ae Deployments for Customizations 5: We walk through the bootstrapping code you need. Much copy and paste; the rest is carefully explained.","breadcrumb":{"@id":"https:\/\/www.autodesk.com/blogs\/autocad\/bootstrap-autocad-deployments-customizations-5\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.autodesk.com/blogs\/autocad\/bootstrap-autocad-deployments-customizations-5\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.autodesk.com/blogs\/autocad\/bootstrap-autocad-deployments-customizations-5\/#primaryimage","url":"https:\/\/www.autodesk.com/blogs\/autocad\/wp-content\/uploads\/sites\/35\/2020\/04\/autocad-2016-bootstrap.lsp-code-part5_a45rkd.png","contentUrl":"https:\/\/www.autodesk.com/blogs\/autocad\/wp-content\/uploads\/sites\/35\/2020\/04\/autocad-2016-bootstrap.lsp-code-part5_a45rkd.png","width":937,"height":543,"caption":"AutoCAD bootstrap.lsp code as formatted in the Visual LISP\u00ae editor."},{"@type":"BreadcrumbList","@id":"https:\/\/www.autodesk.com/blogs\/autocad\/bootstrap-autocad-deployments-customizations-5\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"\u30db\u30fc\u30e0","item":"https:\/\/www.autodesk.com/blogs\/autocad\/"},{"@type":"ListItem","position":2,"name":"CAD Management","item":"https:\/\/www.autodesk.com/blogs\/autocad\/cad-management\/"},{"@type":"ListItem","position":3,"name":"Bootstrap AutoCAD Deployments for Customizations (5)"}]},{"@type":"WebSite","@id":"https:\/\/www.autodesk.com/blogs\/autocad\/#website","url":"https:\/\/www.autodesk.com/blogs\/autocad\/","name":"AutoCAD Blog","description":"Your home for all things AutoCAD","publisher":{"@id":"https:\/\/www.autodesk.com/blogs\/autocad\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.autodesk.com/blogs\/autocad\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.autodesk.com/blogs\/autocad\/#organization","name":"Autodesk, Inc.","url":"https:\/\/www.autodesk.com/blogs\/autocad\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.autodesk.com/blogs\/autocad\/#\/schema\/logo\/image\/","url":"https:\/\/www.autodesk.com/blogs\/autocad\/wp-content\/uploads\/sites\/35\/2022\/06\/16\/autodesk-autocad-small_social-400.png","contentUrl":"https:\/\/www.autodesk.com/blogs\/autocad\/wp-content\/uploads\/sites\/35\/2022\/06\/16\/autodesk-autocad-small_social-400.png","width":400,"height":400,"caption":"Autodesk, Inc."},"image":{"@id":"https:\/\/www.autodesk.com/blogs\/autocad\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/autocad","https:\/\/x.com\/autocad"]},{"@type":"Person","@id":"https:\/\/www.autodesk.com/blogs\/autocad\/#\/schema\/person\/de0e415560e8c287b57dd65d59168dc8","name":"R. Robert Bell","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/faededf39b794760f272dc1b7533e431fc61bebbd2f1109ba397c62f066651df?s=96&d=blank&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/faededf39b794760f272dc1b7533e431fc61bebbd2f1109ba397c62f066651df?s=96&d=blank&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/faededf39b794760f272dc1b7533e431fc61bebbd2f1109ba397c62f066651df?s=96&d=blank&r=g","caption":"R. Robert Bell"},"description":"A longtime AUGI director\u2014and the organization\u2019s current President\u2014Robert has been active in the MEP industry for over 25 years and an AutoCAD user since version 2.18. He provides strategic direction, technical oversight, and high-level support for Stantec. Follow him on Twitter @r_robert_bell.","sameAs":["https:\/\/x.com\/r_robert_bell","robertbell"],"url":"https:\/\/www.autodesk.com/blogs\/autocad\/author\/robertbell\/"}]}},"_links":{"self":[{"href":"https:\/\/www.autodesk.com/blogs\/autocad\/wp-json\/wp\/v2\/posts\/1766","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.autodesk.com/blogs\/autocad\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.autodesk.com/blogs\/autocad\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.autodesk.com/blogs\/autocad\/wp-json\/wp\/v2\/users\/110"}],"replies":[{"embeddable":true,"href":"https:\/\/www.autodesk.com/blogs\/autocad\/wp-json\/wp\/v2\/comments?post=1766"}],"version-history":[{"count":0,"href":"https:\/\/www.autodesk.com/blogs\/autocad\/wp-json\/wp\/v2\/posts\/1766\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.autodesk.com/blogs\/autocad\/wp-json\/wp\/v2\/media\/1801"}],"wp:attachment":[{"href":"https:\/\/www.autodesk.com/blogs\/autocad\/wp-json\/wp\/v2\/media?parent=1766"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.autodesk.com/blogs\/autocad\/wp-json\/wp\/v2\/categories?post=1766"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.autodesk.com/blogs\/autocad\/wp-json\/wp\/v2\/tags?post=1766"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}