You're quite welcome. There are may programmers here that can do this sort of thing.
As you can see LISP is a powerful tool.
I this this will answer most if not all the questions you posted.
The max length of material is set as follows:
(setq MaxLen (* 12 24.0)) ; 24 feet
You could replace the line with this:
(setq MaxLen 285)
The lisp uses layer names to help gather the needed information. If another drawing follows this
layer naming convention then this routine will work on them as well.
The lisp gathers LINES on the layer groups like this:
(setq laylst '("head,jamb,sill" "int. horizontal,int. vertical"))
The layers may be separated like this:
(setq laylst '("head" "jamb" "sill" "int. horizontal" "int. vertical"))
The reason I grouped them together is that I thought they were the same material.
The routine creates a selection set of LINES matching each layer group, the layer group may
containing only one layer. Then it does the following:
ignore lines < 3" as this is an end of section line
eliminate duplicate lines, IE remove one from each pair of matching length lines
report any lines that did not have a matching pair, but keeps it in the list to be calculated.
The cut list are created in an older subroutine I had & updated to use in this situation.
Then the Drops are calculated.
The report to the command line can also be directed to a text file as well.