The files in this repository are AutoLISP files that provide automation of specific tasks in AutoCAD for myself and my drafting coworkers. The language is a basic LISP variant that includes specific commands that integrate with AutoCAD and its functions.
The files are constantly being revised and will be moved into internal testing and revision based on user feedback when possible. Some functions were implemented quickly to be ready for a demo for users and the company president. Thus, there is some revision needed to finish conforming to coding best practices like the MVP model, DRY, and basic efficiency, as well as to reduce redundancies in helper functions.
The eventual goal of the project is a set of useful, efficient, and user-friendly programs that will improve drafting efficiency as much as 100% on simple projects and assist with the speed of all projects.
(The projects referenced above are architectural railing projects for everything from small residences to large commercial buildings. The drawings for each project typically include layout plans, elevations, details, and a bill of materials.)
As part of this project, I learned AutoLISP from scratch - never having seen LISP before. Over the course of two months working about 3 hours per week - so as not to interfere with my daily duties - I learned the language, developed the initial programs in this repository, and demoed them for other users in the company with positive feedback. The total work on the project so far has been around 150 man hours.
I look forward to improving the programs through user testing and feedback in a very iterative and continually improving process. It's rewarding being able to use my programming skills in my current drafting job - not something I expected.
The /Old
folder has stubs of previous coding. Most of it has been revised and simplified and moved to a newer file. I'm retaining it for refecence - it may be useful in future functions.
Items in the /Related
folder include items that aren't AutoLISP code, but are important to retain; custom AutoCAD menu code and a Notepad++ AutoLISP language file are two examples.
Here's a link to a good example of some of my later code. It includes important things like the file header, good explanations before each function, clear variable and function names, and it's actually the code for a data structure to be used by other programs (good modularity).