@DC-MWA ,
I do not believe anybody feels disrespected here. I hope not at least.
I feel like a common disconnect that happens when experienced programmers interact with less experienced ones is one of utter confusion. This mostly happens when the less experienced person implies or asks about something that causes the more experienced person to say to themselves: "Wait, how did we get here?". They will then begin to ask the person with less experience how they got to their current question. Most of the time this involves dissecting their overall code, and of course mentioning the majority of things that are either: wrong or 'not how that person would do it'.
In your particular case, I have a question that needs clarified.
This particular line of code...
(setq x_list (list (strcat (itoa bt-n) "_" (itoa bt-n2)) (/ slen 12) (/ d1 12) (/ d2 12)))
...hints to me that your particular lists should be returned in the following format...
(("1_2" 150.0 30.0 25.0) ("2_3" 150.0 30.0 30.0) ...)
...yet, when you include code in your post, you say it's in this format...
((1_2 150.0 30.0 25.0) (2_3 150.0 30.0 30.0) ...)
...The IMPORTANT difference here is that Without the quotes, this implies to us that those are symbols (not strings). This means that we will approach how to handle your data differently. Perhaps this is just a disconnect between the more-experienced and the less-experienced because I know that if you use the (princ ...) function to print your list to the command history, it will not include the quotes "", when in actuality, there will be quotes around your strings.
Can you begin by telling us if those items being created are strings, or symbols?
You can also use the (type ...) function to help us.. in your case, feed the first item in your first list to it and it should return either "STR" or "SYM"...
(type (caar x_list))
...I believe this will return a STR, but I think we need to be sure.
Best,
~DD