{"id":17559,"date":"2016-12-15T00:39:04","date_gmt":"2016-12-15T00:39:04","guid":{"rendered":"http:\/\/eagleblog.wpengine.com\/?p=127"},"modified":"2023-09-28T11:01:11","modified_gmt":"2023-09-28T18:01:11","slug":"what-you-didnt-know-about-eagle-user-language-programming","status":"publish","type":"post","link":"https:\/\/www.autodesk.com\/products\/fusion-360\/blog\/what-you-didnt-know-about-eagle-user-language-programming\/","title":{"rendered":"What you didn&#8217;t know about EAGLE: User Language Programming"},"content":{"rendered":"\n<p>User Language Programming (ULP) is arguably the most powerful feature in EAGLE, yet few users really leverage it. This feature allows users to write c-like programs that can manipulate every aspect of their design. User Language Programming gives you the user, the power to implement your own specialized functions. Bill of materials (BOM) exporting, dxf files importing, creating components arrays, part creation wizards (Fig 1), are all tools created through ULP writing. It empowers you to create niche functions specific to your workflow and area of expertise.<\/p>\n\n\n\n<p>Those who write code will especially like having this ability. Ok, to get started you will find in EAGLE\u2019s help system, the fully documented C-like syntax with examples clearly explaining each of the language functions. There are specialized functions for calling other programs on your computer, for navigating online to retrieve information, and to create your own dialogs. ULPs can access almost every object in EAGLE.<br>In addition to the built-in help, EAGLE ships with eight example ULPs:<\/p>\n\n\n<?xml encoding=\"utf-8\" ?><figure class=\"wp-block-table MuiTableContainer-root\"><table class=\" MuiTable-root DhigTable--verticalAlignment--top\"><tbody><tr class=\" MuiTableRow-root\"><td class=\" MuiTableCell-root\">\n<ul>\n<li>ex-argv-path.ulp<\/li>\n<\/ul>\n<\/td><td class=\" MuiTableCell-root\">\n<ul>\n<li>ex-include.ulp<\/li>\n<\/ul>\n<\/td><\/tr><tr class=\" MuiTableRow-root\"><td class=\" MuiTableCell-root\">\n<ul>\n<li>ex-dialogs.ulp,<\/li>\n<\/ul>\n<\/td><td class=\" MuiTableCell-root\">\n<ul>\n<li>ex-loop-lbrs.ulp<\/li>\n<\/ul>\n<\/td><\/tr><tr class=\" MuiTableRow-root\"><td class=\" MuiTableCell-root\">\n<ul>\n<li>ex-dlglist.ulp,<\/li>\n<\/ul>\n<\/td><td class=\" MuiTableCell-root\">\n<ul>\n<li>ex-run-script.ulp<\/li>\n<\/ul>\n<\/td><\/tr><tr class=\" MuiTableRow-root\"><td class=\" MuiTableCell-root\">\n<ul>\n<li>ex-file-copy.ulp,<\/li>\n<\/ul>\n<\/td><td class=\" MuiTableCell-root\">\n<ul>\n<li>ex-input-file.ulp,<\/li>\n<\/ul>\n<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p>They illustrate some commonly used functions and are great to follow. So now you have resources and inspiration, there is no excuse to keep you from writing your own!<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/autodesk.com\/products\/fusion-360\/blog\/wp-content\/uploads\/2021\/02\/make-component.700x0-is.png\" alt=\"\" class=\"wp-image-128\"\/><\/figure>\n\n\n\n<p><strong>Figure 1<\/strong>. Make-symbol-device-package-bsdl.ulp in the Library editor. <em>Useful for automatically creating library components.<\/em><\/p>\n\n\n\n<p>Ready to invent a new ULP!? Start your ULP writing in any text editor including the one built into EAGLE. We currently have ULP language files for Notepad++ and Geany, so you may want to consider these two popular and free text editors, which coupled with the language files, allow for sophisticated editor functionality (syntax highlight, function collapse, autocomplete, etc.) (Fig 2).<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/autodesk.com\/products\/fusion-360\/blog\/wp-content\/uploads\/2021\/02\/make-ulp-2.1000x0-is.png\" alt=\"\" class=\"wp-image-129\"\/><\/figure>\n\n\n\n<p><strong>Figure 2<\/strong>. ULP editing on Notepad++<\/p>\n\n\n\n<p>We hope that this brief intro encourages you in learning and writing your own ULPs. This will enable you to wield EAGLE to its greatest potential performing operations that no one has seen before.<\/p>\n\n\n\n<p>Till next time!<br>EAGLE Support Team<br>Please let us know your thoughts and question!<br>Support@cadsoftusa.com<\/p>\n","protected":false},"excerpt":{"rendered":"<p>User Language Programming (ULP) is arguably the most powerful feature in EAGLE, yet few users really leverage it. This feature allows users to write c-like programs that can manipulate every aspect of their design. User Language Programming gives you the user, the power to implement your own specialized functions. Bill of materials (BOM) exporting, dxf [&hellip;]<\/p>\n","protected":false},"author":4,"featured_media":82,"menu_order":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"inline_featured_image":false,"footnotes":""},"categories":[434],"tags":[],"coauthors":[],"class_list":["post-17559","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-eagle","dhig-theme--light"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.4 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>What you didn&#039;t know about EAGLE: User Language Programming | Blog<\/title>\n<meta name=\"description\" content=\"User Language Programming (ULP) is arguably the most dominant feature in EAGLE, yet few users actually leverage it. Read to learn more about ULPs.\" \/>\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\/products\/fusion-360\/blog\/what-you-didnt-know-about-eagle-user-language-programming\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"What you didn&#039;t know about EAGLE: User Language Programming | Blog\" \/>\n<meta property=\"og:description\" content=\"User Language Programming (ULP) is arguably the most dominant feature in EAGLE, yet few users actually leverage it. Read to learn more about ULPs.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.autodesk.com\/products\/fusion-360\/blog\/what-you-didnt-know-about-eagle-user-language-programming\/\" \/>\n<meta property=\"og:site_name\" content=\"Fusion Blog\" \/>\n<meta property=\"article:published_time\" content=\"2016-12-15T00:39:04+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2023-09-28T18:01:11+00:00\" \/>\n<meta name=\"author\" content=\"fusion360\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"fusion360\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"2 minutes\" \/>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"What you didn't know about EAGLE: User Language Programming | Blog","description":"User Language Programming (ULP) is arguably the most dominant feature in EAGLE, yet few users actually leverage it. Read to learn more about ULPs.","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\/products\/fusion-360\/blog\/what-you-didnt-know-about-eagle-user-language-programming\/","og_locale":"en_US","og_type":"article","og_title":"What you didn't know about EAGLE: User Language Programming | Blog","og_description":"User Language Programming (ULP) is arguably the most dominant feature in EAGLE, yet few users actually leverage it. Read to learn more about ULPs.","og_url":"https:\/\/www.autodesk.com\/products\/fusion-360\/blog\/what-you-didnt-know-about-eagle-user-language-programming\/","og_site_name":"Fusion Blog","article_published_time":"2016-12-15T00:39:04+00:00","article_modified_time":"2023-09-28T18:01:11+00:00","author":"fusion360","twitter_card":"summary_large_image","twitter_misc":{"Written by":"fusion360","Est. reading time":"2 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.autodesk.com\/products\/fusion-360\/blog\/what-you-didnt-know-about-eagle-user-language-programming\/#article","isPartOf":{"@id":"https:\/\/www.autodesk.com\/products\/fusion-360\/blog\/what-you-didnt-know-about-eagle-user-language-programming\/"},"author":{"name":"fusion360","@id":"https:\/\/www.autodesk.com\/products\/fusion-360\/blog\/#\/schema\/person\/2c3efc213ecdf3d34dde596d1f6a1cf0"},"headline":"What you didn&#8217;t know about EAGLE: User Language Programming","datePublished":"2016-12-15T00:39:04+00:00","dateModified":"2023-09-28T18:01:11+00:00","mainEntityOfPage":{"@id":"https:\/\/www.autodesk.com\/products\/fusion-360\/blog\/what-you-didnt-know-about-eagle-user-language-programming\/"},"wordCount":349,"commentCount":0,"image":{"@id":"https:\/\/www.autodesk.com\/products\/fusion-360\/blog\/what-you-didnt-know-about-eagle-user-language-programming\/#primaryimage"},"thumbnailUrl":"","articleSection":["Eagle"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.autodesk.com\/products\/fusion-360\/blog\/what-you-didnt-know-about-eagle-user-language-programming\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.autodesk.com\/products\/fusion-360\/blog\/what-you-didnt-know-about-eagle-user-language-programming\/","url":"https:\/\/www.autodesk.com\/products\/fusion-360\/blog\/what-you-didnt-know-about-eagle-user-language-programming\/","name":"What you didn't know about EAGLE: User Language Programming | Blog","isPartOf":{"@id":"https:\/\/www.autodesk.com\/products\/fusion-360\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.autodesk.com\/products\/fusion-360\/blog\/what-you-didnt-know-about-eagle-user-language-programming\/#primaryimage"},"image":{"@id":"https:\/\/www.autodesk.com\/products\/fusion-360\/blog\/what-you-didnt-know-about-eagle-user-language-programming\/#primaryimage"},"thumbnailUrl":"","datePublished":"2016-12-15T00:39:04+00:00","dateModified":"2023-09-28T18:01:11+00:00","author":{"@id":"https:\/\/www.autodesk.com\/products\/fusion-360\/blog\/#\/schema\/person\/2c3efc213ecdf3d34dde596d1f6a1cf0"},"description":"User Language Programming (ULP) is arguably the most dominant feature in EAGLE, yet few users actually leverage it. Read to learn more about ULPs.","breadcrumb":{"@id":"https:\/\/www.autodesk.com\/products\/fusion-360\/blog\/what-you-didnt-know-about-eagle-user-language-programming\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.autodesk.com\/products\/fusion-360\/blog\/what-you-didnt-know-about-eagle-user-language-programming\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.autodesk.com\/products\/fusion-360\/blog\/what-you-didnt-know-about-eagle-user-language-programming\/#primaryimage","url":"","contentUrl":""},{"@type":"BreadcrumbList","@id":"https:\/\/www.autodesk.com\/products\/fusion-360\/blog\/what-you-didnt-know-about-eagle-user-language-programming\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.autodesk.com\/products\/fusion-360\/blog\/"},{"@type":"ListItem","position":2,"name":"What you didn&#8217;t know about EAGLE: User Language Programming"}]},{"@type":"WebSite","@id":"https:\/\/www.autodesk.com\/products\/fusion-360\/blog\/#website","url":"https:\/\/www.autodesk.com\/products\/fusion-360\/blog\/","name":"Fusion Blog","description":"Product updates, tips, tutorials and community news.","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.autodesk.com\/products\/fusion-360\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/www.autodesk.com\/products\/fusion-360\/blog\/#\/schema\/person\/2c3efc213ecdf3d34dde596d1f6a1cf0","name":"fusion360","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.autodesk.com\/products\/fusion-360\/blog\/wp-content\/uploads\/2025\/04\/ADSK-LOGO-150x150.pngcd7bc5eed7b842e50f5e494314f29c83","url":"https:\/\/www.autodesk.com\/products\/fusion-360\/blog\/wp-content\/uploads\/2025\/04\/ADSK-LOGO-150x150.png","contentUrl":"https:\/\/www.autodesk.com\/products\/fusion-360\/blog\/wp-content\/uploads\/2025\/04\/ADSK-LOGO-150x150.png","caption":"fusion360"},"sameAs":["http:\/\/fusion360.wpengine.com"],"url":"https:\/\/www.autodesk.com\/products\/fusion-360\/blog\/author\/fusion360\/"}]}},"_links":{"self":[{"href":"https:\/\/www.autodesk.com\/products\/fusion-360\/blog\/wp-json\/wp\/v2\/posts\/17559","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.autodesk.com\/products\/fusion-360\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.autodesk.com\/products\/fusion-360\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.autodesk.com\/products\/fusion-360\/blog\/wp-json\/wp\/v2\/users\/4"}],"replies":[{"embeddable":true,"href":"https:\/\/www.autodesk.com\/products\/fusion-360\/blog\/wp-json\/wp\/v2\/comments?post=17559"}],"version-history":[{"count":0,"href":"https:\/\/www.autodesk.com\/products\/fusion-360\/blog\/wp-json\/wp\/v2\/posts\/17559\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.autodesk.com\/products\/fusion-360\/blog\/wp-json\/"}],"wp:attachment":[{"href":"https:\/\/www.autodesk.com\/products\/fusion-360\/blog\/wp-json\/wp\/v2\/media?parent=17559"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.autodesk.com\/products\/fusion-360\/blog\/wp-json\/wp\/v2\/categories?post=17559"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.autodesk.com\/products\/fusion-360\/blog\/wp-json\/wp\/v2\/tags?post=17559"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/www.autodesk.com\/products\/fusion-360\/blog\/wp-json\/wp\/v2\/coauthors?post=17559"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}